Follow @gameduino on twitter

Tiny microcontrollers like the Atmel AVR used in the Arduino are now much more powerful than the 8-bit computers from the 1980s. So why not use them to play video games?

Gameduino connects your Arduino to a VGA monitor and speakers, giving powerful sprite and tile-based graphics for video game creation.

The original Gameduino is no longer being manufactured. Gameduino 3X is the current version.

Contents

Sample programs

All these samples are included as part of the Gameduino library, Gameduino.zip.

Basics

Gameduino draws 256 animated sprites in hardware. The Arduino sends just four bytes to move a sprite. details

Hardware scroll for pixel-perfect scrolling backgrounds with no tear or lag. details

Hardware pixel-perfect collision detection means the Arduino can detect whenever two sprites touch. details

Demos and Games

The classic bouncing ball demo, showing a large animated sprite. details

A playable game of Asteroids, showing how a full game manages graphics, sound, a huge scrolling map. details

Drawing a chessboard using a combination of background and foreground graphics. details

Three-part tutorial on converting the arcade classic to the Gameduino. details

Gameduino supports hardware-accelerated line drawing. This demonstration spins 3D spacecraft. details

A faithful conversion of the classic 80's game for Gameduino. details

Multi-layer effects are possible with a parallax scroll. details

Using ray-traced sprites to give a 3D make a 3D spinning model. details

Sound

Plays Widor's Organ Toccata using the 64-voice synthesizer details

Using Audacity to analyze sounds for synthesis by Gameduino. details

Converting and playing a MIDI track. details

Playing back an 8KHz audio sample, either from Arduino memory or Gameduino graphics memory. details

Using the 64-voice synthesizer to reconstruct musical instruments. details

Techniques

The Gameduino supports flexible split-screen scrolling. This demo splits the screen into three sections. details

Using the Gameduino as a four-color framebuffer. details

Generating visual white noise using the coprocessor. details

Demonstrates the sprite palette select field. details

Demonstrates the sprite rotate control. details

Gameduino has a small built-in library of useful images, a font, and audio samples. details

JK collision divides sprites into two groups so you can ignore 'friendly' collisions. details

Using the classic IBM PC 437 16x8 font on the Gameduino for better looking text. details

Utilities

A full self-test program is included to check that the Gameduino's functions are working correctly. details

A supplied utility updates the Gameduino's configuration flash. details

About Gameduino

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.

  • all color processed internally at 15-bit precision
  • compatible with any standard VGA monitor (800x600 @ 72Hz)
  • background graphics
    • 512x512 pixel character background
    • 256 characters, each with independent 4 color palette
    • pixel-smooth X-Y wraparound scroll
  • foreground graphics
    • each sprite is 16x16 pixels with per-pixel transparency
    • each sprite can use 256, 16 or 4 colors
    • four-way rotate and flip
    • 96 sprites per scan-line, 1536 texels per line
    • pixel-perfect sprite collision detection
  • 64 independent voices 10-8000 Hz
  • per-voice sine wave or white noise
  • sample playback channel

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.

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.

Technical reference

The Hardware Technical Reference covers every aspect of the Gameduino.

The using Gameduino with other hardware explains how to get Gameduino running with a new microcontroller.

If you are interested in making your own Gameduino, or building it for another FPGA, Making a Gameduino should help.

There is a FAQ.

A Guide for artists explains how to create graphics for the Gameduino.

Gameduino is open-source hardware (BSD license) and all its code is GPL licensed.

Logo design by iLKke.