Computer Space FPGA Release 1.0

fpgaarcade

Member

Donor 2015
Joined
Feb 25, 2015
Messages
61
Reaction score
5
Location
na, Sweden
Happy New Year to all Computer Space Enthusiasts!

The first Computer Space FPGA release is now available for download.

It has been developed primarily to understand the inner workings of the Computer Space game logic. The emulator can also serve the purpose of game preservation as the schematics have been copied "wire by wire" and "component by component"/"gate by gate" and hence represents a very close realization of the original, except for sound
generation which in this solution is based on audio samples.

The emulator has been developed for Terasic Altera DE0 Nano, which is a low cost FPGA board.

Sound is preloaded as (signed) 8 bit, 11 kHz - using a first order sigma delta DAC output solution.

Video options includes original Computer Space video type and interlaced NTSC standard (for play on eg LCD screens).

In order to see the video, hear the sound and play the game – a very simple interface has to be built consisting of a handful resistors and a capacitor. Schematics provided.

There are three files:
1) jic-file (just "simply" load the file on the de0 nano and CS is "permanently" configured)
2) vhdl – all vhdl files (best viewed in a vhdl editor or similar)
3) conceptual interface schematics

The full set of altera quartus files, including project file and sound files will be linked separately.

A higher end version targeting Terasic Altera DE1 will be released in a little while. It will feature the option to have signed 16 bit audio @ 48kHz, using an onboard commercial audio codec chip. This will however require the user to load its own audio sample set into a flash memory.

I also believe the solution can be adopted for the Altera Max 10 chip – which would be a true single chip solution as the Max 10 features on-chip oscillator, on-chip flash and on-chip configuration memory.

Special credit to Mike Salay (KLOV: road.runner) and computerspacefan.com for helping out with real board measurements and basic sound samples.

Enjoy!
 

Attachments

  • computer space nano jic.zip
    124.4 KB · Views: 79
  • computer space vhdl only.zip
    72.6 KB · Views: 82
  • CS Altera interface.jpg
    CS Altera interface.jpg
    134.4 KB · Views: 305
Thank you very much for this, this is awesome!
 
Awesome... I'm excited to check this out! Though I don't have any Altera boards, so maybe I'll try getting it running on one of my Spartan 3 or Spartan 6 boards I have around here.

DogP
 
Other boards...

For other boards, please focus on getting clock input and clock pll's for clocks.vhd and IP ROM for sound.vhd right. If you only go for interlaced ntsc you dont need to drive game_clk.

If your board has push buttons - then you can connect directly to them instead of wiring externally.
 
Special credit to Mike Salay (KLOV: road.runner) and computerspacefan.com for helping out with real board measurements and basic sound samples.

Enjoy!

Awesome stuff and no problem at all! It's my pleasure to spread the Computer Space love around!
 
I will say it took a good amount of logic analyzer work to get everything tweaked correctly and to sort out some errors.

I'm currently testing a plug and play board replacement using the Altera DE1 in a friends yellow Computer Space (just a few features and bugs to work out)

Mike
 
Thank you for all the work you did to make this possible. In 2010 we were alerted to a CS that was sitting outside for almost 5 months. It had no monitor or boards. Until now, I figured we would never see it run again. Here is a picture of it running next to our original CS. (left cab has original hardware. Right cab running the FPGA setup)

Gary
 

Attachments

  • 2010 05 28 Computer Space rescue 1.jpg
    2010 05 28 Computer Space rescue 1.jpg
    104.8 KB · Views: 301
  • 20151004_125415.jpg
    20151004_125415.jpg
    143.7 KB · Views: 360
Last edited:
I am happy to see the FPGA Computer Space emulator solution come into use. Hopefully a few other empty cabinets can be brought to life going forward as well.

br /mattias
 
I am happy to see the FPGA Computer Space emulator solution come into use. Hopefully a few other empty cabinets can be brought to life going forward as well.

br /mattias

Your FPGA solution brought our empty cabinet back to life! Let's see some more pictures of empty cabinets being brought back.

Gary
 
Awesome... I'm excited to check this out! Though I don't have any Altera boards, so maybe I'll try getting it running on one of my Spartan 3 or Spartan 6 boards I have around here.

DogP

dummy guide for step by step how to do this, please. :)

Nice work and thank you!
 
That's really cool that you were able to bring one back to life with this! Unfortunately, I don't have a cabinet, though Classic Gaming Expo/Videogame History Museum has one with no boardset... I burned a DVD for them a few years ago of the "attract mode" from the simulator, so it could at least look alive. I talked to them recently and mentioned this project, so hopefully it'll be able to get that one up and running too.

I actually did spend a few minutes on it last weekend starting to port it over to one of the boards I have here. I'm initially targeting the miniSpartan6+ ( https://www.scarabhardware.com/minispartan6/ ) since it's sitting on the desk in front or me, it's already got the sigma-delta audio output to a headphone jack, and HDMI output for video (which I'll write).

The one part that wasn't immediately clear to me was the audio ROMs. Can you briefly explain what you did there? I see the Altera project has several .hex files, which I assume are the ROM values (in Intel hex format), but for example the address for rocket_rotate is STD_LOGIC_VECTOR (10 DOWNTO 0) (11 bits), but the hex file seems to have 4530 elements (would require at least 13 bits to address).

Xilinx needs .coe files for its ROM IP, so I'll convert them (or just create the ROMs in VHDL), but I wanted to make sure I understood how it worked first.

Thanks,
DogP
 
The more projects that I see like this, the more convinced I am that this is the path to ultimately preserving our games as the years progress.

While I admit to having no love for x-in-1 boards, I can see this as a viable alternative to them simply because of the quality of reproducing the original game's behavior. x-in-1 boards fall incredibly short in this regard, and with the proper interface and loader FPGAs could kill them stone dead.
 
That's really cool that you were able to bring one back to life with this! Unfortunately, I don't have a cabinet, though Classic Gaming Expo/Videogame History Museum has one with no boardset... I burned a DVD for them a few years ago of the "attract mode" from the simulator, so it could at least look alive. I talked to them recently and mentioned this project, so hopefully it'll be able to get that one up and running too.

I actually did spend a few minutes on it last weekend starting to port it over to one of the boards I have here. I'm initially targeting the miniSpartan6+ ( https://www.scarabhardware.com/minispartan6/ ) since it's sitting on the desk in front or me, it's already got the sigma-delta audio output to a headphone jack, and HDMI output for video (which I'll write).

The one part that wasn't immediately clear to me was the audio ROMs. Can you briefly explain what you did there? I see the Altera project has several .hex files, which I assume are the ROM values (in Intel hex format), but for example the address for rocket_rotate is STD_LOGIC_VECTOR (10 DOWNTO 0) (11 bits), but the hex file seems to have 4530 elements (would require at least 13 bits to address).

Xilinx needs .coe files for its ROM IP, so I'll convert them (or just create the ROMs in VHDL), but I wanted to make sure I understood how it worked first.

Thanks,
DogP
Well spotted regarding ROM size vs vector size. The samples are "full length" - but I could not fit all of them in the available de0 nano memory. So I essentially capped them by reducing the address space (start - end) that i am reading. It actually did not impact the sounds hugely as some of the samples consist of repeating sounds (with some variations). If you have larger memory in your chip then please try to address a large part of the original sample.

Regarding hdmi - it will be interesting to see what that will look like (screen stretch and so on). I actually played the interlaced ntsc version this xmas on my normal large wide screen TV, which was kind of nice as it stretches the pictures across the whole screen.
 
Does anyone plan on providing these in a ready to use format?


As some owners have already expressed interest to me, I plan to make a small run (perhaps 5) of plug and play kits. Currently tweaking the design and testing a prototype. Price is TBD.

Mike
 
As some owners have already expressed interest to me, I plan to make a small run (perhaps 5) of plug and play kits. Currently tweaking the design and testing a prototype. Price is TBD.

Mike
That'd be really cool... I'm sure there aren't many CS cabs out there without boards, but those that are could really use them. I hope you're giving fpgaarcade a cut, or at least open sourcing the design though... obviously without fpgaarcade's free/open design, none of this would exist. Also, regarding a "plug and play" kit... I wouldn't forget about those who have cabinets with no wiring harness. Standard connectors for power, audio, video, controls, etc. would definitely be useful.

I'm personally just playing with this for fun, and hopefully it'll eventually help a friend out. Once I get it up and running, I'll be posting the Xilinx project back here.

DogP
 
I don't have a Computer Space without a board, but I have always had this concept of what an arcade game would look like in Mad Max's world, like if they had a game in bartertown.

To this end I have left a steel countertop shell out in the weather for a long time, and Computer Space would be perfect to put in it.
 
Back
Top Bottom