INES Mapper 022: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
m (add PCB associated with variant) |
m (explicitly point out mapper 25 too) |
||
Line 7: | Line 7: | ||
= Mapper 022 = | = Mapper 022 = | ||
= + 023 = | = + 023 = | ||
= + 025 = | |||
======================== | ======================== | ||
Line 20: | Line 21: | ||
TwinBee 3 (022) | TwinBee 3 (022) | ||
Wai Wai World (023) | Wai Wai World (023) | ||
Ganbare Goemon Gaiden (025) | |||
Line 31: | Line 33: | ||
variant lines registers Mapper Number | variant lines registers Mapper Number | ||
================================================================= | ================================================================= | ||
VRC2a: A1, A0 $x000, $x002, $x001, $x003 022 | VRC2a: A1, A0 $x000, $x002, $x001, $x003 022 * divides CHR bank select by two | ||
VRC2b: A0, A1 $x000, $x001, $x002, $x003 023 | 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', | This doc will use the 'VRC2b' registers (0,1,2,3) in all following register descriptions. For 'VRC2a', |
Revision as of 20:22, 7 December 2012
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| +-------+-------+-------+-------+-------+-------+-------+-------+