eteream wrote:Sorry, I missundertod your earlier messages (I read somewhere extension port only can access a miserable amount of KB... (????)).
The expansion port only exposes 17 of the address lines. Add in the virtual a0, and you get an 18-bit address which lets you address 256KB. However, there is more than one chip select so you can address more than that (I think there are 2 main ones which gives you 512KB total plus one that lets you map a small space for registers). Whatever the total amount, the individual sections are mirrored such that the the whole 4MB of address space allocated to it is filled even though you can't address 4MB of distinct memory.
eteream wrote:Mask of Destiny wrote:
It's a hardware restriction in the sense that the address decoding logic limits a cartridge to the first 4MB of the address space. You can implement your own address decoding logic to get around this, but you'll end up conflicting with other hardware in the system.
... you can ignore the CE (or whatever is named here(C_CE maybe...)) signal and be mapped all over the 0-8MB space, but also you are mapping above this, VDP registers for example. So you have to implement your own address logic. Is it right? Also this is not compatible with Sega Mega CD.
Well if you completely ignore !CE0 (I think that's the right signal) and just tie the chip select line on your ROM to ground, you'll be mapped to the entire 16MB address space and interfere with all the hardware in the system. The 68K might freeze when accessing certain addresses unless you implement !DTACK, but it will be mapped to all addresses at least. If you tied your chip select line to A23 (assuming an active low chip select input), your ROM would be mapped to the first 8MB which will work fine unless a Mega CD is attached.
Mask of Destiny wrote:
Nope. Carts are only mapped to 0-4MB. The expansion slot is mapped to the 4-8MB region.
eteream wrote:Well, how they're mapped depends on the status of the !CARTIN line on the cartridge port. When !CARTIN is tied to ground (usually by a cartridge), the cart slot is mapped to 0-4MB and the expansion slot is mapped to 4-8MB. When !CARTIN is left disconnected (or brought high), the two slots swap their locations. This is what I depend on for my Sega CD based cart dumping software.
That´s funny. So you can play with !CARTIN, the CS signals of ROMs chips and with A22 to simulate a 8MB plane cart, changing the !CARTIN according to A22. But, of curse no mirroring here.
It's also not compatible with mega cd.
Can you tiger the !CARTIN signal by software?
!CARTIN is an input to the address decode logic from the cartridge port, not an output to be used by the cartridge. It's how the system senses that a game cartridge is plugged in as opposed to something like the BRAM cart. It's not useful for making a big 8MB cart, but you can do that just by implementing your own address decoding logic as I mentioned above.
This pin is controlled by the cart so it's generally not controllable via software though in theory a cart could have hardware to make it software controllable. I imagine the Mega-Cart flash cart does. For dumping purposes, you can just put a piece of tape on the appropriate portion of the cart to effectively disconnect !CARTIN or you can make a small modification to your Megadrive/Genesis to add a switch.