This page was last modified 12:03, 2 December 2022 by Gdx. Based on work by Mars2000you and Grauw and others.


What is VDP?

VDP means Video Display Processor, it's the term used for the video chip in the MSX world.

The VDP is the interessing element of the MSX system. Especially on MSX2 with its dedicated video memory (128kB in general) which offers high graphic resolution for consumer hardware of the time and allows the display of 256 colors simultaneously on the screen and even several thousands on MSX2+. It also includes a complete set of graphic commands allowing in particular the drawing of lines, full or empty rectangles, scrolling to name but a few functions.

Operating principle

The principle of a video processor is relatively simple. It is a question of relieving the central micro-processor of all the tasks related to graphics by adding a processor dedicated to the display. On the other hand, it is necessary to transfer the data to the VRAM via I/O ports. At the programming level, you can completely ignore the presence of the processor and only use the Bios routines (drawing lines, loading pages, Sprite, etc).

This solution, if it offers the advantage of simplicity, deprives the programmer of a whole series of functions not available with the Bios (scrolling, flashing to name but two examples). It is therefore interesting to be able to directly access the video processor. This is generally done through registers, 8 on MSX1 and 47 on MSX2, which gives you an idea of the difference in power between the processor of the MSX1 and that of the MSX2.

Most of the registers define precise parameters such as the tables in VRAM where the data is which is used, for example, to display the foreground or the Sprites, the color of the text or of the background whereas some registers have a special function, which automatically triggers a graphic command, drawing a line for example, when writing to register 46.

Throughout this wiki, you will find an explanation of the content of each register as well as an exposition of the different graphics modes and Sprites.

Display Priorities

The display is carried out line by line from the top right corners to the bottom left corners.

Here is a small diagram that shows the display priorities of the VDP to give an image of what we are talking about next in the wiki.

Display priorities

The background is only visible on the borders or through the color 0 of the foreground. Video input replaces the all background.

32 Sprites can be displayed over the foreground but if there are more than 4 or 8 sprites (depending on the screen mode) on the same line, only the 4 or 8 sprites with the highest priority can be displayed on this line.

VDP used in MSX computers

The following video chips are used on the MSX system:

There were also plans to use the Yamaha V9978, but this chip was not ready for the release of the MSX Turbo R, the last generation of MSX computers. Its successor is the V9990. It is used in cartridge by a lot of MSX users.

Generally, the VDP is a separate chip, but a few MSX1 machines have the Toshiba T6950 integrated in the Toshiba T7937 MSX-Engine.

All MSXs VDP have its dedicated RAM called VRAM. This VRAM is not shared with the CPU. However some manufacturers added it to the RAM in the specifications of the computer.

Besides these VDP's, there is also a Video Display Controller (VDC), the Yamaha 99C37-F used only in the NTT Captain Multi-Station computer.