Home‎ > ‎Technical Info‎ > ‎Sega Genesis / Megadrive‎ > ‎

SRAM Mapping and Carts Larger than 32Mbit

32Mbit (4MB) Cartridge Space Limit

The Sega Genesis maps the cartridge ROM at 0x000000 -> 0x3FFFFF which allows for 32Mbits of cartridge ROM. This was unimaginably large in 1988 but by the mid 90's had become more affordable. Only 1 game is larger than 32Mbit (Super Street Fighter 2) but several games mapped save SRAM in the cartridge space, both using a similar technique.

SRAM Mapping at 0x200000

The majority of games using battery-backed SRAM for save files mapped the SRAM at 0x200000. The choice of this address is pretty clear since the largest power 2 within an address range is always the easiest one to decode (i.e. required less chips on the cart). This splits the Cartridge memory space into 2 16Mbit ranges, perfectly acceptable and of no concern for games equal to or less than 16Mbits. Games larger than 16Mbits and using battery-backed SRAM (i.e. Phantasy Star IV) need extra hardware to deal with the memory overlap.

#TIME Signal

Many Sega Genesis cartridge pinouts found on the web describe pin B31 as "?" or unknown. In fact, pin B31 is strobed on accesses to the 0xA13000 -> 0xA130FF range; quite handy for cartridge hardware. Games using SRAM typically have an ENABLE latch mapped on D0 within the #TIME range. Officially the correct address of this latch is 0xA130F1 but there is no real need to decode further if this is the only implemented hardware within the #TIME range.
  • Writing a '0' disables the SRAM
  • Writing a '1' enables the SRAM
Games larger than 16Mbits and using SRAM further use this feature:
  • Writing a '0' enables ROM in the 0x200000 -> 0x3FFFFF range
  • Writing a '1' enables SRAM in the 0x200000 -> 0x3FFFFF range
Officially, the use of RAM/ROM enable is:

 Register Address  Bit 1 - WP  Bit 0 - Mode
 0xA130F1  0 = Write Protect
 1 = Writable 
 0 = ROM
 1 = RAM

Super Street Fighter 2

Super Street Fighter 2 uses a mapping technique erroneously referred to as "SSF2 Mapper", in fact this mapper is described in Sega documentation and is only referred to as SSF2 because this is the only official release to use the mapper. The mapper IC is designated "SEGA 315-5779".

Super Street Fighter 2 is a 48Mbit (5MB) ROM. It splits the cartridge memory space into 8 banks of 4Mbits (512KB). Bank 0 will always point to the first segment of ROM in order to not interfere with the vector table. Banks 1 to 7 can point to any of the 64 available segments (bits 7 and 6 are always '0') allowing for a ROM size up to 256Mbits (32MB). Super Street Fighter 2 only has 10 segments implemented.

 Register Address  Start of Range  End of Range
 0xA130F3 (Bank 1)  0x080000  0x0FFFFF
 0xA130F5 (Bank 2)  0x100000  0x17FFFF
 0xA130F7 (Bank 3)  0x180000  0x1FFFFF
 0xA130F9 (Bank 4)  0x200000  0x27FFFF
 0xA130FB (Bank 5)  0x280000  0x2FFFFF
 0xA130FD (Bank 6)  0x300000  0x37FFFF
 0xA130FF (Bank 7)  0x380000  0x3FFFFF

The above registers are accessed through byte-writes. 

Examples:
  • If 0x00 is written to register 0xA130F5, then 0x000000 -> 0x07FFFF is visible at 0x100000 -> 0x17FFFF
    • i.e. Bank 2 points to Segment 0
  • if 0x0A is written to register 0xA130FF, then 0x480000 -> 0x4FFFFF is visible at 0x380000 -> 0x3FFFFF
    • i.e. Bank 7 points to Segment 10

Super Street Fighter 2 Front

 Super Street Fighter 2 Back