SNES Memory Map Without Adress Decoder?

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
User avatar
jowijo
Posts: 16
Joined: Mon Sep 22, 2014 2:05 pm
Location: Cascadia

SNES Memory Map Without Adress Decoder?

Post by jowijo »

Here's an odd question that I couldn't solve through searching.

My understanding is that the Super NES does not have its own memory map, and needs to communicate with an Adress Decoder (Mapper). Is this true? If not, what does the SNES memory map look like without a cart-based Lo/Hi/* ROM mappers?
Oziphantom
Posts: 1565
Joined: Tue Feb 07, 2017 2:03 am

Re: SNES Memory Map Without Adress Decoder?

Post by Oziphantom »

It does. LO-ROM and HI-ROM are the SNES's map. Just the carts respond to or ignore certain address lines to get the mirroring/mapping they want.
Some carts us MAD-1 etc to make more modifications to the Map. but a stock SNES basically sees the RAM, PPU, APU only, and the rest is "open bus" for whatever the cart wants to put at the address.

Code: Select all

$00-$3F 	$0000-$1FFF 	LowRAM, shadowed from bank $7E 	(No ROM mapping) 	$7E (First two pages of WRAM)
        	$2000-$20FF 	Unused 									(No ROM mapping) 	$80-$BF
        	$2100-$21FF 	PPU1, APU, hardware registers 	 (No ROM mapping) 	$80-$BF
        	$2200-$2FFF 	Unused 									(No ROM mapping) 	$80-$BF
        	$3000-$3FFF 	DSP, SuperFX, hardware registers  (No ROM mapping) 	$80-$BF
        	$4000-$40FF 	Old Style Joypad Registers 	    (No ROM mapping) 	$80-$BF
        	$4100-$41FF 	Unused 									(No ROM mapping) 	$80-$BF
        	$4200-$44FF 	DMA, PPU2, hardware registers 	 (No ROM mapping) 	$80-$BF
        	$4500-$5FFF 	Unused 									(No ROM mapping) 	$80-$BF
        	$6000-$7FFF 	RESERVED 								 (No ROM mapping) 	$80-$BF
I'm not sure if the Unused still generates a R/W signal for the cart edge of if they are just pure open bus.
7e&7F map to internal RAM. The rest is up to the cart.
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: SNES Memory Map Without Adress Decoder?

Post by lidnariq »

Every read or write generates the /RD and /WR strobes. Every bus activity drives A0-A23.

The /ROMSEL signal on the card edge is literally just "low if ((A22 high or A15 high) and (A23-A17 not equal to 0x7E))". That's the closest thing you get to "the SNES's "native" memory map".

If you look at a plain 1A0N or 1J0N game you'll notice there's no address decoder IC.


Byuu previously talked about a "psychotic granularity" map which puts ROM in every single open-bus location, totaling almost 119mibit. (The only weird behavior comes from if you map things into $2184-$21FF on the A bus. You can mostly ignore that)
User avatar
jowijo
Posts: 16
Joined: Mon Sep 22, 2014 2:05 pm
Location: Cascadia

Re: SNES Memory Map Without Adress Decoder?

Post by jowijo »

Fascinating. Would SRAM be usable in this case, or would that inherently need an address decoder to properly map it for the CPU? (I only ask because neither of the linked PCB info featured anything with battery-backed SRAM)
Oziphantom
Posts: 1565
Joined: Tue Feb 07, 2017 2:03 am

Re: SNES Memory Map Without Adress Decoder?

Post by Oziphantom »

You would need something to make a "chip select" for the RAM, see http://snescentral.com/pcbboards.php?chip=SHVC-1A1B-05
creaothceann
Posts: 610
Joined: Mon Jan 23, 2006 7:47 am
Location: Germany
Contact:

Re: SNES Memory Map Without Adress Decoder?

Post by creaothceann »

anomie wrote:As far as the SNES is concerned, this is the memory map.
"LoROM", "HiROM", and anything else is just the cart responding differently to the addresses placed on Address Bus A.
Note that the 65c816 inside the 5A22 has a very simple memory map and cares only about the zero page / direct bank, and the stack. The 5A22 translates the addresses and responds to offsets $4000..$43FF (if bank bit 6 is zero) or generates the chip's external pin signals (JPIO, JPCLK, JPOUT, REFRESH, SYSCK, /RAMSEL, /ROMSEL, /CPURD, /CPUWR, CA, /PARD, /PAWR, PA, D). Most of these go into the cartridge connector, and the cartridge can use any address decoder it wants to do anything it wants with the memory accesses.
My current setup:
Super Famicom ("2/1/3" SNS-CPU-GPM-02) → SCART → OSSC → StarTech USB3HDCAP → AmaRecTV 3.10
melanokardios
Posts: 17
Joined: Wed Apr 26, 2017 2:26 pm

Re: SNES Memory Map Without Adress Decoder?

Post by melanokardios »

lidnariq wrote: The /ROMSEL signal on the card edge is literally just "low if ((A22 high or A15 high) and (A23-A17 not equal to 0x7E))". That's the closest thing you get to "the SNES's "native" memory map".
That sounds interesting, where did you get that Information?
lidnariq
Posts: 11429
Joined: Sun Apr 13, 2008 11:12 am

Re: SNES Memory Map Without Adress Decoder?

Post by lidnariq »

It's already documented that /ROMSEL is low during

((Banks $00-$3F or $80-$BF) and address $8000-$FFFF) or (Banks $40-$7D or $C0-$FF)

I've separately looked at the signal on an oscilloscope and seen that it changes at the same time as the address bus, not the control signals.
Post Reply