SxROM: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(→‎Higher CHR lines: somehow the SNROM and SUROM descriptions got corn-fused)
(→‎Various notes: Morita Shogi)
Line 75: Line 75:


* SLxROM boards are functionally identical to SLROM, but with different chip pinouts. Some of them have an additional [[74HC32]] chip to combine PPU /RD and PPU /A13 into a single enable signal for the CHR-ROM chip that has only 28 pins.
* SLxROM boards are functionally identical to SLROM, but with different chip pinouts. Some of them have an additional [[74HC32]] chip to combine PPU /RD and PPU /A13 into a single enable signal for the CHR-ROM chip that has only 28 pins.
* SMROM is functionally identical to SGROM, but features two 128 KB PRG ROM chips instead of one 256 KB. Only a very early MMC1 game in japan is known to have used this board, and it is the only known Nintendo-made board which combines smaller ROM chips to get a bigger ROM.
* SMROM is functionally identical to SGROM, but features two 128 KB PRG ROM chips instead of one 256 KB. Only a very early MMC1 game in japan is known to have used this board, and it is the only known Nintendo-made board which combines smaller ROM chips to get a bigger ROM.
 
* One SNROM game for Famicom uses an 8 KiB CHR ROM instead of CHR RAM: ''[http://bootgod.dyndns.org:7777/profile.php?id=3479 Morita Shogi]''. The [[6264]] pinout is nearly identical to the pinout of an 8 KiB [[mask ROM pinout|mask ROM]], except for pins 26 and 27. On the 6264, these are a positive chip enable (CS2) and negative write enable (/WE) respectively; on the mask ROM, they may be additional positive chip enables. Either way, they're high during reads.
* Even boards which different usage of upper CHR lines are all assigned to [[INES Mapper 001]]. Emulators can distinguish SOROM and SXROM from SNROM using the new PRG RAM size fields in [[NES 2.0]] or using a PRG hash for legacy iNES ROMs. Therefore, it is recommended that ROM images of SOROM and SXROM games be stored in NES 2.0 format to allow an emulator to distinguish them from SNROM or SUROM.
* Even boards which different usage of upper CHR lines are all assigned to [[INES Mapper 001]]. Emulators can distinguish SOROM and SXROM from SNROM using the new PRG RAM size fields in [[NES 2.0]] or using a PRG hash for legacy iNES ROMs. Therefore, it is recommended that ROM images of SOROM and SXROM games be stored in NES 2.0 format to allow an emulator to distinguish them from SNROM or SUROM.

Revision as of 22:14, 7 June 2011

The generic designation SxROM refers to cartridge boards made by Nintendo that use the Nintendo MMC1 mapper.

The following SxROM boards are known to exist:

Board PRG ROM PRG RAM CHR Comments
SAROM 64 KB 8 KB 16,32,64 KB ROM NES only
SBROM 64 KB 16,32,64 KB ROM NES only
SCROM 64 KB 128 KB ROM NES only
SC1ROM 64 KB 128 KB ROM Nonstandard pinout
SEROM 32 KB 16,32,64 KB ROM
SFROM 128,256 KB 16,32,64 KB ROM
SGROM 128,256 KB 8 KB RAM/ROM
SHROM 32 KB 128 KB ROM NES only
SH1ROM 32 KB 128 KB ROM Nonstandard pinout
SIROM 32 KB 8 KB 16,32,64 KB ROM Japan Only
SJROM 128,256 KB 8 KB 16,32,64 KB ROM
SKROM 128,256 KB 8 KB 128 KB ROM
SLROM 128,256 KB 128 KB ROM
SL1ROM 64,128,256 KB 128 KB ROM
SL2ROM Nonstandard pinout
SL3ROM Nonstandard pinout
SLRROM Nonstandard pinout
SMROM 256 KB 8 KB RAM Japan Only
SNROM 128,256 KB 8 KB 8 KB RAM/ROM
SOROM 128,256 KB 16 KB 8 KB RAM/ROM
SUROM 512 KB 8 KB 8 KB RAM/ROM
SXROM 128,256,512 KB 32 KB 8 KB RAM/ROM Japan Only


Solder pad config

Battery data retention (SAROM, SJROM, SKROM, SNROM, SUROM, SXROM only)

  • PRG RAM retaining data : 'SL' disconnected, Battery, D1, D2, R1 R2 and R3 present.
  • PRG RAM not retaining data : 'SL' connected, leave slots for Battery, D1, D2, R1, R2 and R3 free.

Even if the SOROM boards utilizes a battery, it is connected to only one PRG RAM chip. The first RAM chip will not retain its data, but the second one will.

Higher CHR lines

The SUROM, SOROM, and SXROM boards are extensions of SNROM, which has CHR RAM and PRG RAM. Because CHR RAM doesn't need bankswitching, these boards use the CHR bank select lines to switch different things:

  • SNROM uses the upper CHR bank select line coming out of the mapper (CHR A16; bit 4 of bank number) as an additional chip enable for the PRG RAM.[1]
  • SUROM uses CHR A16 to control the upper address line (PRG A18) of its 512KB PRG ROM.
  • SOROM uses a similar method, using the second-highest CHR bank select line to choose between two 8KB PRG RAM chips. Of chip 0 and chip 1, only chip 1 is battery backed.
  • SXROM is a combination of SOROM and SUROM, addressing both 512KB of PRG ROM and 32KB of PRG RAM.

In these scenarios, however, both CHR bank registers must be set to the same value (or the CHR bank size must be set to 8KB), or the PRG ROM/RAM will be bankswitched as the PPU renders, causing disastrous results.

Various notes

  • SLxROM boards are functionally identical to SLROM, but with different chip pinouts. Some of them have an additional 74HC32 chip to combine PPU /RD and PPU /A13 into a single enable signal for the CHR-ROM chip that has only 28 pins.
  • SMROM is functionally identical to SGROM, but features two 128 KB PRG ROM chips instead of one 256 KB. Only a very early MMC1 game in japan is known to have used this board, and it is the only known Nintendo-made board which combines smaller ROM chips to get a bigger ROM.
  • One SNROM game for Famicom uses an 8 KiB CHR ROM instead of CHR RAM: Morita Shogi. The 6264 pinout is nearly identical to the pinout of an 8 KiB mask ROM, except for pins 26 and 27. On the 6264, these are a positive chip enable (CS2) and negative write enable (/WE) respectively; on the mask ROM, they may be additional positive chip enables. Either way, they're high during reads.
  • Even boards which different usage of upper CHR lines are all assigned to INES Mapper 001. Emulators can distinguish SOROM and SXROM from SNROM using the new PRG RAM size fields in NES 2.0 or using a PRG hash for legacy iNES ROMs. Therefore, it is recommended that ROM images of SOROM and SXROM games be stored in NES 2.0 format to allow an emulator to distinguish them from SNROM or SUROM.