Gameduino

Replacement: None at this time. We are currently working on a rev of the Gameduino, check back later for more information. This page is for reference only.

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 even a handy reference poster (which you can download below) showing how the whole system works.

  • Video output is 400x300 pixels in 512 colors
  • 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
  • Audio output is a stereo 12-bit frequency synthesizer
  • 64 Independent Voices 10-8000 Hz
  • Per-Voice Sine Wave or White Noise
  • Sample Playback Channel

Gameduino Product Help and Resources

Core Skill: Programming

If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.

3 Programming

Skill Level: Competent - The toolchain for programming is a bit more complex and will examples may not be explicitly provided for you. You will be required to have a fundamental knowledge of programming and be required to provide your own code. You may need to modify existing libraries or code to work with your specific hardware. Sensor and hardware interfaces will be SPI or I2C.
See all skill levels


Core Skill: Electrical Prototyping

If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.

2 Electrical Prototyping

Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels


Comments

Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

  • sgrace / about 13 years ago * / 3

    For those of you who are curious on the FPGA on the board. It is a Xilinx Spartan3A 200K Gate.
    Spartan3A Family

    • Promptcritical / about 13 years ago / 1

      Looks like it has the programming pins marked, so you could reprogram it for just about anything.

  • tonymag28 / about 13 years ago / 2

    Ahh gameduino, first I tried to use it with my lcd tv and I didn't get any image, so then I look for my old computer monitor and it works. However, I don't understand what's going on when i upload the programs...I'm using the gameduino with an arduino mega but when I run the "selftest" I get many errors...I don't know what to do anymore...I don't know if there is a problem with my gameduino or what...

    • James Bowman / about 13 years ago / 4

      Because the Mega2560 puts the SPI pins on pins 50-52 instead of 11-13, you need to add some jumpers to get them back in the 'correct' places for Arduino shields. Jumper wires work fine: pins 11 -> 51, 12 -> 50, and 13 -> 52. Eventually I soldered three wires on the bottom of the Mega, to make things more permanent.

  • Member #473737 / about 11 years ago / 1

    Does the Arduino Due is compatible with Gameduino?

  • Member #461672 / about 11 years ago / 1

    Sorry i'm new to arduino so I need to ask a dumb question - What does this do?

  • Member #423228 / about 12 years ago * / 1

    I bought this to get text to display on a monitor. I'm having two arduinos talk to each other through rf transmitters/receivers. I receive characters perfectly fine but I cannot get the characters I receive to display on the screen. I think it has to do with pointers and type conversions but I am not sure. Does anyone have any recommendations? My code to display in void loop() is:

    uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;

    if (vw_get_message(buf, &buflen)) // Non-blocking { int i; int z=1; digitalWrite(led_pin, HIGH); // Flash a light to show received good message // Message with a good checksum received, print it. for (i = 0; i < buflen; i++) { char myChar = buf[i]; drawstr(atxy(i,z), myChar); } z++; digitalWrite(led_pin, LOW); }

    and the method drawstr is: static void drawstr(uint16_t addr, const char s) { while (s) { uint16_t w = pgm_read_word(cp437_pic + 2 * *s); GD.wr(addr, lowByte(w)); GD.wr(addr + 64, highByte(w)); s++, addr++; } }

    and a drawstr input that works is: drawstr(atxy(1, 1), "0)");

    Thanks in advance for any help!

  • Aleksandr S. / about 12 years ago / 1

    Hey guys, I'm trying to advertise an indiegogo (it's like Kickstarter) project at http://www.indiegogo.com/projects/graphic-card-for-embedded-systems?c=home you should check their video examples.

    Last week I've been trying to order a LAVA10 from MYLIUM (which looks like a pretty capable VGA/SVGA controller), but they were out of stock and their engineer informed me that he was developing a new controller as a successor and wanted to crowd-source the development costs. He kindly asked to spread the word about it, so here I am.

  • Ryoshi / about 12 years ago / 1

    This looks crazy awesome, but I had a few questions about flexibility before I take the plunge. First of all, has anyone successfully gotten this working with an SD card reader for extra memory? I know you can do a lot without much space if you're an efficient programmer, but still 32K isn't going to go very far. Second, has anyone gotten this to work with RCA/RF out? I have a bunch of RF jacks sitting around gathering dust that this would be perfect for....Any information helps, thanks!

  • Daniel Bernardos / about 13 years ago / 1

    If you try to compile the examples using the new Arduino 1.0 software and get an error check this blog entry:

    http://answers.gameduino.com/question/94/problem-compiling-sketches-wprogramh-not-found

  • Demolishun / about 13 years ago / 1

    Is there any way to get a board similar to this with the FPGA and more pins broken out? I would guess we would need a different set of connectors on the board for this. It would awesome to combine something like this with a fast AD. I have a potential application to grab data and send down a fiber cable for a UT system.
    This board combined with the Maple board would provide a formidable system for a lot of applications. Another app I am thinking of with is as-is is for a scoreboard. Cheap processor with great graphics capabilities.

  • Gwpt / about 13 years ago / 1

    Had anyone got this working with a FEZ? ie in Micro .net c#? Any libraries floating around?
    Thanks :)

  • Yarg_Nomis / about 13 years ago / 1

    Any chance of a RCA output version?

  • MJKennedy / about 13 years ago / 1

    I checked out the sample images on the developer's web site and the reference poster. Clearly an old Amiga user. The red and white bouncing ball demo was created by the Amiga's developers to show off its capabilities and the ape picture in the reference poster was used for years by NewTek in their ads for Amiga products. Ahh, the good old days...
    This looks much better than all the other custom video game boards I've seen before.

  • MattQ / about 13 years ago / 1

    I love it. Open source hardware, open source software. Delicious. I could see a community of 'retro' game developers sharing games for embedded systems.

  • Swimson / about 13 years ago / 1

    how beneficial would it be to get a arduino mega over a regular uno to use for this. Would I run into limits on the regular arduino uno easily?

    • James Bowman / about 13 years ago / 1

      All the Gameduino samples fit on the regular Arduino Uno. With Gameduino the limit is often fitting graphics in Arduino flash. The Uno's 32K is OK for a simple game (e.g. Asteroids fits in 27K). While the Mega does have more flash (256K) I have found it a little harder to use than the Uno. What's looking very sweet right now for people who want more storage is the Maple, with 128K of flash. Works great! http://www.sparkfun.com/products/10664

    • Poent / about 13 years ago / 1

      The mega will provide limited benefits for this shield directly. The on board memory on the mega is higher than the uno which could cause issues with this device depending on where it stores game files, but you can easily add either a sdcard or eeprom to handle larger files. the mega is really beneficial if you;re looking for a much larger number of I/O pins. Where as this seems to have all the required hardware to allow you to make very robust software.

  • Does anyone Know if this works with a Netduino Plus?

  • Whoa!! Quick, someone hack some retro SNES games for this badboy!!

  • WilliamK / about 13 years ago / 1

    Any hints on which joysticks are compatible with it?

    • You can really use any joystick you want. The joystick shield would be nice, or any other joystick we carry could work too.

    • Hertz / about 13 years ago / 1

      I believe it's the joystick shield kit in the related products below.

Customer Reviews

No reviews yet.