GxROM: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
m (→‎Variants: fixed wikilink to 74HC377)
m (fix redlink)
 
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Category:Discrete_logic_mappers]]
[[Category:GNROM-like mappers]][[Category:in NesCartDB]][[Category:Nintendo licensed mappers]][[Category:Mappers with bus conflicts]]
The designation '''GxROM''' refers to Nintendo cartridge boards labeled NES-[[GNROM]] and NES-[[MHROM]] (and their [[Famicom|HVC]] counterparts), which use discrete logic to provide up to four 32 KB banks of PRG ROM and up to four 8 KB banks of CHR ROM. The [[iNES]] format assigns [[iNES Mapper 066|mapper 66]] to these boards.
{{Infobox iNES mapper
|name=GxROM
|company=Nintendo, others
|mapper=66
|boards=GNROM,MHROM
|prgmax=128KiB (512KiB oversize)
|prgpage=32KiB
|chrmax=32KiB (128KiB oversize)
|chrpage=8KiB
|busconflicts=Yes
}}
{{nesdbbox
|ines|66|iNES 066
|unif_wild|GNROM|GNROM
|unif_wild|MHROM|MHROM
}}
The designation '''GxROM''' refers to Nintendo cartridge boards labeled NES-GNROM and NES-MHROM (and their [[Famicom|HVC]] counterparts), which use discrete logic to provide up to four 32 KB banks of PRG ROM and up to four 8 KB banks of CHR ROM. The [[iNES]] format assigns '''mapper 66''' to these boards.


The Jaleco board assigned to [[iNES Mapper 140]] is sometimes confused with GNROM, as they are very similar but with the bankswitch register in a different location.
Example games:
* ''Doraemon''
* ''Dragon Power''
* ''Gumshoe''
* ''Thunder & Lightning''
* ''Super Mario Bros. + Duck Hunt'' (MHROM)
==Board Types==
The following GxROM boards are known to exist:
The following GxROM boards are known to exist:
{| Border="1"
{| class="tabular"
! Board || PRG ROM || CHR
! Board || PRG ROM || CHR
|-
|-
|GNROM || 128 KB || 8,16,32 KB ROM
|GNROM || 128 KB || 32 KB ROM
|-
|-
|MHROM || 64 KB || 8,16,32 KB ROM
|MHROM || 64 KB || 16 / 32 KB ROM
|}
|}
== Overview ==
* PRG ROM size: Up to 128 KB
* PRG ROM bank size: 32 KB
* PRG RAM: None
* CHR capacity: Up to 32 KB ROM
* CHR bank size: 8 KB
* Nametable [[mirroring]]: Solder pads select vertical or horizontal mirroring
* Subject to [[bus conflict]]s: Yes [[Category:Mappers with bus conflicts]]


== Banks ==
== Banks ==
Line 33: Line 50:
   ++------ Select 32 KB PRG ROM bank for CPU $8000-$FFFF
   ++------ Select 32 KB PRG ROM bank for CPU $8000-$FFFF


Bits 5 is not used on MHROM, which supports only 64 KB PRG.
Bit 5 is not used on MHROM, which supports only 64 KB PRG.


== Solder pad config ==
== Solder pad config ==
Line 40: Line 57:


== Hardware ==
== Hardware ==
The GNROM board contains a [[74161|74HC161]] binary counter used as a quad D latch (4-bit register) to select the current PRG and CHR banks. MHROM, on the other hand, was often a [[glop-top]], as it was used for pack-in games, such as the ''Super Mario Bros./Duck Hunt'' [[multicart]], and needed to be very inexpensive to produce in huge quantities.
The GNROM board contains a [[74161|74HC161]] binary counter used as a quad D latch (4-bit register) to select the current PRG and CHR banks. MHROM, on the other hand, was often a [[google:Chip-on-board|glop-top]], as it was used for pack-in games, such as the ''Super Mario Bros./Duck Hunt'' [[multicart]], and needed to be very inexpensive to produce in huge quantities.


== Variants ==
== Variants ==
In theory, it would be possible to implement the bank select register with a [[74377|74HC377]] octal D latch, allowing up to 512 KB of PRG ROM and 128 KB of CHR ROM. The [[Color Dreams]] board, similar in function to GNROM, expanded CHR in much the same way. Official licensed games, on the other hand, used ASIC mappers instead for smaller bank sizes.
 
Placing the bank register in $6000-$7FFF instead of $8000-$FFFF gives [[INES Mapper 140|mapper 140]].
The [[Color Dreams]] board leaves the port at $8000-$FFFF, swaps the nibbles, expands CHR by two bits, and adds two bits for charge pump control.
 
Theoretically the bank select register could be implemented with a [[74377|74HC377]] octal D latch, allowing up to 512 KB of PRG ROM and 128 KB of CHR ROM. There are a [[:Category:GNROM-like mappers|large number]] of other variants on GNROM, where the bits or the writeable address were moved around.
 
== See also ==
*[http://www.romhacking.net/documents/362/ NES Mapper List] by Disch
*[http://nesdev.org/mappers.zip Comprehensive NES Mapper Document] by \Firebug\, information about mapper's initial state is inaccurate.

Latest revision as of 22:03, 10 September 2015

GxROM
Company Nintendo, others
Boards GNROM,MHROM
PRG ROM capacity 128KiB (512KiB oversize)
PRG ROM window 32KiB
PRG RAM capacity None
CHR capacity 32KiB (128KiB oversize)
CHR window 8KiB
Nametable mirroring Fixed H or V, controlled by solder pads
Bus conflicts Yes
IRQ No
Audio No
iNES mappers 066
NESCartDB
iNES 066
GNROM
MHROM

The designation GxROM refers to Nintendo cartridge boards labeled NES-GNROM and NES-MHROM (and their HVC counterparts), which use discrete logic to provide up to four 32 KB banks of PRG ROM and up to four 8 KB banks of CHR ROM. The iNES format assigns mapper 66 to these boards.

The Jaleco board assigned to iNES Mapper 140 is sometimes confused with GNROM, as they are very similar but with the bankswitch register in a different location.

Example games:

  • Doraemon
  • Dragon Power
  • Gumshoe
  • Thunder & Lightning
  • Super Mario Bros. + Duck Hunt (MHROM)

Board Types

The following GxROM boards are known to exist:

Board PRG ROM CHR
GNROM 128 KB 32 KB ROM
MHROM 64 KB 16 / 32 KB ROM

Banks

  • CPU $8000-$FFFF: 32 KB switchable PRG ROM bank
  • PPU $0000-$1FFF: 8 KB switchable CHR ROM bank

Registers

Bank select ($8000-$FFFF)

7  bit  0
---- ----
xxPP xxCC
  ||   ||
  ||   ++- Select 8 KB CHR ROM bank for PPU $0000-$1FFF
  ++------ Select 32 KB PRG ROM bank for CPU $8000-$FFFF

Bit 5 is not used on MHROM, which supports only 64 KB PRG.

Solder pad config

  • Horizontal mirroring : 'H' disconnected, 'V' connected.
  • Vertical mirroring : 'H' connected, 'V' disconnected.

Hardware

The GNROM board contains a 74HC161 binary counter used as a quad D latch (4-bit register) to select the current PRG and CHR banks. MHROM, on the other hand, was often a glop-top, as it was used for pack-in games, such as the Super Mario Bros./Duck Hunt multicart, and needed to be very inexpensive to produce in huge quantities.

Variants

Placing the bank register in $6000-$7FFF instead of $8000-$FFFF gives mapper 140. The Color Dreams board leaves the port at $8000-$FFFF, swaps the nibbles, expands CHR by two bits, and adds two bits for charge pump control.

Theoretically the bank select register could be implemented with a 74HC377 octal D latch, allowing up to 512 KB of PRG ROM and 128 KB of CHR ROM. There are a large number of other variants on GNROM, where the bits or the writeable address were moved around.

See also