Using an Arduino Mega to Experiment with a Vintage Video Generation Chip
Krallja used an Arduino Mega and a Texas Instruments TMS9918 VDC chip from the '80s to experiment with how retro computers generated video.
Spend some time with old home computers and video game consoles, particularly from the 8-bit era, and you’ll notice that different models tend to have very distinct graphics. The Commodore 64, for example, is known for having a very muted color palette, while the Sinclair ZX Spectrum has famously bright and vivid graphics. Even Atari 8-Bit Family computers, which had essentially the same processor as the Commodore 64, had distinctly different graphics. That’s because they all had different video chips. To experiment with that hardware, Krallja used an Arduino Mega 2560 to interface with a vintage TMS9918A video chip.
Those vintage video generation chips were a bit like modern graphics cards, except the limited power available at the time meant that they could only work with a handful of colors, sprites, and so on — ultimately resulting in a dramatic difference between chips. The best way to understand this is to compare the ZX Spectrum and the Mattel Aquarius. Both contained a Zilog Z80A processor running at 3.5 MHz, and the base model ZX Spectrum had 16KB of RAM, which the Aquarius could be upgraded to. And yet, the Aquarius was notoriously horrible for gaming. It was only capable of displaying graphics made from the alphanumeric character set. The 16K ZX Spectrum, on the other hand, had hundreds of fantastic games. That was because of the much more versatile capabilities of the video generation chip.
The Texas Instruments TMS9918 VDC (Video Display Controller) chip that Krallja is experimenting with in this video was used in a variety of early computers and consoles, including the ColecoVision, Sega SG-1000, MSX computer, and Texas Instruments’ own TI-99/4. It was capable of displaying simple alphanumeric text, but also pixel graphics. During that era, the TMS9918 would have been paired with a processor and a lot of other hardware. To avoid having to deal with all of that, Krallja used the Arduino Mega 2560 board to control the VDC. He hasn’t been able to create any complex graphics yet, but he was able to set the screen background color being output through the composite video signal. Be sure to check out his video for an in-depth explanation of how he achieved that, and subscribe to his channel to follow along with his future progress.