Welcome, Guest!

Here are some links you may find helpful

SNES Memory mapping of LoRom SNES carts


Original poster
Jul 16, 2019
AG Join Date
Hi everyone,

I have been meaning to make a universal SNES LoRom cart just for the learning experience for a while, so I've been looking at the memory mapping so I can implement my own decoding that would work for any LoRom game I care to put on my cart.

I noticed that the mapping isn't the same for all games when it comes to the SRAM. I found this information from this webpage:

Board Type               ROM Area               Sram Area
  SHVC-1A1B-04,05,06       00-1F,80-9F:8000-FFFF  70-7D,F0-FF:0000-FFFF
  SHVC-1A3B-11,12,13       00-1F,80-9F:8000-FFFF  70-7D,F0-FF:0000-FFFF
  SHVC-1A5B-02,04          00-1F,80-9F:8000-FFFF  70-7D,F0-FF:0000-FFFF
  SHVC-2A3B-01             00-3F,80-BF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-2A3M-01 with MAD-R  00-3F,80-BF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-2A3M-01,11,20       00-7D,80-FF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-1A3B-20             00-7D,80-FF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-1A1M-01,11,20       00-7D,80-FF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-2A1M-01             00-7D,80-FF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-BA1M-01             00-7D,80-FF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-1A3M-10,20,21,30    00-7D,80-FF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-BA3M-01             00-7D,80-FF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-1A5M-01,11,20       00-7D,80-FF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-2A5M-01             00-7D,80-FF:8000-FFFF  70-7D,F0-FF:0000-7FFF
  SHVC-1A7M-01             ?                      ?

Notice how the first 3 boards in the list map the whole 64k banks between 70-7D to SRAM, whereas the other boards only map the lower 32k half of each of those banks to SRAM. I have confirmed this myself by looking at some different boards - for example, the 1A3B-13 board I have doesn't connect A15 to the LS139 decoder on the PCB, in other words the cart doesn't care about this address when selected ROM/SRAM since it knows only to look for SRAM when A22, A21, and A20 are all high.

Now, I have seen many self-made LoRom PCBs online that use 139 decoders, so my question is how is this problem tackled? If you have a game that wants to look for data in 70:8000, for example, how do you whether to give it ROM or SRAM? Or maybe these custom PCBs I've seen only support certain games and not others? I suppose this problem only really matters if the ROM you're using is more than 3MB, since if it isn't then your ROM won't reach the 70 bank and therefore you won't need to choose between ROM/SRAM there? Am I missing something? Maybe someone whose done this before can help me a little.

Thanks for any help

Make a donation