VRC7: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
mNo edit summary
(Undo revision 22101 by PizzerLover123 (talk) this really doesn't belong here)
Tag: Undo
 
(34 intermediate revisions by 11 users not shown)
Line 1: Line 1:
[[Category:ASIC mappers]]
[[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


== Overview ==
===PPU===
* Manufacturer: Konami
* $0000-$03FF: 1 KB switchable CHR-ROM bank
* PRG ROM size: Up to 512 KB
* $0400-$07FF: 1 KB switchable CHR-ROM bank
* PRG ROM bank size: 8 KB at $8000, $A000, and $C000
* $0800-$0BFF: 1 KB switchable CHR-ROM bank
* PRG RAM: Up to 8 KB
* $0C00-$0FFF: 1 KB switchable CHR-ROM bank
* CHR bank size: 1 KB - swappable even when RAM instead of ROM
* $1000-$13FF: 1 KB switchable CHR-ROM bank
* Nametable [[mirroring]]: Controlled by mapper
* $1400-$17FF: 1 KB switchable CHR-ROM bank
* Subject to [[bus conflict]]s: No
* $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 ==


One variant of the VRC7 uses A4 for registers ($x010), another uses A3 ($x008). Additionally, A5 is used on the first mentioned variant only for sound registers ($x030)
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 23: Line 62:
  7  bit  0
  7  bit  0
  ---------
  ---------
  PPPP PPPP
  ..PP PPPP
|||| ||||
  || ||||
++++-++++- Select 8 KB PRG ROM at $8000
  ++-++++- Select 8 KB PRG ROM at $8000




Line 32: Line 71:
  7  bit  0
  7  bit  0
  ---------
  ---------
  PPPP PPPP
  ..PP PPPP
|||| ||||
  || ||||
++++-++++- Select 8 KB PRG ROM at $A000
  ++-++++- Select 8 KB PRG ROM at $A000
 


=== PRG Select 2 ($9000) ===
=== PRG Select 2 ($9000) ===
Line 41: Line 79:
  7  bit  0
  7  bit  0
  ---------
  ---------
  PPPP PPPP
  ..PP PPPP
|||| ||||
  || ||||
++++-++++- Select 8 KB PRG ROM at $C000
  ++-++++- Select 8 KB PRG ROM at $C000
 
 
=== CHR Select 0 ($A000) ===
 
7  bit  0
---------
CCCC CCCC
|||| ||||
++++-++++- Select 1 KB CHR ROM/RAM at PPU $0000
 
 
=== CHR Select 1 ($A010, $A008) ===
 
7  bit  0
---------
CCCC CCCC
|||| ||||
++++-++++- Select 1 KB CHR ROM/RAM at PPU $0400
 
=== CHR Select 2 ($B000) ===
 
7  bit  0
---------
CCCC CCCC
|||| ||||
++++-++++- Select 1 KB CHR ROM/RAM at PPU $0800
 
=== CHR Select 3 ($B010, $B008) ===
 
7  bit  0
---------
CCCC CCCC
|||| ||||
++++-++++- Select 1 KB CHR ROM/RAM at PPU $0C00
 
 
=== CHR Select 4 ($C000) ===
 
7  bit  0
---------
CCCC CCCC
|||| ||||
++++-++++- Select 1 KB CHR ROM/RAM at PPU $1000
 
 
=== CHR Select 5 ($C010, $C008) ===
 
7  bit  0
---------
CCCC CCCC
|||| ||||
++++-++++- Select 1 KB CHR ROM/RAM at PPU $1400
 
=== CHR Select 6 ($D000) ===
 
7  bit  0
---------
CCCC CCCC
|||| ||||
++++-++++- Select 1 KB CHR ROM/RAM at PPU $1800
 
=== CHR Select 7 ($D010, $D008) ===
 
7  bit  0
---------
CCCC CCCC
|||| ||||
++++-++++- Select 1 KB CHR ROM/RAM at PPU $1C00


=== CHR Select 0…7 ($A000…$DFFF) ===
{| 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 118: Line 108:
  7  bit  0
  7  bit  0
  ---------
  ---------
  .... ..MM
  RS.. ..MM
        ||
||    ||
        ++- [[Mirroring]] (0: vertical; 1: horizontal;
||    ++- [[Mirroring]] (0: vertical; 1: horizontal;
                          2: one-screen, lower bank; 3: one-screen, upper bank;)
||                        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 132: Line 123:
</pre>
</pre>


Many VRC mappers use the same IRQ system.  For details on IRQ operation, see [[VRC_irq|VRC IRQs]].
Many VRC mappers use the same IRQ system.  For details on IRQ operation, see [[VRC IRQ]]s.
 
== Sound ($9010, $9030) ==


=== Sound ($9010, $9030) ===
For details on sound information, see [[VRC7 audio]].


For details on sound information, see [[VRC7_audio|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