VRC1: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
(→‎Overview: 16 8 KB banks implies a limit of 128 KB)
(move Disch's notes from iNES Mapper 075; add cat:nescartdb)
Line 1: Line 1:
[[Category:ASIC mappers]]
[[Category:ASIC mappers]][[Category:in NesCartDB]]
The Konami VRC1 is an [[:Category:ASIC mappers|ASIC]] [[MMC|mapper]].
The Konami VRC1 is an [[:Category:ASIC mappers|ASIC]] [[MMC|mapper]]. The [[iNES]] format assigns [[iNES Mapper 075]] to VRC1.




Line 73: Line 73:


These bits combined with bit 2 of $9000 make a 5-bit CHR selection.
These bits combined with bit 2 of $9000 make a 5-bit CHR selection.
== Disch's Notes ==
  Here are Disch's original notes: 
  ========================
  =  Mapper 075          =
  ========================
 
 
  aka:
  --------------------------
  VRC1
 
 
  Example Games:
  --------------------------
  Tetsuwan Atom
  Ganbare Goemon! - Karakuri Douchuu
 
 
 
  Registers:
  --------------------------
 
  Range,Mask:  $8000-FFFF, $F000
 
    $8000:  [.... PPPP]  PRG Reg 0 (8k @ $8000)
    $A000:  [.... PPPP]  PRG Reg 1 (8k @ $A000)
    $C000:  [.... PPPP]  PRG Reg 2 (8k @ $C000)
 
    $9000:  [.... .BAM]  Mirroring, CHR reg high bits
      M = Mirroring (0=Vert, 1=Horz)
      A = High bit of CHR Reg 0
      B = High bit of CHR Reg 1
 
    $E000:  [.... CCCC]  Low 4 bits of CHR Reg 0 (4k @ $0000)
    $F000:  [.... CCCC]  Low 4 bits of CHR Reg 1 (4k @ $1000)
 
 
  PRG Setup:
  ---------------------------
        $8000  $A000  $C000  $E000 
      +-------+-------+-------+-------+
      | $8000 | $A000 | $C000 | { -1} |
      +-------+-------+-------+-------+
 
 
  CHR Setup:
  ---------------------------
 
    CHR regs are 5 bits wide.  The low 4 bits of each reg are set by $E000 and $F000, and the high bit is taken
  from the appropriate bits of $9000.
 
        $0000  $0400  $0800  $0C00  $1000  $1400  $1800  $1C00
      +-------------------------------+-------------------------------+
      |      $9000.1 + $E000        |      $9000.2 + $F000        |
      +-------------------------------+-------------------------------+

Revision as of 07:33, 10 September 2012

The Konami VRC1 is an ASIC mapper. The iNES format assigns iNES Mapper 075 to VRC1.



Overview

  • PRG ROM size: Up to 128 KB
  • PRG ROM bank size: 8 KB at $8000, $A000, and $C000
  • PRG RAM: None
  • CHR bank size: 4 KB
  • Nametable mirroring: Controlled by mapper
  • Subject to bus conflicts: No

Registers

PRG Select 0 ($8000-$8FFF)

7  bit  0
---------
.... PPPP
     ||||
     ++++- Select 8 KB PRG ROM at $8000

PRG Select 1 ($A000-$AFFF)

7  bit  0
---------
.... PPPP
     ||||
     ++++- Select 8 KB PRG ROM at $A000


PRG Select 2 ($C000-$CFFF)

7  bit  0
---------
.... PPPP
     ||||
     ++++- Select 8 KB PRG ROM at $C000


Mirroring Control, CHR bits ($9000-$9FFF)

7  bit  0
---------
.... .BAM
      |||
      ||+- Mirroring  (0: Vertical; 1: Horizontal)
      |+-- High Bit of 4 KB CHR bank at PPU $0000
      +--- High Bit of 4 KB CHR bank at PPU $1000


CHR Select 0 ($E000-$EFFF)

7  bit  0
---------
.... CCCC
     ||||
     ++++- Low 4 bits of 4 KB CHR bank at PPU $0000

These bits combined with bit 1 of $9000 make a 5-bit CHR selection.


CHR Select 1 ($F000-$FFFF)

7  bit  0
---------
.... CCCC
     ||||
     ++++- Low 4 bits of 4 KB CHR bank at PPU $1000

These bits combined with bit 2 of $9000 make a 5-bit CHR selection.

Disch's Notes

 Here are Disch's original notes:  
 ========================
 =  Mapper 075          =
 ========================
 
 
 aka:
 --------------------------
 VRC1
 
 
 Example Games:
 --------------------------
 Tetsuwan Atom
 Ganbare Goemon! - Karakuri Douchuu
 
 
 
 Registers:
 --------------------------
 
 Range,Mask:   $8000-FFFF, $F000
 
   $8000:  [.... PPPP]   PRG Reg 0 (8k @ $8000)
   $A000:  [.... PPPP]   PRG Reg 1 (8k @ $A000)
   $C000:  [.... PPPP]   PRG Reg 2 (8k @ $C000)
 
   $9000:  [.... .BAM]   Mirroring, CHR reg high bits
      M = Mirroring (0=Vert, 1=Horz)
      A = High bit of CHR Reg 0
      B = High bit of CHR Reg 1
 
   $E000:  [.... CCCC]   Low 4 bits of CHR Reg 0 (4k @ $0000)
   $F000:  [.... CCCC]   Low 4 bits of CHR Reg 1 (4k @ $1000)
 
 
 PRG Setup:
 ---------------------------
       $8000   $A000   $C000   $E000  
     +-------+-------+-------+-------+
     | $8000 | $A000 | $C000 | { -1} |
     +-------+-------+-------+-------+
 
 
 CHR Setup:
 ---------------------------
 
   CHR regs are 5 bits wide.  The low 4 bits of each reg are set by $E000 and $F000, and the high bit is taken
 from the appropriate bits of $9000.
 
       $0000   $0400   $0800   $0C00   $1000   $1400   $1800   $1C00 
     +-------------------------------+-------------------------------+
     |       $9000.1 + $E000         |       $9000.2 + $F000         |
     +-------------------------------+-------------------------------+