Before the introduction of standard video cards with them, video and computer game console designers used video chips. They made design simpler and relieved a lot of tasks to the processor. The video chips used built-in graphical blocks that were hardcoded and could handle the generation of video. One of them is the Texas Instruments TMS9918 used in the ColecoVision as well as the TI-99/4 along with MSX computers. This article by Doctor Volt will walk you through the process of using the Arduino Nano to output graphics from the TMS9918.
You can follow this guide using a breadboard, the TMS9918 VDP (video display processor) and a few of DRAM compatible (or SRAM that has D-flops) chips. The Arduino board serves as the other computer in this configuration. If you were to build an online game console for instance one, the Nano will handle the game’s operations. It will then inform the TMS9918 which graphics to display to the user. The Nano manages the TMS9918 video and RAM chips which write bytes to describe the onscreen content.
The way the TMS9918 works with images is part of what makes the test enjoyable, since it offers many insights into the ways that the developers of video games and software from the late 70s and early ’80s dealt with the limited resources. In particular, most efficient performance can be achieved by showing text instead of sprites , or controlling the individual pixels. Thus, certain video games make use of text characters in their graphics, such as an ampersand for representing an opponent.
Every text character is a digitized 8×8 pixel block. The TMS9918 could be customized to provide background and foreground colors to characters however, only per row. The designers of the time utilized the limitations of hardware in inventive ways, resulting in images that weren’t recognized as text characters. Sprites are also available in other ways and you can test the whole thing yourself by following the instructional.
The post Experiment with ’80s graphics using this breadboard setup appeared first on Arduino Blog.