SXROM: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(→‎Registers: reference to MMC3's scanline counter)
(Redirected page to SxROM)
 
Line 1: Line 1:
'''SXROM''' (HVC-SXROM) is one of the less common boards within the [[SxROM]] subset. Like other SxROM boards, SXROM uses the [[MMC1|Nintendo MMC1]] ASIC, but because it always uses CHR RAM, it uses three spare CHR address lines to select between two 256 kb PRG ROM banks, and four 8kb PRG RAM banks letting the program access up to 512 kb of PRG ROM and 32 KB of PRG RAM at once. To keep things simple, it is in some sort a combination of [[SUROM]] and [[SOROM]].
#REDIRECT [[SxROM]]
 
It should be noted that only Japanese HVC-SXROM boards have ever been produced, so this board has no 72-pin "NES-SXROM" counterpart.
 
It is recommended that ROM images of SXROM games be stored in [[NES 2.0]] format to allow an emulator to distinguish them from SNROM or SUROM.
 
== Overview ==
* PRG ROM size: 128, 256 or 512 KB (DIP-28/32 Nintendo pinout)
* PRG ROM bank size: 16 KB or 32 KB
* PRG RAM: 32 KB + battery
* CHR capacity: 8 KB RAM
* CHR bank size: 8 KB or 4 KB
* Nametable [[mirroring]]: Controlled by mapper
* Subject to [[bus conflict]]s: No
 
== Solder pad config ==
* PRG RAM retaining data : 'SL1' disconnected, Battery, D1, D2, R1 and R2 present.
* PRG RAM not retaining data : 'SL1' connected, leave slots for Battery, D1, D2, R1 and R2 free.
 
== Hardware ==
This particular board uses a 74HCU04 (hex inverter) to invert and buffer the enable signals from the MMC1, and that inverter is also battery backed just like the SRAM, so that the SRAM protection on power down is greatly improved (however, the current drawn by the battery is significantly supperior to other cartridges, so the battery may run out faster).
 
== Registers ==
The behavior of this board differs from that of a typical MMC1 board in the use of the upper CHR address lines:
=== CHR bank 0 (internal, $A000-$BFFF) ===
4bit0
-----
PSSxC
||| |
||| +- Select 4 KB CHR RAM bank at PPU $0000 (ignored in 8 KB mode)
|++--- Select 8 KB PRG RAM bank
+----- Select 256 KB PRG ROM bank
 
=== CHR bank 1 (internal, $C000-$DFFF) ===
4bit0
-----
PSSxC
||| |
||| +- Select 4 KB CHR RAM bank at PPU $1000 (ignored in 8 KB mode)
|++--- Select 8 KB PRG RAM bank (ignored in 8 KB mode)
+----- Select 256 KB PRG ROM bank (ignored in 8 KB mode)
 
In 4KB CHR bank mode, the <code>P</code> and <code>S</code>bits in both CHR bank registers must be set to the same values, or the PRG ROM and/or RAM will be bankswitched as the PPU renders, in a similar fashion as [[MMC3#Hardware|MMC3]]'s scanline counter. As there is not much of a reason to use 4 KB bankswitching with CHR RAM, it is wise for programs to just set 8 KB bankswitching mode in the [[MMC1#Control (internal, $8000-$9FFF)|Control register]].

Latest revision as of 04:32, 15 November 2010

Redirect to: