INES Mapper 034: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(I figured out how to allow BNROM style with 8K CHR ROM, per Bregalad's req at http://forums.nesdev.com/viewtopic.php?p=100431#p100431)
m (Remove extra colon.)
 
(17 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:iNES Mappers|034]]
{{DEFAULTSORT:034}}[[Category:iNES Mappers]][[Category:Mappers with CHR RAM]][[Category:Mappers with bus conflicts]][[Category:Nintendo licensed mappers]][[Category:NES 2.0 mappers with submappers]]


[[iNES Mapper 034]] is used to designate both the [[BNROM]] '''and''' [[NINA-001]] boards.
[[iNES Mapper 034]] is used to designate both the [[BNROM]] and [[NINA-001]] boards. These two boards are unrelated, but have unfortunately been grouped into the same mapper.


Emulator authors are suggested to distinguish between these two by checking the number of CHR banks present - BNROM should be used when no CHR ROM is present or the CHR ROM size is 8 KiB, and NINA-001 should be used otherwise.
Many emulators implement both sets of registers simultaneously, which is safe for the two existing commercial games.


  Here are Disch's original notes:
If the emulator wishes to separate the two implementations, they may check the number of CHR banks present: BNROM should be used when there is 0 to 8 KiB of CHR, and NINA-001 should be used otherwise. The [[NES 2.0]] header with a [[NES_2.0_submappers#034:_BNROM_/_NINA-001|submapper]] can be used to force use of specific board behavior.
  ========================
 
  =  Mapper 034          =
Developers wishing to use mapper 34 should strictly use only the BNROM or only the NINA-001 registers in a single ROM, and be careful not to accidentally write to the other set of registers.
  ========================
 
 
[[iNES Mapper 241]] is a variation of BxROM with 8k PRG-RAM at $6000, which avoids having the conflicting NINA-001 registers in that location.
  aka
 
  --------------------------
== BNROM ==
  BxROM
See: [[BNROM]]
  NINA-001
 
 
* PRG ROM size: 128 KB (mapper implementations may support up to 512 KB or 8 MB)
 
* PRG ROM bank size: 32 KB
  Example Games:
* PRG RAM: None
  --------------------------
* CHR capacity: 8 KB RAM
  Darkseed              (BxROM)
* CHR bank size: Not bankswitched
  Mashou                (BxROM)
* Nametable [[mirroring]]: Solder pads select vertical or horizontal mirroring
  Impossible Mission 2  (NINA-001)
* Subject to [[bus conflict]]s: Yes
 
 
 
Games:
  Notes:
* ''Deadly Towers'' (''Mashou'')
  --------------------------
 
  How these two seperate and completely imcompatible mappers got assigned the same mapper number is a mystery.
Registers:
  BxROM and NINA-001 are both assigned mapper 034, however they both work totally differently. There is no
              7  bit  0
  reliable way to tell the difference between the two apart from a CRC or Hash check.
              ---------
 
   $8000-FFFF: .... ..PP - Select 32 KB PRG ROM bank
 
 
  =================================
Emulators commonly support either a 4-bit or 8-bit register, enabling up to 512 KB or 8 MB PRG ROM.
  BxROM
This variant may be referred to as '''BxROM'''.
  =================================
 
 
== NINA-001 ==
  BxROM has bus conflicts... however this mapper also covers some BxROM compatible boards that do
See: [[NINA-001]]
  not suffer from bus conflicts.
 
 
* PRG ROM size: 64 KB
 
* PRG ROM bank size: 32 KB
  Registers (**BUS CONFLICTS** sometimes):
* PRG RAM: 8 KB, not battery backed
  --------------------------
* CHR ROM capacity: 64 KB ROM
    $8000-FFFF: Select 32k PRG @ $8000
* CHR bank size: 4 KB
 
* Nametable [[mirroring]]: Hardwired to vertical mirroring
  Note on a real BxROM, only the low 2 bits are used (PRG capped at 128k).  But since this is BxROM and
* Subject to [[bus conflict]]s: No
  compatible, emus should use all 8 bits
 
 
Games:
 
* ''Impossible Mission 2''
 
 
  PRG Setup:
Registers:
  --------------------------
        7  bit 0
    
        ---------
        $8000   $A000  $C000  $E000 
  $7FFD: .... ...P - Select 32 KB PRG ROM bank
      +-------------------------------+
   $7FFE: .... CCCC - Select 4 KB CHR bank at $0000
      |            $8000            |
   $7FFF: .... CCCC - Select 4 KB CHR bank at $1000
      +-------------------------------+
 
 
== See also ==
 
 
 
*[http://nesdev.org/mappers.zip Comprehensive NES Mapper Document] by \Firebug\, information about mapper's initial state is inaccurate.
  =================================
  NINA-001
  =================================
 
  Registers:
  --------------------------
    $7FFD:   Select 32k PRG @ $8000
    $7FFE:   Select 4k CHR @ $0000
    $7FFF:   Select 4k CHR @ $1000
 
  I'm not sure whether or not WRAM can also exist at $6000-7FFF
 
 
  PRG Setup:
  --------------------------
 
        $8000  $A000  $C000  $E000  
      +-------------------------------+
      |            $7FFD             |
      +-------------------------------+
    
  CHR Setup:
  --------------------------
 
        $0000  $0400  $0800  $0C00  $1000   $1400  $1800  $1C00
      +-------------------------------+-------------------------------+
      |            $7FFE            |            $7FFF            |
      +-------------------------------+-------------------------------+

Latest revision as of 08:19, 10 January 2024


iNES Mapper 034 is used to designate both the BNROM and NINA-001 boards. These two boards are unrelated, but have unfortunately been grouped into the same mapper.

Many emulators implement both sets of registers simultaneously, which is safe for the two existing commercial games.

If the emulator wishes to separate the two implementations, they may check the number of CHR banks present: BNROM should be used when there is 0 to 8 KiB of CHR, and NINA-001 should be used otherwise. The NES 2.0 header with a submapper can be used to force use of specific board behavior.

Developers wishing to use mapper 34 should strictly use only the BNROM or only the NINA-001 registers in a single ROM, and be careful not to accidentally write to the other set of registers.

iNES Mapper 241 is a variation of BxROM with 8k PRG-RAM at $6000, which avoids having the conflicting NINA-001 registers in that location.

BNROM

See: BNROM

  • PRG ROM size: 128 KB (mapper implementations may support up to 512 KB or 8 MB)
  • PRG ROM bank size: 32 KB
  • PRG RAM: None
  • CHR capacity: 8 KB RAM
  • CHR bank size: Not bankswitched
  • Nametable mirroring: Solder pads select vertical or horizontal mirroring
  • Subject to bus conflicts: Yes

Games:

  • Deadly Towers (Mashou)

Registers:

             7  bit  0
             ---------
 $8000-FFFF: .... ..PP - Select 32 KB PRG ROM bank

Emulators commonly support either a 4-bit or 8-bit register, enabling up to 512 KB or 8 MB PRG ROM. This variant may be referred to as BxROM.

NINA-001

See: NINA-001

  • PRG ROM size: 64 KB
  • PRG ROM bank size: 32 KB
  • PRG RAM: 8 KB, not battery backed
  • CHR ROM capacity: 64 KB ROM
  • CHR bank size: 4 KB
  • Nametable mirroring: Hardwired to vertical mirroring
  • Subject to bus conflicts: No

Games:

  • Impossible Mission 2

Registers:

        7  bit  0
        ---------
 $7FFD: .... ...P - Select 32 KB PRG ROM bank
 $7FFE: .... CCCC - Select 4 KB CHR bank at $0000
 $7FFF: .... CCCC - Select 4 KB CHR bank at $1000

See also