INES Mapper 022
From NESdev Wiki
Jump to navigationJump to search
iNES Mapper 022 is used to represent the VRC2a variant of the Konami VRC2 mapper (PCB 351618).
Here are Disch's original notes: ======================== = Mapper 022 = = + 023 = = + 025 = ======================== aka -------------------------- VRC2 Example Games: -------------------------- Ganbare Pennant Race (022) TwinBee 3 (022) Wai Wai World (023) Ganbare Goemon Gaiden (025) Multiple numbers, just one mapper: -------------------------- These mapper numbers (022, 023) represent 2 wiring variations of the same mapper: VRC2. Each variation operates the same, only the registers used are different because their lines are reversed from each other: variant lines registers Mapper Number ================================================================= VRC2a: A1, A0 $x000, $x002, $x001, $x003 022 * divides CHR bank select by two VRC2b: A0, A1 $x000, $x001, $x002, $x003 023 VRC2c: A1, A0 $x000, $x002, $x001, $x003 025 * does NOT divide CHR bank select by two This doc will use the 'VRC2b' registers (0,1,2,3) in all following register descriptions. For 'VRC2a', simply reverse $x001 and $x002 registers. VRC2a CHR: --------------------------- Important note! On VRC2a (mapper 022) only the high 7 bits of the CHR regs are used -- the low bit is ignored. Therefore, you effectively have to right-shift the CHR page by 1 to get the actual page number. For example... both $06 and $07 would both indicate page $03 This applies to VRC2a only. VRC2b (mapper 023) behaves normally. VRC2 vs. VRC4: -------------------------- VRC2 is strikingly similar to VRC4 (see mapper 021). The differences are: 1) VRC4 has IRQs, VRC2 does not 2) VRC4 has 5 bits for PRG regs, VRC2 only has 4 bits 3) VRC4 has 2 PRG modes, VRC2 does not. Those differences aside -- they act exactly the same. Registers: -------------------------- Some registers are mirrored across several addresses. For example, writing to $8003 has the same effect as writing to $8000. $8000-$8003: [.... PPPP] PRG Reg 0 (select 8k @ $8000) $9000-$9003: [.... ..MM] Mirroring: %00 = Vert %01 = Horz %10 = 1ScA %11 = 1ScB $A000-$A003: [.... PPPP] PRG Reg 1 (select 8k @ $A000) $B000-$E003: [.... CCCC] CHR Regs (see CHR Setup) PRG Setup: -------------------------- $8000 $A000 $C000 $E000 +-------+-------+-------+-------+ | $8000 | $A000 | { -2} | { -1} | +-------+-------+-------+-------+ CHR Setup: -------------------------- The VRC2 only has 4 data pins for CHR Regs. To compensate, two CHR regs are combined to form a single page number. One reg contains the high 4 bits and the other reg contains the low 4 bits (allowing for 8-bit page numbers) Example: $B000+$B001 select 1k CHR page @ $0000 if $B000=$03 and $B001=$01 then use page $13 (VRC2b) or page $09 (VRC2a -- see notes above) $0000 $0400 $0800 $0C00 $1000 $1400 $1800 $1C00 +-------+-------+-------+-------+-------+-------+-------+-------+ |$B000+1|$B002+3|$C000+1|$C002+3|$D000+1|$D002+3|$E000+1|$E002+3| +-------+-------+-------+-------+-------+-------+-------+-------+