VRC7: Difference between revisions
From NESdev Wiki
Jump to navigationJump to search
(mapper number) |
(Undo revision 22101 by PizzerLover123 (talk) this really doesn't belong here) Tag: Undo |
||
(30 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:ASIC | [[Category:Mappers with CHR RAM]][[Category:Mappers with cycle IRQs]][[Category:NES 2.0 mappers with submappers]] | ||
The Konami VRC7 is an [[:Category:ASIC mappers|ASIC]] [[MMC|mapper]]. | {{Infobox_iNES_mapper | ||
|name=VRC7 | |||
|company=Konami | |||
|mapper=85 | |||
|nescartdbgames=2 | |||
|complexity=ASIC | |||
|boards=352402, 353429 | |||
|pinout=VRC7 pinout | |||
|prgmax=512K | |||
|prgpage=8Kx3 + 8K fixed | |||
|wrammax=8K | |||
|wrampage=8K fixed | |||
|chrmax=256K | |||
|chrpage=1Kx8 | |||
|mirroring=H, V, or 1, switchable | |||
|busconflicts=No | |||
|irq=Yes | |||
|audio=[[VRC7_audio|VRC7a only]] | |||
}} | |||
The '''Konami VRC7''' is an [[:Category:ASIC mappers|ASIC]] [[MMC|mapper]]. | |||
It is assigned to '''iNES Mapper 085'''. | |||
Example games: | |||
* ''Lagrange Point'' | |||
* ''Tiny Toon Adventures 2'' | |||
See [[VRC7 pinout]] for chip pinout. | |||
__TOC__ | __TOC__ | ||
== Banks == | |||
===CPU=== | |||
* $6000-$7FFF: 8 KB PRG-RAM bank, fixed | |||
* $8000-$9FFF: 8 KB switchable PRG-ROM bank | |||
* $A000-$BFFF: 8 KB switchable PRG-ROM bank | |||
* $C000-$DFFF: 8 KB switchable PRG-ROM bank | |||
* $E000-$FFFF: 8 KB PRG-ROM bank, fixed to the last bank | |||
== | ===PPU=== | ||
* | * $0000-$03FF: 1 KB switchable CHR-ROM bank | ||
* | * $0400-$07FF: 1 KB switchable CHR-ROM bank | ||
* | * $0800-$0BFF: 1 KB switchable CHR-ROM bank | ||
* $0C00-$0FFF: 1 KB switchable CHR-ROM bank | |||
* | * $1000-$13FF: 1 KB switchable CHR-ROM bank | ||
* | * $1400-$17FF: 1 KB switchable CHR-ROM bank | ||
* | * $1800-$1BFF: 1 KB switchable CHR-ROM bank | ||
* | * $1C00-$1FFF: 1 KB switchable CHR-ROM bank | ||
If CHR-RAM is used instead of CHR-ROM, the banking feature is still functional. | |||
== Registers == | == Registers == | ||
There are two board variations: | |||
* VRC7b uses A3 to select registers ($x008), used in ''Tiny Toon Adventures'' ('''Submapper 1'''). | |||
* VRC7a uses A4 to select registers ($x010), used in ''Lagrange Point'' ('''Submapper 2'''). | |||
Although A5 is wired for sound registers on both ($x028, $x030), in the former board the ceramic resonator necessary for the sound hardware to work is missing. | |||
=== PRG Select 0 ($8000) === | === PRG Select 0 ($8000) === | ||
Line 38: | Line 74: | ||
|| |||| | || |||| | ||
++-++++- Select 8 KB PRG ROM at $A000 | ++-++++- Select 8 KB PRG ROM at $A000 | ||
=== PRG Select 2 ($9000) === | === PRG Select 2 ($9000) === | ||
Line 48: | Line 83: | ||
++-++++- Select 8 KB PRG ROM at $C000 | ++-++++- Select 8 KB PRG ROM at $C000 | ||
=== CHR Select 0…7 ($A000…$DFFF) === | |||
=== CHR Select | {| class="wikitable" | ||
! Write to CPU address !! 1KB CHR bank affected | |||
|- | |||
| $A000 || $0000-$03FF | |||
|- | |||
| $A008 or $A010 || $0400-$07FF | |||
|- | |||
| $B000 || $0800-$0BFF | |||
|- | |||
| $B008 or $B010 || $0C00-$0FFF | |||
|- | |||
| $C000 || $1000-$13FF | |||
|- | |||
| $C008 or $C010 || $1400-$17FF | |||
|- | |||
| $D000 || $1800-$1BFF | |||
|- | |||
| $D008 or $D010 || $1C00-$1FFF | |||
|} | |||
=== Mirroring Control ($E000) === | === Mirroring Control ($E000) === | ||
Line 121: | Line 108: | ||
7 bit 0 | 7 bit 0 | ||
--------- | --------- | ||
RS.. ..MM | |||
|| || | |||
|| ++- [[Mirroring]] (0: vertical; 1: horizontal; | |||
|| 2: one-screen, lower bank; 3: one-screen, upper bank) | |||
|+-------- Silence expansion sound if set | |||
+--------- WRAM enable (1: enable WRAM, 0: protect) | |||
=== IRQ Control ($E008 - $F010) === | === IRQ Control ($E008 - $F010) === | ||
Line 135: | Line 123: | ||
</pre> | </pre> | ||
Many VRC mappers use the same IRQ system. For details on IRQ operation, see [[ | Many VRC mappers use the same IRQ system. For details on IRQ operation, see [[VRC IRQ]]s. | ||
== Sound ($9010, $9030) == | |||
For details on sound information, see [[VRC7 audio]]. | |||
== See also == | |||
*[http://nesdev.org/vrcvii.txt Konami VRC-VII Chip Info] by Kevin Horton. | |||
*[http://www.romhacking.net/documents/362/ NES Mapper List] by Disch | |||
*[https://forums.nesdev.org/viewtopic.php?f=3&t=17573#p223145 Submapper test ROMs] | |||
*[https://siliconpr0n.org/archive/doku.php?id=digshadow:konami:vrc_vii_053982 siliconpr0n VRC7 decapsulation photographs] |
Latest revision as of 11:36, 6 October 2024
VRC7
Company | Konami |
Games | 2 in NesCartDB |
Complexity | ASIC |
Boards | 352402, 353429 |
Pinout | VRC7 pinout |
PRG ROM capacity | 512K |
PRG ROM window | 8Kx3 + 8K fixed |
PRG RAM capacity | 8K |
PRG RAM window | 8K fixed |
CHR capacity | 256K |
CHR window | 1Kx8 |
Nametable mirroring | H, V, or 1, switchable |
Bus conflicts | No |
IRQ | Yes |
Audio | VRC7a only |
iNES mappers | 085 |
The Konami VRC7 is an ASIC mapper. It is assigned to iNES Mapper 085.
Example games:
- Lagrange Point
- Tiny Toon Adventures 2
See VRC7 pinout for chip pinout.
Banks
CPU
- $6000-$7FFF: 8 KB PRG-RAM bank, fixed
- $8000-$9FFF: 8 KB switchable PRG-ROM bank
- $A000-$BFFF: 8 KB switchable PRG-ROM bank
- $C000-$DFFF: 8 KB switchable PRG-ROM bank
- $E000-$FFFF: 8 KB PRG-ROM bank, fixed to the last bank
PPU
- $0000-$03FF: 1 KB switchable CHR-ROM bank
- $0400-$07FF: 1 KB switchable CHR-ROM bank
- $0800-$0BFF: 1 KB switchable CHR-ROM bank
- $0C00-$0FFF: 1 KB switchable CHR-ROM bank
- $1000-$13FF: 1 KB switchable CHR-ROM bank
- $1400-$17FF: 1 KB switchable CHR-ROM bank
- $1800-$1BFF: 1 KB switchable CHR-ROM bank
- $1C00-$1FFF: 1 KB switchable CHR-ROM bank
If CHR-RAM is used instead of CHR-ROM, the banking feature is still functional.
Registers
There are two board variations:
- VRC7b uses A3 to select registers ($x008), used in Tiny Toon Adventures (Submapper 1).
- VRC7a uses A4 to select registers ($x010), used in Lagrange Point (Submapper 2).
Although A5 is wired for sound registers on both ($x028, $x030), in the former board the ceramic resonator necessary for the sound hardware to work is missing.
PRG Select 0 ($8000)
7 bit 0 --------- ..PP PPPP || |||| ++-++++- Select 8 KB PRG ROM at $8000
PRG Select 1 ($8010, $8008)
7 bit 0 --------- ..PP PPPP || |||| ++-++++- Select 8 KB PRG ROM at $A000
PRG Select 2 ($9000)
7 bit 0 --------- ..PP PPPP || |||| ++-++++- Select 8 KB PRG ROM at $C000
CHR Select 0…7 ($A000…$DFFF)
Write to CPU address | 1KB CHR bank affected |
---|---|
$A000 | $0000-$03FF |
$A008 or $A010 | $0400-$07FF |
$B000 | $0800-$0BFF |
$B008 or $B010 | $0C00-$0FFF |
$C000 | $1000-$13FF |
$C008 or $C010 | $1400-$17FF |
$D000 | $1800-$1BFF |
$D008 or $D010 | $1C00-$1FFF |
Mirroring Control ($E000)
7 bit 0 --------- RS.. ..MM || || || ++- Mirroring (0: vertical; 1: horizontal; || 2: one-screen, lower bank; 3: one-screen, upper bank) |+-------- Silence expansion sound if set +--------- WRAM enable (1: enable WRAM, 0: protect)
IRQ Control ($E008 - $F010)
$E008, $E010: IRQ Latch $F000: IRQ Control $F008, $F010: IRQ Acknowledge
Many VRC mappers use the same IRQ system. For details on IRQ operation, see VRC IRQs.
Sound ($9010, $9030)
For details on sound information, see VRC7 audio.
See also
- Konami VRC-VII Chip Info by Kevin Horton.
- NES Mapper List by Disch
- Submapper test ROMs
- siliconpr0n VRC7 decapsulation photographs