Hackvision now available

Hackvision is a hackable retro-gaming system based on Arduino technology. Connects directly to your TV with RCA cables. No Arduino is required but you can write and upload your own games onto the ATmega328 chip using the Arduino IDE and a USB to serial cable or adapter. It comes preloaded with two games (Space Invaders and Pong clones). A button controller is built right on the PCB and you can add a Wii nunchuk controller, paddle controllers, or design any controller you like!

See the official site for all the other details and lots of documentation: Hackvision: tiny, hackable, Arduino-based video game system

Available as a kit or fully assembled/tested in the nootropic design store: nootropic design – innovative electronics for hobbyists, designers, educators and industry

This was a lot of work, but I think it turned out great!

Brilliant, I even got a mention!

I will try to get my 'jedi' pong pics uploaded soon as an example of alternative controllers. :wink:

It really is very addictive! Especially playing pong aginst yourself ;D

(Paddles mini-kit) "Enclosures not included (Altoids tin recommended)."

Haha brilliant.

Mowcius

Yes, a special thanks to Mowcius for helping test on PAL TVs in the UK!

Great piece of kit there, first Toolduino and now this, keep up the awesome work.
Hackvision Arduino Driven TV Game System

Now thats a cool one!

I wantz Asteroids! :wink:

I wantz Asteroids!

Well if you can write it!

I have a few games on my list that I want to code for it but I am rather involved in my current project to undertake anything else.

Mowcius

Just thinking,

Would it be possible to load gameboy or Nintendo roms onto it ?

Gameboy specs:

RAM: 8 kB internal S-RAM
Video RAM: 8 kB internal

No is the short answer.

We have 2kB SRAM running video and variables...

Mowcius

What if we had several atmaga328's? Could you generate enough power to duplicate a nintendo console?

This is sweet, it's really quite impressive.

What if we had several atmaga328's? Could you generate enough power to duplicate a nintendo console?

If you wanted to do something like this, you might want to check out the ATMega644 - aka Sanguino:

http://sanguino.cc/

...like the UzeBox uses:

Note that they use an AD725 RGB-to-NTSC converter chip...

There wouldn't be much stopping you from taking an UzeBox, loading it up like a Sanguino, then porting UzeBox library over to the Arduino side of thing; heck, its probably already been done!

:slight_smile:

heck, its probably already been done!

Well just about. Florin Chiperi dabbled in uzebox for his duino644 but I'm not sure where it got to.

Mowcius

If it can be adapted to output to stardard res arcade RGB monitors one could make their own coin operated arcade games with it! The Space Invaders looks pretty close to the arcade version already.

Yes, you can always do more with more hardware. The ATmega644 gives you much more memory to work with so you can do higher resolution, but it costs twice as much. And the AD725 chip and DAC on the Uzebox give it color capability, but they add cost. I wanted to design a gaming system that was as simple as possible and had a low price. I wanted to provide homebrew retro gaming for under $40 instead of $100. I think it's fun to work within the tight constraints and try to get the most fun out of a simple ATmega328.

Actually now that I think about it a lot of the early 70's B&W games (Boot Hill, Space Invaders, etc) used composite monitors anyway, so if you program in coin switch detection and maybe a driver for the coin counter it should plug right in.

I may have to get one of these things and start playing around! ;D

I think that the fact it can't do colour or really high res powerful games is one of the great things about it.

It's retro and that's cool :slight_smile:

The simplest games are often very popular. Pong is always great, tetris is great (I am thinking of perhaps trying it but it will be a struggle with RAM constraints). Think of something like minecraft. it is highly addictive but a very simple idea. Square blocks!

Mowcius

I think that the fact it can't do colour or really high res powerful games is one of the great things about it.

If the resolution was just a tad bit higher (or maybe the aspect ratio changed a bit - since the following depends more on horizontal resolution than vertical), one could achieve artifact colors, at least on NTSC (PAL doesn't do artifact colors well or possibly at all).

On the TRS-80 Color Computer 1 & 2, using an NTSC television or composite monitor, there was the screen known as "PMODE 4", which was technically a 2-color screen (black and white; ok black and "buff" - which wasn't quite white, according to the manual), but it had enough resolution horizontally (256 pixels H x 192 pixels V) that in the NTSC mode, when placing vertical lines next to each other in different patterns, one could obtain two other artifact colors - a "red"-like hue, and a "blue"-like hue. It actually worked really well; tons of games used the colors (one of my favorite, though more obscure titles: Robot Odyssey by The Learning Company - Robot Odyssey - Wikipedia).

The PAL "version" of the Color Computer couldn't do the proper artifact colors - supposedly they saw green and purple stripesl. Artifact colors were used by some on other systems as well; interestingly, the CGA adaptor could do them (if you had a proper composite monitor hooked up), but most people used a standard color monitor, and so it wasn't a widely used mode for the IBM. A similar thing occurred on the later Tandy Color Computer 3: When it was launched, it had the ability to use an RGB monitor, which a lot of users purchased (the CM-8). It could still hook up to a television or composite monitor, but in order to use the higher resolution displays and 80 column text modes, the display was crisper and led to less eye strain on the monitor, so a lot of users went this route.

This led to an unfortunate oversight by the community, one that wouldn't be resurected until late last year (2009): The Color Computer 3 640x192x4 color artifact mode. In this mode, if you selected that screen (HSCREEN 4, IIRC), then set the color palette to the four grey-scale colors available (white and black, plus two intermediate greys) - then with the right patterns on-screen with an NTSC monitor or TV - you could suddenly get hundreds of colors! This has been called a "256 color" mode - whether that is true or not, I don't know - but it is quite amazing to see:

Unfortunately, it drops the "usable" resolution down to 160x192 pixels (note where it says in that posting "200" vertical pixels - by default, the Color Computer 3's maximum vertical resolution was 192 pixels, but there were ways to increase that number). Whether such a system could've been used for games or other applications is unknown, but I bet had the community been widely aware of this "mode" at the time (mid-late 1980s), applications would've been developed. I say "widely", because from what I have found, this mode was actually discovered by someone at the time, but was only published in a small Color Computer magazine that didn't have the wide circulation of the main CoCo mag, The Rainbow - and so the mode and technique was quietly ignored.

So - you can see that if the resolution of the TVOut library was changed slightly, we could potentially get four colors. If there was just a way to employ more bits per pixel, we could potentially get even more (perhaps up to 8) - but unfortunately, there isn't enough memory. Now - if someone wanted to figure out how to replicate the Atari 2600 graphics hardware in a couple of ATMega328s - that might be possible, but it wouldn't be anywhere near as easy to code for...

:slight_smile:

Don't get me wrong, I'm under no dillusions that it has to be capable of high-res etc to be worthwhile, I've always had a fantasy of building my own unique, commercial quality (if only compared to 70's genre)coin operated video game from scratch and perhaps HV is a means to that. Yeah sure I could build a MAME cab and run and a homemade game written to run under XP, but there's something phony about that, I'd like it to be totally dedicated hardware.

Don't get me wrong, I'm under no dillusions that it has to be capable of high-res etc to be worthwhile, I've always had a fantasy of building my own unique, commercial quality (if only compared to 70's genre)coin operated video game from scratch and perhaps HV is a means to that.

It's probably as close as you're going to be able to manage with a simple-to-use library that gives you worthwhile resolution, provided you don't mind "black and white".

That doesn't mean you couldn't get full color rendering, etc from a 168/328 - look at this:

http://www.linusakesson.net/scene/craft/

That was done with an ATMega88 - and a ton of finely crafted assembler code, running @ 20 MHz, on a VGA monitor. However, that assembler code is probably anything but simple, and it is probably hand-tuned to exact cycle counts.

Depending on how good you were, you might be able to do something like that, but still have the chip talk over I2C - and thus create an I2C capable "video chip". Elsewhere on that guy's site is a SID emulator based around the ATMega - so you could do the same for multi-voice sound ala the C=64. A third chip could handle I/O (joysticks and buttons), and the fourth could be running the game and communicating with the other three.

In theory.

In practice it would probably be a nightmare, even if you were as well versed as that guy in the internals and everything else needed to realize such a system. It would be one heck of a hack to see, though!

:slight_smile:

cr0sh, interesting reading!

I've always had a fantasy of building my own unique, commercial quality (if only compared to 70's genre)coin operated video game from scratch and perhaps HV is a means to that. Yeah sure I could build a MAME cab and run and a homemade game written to run under XP, but there's something phony about that, I'd like it to be totally dedicated hardware.

Did you see this beast of a home made games console?

:smiley:

Mowcius

That doesn't mean you couldn't get full color rendering, etc from a 168/328 - look at this:

Craft

That was done with an ATMega88 - and a ton of finely crafted assembler code, running @ 20 MHz, on a VGA monitor. However, that assembler code is probably anything but simple, and it is probably hand-tuned to exact cycle counts.

Yeah that dude is insane. :wink: