Gameduino spritely takes centre stage

We’ve often sung the praises of the Arduino – see the roundup The many faces of Arduino, for example – but this has never involved the subject of gaming.

gameduino.jpgWe’ve often sung the praises of the Arduino – see the roundup The many faces of Arduino, for example – but this has never involved the subject of gaming.

Well, you can now connect your Arduino system to a VGA monitor and speakers, to enable writing an Arduino sketch to create video games (via Forth)…

Thanks to Technabob for highlighting this interesting Arduino-based development – support for 8-bit video gaming via the Gameduino, based on a Xilinx FPGA. It is a properly designed, tested, and documented project created by Gadget Master James Bowman, and it is made available as open-source hardware (BSD license).

“It’s packed full of 8-bit game goodness: hundreds of sprites, smooth scrolling, multi-channel stereo sound,” promises Kickstarter, which ships ready-made versions of the system in return for pledges of $53.

James provides full details of how to make a Gameduino board – see Gameduino: a game adapter for microcontrollers. He writes:

Gameduino is a game adapter for Arduino – or anything else with an SPI interface – built as a single shield that stacks up on top of the Arduino and has plugs for a VGA monitor and stereo speakers. The sound and graphics are definitely old-school, but thanks to the latest FPGA technology, the sprite capabilities are a step above those in machines from the past.

The adapter is controlled via SPI read/write operations, and looks to the CPU like a 32Kbyte RAM. (Unlike many 8-bit machines, there are no restrictions on when you can access this RAM). There is a handy reference poster showing how the whole system works, and a set of sample programs and library.

Points he notes:


In terms of the spec, it supports video output of 400×300 pixels in 512 colours. Audio output is a stereo 12-bit frequency synthesizer (16 independent voices of 10-4000 Hz, per-voice sine wave or white noise).

For foreground graphics, each sprite is 16×16 pixels with per-pixel transparency, and can use 256, 16 or 4 colours. There are 96 sprites per scan-line, and 1536 texels per line. For background graphics, there is 512×512 pixel character background, supporting 256 characters, each with independent 4 colour palette.

How fast can the Arduino write to Gameduino memory? According to James, in the best case – a bulk transfer – for a 16MHz Arduino the peak rate is 1 Megabyte/s. The Arduino writes bytes via SPI directly into Gameduino RAM, he says.

Other features of the system include being able to save high-score tables, running on USB power or an external power supply, reload the FPGA via a JTAG programmer. You can also reload the onboard flash with a new boot image.

Leave a Reply

Your email address will not be published. Required fields are marked *