SNROM: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(→‎CHR bank 1 (internal, $C000-$DFFF): 'E' had been kinda-sorta known; it was listed on the MMC1 pinout)
(Redirected page to SxROM)
 
Line 1: Line 1:
'''SNROM''' (NES-SNROM and HVC-SNROM) is a common board within the [[SxROM]] set. Like other SxROM boards, SNROM uses the [[MMC1|Nintendo MMC1]] ASIC.
#REDIRECT [[SxROM]]
 
== Overview ==
* PRG ROM size: 128 or 256 KB
* PRG ROM bank size: 16 KB or 32 KB
* PRG RAM: 8 KB plus optional 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 : The pad below D2 (named 'SL' in recent revisions) disconected, and with Battery, D1, D2 and R2 present.
* PRG RAM not retaining data : Leave slots for Battery, D1, D2 and R2 free, and the pad below D2 (also named 'SL' in recent revisions) connected.
 
== Banks ==
* CPU $6000-$7FFF: 8 KB PRG RAM bank, fixed
* CPU $8000-$BFFF: 16 KB PRG ROM bank, either switchable or fixed to the first bank
* CPU $C000-$FFFF: 16 KB PRG ROM bank, either fixed to the last bank or switchable
* PPU $0000-$0FFF: 4 KB switchable CHR RAM bank
* PPU $1000-$1FFF: 4 KB switchable CHR RAM bank
 
== 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
-----
ExxxC
|  |
|  +- Select 4 KB CHR RAM bank at PPU $0000 (ignored in 8 KB mode)
+----- PRG RAM disable (0: enable, 1: open bus)
 
=== CHR bank 1 (internal, $C000-$DFFF) ===
4bit0
-----
ExxxC
|  |
|  +- Select 4 KB CHR RAM bank at PPU $1000 (ignored in 8 KB mode)
+----- PRG RAM disable (0: enable, 1: open bus) (ignored in 8 KB mode)
 
Both the 'E' bit and the 'R' bit (in standard MMC1 registers) should be clear in order for the PRG RAM to be writable or readable. This bit is more "reliable" on authentic hardware as it is implemented even in older boards with older MMC1's, while the 'R' bit was only introduced later.
But because the 'E' bit wasn't absolutely confirmed by the homebrew community until October 2010,[http://nesdev.parodius.com/bbs/viewtopic.php?t=7045] emulators tend not to implement it.
 
In 4KB CHR bank mode, the <code>E</code> bits in both CHR bank registers must be set to the same value, or the PRG RAM will be enabled and disabled 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]].
 
== Chips and pinouts ==
* PRG ROM - 2 MBits (256 kB x 8) (DIP-32)
 
                  ---_---
          A17 - |01  32| - +5V
          /CE - |02  31| - +5V
          A15 - |03  30| - +5V
          A12 - |04  29| - A14
          A7  - |05  28| - A13
          A6  - |06  27| - A8
          A5  - |07  26| - A9
          A4  - |08  25| - A11
          A3  - |09  24| - A16
          A2  - |10  23| - A10
          A1  - |11  22| - /CE
          A0  - |12  21| - D7
          D0  - |13  20| - D6
          D1  - |14  19| - D5
          D2  - |15  18| - D4
          GND  - |16  17| - D3
                  -------
PRG ROMs of 1 MBit (128 kB x 8) comes in a DIP-28 packages are sit 2 rows back (only pins 3 to 30 are used).
This pinout is not compatible with stantard 27C020 EPROMs, nor with standard 27C010 EPROMs, so to insert them in the board manual rewiring is needed.
 
* CHR RAM - 64 KBits (8 KB x 8) : Standard [[6264_static_ram|6264]] pinout.
 
* PRG RAM - 64 KBits (8 KB x 8) : Standard [[6264_static_ram|6264]] pinout.
 
* [[MMC1_pinout|MMC1 pinout]]
 
== See also ==
*[[MMC1|Nintendo MMC1]]

Latest revision as of 04:26, 15 November 2010

Redirect to: