Well, SNES only ever really had two very loosely defined "mappers", which don't actually relate to the hardware underneath, but it's actually only a problem for... something like 5 games, and all of THAT is only when using the 32K-oriented "mapper" aka LoROM.

From the address, you're looking at a classic "HiROM", so it's pretty straight forward how SRAM is masked:

x011 xxxx:011x xxxx xxxx should be bang on, if memory serves (banks 30-3F and B0-BF, address range of 6000-7FFF).

I'm a bit fuzzy on whether anything ever used or mapped banks 20 to 2F (and that implicitly maps A0-AF). If memory serves, that was at most a single board revision, and none of the games on it used that.

the low four bits of the bank are used to select 2K pages of SRAM as needed. SRAM repeats. If you have 2K, it repeats every bank. 4K, every other bank, and so forth.

It's pretty straight forward, from a hardware perspective: the mask is run through some NAND gates that control the enable line to the SRAM, so they aren't used for addressing the chip. Hook up only as many of the remaining address lines as needed, starting from the lowest.

If you'll notice, Kale's example is the exact same test as the Earthbound test, except A23 is set. This is perfectly normal, and one fix should work on both, if SRAM sizes are correct...

Last edited by Heretical_One; 10/02/12 07:12 PM.