4-in-1 multicart: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
Krzysiobal (talk | contribs) mNo edit summary |
(spellcheck, reformat) |
||
Line 7: | Line 7: | ||
*PokeBlock | *PokeBlock | ||
== | ==Banks== | ||
$8000-$ffff: 32 | * CPU $8000-$ffff: 32 KiB switchable PRG ROM bank | ||
* PPU $0000-$1fff: 8 KiB switchable CHR ROM bank | |||
$0000-$1fff: 8 | |||
==Mirroring== | ==Mirroring== | ||
Line 20: | Line 18: | ||
==Registers== | ==Registers== | ||
$8000 | 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== | ==Quirks== | ||
* Multicart register overlaps CNROM register and multicart register is not protected from writes after game is selected, so all games | * 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 | * The register is not initialized on powerup or reset, so all games' reset vector had to be patched | ||
* DIP28 1 | * 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 |
Revision as of 17:36, 13 August 2017
4-in-1 multicart
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