tag:blogger.com,1999:blog-72610332253396617652008-07-09T02:04:04.904-07:00adam's emulation wipadamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-7261033225339661765.post-8705898508938114492008-02-10T12:41:00.000-08:002008-02-10T12:50:29.709-08:00Dice 0.2 Released!<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_HtHqkOG-Oo8/R69hpj47vYI/AAAAAAAAABM/t2RCFk084a4/s1600-h/screenshot7.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_HtHqkOG-Oo8/R69hpj47vYI/AAAAAAAAABM/t2RCFk084a4/s200/screenshot7.png" alt="" id="BLOGGER_PHOTO_ID_5165454664253816194" border="0" /></a>Dice 0.2 has been released. Now supports 3 games, sound, and more.<br /><br />Note that Dice now has to be run from the command line, using the following format:<br /><br /><span style="font-style: italic;">dice gamename options<br /><br /></span>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.<br /><br /><span style="font-weight: bold;">Download Link<br /><span style="font-weight: bold;"></span></span><a href="http://sourceforge.net/projects/dice/">SourceForge.net Project Page</a><br /><br /><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;">What's New<br /><span style="font-weight: bold;"></span></span></span></span>-2 new games are supported:<br /> Atari Rebound<br /> Atari Gotcha (driver written by Dan Boris)<br /><br />-Preliminary Sound support<br /><br />-Optimization: Pong runs about 30% faster than previous versions<br /><br />-Fullscreen Mode: Add the command line option -fullscreen to run in full screen mode<br /><br />-Mouse Support: Add the command line option -mouse to use the mouse for Player 1<br /><br /><br />Enjoy!adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comtag:blogger.com,1999:blog-7261033225339661765.post-9108607141053128772008-01-11T12:59:00.001-08:002008-01-11T13:08:40.595-08:00Rebound<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_HtHqkOG-Oo8/R4fYxC19lII/AAAAAAAAAA8/kOi_7Re30tc/s1600-h/screenshot6.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_HtHqkOG-Oo8/R4fYxC19lII/AAAAAAAAAA8/kOi_7Re30tc/s200/screenshot6.png" alt="" id="BLOGGER_PHOTO_ID_5154326635637216386" border="0" /></a>Had a bit of free time recently, so I was able to get a few things done:<br /><br />1)Got Atari Rebound working fairly easily, there were only a few new chips that needed to be simulated. Pretty fun pong variation.<br /><br />2)Also hooked up audio to both games, although it's not perfect yet.<br /><br />3) Finally I added rom loading support, we'll see if that gets used on any games in the future :)adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comtag:blogger.com,1999:blog-7261033225339661765.post-31361710230690687392008-01-06T11:29:00.000-08:002008-01-06T12:15:32.093-08:00Emulator Released<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_HtHqkOG-Oo8/R4Es6y19lHI/AAAAAAAAAA0/FIa7vZnJCSM/s1600-h/screenshot5.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_HtHqkOG-Oo8/R4Es6y19lHI/AAAAAAAAAA0/FIa7vZnJCSM/s200/screenshot5.png" alt="" id="BLOGGER_PHOTO_ID_5152448837280699506" border="0" /></a>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...<br /><br /><span style="font-weight: bold;">Download Link</span><br /><a href="http://downloads.sourceforge.net/dice/dice.0.1.zip?modtime=1199628365&amp;big_mirror=0"></a><a href="http://sourceforge.net/projects/dice/">SourceForge.net Project Page</a><br /><br /><span style="font-weight: bold;">Controls<br /></span>5 - Insert Coin<br />Up,Down - Move Player 1 Paddle<br />A,Z - Move Player 2 Paddle<br />Esc - Quit<br /><br />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.<br /><br /><span style="font-weight: bold;">System Requirements</span><br />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.<br /><br /><span style="font-weight: bold;">Compiling</span><br />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.<br /><br /><span style="font-weight: bold;"></span>adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comtag:blogger.com,1999:blog-7261033225339661765.post-35899524419890892522007-12-11T10:03:00.001-08:002007-12-11T10:17:28.139-08:00Ball<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_HtHqkOG-Oo8/R17RD6RzuRI/AAAAAAAAAAs/JGSqfnylkPw/s1600-h/screenshot4.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_HtHqkOG-Oo8/R17RD6RzuRI/AAAAAAAAAAs/JGSqfnylkPw/s200/screenshot4.png" alt="" id="BLOGGER_PHOTO_ID_5142777689617447186" border="0" /></a>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.<br /><br />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. :)<br /><br />Hopefully I'll be able to release this sometime in the next month or so...adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comtag:blogger.com,1999:blog-7261033225339661765.post-2939542486756649052007-12-02T11:42:00.001-08:002007-12-02T11:47:53.635-08:00Paddles<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_HtHqkOG-Oo8/R1MK16RzuQI/AAAAAAAAAAk/D8z0wQZ0KJs/s1600-R/screenshot3.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_HtHqkOG-Oo8/R1MK16RzuQI/AAAAAAAAAAk/xUyzPYtMSqU/s200/screenshot3.png" alt="" id="BLOGGER_PHOTO_ID_5139463521053161730" border="0" /></a>Emulated the 555 timers which got the paddles working. I also hacked together a basic input system, so you can even move them around!<br /><br />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...adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comtag:blogger.com,1999:blog-7261033225339661765.post-12126545289502964302007-11-25T17:43:00.001-08:002007-11-25T17:48:04.009-08:00Scores<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_HtHqkOG-Oo8/R0olMyKBR3I/AAAAAAAAAAc/KGjukX6HDgw/s1600-h/screenshot2.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_HtHqkOG-Oo8/R0olMyKBR3I/AAAAAAAAAAc/KGjukX6HDgw/s200/screenshot2.png" alt="" id="BLOGGER_PHOTO_ID_5136959226521929586" border="0" /></a>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.adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comtag:blogger.com,1999:blog-7261033225339661765.post-45533693522426407542007-11-18T09:57:00.000-08:002007-11-18T10:08:55.505-08:00Video<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_HtHqkOG-Oo8/R0B_gCKBR2I/AAAAAAAAAAU/eVc1vo8cESY/s1600-h/screenshot.png"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_HtHqkOG-Oo8/R0B_gCKBR2I/AAAAAAAAAAU/eVc1vo8cESY/s200/screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5134243763513804642" border="0" /></a>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.<br /><br />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 :)adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comtag:blogger.com,1999:blog-7261033225339661765.post-51475642164474417302007-11-15T22:21:00.001-08:002007-11-15T22:24:23.218-08:00A little progressHaven't had a whole lot of time to work on this lately... I managed to rewrite and reorganize most of the code, it's a lot cleaner now, but unfortunately about 10% slower... I also added some nice logging functions which should make debugging a lot easier. Still haven't gotten around to hooking up the video yet, hopefully I'll be able to do that soon.adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comtag:blogger.com,1999:blog-7261033225339661765.post-18291828393041538992007-11-05T21:56:00.000-08:002007-11-05T22:05:23.412-08:00Current ProjectThe project I am currently working on is a discrete logic simulator, for old arcade games without a CPU. It works by simulating each logic chip on the board individually. It's been done before, but I wanted to see if the simulation speed couldn't be improved a bit. How much faster? I don't know yet... initial tests look promising, but there's still a long way to go.<br /><br />The first game to be simulated will be Pong (of course). So far a few of the basic timing circuits have been simulated. Next I'm going to work on hooking up the video and simulating the rest... stay tuned!adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.comtag:blogger.com,1999:blog-7261033225339661765.post-55039161515939455622007-11-01T15:01:00.001-07:002007-11-01T15:01:52.541-07:00first postjust making sure this damn thing works properly...adamhttp://www.blogger.com/profile/04966491669455037155noreply@blogger.com