+=-=-=-=-=-=-=-=-=-=-=+ | SNES Memory Mapping | | By: ]SiMKiN[ | | v3.5 | +=-=-=-=-=-=-=-=-=-=-=+ • FastROM's can execute at 3.58Mhz • SlowROM's can only execute 2.68Mhz • The SNES lets you access ROM through bank $00 onwards and bank $80 onwards such that locations $00:8000 and $80:8000 are congruent, (they access the same locations.) • When accessing bank $00 onwards the 65816 runs at 2.68Mhz. However, when accessing bank $80 onwards the 65816 can run at 2.68Mhz or 3.58Mhz depending on how you set bit 0 of $420D. • This Document Contains Information Regarding ROM's upto 48mbit. If you have any information not contained in this document please send E-Mail to 'simkin@innocent.com' +======================================================================+ | Mode 20: LoROM Memory Model (32k Banks) - 24Mbit Max | | ---------------------------------------------------- | | • $00-$5F : $8000-$FFFF | | Mirrored to $80-DF | | ------- | | $60 * 1/2 banks = 24Mbit | +=========+=============+====================================+=========+ | Bank | Offset | Definition | Shadow | +=========+=============+====================================+=========+ | $00-$2F | $0000-$1FFF | LowRAM, shadowed from $7E | $7E | | | $2000-$2FFF | PPU1, APU | $00-$3F | | | $3000-$3FFF | SFX, DSP, etc. | $00-$3F | | | $4000-$41FF | Controller | $00-$3F | | | $4200-$5FFF | PPU2, DMA, etc. | $00-$3F | | | $6000-$7FFF | • RESERVED | $00-$3F | | | $8000-$FFFF | (Mode 20 ROM) | ------- | +---------+-------------+------------------------------------+---------+ | $30-$3F | $0000-$1FFF | LowRAM, shadowed from $7E | $7E | | | $2000-$2FFF | PPU1, APU | $00-$3F | | | $3000-$3FFF | SFX, DSP, etc. | $00-$3F | | | $4000-$41FF | Controller | $00-$3F | | | $4200-$5FFF | PPU2, DMA, etc. | $00-$3F | | | $6000-$7FFF | • RESERVED | ------- | | | $8000-$FFFF | (Mode 20 ROM) | $80-$BF | +---------+-------------+------------------------------------+---------+ | $40-$5F | $0000-$7FFF | • RESERVED | ------- | | | $8000-$FFFF | (Mode 20 ROM) | $C0-$DF | +---------+-------------+------------------------------------+---------+ | $60-$6F | $0000-$7FFF | • RESERVED | ------- | +---------+-------------+------------------------------------+---------+ | $70-$77 | $0000-$7FFF | (Mode 20 SRAM) 256KBytes | ------- | | | $8000-$FFFF | • RESERVED | ------- | +---------+-------------+------------------------------------+---------+ | $78-$7D | $0000-$FFFF | • RESERVED | ------- | +---------+-------------+------------------------------------+---------+ | $7E | $0000-$1FFF | LowRAM | $00-$3F | | | $2000-$7FFF | HighRAM | ------- | | | $8000-$FFFF | Expanded RAM | ------- | +---------+-------------+------------------------------------+---------+ | $7F | $0000-$FFFF | Expanded RAM | ------- | +---------+-------------+------------------------------------+---------+ | $80-$DF | $0000-$FFFF | Mirror of $00-$5f | $00-$5F | +---------+-------------+------------------------------------+---------+ | $E0-$FF | $0000-$FFFF | • RESERVED | ------- | +=========+=============+====================================+=========+ +======================================================================+ | Mode 21: HiROM Memory Model (64k Banks) - 48Mbit Max | | ---------------------------------------------------- | | • $C0-$FF : $0000-$FFFF | | High Parts ONLY '($8000-$FFFF)' are Shadowed to $00-3F | | • $40-$5F : $0000-$FFFF | | ------- | | $60 banks = 48Mbit | +=========+=============+====================================+=========+ | Bank | Offset | Definition | Shadow | +=========+=============+====================================+=========+ | $00-$2f | $0000-$1FFF | LowRAM, shadowed from $7E | $7E | | | $2000-$2FFF | PPU1, APU | $00-$3F | | | $3000-$3FFF | SFX, DSP, etc. | $00-$3F | | | $4000-$41FF | Controller | $00-$3F | | | $4200-$5FFF | PPU2, DMA, etc. | $00-$3F | | | $6000-$7FFF | • RESERVED | $00-$3F | | | $8000-$FFFF | (Mode 21 ROM) from $C0-$EF | $C0-$EF | +---------+-------------+------------------------------------+---------+ | $30-$3F | $0000-$1FFF | LowRAM, shadowed from $7E | $7E | | | $2000-$2FFF | PPU1, APU | $00-$3F | | | $3000-$3FFF | SFX, DSP, etc. | $00-$3F | | | $4000-$41FF | Controller | $00-$3F | | | $4200-$5FFF | PPU2, DMA, etc. | $00-$3F | | | $6000-$7FFF | (Mode 21 SRAM) 128KBytes | ------- | | | $8000-$FFFF | (Mode 21 ROM) from $F0-$FF | $F0-$FF | +---------+-------------+------------------------------------+---------+ | $40-$5F | $0000-$FFFF | (Mode 21 ROM) | ------- | +---------+-------------+------------------------------------+---------+ | $60-$6F | $0000-$7FFF | • RESERVED | ------- | +---------+-------------+------------------------------------+---------+ | $70-$77 | $0000-$7FFF | (Mode 20 SRAM) 256KBytes | ------- | | | $8000-$FFFF | • RESERVED | ------- | +---------+-------------+------------------------------------+---------+ | $78-$7D | $0000-$FFFF | • RESERVED | ------- | +---------+-------------+------------------------------------+---------+ | $7E | $0000-$1FFF | LowRAM | $00-$3F | | | $2000-$7FFF | HighRAM | ------- | | | $8000-$FFFF | Expanded RAM | ------- | +---------+-------------+------------------------------------+---------+ | $7F | $0000-$FFFF | Expanded RAM | ------- | +---------+-------------+------------------------------------+---------+ | $80-$BF | $0000-$FFFF | Mirror of $00-$3f | $00-$3F | +---------+-------------+------------------------------------+---------+ | $C0-$FF | $0000-$FFFF | (Mode 21 ROM) | ------- | +=========+=============+====================================+=========+ • ROM: The SNES ROM Image • RAM: The SNES Work Memory (WRAM) LowRAM, HighRAM, & Expanded RAM All together = 128 Kilo-Bytes • SRAM: Save RAM (Extra RAM added by Cart) The SNES only utilizes 256 Kilo-bits. However 256 Kilo-Bytes are provided for MODE 20 SRAM, and 128 Kilo-Bytes are provided for MODE 21 SRAM. • APU: Audio Processing Unit SPC700, Inside which has a DSP • PPU: Picture Processing Unit PPU1: 5c77-01 PPU2: 5c78-03 • SFX: Super FX Cart Chip, by Nintendo • DSP: Digital Signal Processing Cart Chip a.k.a. 'NEC mUPD77C25' • Shadow: "Congruent Bank". Same meaning as Mirror. _____________________________________________________ .o(_Thanx to: zsKnight, Lord Esnes, Y0SHi, and MintaBoo_)o.