Sunday, February 10, 2008

Dice 0.2 Released!

Dice 0.2 has been released. Now supports 3 games, sound, and more.

Note that Dice now has to be run from the command line, using the following format:

dice gamename options

Where "gamename" is the name of the game to be run (pong, rebound, or gotcha), and options is any number of optional command line switches.

Download Link
SourceForge.net Project Page

What's New
-2 new games are supported:
Atari Rebound
Atari Gotcha (driver written by Dan Boris)

-Preliminary Sound support

-Optimization: Pong runs about 30% faster than previous versions

-Fullscreen Mode: Add the command line option -fullscreen to run in full screen mode

-Mouse Support: Add the command line option -mouse to use the mouse for Player 1


Enjoy!

Friday, January 11, 2008

Rebound

Had a bit of free time recently, so I was able to get a few things done:

1)Got Atari Rebound working fairly easily, there were only a few new chips that needed to be simulated. Pretty fun pong variation.

2)Also hooked up audio to both games, although it's not perfect yet.

3) Finally I added rom loading support, we'll see if that gets used on any games in the future :)

Sunday, January 6, 2008

Emulator Released

Finally got around to releasing the first version of my Discrete Integrated Circuit Emulator, DICE. This is a very early release and hasn't been tested fully, so there may be some bugs still. So far only Pong is supported, hopefully more games will be added in the future...

Download Link
SourceForge.net Project Page

Controls
5 - Insert Coin
Up,Down - Move Player 1 Paddle
A,Z - Move Player 2 Paddle
Esc - Quit

Future versions will have customizable controls, but right now you'll have to edit the source code if you want to change the controls, sorry.

System Requirements
Since it's simulating every single chip separately, it's very slow... Probably about a 3-4 GHz cpu would get it running full speed. It runs at about 20-25 fps on my 2.2 GHz Athlon XP.

Compiling
You need the gcc C++ compiler to compile, as well as the SDL library. I used mingw on Windows, the makefile is included. You might be able to use a different compiler, I haven't tried any others yet though. It should be pretty easy to build on other platforms since it uses SDL, but you may need to make some changes to the makefile to get it to compile. I'd like to get some more developers involved in this project, so if you are interested or have any questions about the source code, please feel free to contact me.

Tuesday, December 11, 2007

Ball

This screen shot might not look that different from the last one, but that 4 pixel wide ball was a pain in the ass to get working! Thanks to some help from Dan Boris I was able to figure it out though... The problem was with the ball horizontal counter, which was counting one more count on every line than it should have been.

It turns out that because the propagation delays between the chips are greater than the width of a clock pulse, the horizontal counter is disabled for an extra clock cycle. Since I had not designed the simulator to take gate delays into account, this was a problem... Fortunately I was able to redesign it without taking too much of a speed hit. I also found a few bugs, fixed them, and hooked up the score counters, so the simulator is actually playable now. :)

Hopefully I'll be able to release this sometime in the next month or so...

Sunday, December 2, 2007

Paddles

Emulated the 555 timers which got the paddles working. I also hacked together a basic input system, so you can even move them around!

Finishing up the rest of the circuit is going to be a bit tricky. Pretty much every part of the remaining circuitry relies on all the other parts, so I won't be able to simulate them step by step like I have been so far, it'll all have to be done at once. We'll see what happens...

Sunday, November 25, 2007

Scores

Had a bit of time to work on this recently... I emulated the BCD to 7 segment decoder, and hooked up some of the related circuitry, which allowed the scores to be displayed. I also rewrote the some of the video code to only update the screen when something changes, instead of on every pixel, which made it a bit faster.

Sunday, November 18, 2007

Video

Finally got around to hooking up the video... Here is the first screen shot of the simulator in action. So far the "net" circuit has been emulated. It may not look like much, but that one tiny line requires the simulation of about a dozen different chips, timing circuits, hsync and vsync, and so on.

Things should be pretty straightforward from here, just a few more chips to simulate, and then hooking everything together. The hardest part will be emulating the 555 timers that are used for the paddles and a few other places... Hopefully I'll be able to finish this up sometime in the next few months :)