Yamaha V9990
This page was last modified 16:25, 26 May 2023 by Mars2000you. Based on work by Grauw and Gdx 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, which was meant to be used for the 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 a 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.

This chip is used in the following cartridges:

See also the Yamaha V9990 Evaluation Board

No MSX computer has ever 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 15 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 Colors 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 color distribution than YJK)
4 16 out of a palette of 32768
2 4 out of a palette of 32768

The modes with 19268 colors 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.