Going back to Gameduino's roots

First some background. In 2011 I launched the original Gameduino. It was an add on to the Arduino that let it generate a picture on a VGA monitor. The graphics were pretty crude, roughly late 1980's technology.
Adafruit's picture of Gameduino 1
It launched on Kickstarter, and was pretty popular. You can see it's not very complicated; that's because it uses a single FPGA to do everything: picture, sound, memory and communication. The source for the Gameduino FPGA is open, so people made their own, or used it as a starting-point for their own hacking. Good stuff. Companies also copied it and made derivative products.

This image was deleted by MailChimp when they shut down TinyLetter.

The follow-ups Gameduino 2, 3, and now 3X all use BridgeTek's 8xx EVE series of graphical display drivers. Because these use graphics hardware, not an FPGA, they can do so much more, and are much easier to program. Instead of a monitor, they all have an integrated small panel display.

This image was deleted by MailChimp when they shut down TinyLetter.
But people frequently write to me asking about a Gameduino that can connect to a monitor. Last year I built a few prototypes of a Gameduino 3 that has a VGA output at 1024x768, but really VGA is disappearing fast.

HDMI output would be much better, so over the last few months I've been looking at possibilities. BT815 outputs RGB color signals, so an external HDMI transmitter chip is required:This image was deleted by MailChimp when they shut down TinyLetter.
For some reason,  HDMI decoders and encoders are difficult. The most likely candidate I could find, the TDA19988 is from NXP. The public documentation is incomplete. These devices have an I2C interface that lets you control them, but they're tricky. A project I was on was held up for 3 weeks while we tried to find the right register combination to bring an HDMI receiver to life.

So I'm not exactly looking forward to working with the TDA19988.

But this morning I stumbled upon this application note from Xilinx, "Implementing a TMDS Video Interface in the Spartan-6 FPGA" It looks like it would fit on a low-end Spartan-6 FPGA, and people seem to have used it for real.

So this opens up some possibilities. As well as being an HDMI transmitter, the FPGA can work with the BT815 to emulate some classic video systems. The C-64, ZX Spectrum and (of course) Gameduino 1 should all be straightforward. As is the TermDriver, which is just an emulation of an ANSI terminal.

The combination could be quite interesting.