VTxx: Difference between revisions

From NESdev Wiki
Jump to navigationJump to search
mNo edit summary
 
(6 intermediate revisions by the same user not shown)
Line 3: Line 3:
* [[VT01 STN Palette]]
* [[VT01 STN Palette]]
* [[VT02+ PRG-ROM Bankswitching]]
* [[VT02+ PRG-ROM Bankswitching]]
* [[VT02+ CHR-ROM Layout]]
* [[VT02+ Video Modes]]
* [[VT02+ CHR Pattern Data Layout]]
* [[VT02+ CHR-ROM Bankswitching]]
* [[VT02+ CHR-ROM Bankswitching]]
* [[VT02+ MMC3 Compatibility Registers]]
* [[VT02+ MMC3 Compatibility Registers]]
Line 11: Line 12:
* [[VT02+ Cartridge Connector]]
* [[VT02+ Cartridge Connector]]


VTxx-numbered Famiclones, with two digits after "VT", are backwards-compatible to lower-numbered models as well as the original NES/Famicom, with a few exceptions. VTxxx-numbered consoles, with three digits after "VT", drop compatibility to the original NES/Famicom.
The progression of features as well as backwards-compatibility is contiguous until the VT09. The VT32 and VT369 are the lower- and higher-end enhancements to the VT09, are not compatible with each other, but are backwards-compatible to the VT09 except in the format of the enhanced palette and the absence of the second APU.
 
V.R.T.'s website has datasheets for VT16- and VT18 chips that are merely VT09s with additional LCD controllers.
 
The VT1682 and VT268 are not NES-compatible, even as their designs are inspired by it.


= Memory Map =
= Memory Map =
== CPU Memory Map ==
== (Main) CPU Memory Map ==
  CPU $0000-$07FF: 2 KiB of internal RAM
  CPU $0000-$07FF: 2 KiB of internal RAM
  CPU $0800-$0FFF: VT16+: VT01-VT03: Mirror of CPU $0000-$07FF, VT16+: Further 2 KiB of internal RAM
  CPU $0800-$0FFF: VT01-VT03: Mirror of CPU $0000-$07FF, VT09+: Further 2 KiB of internal RAM
  CPU $1000-$1FFF: Mirror of CPU $0000-$0FFF
  CPU $1000-$1FFF: VT01-VT32: Mirror of CPU $0000-$0FFF, VT369: Embedded 4 KiB ROM
  CPU $2000-$2007: RP2C02-compatible PPU registers
  CPU $2000-$2007: RP2C02-compatible PPU registers
  CPU $2010-$201F: VT02+: New PPU registers
  CPU $2010-$201F: VT02+: New PPU registers
CPU $2020-$207F: VT369: Newer PPU registers
CPU $3000-$3FFF: VT369: Mirror of PPU $2000-$2FFF, allowing direct nametable access
  CPU $4000-$401F: RP2A03-compatible APU, DMA and I/O registers
  CPU $4000-$401F: RP2A03-compatible APU, DMA and I/O registers
  CPU $4020-$403F: VT02+: New APU, DMA and I/O registers
  CPU $4020-$403F: VT02+: New APU, DMA and I/O registers
  CPU $4100-$41FF: VT02+: New miscellaneous registers
  CPU $4100-$41FF: VT02+: New miscellaneous registers
  CPU $6000-$7FFF: Optional WRAM, if present on cartridge
CPU $4800-$4FFF: VT369: 2 KiB of RAM shared with sound CPU
  CPU $8000-$FFFF (write): VT02+: When forwarding is enabled (register $410B bit 3 "FWEN" =0): MMC3-compatible registers that are forwarded to $4101-$4108)
CPU $5000-$53FF: VT369: Mirror of PPU $3C00-$3FFF, allowing direct palette access
  CPU $6000-$7FFF: Optional WRAM, if present on cartridge, VT369: Optional ROM bank
  CPU $8000-$FFFF (write): VT02+: When forwarding is enabled (register $410B bit 3 "FWEN" =0):
                          MMC3-compatible registers that are forwarded to $4101-$4108)
  CPU $8000-$FFFF (read): [[VT02+ PRG-ROM Bankswitching|Four 8 KiB PRG-ROM banks]].
  CPU $8000-$FFFF (read): [[VT02+ PRG-ROM Bankswitching|Four 8 KiB PRG-ROM banks]].
== Sound CPU Memory Map (VT369) ==
CPU $0000-$07FF: 2 KiB of scratch RAM
CPU $1800-$1FFF: 2 KiB of RAM shared with main CPU
CPU $2000-$2FFF: Sound registers
CPU $4000-$4FFF: Embedded 4 KiB ROM


== PPU Memory Map ==
== PPU Memory Map ==
  PPU $0000-$1FFF: CHR-ROM, all modes: CHR pattern data, bit planes 0 and 1
  PPU $0000-$1FFF: CHR-ROM, all modes: CHR pattern data, bit planes 0 and 1
  PPU $2000-$2FFF: NTRAM (2 KiB, selectable mirroring)
  PPU $2000-$2FFF: NTRAM (2 KiB, selectable mirroring)
PPU $3C00-$3EFF: VT369: CGRAM in 8bpp modes
  PPU $3F00-$3F1F: CGRAM in 2bpp modes, entries $3F10/$3F14/$3F18/$3F01 mirrors of $3F00/$3F04/$3F08/$3F0C.
  PPU $3F00-$3F1F: CGRAM in 2bpp modes, entries $3F10/$3F14/$3F18/$3F01 mirrors of $3F00/$3F04/$3F08/$3F0C.
                   VT03+: Also CGRAM in 4bpp modes, bits 0 to 5, of colors 00-1F; same mirroring of address bit 4 applies.
                   VT03+: Also CGRAM in 4bpp modes, bits 0 to 5, of colors 00-1F; same mirroring of address bit 4 applies.
Line 62: Line 79:
* Enhanced color palette with twelve bits rather than six bits per color.
* Enhanced color palette with twelve bits rather than six bits per color.


==VT09, VT16, VT18==
==VT09==
The VT16 is the first of the NES-compatible Famiclones after the VT03 for which a datasheet is publicly available. It is likely however that many of its enhancements were already included in the VT09 console.
Low-cost replacement for VT03.
* Internal CPU RAM is 4 KiB rather than just 2 KiB.
* Internal CPU RAM is 4 KiB rather than just 2 KiB, removing the need for additional WRAM for many applications.
* The CPU can be set to run at the same speed (5.37 MHz) as the PPU.
* 4 bpp pattern data can be arranged in an alternative pattern that allows a single 16-bit fetch to retrieve two planes' data, allowing the use of slower ROM chips.
* The CPU can be set to retrieve interrupt vectors from RAM ($0FFx) rather than ROM ($FFFx).
 
* DMA-driven DPCM/PCM output can be set to use its own banking registers independent of normal PRG banking.
==VT32==
* Hardware random number generator.
Current revision of the VT09.
* Hardware multiplier and divider.
* Enhanced palette format changed from the VT03's saturation-luminance-hue-based to a simpler 12-bit (4-4-4) RGB format.
* New two-channel (AD)PCM engine, allowing playback independently of normal PRG banking.
* Second APU is removed.
 
==VT369==
Final enhancement of the VT09.
* Hardware multiplier and divider.
* 5.37 MHz CPU mode.
* 8 bits-per-plane video modes.
* High-resolution (512x480) video mode.
* 30 fps video mode for slow ROM chips.
* 16x 8-bits-per-plane 16x16 sprites per scanline.
* Enhanced palette format changed from the VT03's saturation-luminance-hue-based to a simpler 15-bit (5-5-5) RGB format.
* Additional sound CPU for arbitrarily-encoded multi-channel (AD)PCM playback.
* Second APU is removed.
* Additional ''additive'' outer bank register called "relative bank" that applies to all CPU/PPU ROM accesses.


=References=
=References=
* [http://www.vrt.com.tw/datasheet.htm Publicly-available datasheets] on V.R. Technology's webiste
* [http://www.vrt.com.tw/datasheet.htm Publicly-available datasheets] on V.R. Technology's website

Latest revision as of 20:34, 9 March 2022

VTxx refers to V.R. Technology's "NES-on-a-chip" Famiclones, some of which having greatly extended capabilities. These capabilities are described in separate articles:

The progression of features as well as backwards-compatibility is contiguous until the VT09. The VT32 and VT369 are the lower- and higher-end enhancements to the VT09, are not compatible with each other, but are backwards-compatible to the VT09 except in the format of the enhanced palette and the absence of the second APU.

V.R.T.'s website has datasheets for VT16- and VT18 chips that are merely VT09s with additional LCD controllers.

The VT1682 and VT268 are not NES-compatible, even as their designs are inspired by it.

Memory Map

(Main) CPU Memory Map

CPU $0000-$07FF: 2 KiB of internal RAM
CPU $0800-$0FFF: VT01-VT03: Mirror of CPU $0000-$07FF, VT09+: Further 2 KiB of internal RAM
CPU $1000-$1FFF: VT01-VT32: Mirror of CPU $0000-$0FFF, VT369: Embedded 4 KiB ROM
CPU $2000-$2007: RP2C02-compatible PPU registers
CPU $2010-$201F: VT02+: New PPU registers
CPU $2020-$207F: VT369: Newer PPU registers
CPU $3000-$3FFF: VT369: Mirror of PPU $2000-$2FFF, allowing direct nametable access
CPU $4000-$401F: RP2A03-compatible APU, DMA and I/O registers
CPU $4020-$403F: VT02+: New APU, DMA and I/O registers
CPU $4100-$41FF: VT02+: New miscellaneous registers
CPU $4800-$4FFF: VT369: 2 KiB of RAM shared with sound CPU
CPU $5000-$53FF: VT369: Mirror of PPU $3C00-$3FFF, allowing direct palette access
CPU $6000-$7FFF: Optional WRAM, if present on cartridge, VT369: Optional ROM bank
CPU $8000-$FFFF (write): VT02+: When forwarding is enabled (register $410B bit 3 "FWEN" =0):
                         MMC3-compatible registers that are forwarded to $4101-$4108)
CPU $8000-$FFFF (read): Four 8 KiB PRG-ROM banks.

Sound CPU Memory Map (VT369)

CPU $0000-$07FF: 2 KiB of scratch RAM
CPU $1800-$1FFF: 2 KiB of RAM shared with main CPU
CPU $2000-$2FFF: Sound registers
CPU $4000-$4FFF: Embedded 4 KiB ROM

PPU Memory Map

PPU $0000-$1FFF: CHR-ROM, all modes: CHR pattern data, bit planes 0 and 1
PPU $2000-$2FFF: NTRAM (2 KiB, selectable mirroring)
PPU $3C00-$3EFF: VT369: CGRAM in 8bpp modes
PPU $3F00-$3F1F: CGRAM in 2bpp modes, entries $3F10/$3F14/$3F18/$3F01 mirrors of $3F00/$3F04/$3F08/$3F0C.
                 VT03+: Also CGRAM in 4bpp modes, bits 0 to 5, of colors 00-1F; same mirroring of address bit 4 applies.
PPU $3F20-$3F7F: VT03+: CGRAM in 4bpp modes, bits 0 to 5, of colors 20-7F; no mirroring of address bit 4.
PPU $3F80-$3FFF: VT03+: CGRAM in 4bpp modes, bits 6 to 11, of colors 00-7F; no mirroring of address bit 4.
PPU $4000-$5FFF: CHR-ROM, 4bpp modes: CHR pattern data, bit planes 2 and 3 (VT03+)

List of VTxx consoles

VT01

The VT01 is V.R. Technology's first Famiclone. Its only enhancement is the ability to drive an STN display directly using a modified palette.

VT02

The first of the V.R. Technology Famiclones to add major enhancements:

  • OneBus mode: PRG and CHR data come from the same address space. The cartridge connector's PPU Address lines are repurposed as higher-order Address lines.
  • Integrated MMC3-compatible bankswitching by the console, active when in OneBus mode.
  • Ability to use NTRAM as CHR-RAM.
  • Choice of PPU A12 and HBLANK as a source for clocking the scanline interrupt.
  • Automatic X/Y light gun position determination.
  • Integrated RS232 interface.
  • Direct NTSC/PAL and 50/60 Hz identification.
  • Automatic per-attribute-tile background and per-sprite sprite bankswitching.
  • DMA can be used to transfer data to PPU memory (via $2007) in addition to the normal transferring of data to OAM memory (via $2004).
  • A second APU doubling the number of sound channels.
  • Raw PCM output using full eight bits of resolution.
  • DMA-driven raw PCM output.
  • Data for DMA-driven DPCM/PCM output can be placed anywhere in CPU address space, not just within the $C000-$FFFF range.

VT03

The VT03 greatly enhances the graphical capabilities of the original RP2C02:

  • Sprites can be 16 pixels wide.
  • Graphics can use four bits-per-pixel, so that together with two attribute data bits, sixty-four rather than 16 colors each for background and sprites may be chosen.
  • Enhanced color palette with twelve bits rather than six bits per color.

VT09

Low-cost replacement for VT03.

  • Internal CPU RAM is 4 KiB rather than just 2 KiB, removing the need for additional WRAM for many applications.
  • 4 bpp pattern data can be arranged in an alternative pattern that allows a single 16-bit fetch to retrieve two planes' data, allowing the use of slower ROM chips.

VT32

Current revision of the VT09.

  • Hardware multiplier and divider.
  • Enhanced palette format changed from the VT03's saturation-luminance-hue-based to a simpler 12-bit (4-4-4) RGB format.
  • New two-channel (AD)PCM engine, allowing playback independently of normal PRG banking.
  • Second APU is removed.

VT369

Final enhancement of the VT09.

  • Hardware multiplier and divider.
  • 5.37 MHz CPU mode.
  • 8 bits-per-plane video modes.
  • High-resolution (512x480) video mode.
  • 30 fps video mode for slow ROM chips.
  • 16x 8-bits-per-plane 16x16 sprites per scanline.
  • Enhanced palette format changed from the VT03's saturation-luminance-hue-based to a simpler 15-bit (5-5-5) RGB format.
  • Additional sound CPU for arbitrarily-encoded multi-channel (AD)PCM playback.
  • Second APU is removed.
  • Additional additive outer bank register called "relative bank" that applies to all CPU/PPU ROM accesses.

References