DiscreteSIM 1.0
by Dan Boris (danlb_2000@yahoo.com)

Copyright Notice, Disclaimer, License
DiscreteSIM is Copyright  2007, Dan Boris. 

THIS SOFTWARE IS PROVIDED "AS-IS" WITHOUT ANY EXPRESSED OR IMPLIED WARRANTY. 
IN NO EVENT WILL THE AUTHOR BE HELD LIABLE FOR ANY DAMAGES ARISING FROM THE 
USE OF THIS SOFTWARE. PLEASE SEE THE ENCLOSED "LICENSE.TXT" FILE FOR THE 
COMPLETE LICENSING TERMS. 


Prerequisites

To run DiscreteSIM you will need the Microsoft .NET Framework 1.1 installed.
You can get this from Microsoft's web site.

What is DiscreteSIM?

Discrete SIM was designed as a proof of concept for a method of simulating 
the operation of discrete logic arcade games. Since these machines did not 
have a CPU and ROM code it's hard to simulate these machines using 
traditional emulation. Pure functional simulation of these games is also
error prone especially since most people do not have access to the original
hardware to compare against. 

The approach taken by DiscreteSIM is to simulate the game circuit at the 
component level using a generic digital logic simulator. This allows the
node list of the original circuit derived from the schematics to be input
into the program and then simulated to see the video output and game
mechanics. 

Unfortunately the component level simulation is takes a lot of processing 
power so even on a very fast PC it probably will not produce a playable
frame rate. On an AMD Athlon 64 3000+ system it takes about 8 seconds to 
render each frame. 

Usage

When you start the program two Windows will appear, one is the control panel
the other is the game display. To start the simulation, click the start button.
To pause the simulation, click pause, then click the same button to un-pause. 
Clicking the stop button will stop the simulation, restarting it with the start
button will also reset it.

On the control panel you can also set the timeout for the two paddle position 
timers (this is equivalent to turning the paddle knobs on the real game), and 
set the state of the coin switch. When you change any of these setting you must
click update to update the simulation.


Known Issues

- Ball does not reverse direction when hitting the paddles or hitting the 
edge of the screen during attract mode. 

- No sound. Due to the speed of the simulator there is no practicle way to 
simulate this.

- Speed. The simulation is very slow and is not meant to produce a playable
simulation.

Source Code

To compile the source code you will need Microsoft Visual Studio 2003.