Yamaha V9990
This page was last modified 01:57, 28 October 2017 by Grauw. Based on work by Tvalenca and Gradius2 and others.
Yamaha V9990

The Yamaha V9990 is the successor to the V9958 and supposedly a stripped down version of the never finished Yamaha V9978 (for MSX3). The V9978 supposedly would have backward software compatibility with the V9958, and there are some never confirmed rumours about other features of the V9978 like 16-bit databus and DMA support.

The V9990 is confirmed to have DMA support (as discretely stated on page 5 of the application manual), but this feature is yet to be tested.

The V9990 is used in the Sunrise GFX9000, Video9000 and Tecnobytes V9990 Powergraph cartridges.

No MSX computer has been released with this VDP built-in. The different cartridges with this VDP can be used with MSX1, MSX2, MSX2+ and MSX Turbo R computers without any compromise, but for running the V9990-enabled BASIC interpreter it's recommended to use MSX Turbo R machines.



  • VRAM: 512kB VRAM
  • Text modes: Does not implement text-only modes, but can implement 32 x 26 and 64 x 26 characters text modes using P-modes or variable length fonts from VRAM/CGROM on B-modes.
  • Resolution: Please refer to the supported resolutions section.
  • Colors: Please refer to the supported color modes section.
  • Sprites: Please refer to the hardware sprites / cursor section.
  • Hardware acceleration for copy, line, etc. (~20x faster than V9938/58).
  • Overscan modes (B2, B4) for borderless images.
  • External font (Kanji ROM) support with hardware acceleration.
  • Superimposition and digitization capabilities.
  • Omnidirectional smooth hardware scrolling capabilities.
  • Improved CPU interface.
    • Interrupt generation on vertical retrace, display position and command execution end.
    • Wait state generation on busy access.
    • Direct VRAM access.

Supported resolutions

Mode Resolution Colors (bpp) Sprites Scan rate Remark
P1 256×212 (256×424) 4 125x 16×16 16c 15.7 kHz 2 independent planes
P2 512×212 (512×424) 4 125x 16×16 16c 15.7 kHz Pattern mode
B0 192×240 (192×480) 16, 8, 4 or 2 2x 32×32 4c 15.7 kHz undocumented overscan mode (no borders)
B1 256×212 (256×424) 16, 8, 4 or 2 2x 32×32 4c 15.7 kHz bitmapped mode
B2 384×240 (384×480) 16, 8, 4 or 2 2x 32×32 4c 15.7 kHz overscan (no borders)
B3 512×212 (512×424) 16, 8, 4 or 2 2x 32×32 4c 15.7 kHz bitmapped mode
B4 768×240 (768×480) 4 or 2 2x 32×32 4c 15.7 kHz overscan (no borders)
B5 640×400 4 or 2 2x 32×32 4c 25.3 kHz
B6 640×480 4 or 2 2x 32×32 4c 31.5 kHz needs a 25.2MHz oscillator
B7 1024×212 (1024×424) 2x 32×32 4c 15.7 kHz undocumented mode

Resolutions between parentheses () are in interlacing mode. When interlaced mode is used, there is no need to split odd and even lines between pages to have a doubled vertical resolution image.

  • Note that overscan modes have 50 lines extra for non-interlace and 100 lines extra for interlace modes when they are used in PAL 50Hz mode. So, in 50Hz, the B4 mode can be 768×290 (non-interlaced) or 768×580 (interlaced).
  • B5 and B6 modes don't get extra lines when interlace mode is activated.

Supported color modes

The Yamaha V9990 is capable of displaying a total of 32768 colors via its 16 bit (15 bit RGB plus transparency bit) hardware color DAC.

The above mentioned resolutions can be combined with the palette systems below, so a lot of different screen configurations are possible.

  • B4, B5 and B6 video modes don't support 8 or 16 bits per pixel color modes.
  • P1 and P2 only support 4 bits per pixel. There are four independent 16 color palettes available however, so each plane (2 on P1 mode, 1 on P2 mode) can select one of the 4 palettes independently, and each sprite can select its own palette as well. This way, color count can be higher on these modes.
bits/pixel colours system
16 32768 simultaneously
8 64 out of a palette of 32768
8 256 like SCREEN 8 (fixed palette)
8 19268 like SCREEN 12 (YJK)
8 19268 YUV (better colour distribution than YJK)
4 16 out of a palette of 32768
2 4 out of a palette of 32768

The modes with 19268 colours are optimized to display digitized pictures with a minimum of memory and no remarkable loss of picture-information (JPG and PCD use similar methods).

Hardware sprites / cursor

In pattern modes:

  • 125 different sprites can be displayed at the same time, and a maximum of 16 sprites on the same scanline.
  • Sprites can use any 16x16 pixels area from the pattern generator table.
  • Since every pattern on P-modes are 4 bpp encoded, sprites can have 15 colors (plus one transparent).
  • Each sprite can choose its own palette from the 4 palettes available.

In bitmap modes:

  • Sprites are not supported. Cursors are supported instead.
  • 2 cursors can be displayed at the same time. There are no scanline limitations for cursors.
  • Cursors have their own 32 x 32 pixels allocated on VRAM.
  • Each cursor can have its own 2 colors, a third (EOR) color and transparent color.


A few examples of software developed for V9990:

  • PowerBASIC: The first BASIC language for developing V9990 software using MSX BASIC. Written by Henrik Gilvad, based on X-BASIC. Supports P1 and P2 modes only. MSX Turbo R Only.
  • G-BASIC: Develop V9990 software using MSX-BASIC. Written by Koen van Hartingsveldt. Supports B1-B6 modes only. MSX2 or higher.
  • SymbOS is a free multitasking operating system for Z80-based 8-bit computer systems. The G9K-preview version supports bitmap mode 2 (384×240 16 bpp), 3 (512×212 16 bpp), 4 (768×240 16 bpp) and 7 (1024×212 16 bpp) of the V9990 VDP including virtual X resolutions of up to 1024 pixels.
  • X-TAZY: a shoot 'em up game for GFX9000 / Moonsound / Turbo-R / Harddisk... Unfortunately it was never finished
  • Battlebomber: A bomberman clone made by the Bitboyz
  • Paint9000: 512×212 P2 mode with 16 colours (from a 32768 palette)
  • GFXAGE: 256×212 P1 mode.
  • PICVIEW: displays BMP and GIF files
  • The Hi-Spec demo by Patriek Lesparre
  • Team Bomba Underwater Demo
  • Codename: INTRUDER: The first V9990 game compatible with MSX1