INES Mapper 022: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
m (1 revision: iNes mappers temporary list) |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:iNES Mappers]] | |||
[[iNES Mapper 022]] is used to represent the VRC2a variant of the [[Konami VRC2]] mapper. | [[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| | |||
+-------+-------+-------+-------+-------+-------+-------+-------+ |
Revision as of 23:11, 13 November 2011
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| +-------+-------+-------+-------+-------+-------+-------+-------+