Atmega 64 Videogame station

Go To Last Post
17 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi. Just to let u know that I have made a 64 color, 240 x 200 resolution video game station with an ATMEGA64. Its a project I have made the last year, I was supposed to post in this forum, but I dont have a lot of free time... So I completed a web site just to show you the game console.

The console graphic is comparable to the Nintendo and the video output is a regular NTSC color composite output. (can be viewed on a standard NTSC tv or monitor with video input)

The sound is 2 voices PWM square wave channels with complete music playback capability. All the video timing stuff, color bitbang and audio routine are made in background by a complexe interrupt routine. So the final game maker dont have to take care of precise video timing/color stuff.

the CPU run at 20 Mhz.. A little bit overclocked, but its not a commercial project and the Atmega64 is capable of it (The new atmega serie are all at 20 mhz and use the same core making process...) Anyway... With all the video generation timing stuff process in the background, the main routine have a good 4.5 mhz left to do the game process.

The Mega64 is helped with a low cost CPLD (about 1$) to do just the video phasing stuff (with a 3.58 MHz Crystal). I have made this with discret logic at start, but take too much place on the PCB, so I decided to embeded it in a CPLD.

Here is a link to a fast made web page, you have screenshot, and 2 videos. Here I have included a screenshot of the Super Mario bros clone I have made on the videogame station and frogger game.

I dont have time to put technical detail at the moment, but feel free to ask.

here is the web site link to view the video and screenshot:

http://www.innovativedevice.com/...

Cedric.

Attachment(s): 

Last Edited: Tue. Sep 12, 2006 - 08:40 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Wow that is really impressive... nice job

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Can you post a bigger 64schematic.jpg? I would like to know the chips you used.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Did u get the one on my website? when you click on it... Its the maximum size I can export from protel...

Here is the list of the IC used in the project:

Main CPU: Atmega64: 12$
Latch for Xternal Ram: 74hct573 0.80$
Xternal Ram: Fast 10-15 ns 128k Static ram 3$
CY7C1009B-12VC
32 macrocells CPLD for embedded logic: EPM3032STC44 1.20$
IC optional for rs232: 1.50$

The CPLD is hard to program, you need the old MAXII BASELINE with a windows 98 computer... I tried XP, 2000 and not able to program the chip.

If you want more info, let me know.

Cedric, www.innovativedevice.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This is a really cool project.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
The CPLD is hard to program, you need the old MAXII BASELINE with a windows 98 computer... I tried XP, 2000 and not able to program the chip.

AFAIK this device is supported in Quartus.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yes, Its supported in quartus, But I dont know how to use it... I use graphical editor in MAXII Baseline... I think the graphical editor is no more available un Quartus??

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quartus is indeed quite daunting to the uninitiated :D

You can still use graphical design methods, it's still an integral part of the workflow, the top-entity where you connect pins to blocks of logic is done using graphics.

Basically you need to make a new project using the New Project Wizard where you select the directories etc and what device you want to use.

Then you create a new BDF file where you draw all your logic and set this file as the top-entity.

Then hit the compile button ;)

What exactly is the CPLD supposed to do? I'm quite experienced in VHDL so I might help you out there.

I must say I'm quite impressed by your achievement ;)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The CPLD is used for delay lines, to retard the phase of the 3.58 mhz color burst reference a few nSeconds. Depending on the color, there is more or less Gate delay used in the CPLD. All these phase delay gate are selected by an 16-1 MUX in the CPLD to the 16 availables colors, and mixed with an 2 bit Resistor D/A (4 possibility on 2 bits) to made the 4 shades. Its the methode I use to have 64 colors on the screen.

As you can see in the graphic schematic here, the 3.58 MHZ Oscillator enter from left, and have many delay lines, and differents colors (phase) are connected on the delay path. (up to the right).

I'm really good in graphic editing, I have made a complete working uController in graphics... but I know nothing at the new VHDL language. I have installed quartus, but I was afraid :D lol... I have uninstalled it.

Attachment(s): 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

VHDL is not that new ;) and it's really not that difficult, especially if you have a sense of digital logic (VHDL is very hard on pure software people who have no idea what hardware really is). VHDL means a lot of typing though...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

zOMG! your INSANE dude!
well done!!
it would be cool if you posted your code also so that ppl can make more games (not me tho, the code would prob make my head explode)

once more, well done

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Maybe if peoples are interested in the project, I can start a little PCB production of the VideoGame Station and maybe I can sell the PCB with the parts on it, pre assembled or not/or with only the CPLD programmed. It can be fun to have a community developing free stuff for it... But we need peoples, I cant support that alone, I have tons of stuff to make, like documentation, tutorials, examples... If I found 2-3 peoples interested, Maybe I can start a web site with a forum and a file/picture section.

Cedric, www.innovativedevice.com

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Cool project.
Any information is welcome. Let me know if you will provide PCBs, code or any helping information.
If your´re looking for interested people, well you have one for the list.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

uuuuu...cool! Lots of luck in your future project...Oh and try wolfenstein or pong.

There are pointy haired bald people.
Time flies when you have a bad prescaler selected.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi,

Blimey, if I hadn't seen the pictures I'd say you were kidding me, fantastic project!!, I wish I could make double sided boards like that.
Best Regards and keep going
Darren

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Its not that hard to make double sided boards, the only thing is a good alignement with the two sides of the acetate. I never missed one, even if the hole are not perfectly alligned, its ok.

But if you want to make things more easy, just take 2 single side PCB and put it back to back.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hey, I just noticed this thread, found it while searching for po\h\hsomething else.. I'm sorry for necroposting but it's worth bumping up. Cedric, that's some awesome job, absolutely amazing. Keep it up!

The Dark Boxes are coming.