INES Mapper 022: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
No edit summary |
m (refile, add cat:nescartdb, skip redirects, link up VRCs) |
||
Line 1: | Line 1: | ||
[[Category:iNES Mappers]] | [[Category:iNES Mappers|022]][[Category:in NesCartDB|022]] | ||
[[iNES Mapper 022]] is used to represent the VRC2a variant of the [[ | [[iNES Mapper 022]] is used to represent the VRC2a variant of the Konami [[VRC2]] mapper. | ||
Here are Disch's original notes: | Here are Disch's original notes: | ||
Line 11: | Line 11: | ||
aka | aka | ||
-------------------------- | -------------------------- | ||
VRC2 | [[VRC2]] | ||
Revision as of 23:28, 7 August 2012
iNES Mapper 022 is used to represent the VRC2a variant of the Konami VRC2 mapper.
Here are Disch's original notes: ======================== = Mapper 022 = = + 023 = ======================== aka -------------------------- VRC2 Example Games: -------------------------- Ganbare Pennant Race (022) TwinBee 3 (022) Wai Wai World (023) 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 VRC2b: A0, A1 $x000, $x001, $x002, $x003 023 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| +-------+-------+-------+-------+-------+-------+-------+-------+