Hackvision is build-your-own retro game

If you wanted to try your hand at programming some retro games Hackvision can jump-start the process. It is an Arduino-based game console in a controller format. You get four directional buttons and one function button. It has two RCA jacks for mono audio, and black and white video.

We’re happy to find that there’s information about game development that will help you follow along with the Space Invaders and Pong examples. The system uses the Arduino TVout library for video, which is robust and fairly easy to interact with. But once you see the game play in the video after the break it’ll be hard to resist building one of these. Don’t forget, this is Arduino based. If you already have an Arduino that uses an ATmega328 you just need to build the audio, video, and button circuits.

[Thanks Franz]

Comments

  1. michael says:

    Getting this to work on arduino takes tweeking an h file. If you have 2 resistors and an arduino you can get hackivision running on your arduino.

    Check out my site for details.

    http://www.flakelabs.com/index.php/2010/10/hackvision-games-on-arduino/

  2. Ken says:

    That D-pad looks absolutely terrible to play on…

  3. Anon says:

    An enclosure wouldn’t be too much, especially for hard-core gamers.

  4. Adam Wolf says:

    A month ago at World Maker Faire in NYC, we released an open source Arduino shield that uses this same library, and has plugs and circuitry to connect two Wii controllers at the same time.

    http://wayneandlayne.com/projects/video-game-shield/

  5. Myles Metzler says:

    Micheal
    In the version of TVout used by both the hackvision and the video game shield the pinout was changed to keep it online with the most up to date code. I changed the pinout so that higher horizontal resolutions can be supported on a regular arduino with a 328 this is digital pin7. The newest version of the library is available in the source section of the google code page. I will make another zip release when I get TVout to a feature complete state, until then I will just be keeping the repository up to date.

  6. Joby Taffey says:

    Don’t forget AVGA. Colour RGB/VGA + sound on ATmega168, runs entirely under interrupt leaving the foreground loop for game logic.

    Sprite based.

    http://avga.prometheus4.com/index.php?p=6-0

  7. RadBrad says:

    Cool project, thanks for posting!

    RadBrad

  8. Harvie.CZ says:

    Can’t they just make arduino sheild for that?

  9. Tiago says:

    Just search for the TvOut lib for arduino, add a resistor or two and a transistor or two and its working, then you just need some buttons to play.

  10. Shadyman says:

    Hmm. The “Y” in “PLAY” at 0:02 is upside-down. Hmm.

  11. Wahacks says:

    @Shadyman

    Watch the rest of the title screen — it’s just like the arcade version where the alien comes to fix the upside down Y. I remember that!

    Intro is in the demo video

  12. me says:
  13. Chuckt says:

    Cool project. Thank you for posting.

  14. mowcius says:

    Harvie.CZ, would you want to hold an arduino and shield in your hand to play games on? It’d be pretty terrible!

    The D-Pad is surprisingly quite nice to use :)

  15. Michael says:

    Oh I’ve still got a few tricks…watch now as I shoot through our own shield!!!

    Neat project.

  16. MoJo says:

    I made a video generator for a project recently. It uses the SPI interface for producing tile based text and simple graphics which allows it to have a good resolution (320×256 at ~17MHz and 384×256 at 20MHz). While the text/graphics are always white it does support a 3 bit RGB background colour. It is a nice trade-off between RAM useage and external hardware (only a few diodes and resistors are needed).

    I needed it to work with a normal horizontal screen and with a vertical screen (monitor on its side). For that reason I cut the display area down to 30×30 8×8 blocks so everything can rotate perfectly based on just one tile map.

    The only down side is that the SPI interface takes an extra clock cycle to reset for the next byte, so an 8×8 block becomes an 9×8 block. It needed a bit of creativity with the font but works well enough for a user interface.

  17. steve hope says:

    I’m a grad student TA and I recently assigned a variation of this project to my electronics lab students, since a lot of them are into game design as well as EE. Great success, TY for the tut!

  18. gregory oakley-stevenson says:

    good hack i fancy trying it
    p.s i am from england and i love hackaday

  19. perde says:

    Cool project. For that reason I cut the display area down to 30×30 8×8 blocks so everything can rotate perfectly based on just one tile map.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 93,813 other followers