4-in-1 multicart: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(Created page with "4-in-1 multicart thumb|4-in-1 menu thumb|4-in-1 top thumb|4-in-1 bottom File:4-in-1_schematic.png...")
 
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
4-in-1 multicart
4-in-1 multicart
[[File:4-in-1_menu.jpg|thumb|4-in-1 menu]] [[File:4-in-1_top.jpg|thumb|4-in-1 top]] [[File:4-in-1_bottom.jpg|thumb|4-in-1 bottom]] [[File:4-in-1_schematic.png|thumb|4-in-1 schematic]]
[[File:4-in-1 menu.png|thumb|4-in-1 menu]] [[File:4-in-1_top.jpg|thumb|4-in-1 top]] [[File:4-in-1_bottom.jpg|thumb|4-in-1 bottom]] [[File:4-in-1_schematic.png|thumb|4-in-1 schematic]]
This cartridge contains 4 CNROM games:
This cartridge contains 4 CNROM games:
*Puzzle
*Puzzle
Line 7: Line 7:
*PokeBlock
*PokeBlock


==CPU banks==
==Banks==
$8000-$ffff: 32 kB ROM bank (swapppable)
* CPU $8000-$ffff: 32 KiB switchable PRG ROM bank
 
* PPU $0000-$1fff: 8 KiB switchable CHR ROM bank
==PPU banks==
$0000-$1fff: 8 kB ROM bank (swappable)


==Mirroring==
==Mirroring==
Line 20: Line 18:


==Registers==
==Registers==
$8000-$ffff: PRG/CHR bank selection register
Mask: $8000
 
$8000: [..pP CCCC]
          || ||||
          || ++++- select 8kB CHR-ROM bank at $0000-$1fff
          ++------ select 32 kB PRG-ROM bank at $8000-$ffff
          +------- select mirroring (0=H, 1=V)


7      0
==Quirks==
--------
* Multicart register overlaps CNROM register and multicart register is not protected from writes after game is selected, so all games' bankswitching routines had to be patched
xxPPCCCC
* The register is not initialized on powerup or reset, so all games' reset vector had to be patched
  ||||||
* DIP28 1 Mibit mask roms are used both for PRG and CHR (pin 22, which is normally used as !OE in DIP28 EEPROMS is utilized as A16)
  ||++++- select 8kB CHR-ROM bank at $0000-$1fff
* This is basically identical to [[GxROM]] but one bit also determines nametable mirroring as well as PRG bank
  ++----- select 32 kB PRG-ROM bank at $8000-$ffff
  +------ select mirroring (0=H, 1=V)


==Quirks==:
[[Category:Mappers]]
* Multicart register overlaps CNROM register and multicart register is not protected from writes after game is selected, so all games CHR-bank switching rougines had to be patched.
* The register is not initialized on startup so reset vector of all games had to be patched
* DIP28 1 MB mask roms are used both for PRG and CHR (pin 22, which is normally used as !OE in DIP28 EEPROMS is utilized as A16)

Latest revision as of 03:46, 6 October 2022

4-in-1 multicart

4-in-1 menu
4-in-1 top
4-in-1 bottom
4-in-1 schematic

This cartridge contains 4 CNROM games:

  • Puzzle
  • F-15 City War
  • Volley Ball
  • PokeBlock

Banks

  • CPU $8000-$ffff: 32 KiB switchable PRG ROM bank
  • PPU $0000-$1fff: 8 KiB switchable CHR ROM bank

Mirroring

H/V (selected by software)

Subject to bus conflicts

Yes

Registers

Mask: $8000

$8000: [..pP CCCC]
          || ||||
          || ++++- select 8kB CHR-ROM bank at $0000-$1fff
          ++------ select 32 kB PRG-ROM bank at $8000-$ffff
          +------- select mirroring (0=H, 1=V)

Quirks

  • Multicart register overlaps CNROM register and multicart register is not protected from writes after game is selected, so all games' bankswitching routines had to be patched
  • The register is not initialized on powerup or reset, so all games' reset vector had to be patched
  • DIP28 1 Mibit mask roms are used both for PRG and CHR (pin 22, which is normally used as !OE in DIP28 EEPROMS is utilized as A16)
  • This is basically identical to GxROM but one bit also determines nametable mirroring as well as PRG bank