tag:blogger.com,1999:blog-3042238976072465232024-03-24T17:20:34.292-07:00Matt Ownby's Cool ProjectsMatt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.comBlogger677125tag:blogger.com,1999:blog-304223897607246523.post-29606249872449994332024-03-13T14:52:00.000-07:002024-03-15T10:03:20.753-07:00Halcyon clone v2 repair log<p></p><ul style="text-align: left;"><li> Wrote test ROM, then hooked up logic analyzer to Z80 to see how far it got. Was surprised to see that RESET' was held low. Using logic probe, looked at U45 which is a flip flop that controls the reset circuit and saw that VRESET' was low despite WRESET' being high. Hooked up logic analyzer to U45 and saw that pin 13 (flip flop reset) pulses low shortly after WRESET' goes high, which seems like it shouldn't be happening.</li><li>Hooked up logic analyzer to U44 and saw that pin 8 (which is supposed to be an output) is mirroring pins 12 (an input that takes in a 4 MHz clock) and 11 (an output that takes the 4Mhz clock to the MC6803P microcontroller). Pin 8 seems to be completely ignoring its inputs, pins 9 and 10. The Halcyon uses a 74HC08 chip for U44 instead of a 74LS08 (which I am using for my prototype) so I'm going to try the 74HC08 to see if it makes a difference.</li><li>Replacing U44 with 74HC08 fixed this problem!</li></ul><p></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-35462868855401199912024-02-13T15:23:00.000-08:002024-02-13T15:23:12.322-08:00v1 of Halcyon clone ready for testing<p> It most likely has defects, but it's good enough for me to get some of these fabricated and start testing it.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEigkszB4iJn5EkJBRyTPvGGblYkOiNEDf4QL0yhT7luB_Z6PE-NMB1xhpRSJnJ34zDPJQqq0UliHEiqBOqP_XxL-4lnDjrKaAjU3JXUUzH32nzq9TGCkped4VEQvlr-ENO3-LF_2OqBEzzGHqebTX5D5Z4dQP8n0821AxqnVh6elLq1M3OuRZ6lzSPkCU8A" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="1058" data-original-width="1505" height="225" src="https://blogger.googleusercontent.com/img/a/AVvXsEigkszB4iJn5EkJBRyTPvGGblYkOiNEDf4QL0yhT7luB_Z6PE-NMB1xhpRSJnJ34zDPJQqq0UliHEiqBOqP_XxL-4lnDjrKaAjU3JXUUzH32nzq9TGCkped4VEQvlr-ENO3-LF_2OqBEzzGHqebTX5D5Z4dQP8n0821AxqnVh6elLq1M3OuRZ6lzSPkCU8A" width="320" /></a></div><br /><br /><p></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-22954603572149607862024-01-15T16:58:00.000-08:002024-01-16T13:30:40.603-08:00COP421 reader finished!<p> I finished building my COP421 reader and it seems to work perfectly.</p><p>I confirmed that the Halcyon COP421 program is identical to the dump that Mark Broadhead made over 20 years ago of the arcade Thayer's Quest COP421 program.</p><p>I uploaded everything (source code, CAD files, etc) to github, which you can find here: <a href="https://github.com/rulecity/COP421Reader/">https://github.com/rulecity/COP421Reader/</a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://github.com/rulecity/COP421Reader/blob/main/COPReaderFinishedExample.jpg?raw=true" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="800" data-original-width="600" height="320" src="https://github.com/rulecity/COP421Reader/blob/main/COPReaderFinishedExample.jpg?raw=true" width="240" /></a></div><br /><p><br /></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-53212613832737814722024-01-13T12:40:00.000-08:002024-01-13T12:40:06.236-08:00Building a COP421 reader<p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyQbP0u7d88A_xNO_g-PpfzeDhs3gPyrWEXiXk0JtS01I6bBTrYjl-mt_jq2upmvZMterpwuR_kUGne8sTv_uLcvK5kK9O2GUUxK4ub0UT_95x0Ab7-zLL_9f8OO-HLO790qeACtZfxdjUW6nIyu8BqOvgA06vSBtinHtKNavxwLmzziXTomf-6p6td74x/s4032/IMG_4287.HEIC" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyQbP0u7d88A_xNO_g-PpfzeDhs3gPyrWEXiXk0JtS01I6bBTrYjl-mt_jq2upmvZMterpwuR_kUGne8sTv_uLcvK5kK9O2GUUxK4ub0UT_95x0Ab7-zLL_9f8OO-HLO790qeACtZfxdjUW6nIyu8BqOvgA06vSBtinHtKNavxwLmzziXTomf-6p6td74x/s320/IMG_4287.HEIC" width="240" /></a></div>Just to be sure I get every last detail that I can from the Halcyon that I have on loan, I've decided to follow the excellent instructions from here ( <a href="http://john.ccac.rwth-aachen.de:8000/patrick/COPSreader.htm">http://john.ccac.rwth-aachen.de:8000/patrick/COPSreader.htm</a> ) and create my own COP reader to read Halcyon's COP chip. Now, I am 90% sure it will be the same one as on Thayer's Quest arcade, but I need to make 100% sure. I could use the same device as in the link, but I think it will be more fun/challenging to create my own. I am re-using some parts that I've already used with Dexter since I'm more familiar with them (mainly the FT232 USB IC and the ATMega644p microcontroller at 18.432 MHz).<p></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-42301327588743356772023-03-23T16:02:00.001-07:002023-03-23T16:02:17.332-07:00Building a Halcyon cartridge reader<p> Using the Thayer's Quest arcade schematics and the Thayer's Quest arcade 'cartridge', I made a simple PCB adapter so that the cartridge could be read in an EPROM reader.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6sxnj0frEXydAoJ9Uk02Mgad_yoxtEAOC5qgLAkPGQo_g-tPTCxP5Cs7RFv7xGBNJKwoakS-EIiAb_qxaD58JacbPt13pQSR-jgFmAHN_XPLKRerI5Nux8z3IFbvOS77nuzfqF5OKtWgd2RmchXcxxJXFl4PXpUNF21mYLpSPLLVdOiLjRVM1JeW2HQ/s4032/IMG_3399.HEIC" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6sxnj0frEXydAoJ9Uk02Mgad_yoxtEAOC5qgLAkPGQo_g-tPTCxP5Cs7RFv7xGBNJKwoakS-EIiAb_qxaD58JacbPt13pQSR-jgFmAHN_XPLKRerI5Nux8z3IFbvOS77nuzfqF5OKtWgd2RmchXcxxJXFl4PXpUNF21mYLpSPLLVdOiLjRVM1JeW2HQ/s320/IMG_3399.HEIC" width="240" /></a></div><br /><p>First test was the arcade 'cartridge' to make sure I didn't damage anything.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMO7LB7sFrsDOWYOfh3GhkBQoJahqG-xB94oh7ADDhmhJM8IXkRyZK9XjQNH6b2sUVgeKwMcvLCrZ6zGBeXoH6-4-A8XUqoh2q6ZyXSt0FWW9FY9WBeG6YOX8vKq4kS73W2_aj6nLglZc-FCXHvUJh-6qG5cImHWltAOPZe9vAZiNQlsnmGq65Did7DA/s4032/IMG_3400.HEIC" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMO7LB7sFrsDOWYOfh3GhkBQoJahqG-xB94oh7ADDhmhJM8IXkRyZK9XjQNH6b2sUVgeKwMcvLCrZ6zGBeXoH6-4-A8XUqoh2q6ZyXSt0FWW9FY9WBeG6YOX8vKq4kS73W2_aj6nLglZc-FCXHvUJh-6qG5cImHWltAOPZe9vAZiNQlsnmGq65Did7DA/s320/IMG_3400.HEIC" width="240" /></a></div><br /><p>After that worked, I tried the actual Thayer's Quest Halcyon cartridge.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtIyidB_0_hQN5TblY_z9KywIt9mrSp_yzCZpq1sD-e5LYYtwNm3dgVHDbiHm62v_nECJrOCFz0bSEY-rK1dhXcnpkAWEYONVllg2a4Bf3CcIZ3dJ1NelS36yTmtHP1JbPe3YmzIbUIjLYfyBhDI6rmZnfVgiiyhESxFWa7Ay4OlkVIxb4C7dQfXQBUA/s4032/IMG_3401.HEIC" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtIyidB_0_hQN5TblY_z9KywIt9mrSp_yzCZpq1sD-e5LYYtwNm3dgVHDbiHm62v_nECJrOCFz0bSEY-rK1dhXcnpkAWEYONVllg2a4Bf3CcIZ3dJ1NelS36yTmtHP1JbPe3YmzIbUIjLYfyBhDI6rmZnfVgiiyhESxFWa7Ay4OlkVIxb4C7dQfXQBUA/s320/IMG_3401.HEIC" width="240" /></a></div><br /><p><br /></p><p>Conclusion? It works!</p><p><br /></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-3213472315695530212023-03-06T17:47:00.005-08:002023-03-06T20:39:36.016-08:00Bega's Battle - Sync Generator Replacement - Testing with Super Don NTSC decoder<p> </p><div class="separator" style="clear: both; text-align: center;">I don't have a Data East chroma PCB so I decided to try rigging up a Super Don NTSC decoder. The colors are a little off, but it works well enough for testing!</div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPQWuSg2VgSQx3yEt3WAL-8WDggqdFmxDe0TYdy_GIbX5Tegl-NDDWBXMxcxLAya4RwiNmh8XVG-dwKqi4I-qcomDBFOQZutqOYV_0zXXbd23ShIT8WtbWLCOISAGRlrQFSYuNBFCAmjgFocrSfgyN8kZEFDupWmJ5Q9YutlRKZNWkTrxcliV2LEUTTQ/s4032/BegasSuperDonItWorksWide.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPQWuSg2VgSQx3yEt3WAL-8WDggqdFmxDe0TYdy_GIbX5Tegl-NDDWBXMxcxLAya4RwiNmh8XVG-dwKqi4I-qcomDBFOQZutqOYV_0zXXbd23ShIT8WtbWLCOISAGRlrQFSYuNBFCAmjgFocrSfgyN8kZEFDupWmJ5Q9YutlRKZNWkTrxcliV2LEUTTQ/s320/BegasSuperDonItWorksWide.JPG" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZuVEyNq-MIWrbsw75vLPzZFIe-fXuRPKcIH5FdlEMW-89DkM7I11xlWKTgmXowxePcTF3xDwh0TlvNj70x8q3ymA1zOBU0wBiXv0oRzGm6NwfFcSZPQLXMZ4XkK7xiI4kLhXGJRC5ByeU7C423O-mUApEhJB2-0bhQXg1sTDf3rlz6s2ODGSXjKXWVQ/s4032/IMG_3306.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZuVEyNq-MIWrbsw75vLPzZFIe-fXuRPKcIH5FdlEMW-89DkM7I11xlWKTgmXowxePcTF3xDwh0TlvNj70x8q3ymA1zOBU0wBiXv0oRzGm6NwfFcSZPQLXMZ4XkK7xiI4kLhXGJRC5ByeU7C423O-mUApEhJB2-0bhQXg1sTDf3rlz6s2ODGSXjKXWVQ/s320/IMG_3306.JPG" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1CxSJA_-BPDiN96W_LWF-qBmsQsNm1Mb5BmMg_vE80OhGzqg-yglIw_aH8hLX6V03uDUSC9UIAcH6UGAI8ygY0nXWL47ASLb3PrhUpZWaQBR00rdXXixHecmUGJTJOAs9UukLqaO0Rg7VBw3yAL3FqsLr_26YHIhVh4sXp88DZfysudozcW7dj7e4Pg/s4032/IMG_3307.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1CxSJA_-BPDiN96W_LWF-qBmsQsNm1Mb5BmMg_vE80OhGzqg-yglIw_aH8hLX6V03uDUSC9UIAcH6UGAI8ygY0nXWL47ASLb3PrhUpZWaQBR00rdXXixHecmUGJTJOAs9UukLqaO0Rg7VBw3yAL3FqsLr_26YHIhVh4sXp88DZfysudozcW7dj7e4Pg/s320/IMG_3307.JPG" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbE4xuI9ofSmfr7NLyID6i8tMIfGlnDK4oxMDAvyRCPyItZmc31zqsWWpdpMmDMwZxSZ2_jIvuKcnrOybr2mXNNpMtGMmX38MgClwDjPJwJ1EB3rsX-AgVuqSqZYm_FaZ8C7BIJ4KFJG1fHdohoXR77uZ48rQnMQQ99wVjKmOgY0oGpCkwOHLOgxjd5g/s4032/IMG_3308.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbE4xuI9ofSmfr7NLyID6i8tMIfGlnDK4oxMDAvyRCPyItZmc31zqsWWpdpMmDMwZxSZ2_jIvuKcnrOybr2mXNNpMtGMmX38MgClwDjPJwJ1EB3rsX-AgVuqSqZYm_FaZ8C7BIJ4KFJG1fHdohoXR77uZ48rQnMQQ99wVjKmOgY0oGpCkwOHLOgxjd5g/s320/IMG_3308.JPG" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br />Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-28316714761613479082023-02-16T12:44:00.002-08:002023-02-16T12:44:51.169-08:00Bega's Battle Sync Generator Replacement - How to install<div>My Bega's Battle / Cobra Command / Road Blaster mod to allow Dexter and other Sony laserdisc players to work with these laserdisc games is almost complete! Here is the video I've created that shows how to perform the mod.</div><div><br /></div><iframe frameborder="0" height="270" src="https://youtube.com/embed/_zhSSuDMjps" width="480"></iframe>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-74054009383394151022023-01-15T14:03:00.000-08:002023-01-15T14:03:11.725-08:00My Migraine Remedy<p>Do you hate migraines? Do you have trouble getting rid of them once they come? Here’s my "shotgun" recipe to kill migraines:</p><p>- take two Excedrin Migraine pills</p><p>- drink one caffeinated beverage* (I use Diet Mountain Dew)</p><p>- do about 30 minutes of cardio where your heart rate is in the “green” zone (70-80% max heart rate), drinking lots of water. Migraine will slowly go away the longer you exercise.</p><p>- go to bed early and get extra sleep</p><p>Sometimes not all of these steps are necessary, but doing all of them almost always works for me.</p><p>* - Caveat: I avoid caffeinated beverages almost always _except_ when I am applying this remedy. If you drink caffeinated beverages regularly, your results may be different. </p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-42990142760690747662022-10-05T21:02:00.001-07:002022-10-05T21:02:06.297-07:00Cobra Command (dedicated) confirmed working with Dexter!<p> Very exciting progress to show here.</p><p><br /><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/yYgHnls3fak" title="YouTube video player" width="560"></iframe></p><p>Thanks to Mike Treu for testing for me!</p><p>By the way, not only will this mod work with Dexter, but it will also work with the Sony LDP-1450 which Mike also tested.</p><p>The mod replaces 16K on the bottom Data East board with a custom PCB that I designed. So unfortunately, it will require modifying the game hardware, which I have tried to avoid as much as possible but which was ultimately the only feasible solution I could find for these games (Bega's Battle, Cobra Command and Road Blaster).</p><p>After the mod is installed, the game will work with:</p><p></p><ul style="text-align: left;"><li>The original Sony LDP-1000A (yes, I maintained backward compatibility)</li><li>Dexter</li><li>Sony LDP-1450 and probably most other Sony players.</li></ul><p></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-64319085183796218722022-09-21T10:01:00.004-07:002022-09-21T10:01:51.270-07:00Bega's Battle with a non-original laserdisc player?<p> Can Bega's Battle work on a laserdisc player other than the Sony LDP-1000A?</p><p><br /></p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/5OGwKMkJwSY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-737087153230679382022-09-17T11:25:00.005-07:002022-09-17T11:25:54.474-07:00How to kill ants<p>So, I was using peanut butter as bait for mouse traps in my garage, but ants kept coming and stealing it. I find it rather ironic that I had to get rid of a second pest (ants) in order to deal with the pest I originally was targeting (mice).</p><p>Here's an ant bait recipe I took from another website and modified:</p><p></p><ul style="text-align: left;"><li>1 teaspoon Peanut Butter</li><li>2 teaspoons Borax (yes, the stuff used as a household cleaner; this stuff is the ant poison)</li><li>A small amount of vegetable oil</li></ul><div>Mix the peanut butter and borax together as best as you can. Add small amounts of vegetable oil until consistency is like the peanut butter was before you added the borax. This is important to keep the bait from drying out (ants will ignore it if it dries out). Place bait in the place you see ants (or where ants are known to come steal your mouse bait!!). Do not interfere with the ants as they take the bait back to their queen. This will take about 4 days. Afterwards, the entire colony will be dead.</div><div><br /></div><h3 style="text-align: center;">Day 1</h3><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlFEEWpmPwnkTuWcOOl6NSW-zqBI1qv8bqXSDPREqVBsU84ZzF_Wkw-Gx1xEnOs1UEyTDpFbcf9Ol8jktEXTLXbqHbfXdgkdy2zVO6QeX20lHoH8MnNOOmiVNFoPd2PXIzi-_qkLfgdqrjoPKQm2HrpOet6M9h1y8tFiRONfsGp-12iW6CczKZ0-7w-A/s4032/IMG_2193.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlFEEWpmPwnkTuWcOOl6NSW-zqBI1qv8bqXSDPREqVBsU84ZzF_Wkw-Gx1xEnOs1UEyTDpFbcf9Ol8jktEXTLXbqHbfXdgkdy2zVO6QeX20lHoH8MnNOOmiVNFoPd2PXIzi-_qkLfgdqrjoPKQm2HrpOet6M9h1y8tFiRONfsGp-12iW6CczKZ0-7w-A/s320/IMG_2193.JPG" width="240" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><h3 style="clear: both; text-align: center;">Day 2</h3><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTi8DNG_gNysS09Pl9Wi_NH0rJesYFHDVBZxSbvwP8KFGZ7A4nYbN2A2nNdL6Vc1yVGhMJOxSDwUcngbxGjSfyV1cIbf_WEcyXvbIzKyLzJqHy9VgCmEmb4eWU2IRgiG8ZLl01KjrYQeSGvHPvTmdwUrgz1z0cISyHBPxXOjskN_JfO7Y8KRqwsc16Hw/s4032/IMG_2194.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTi8DNG_gNysS09Pl9Wi_NH0rJesYFHDVBZxSbvwP8KFGZ7A4nYbN2A2nNdL6Vc1yVGhMJOxSDwUcngbxGjSfyV1cIbf_WEcyXvbIzKyLzJqHy9VgCmEmb4eWU2IRgiG8ZLl01KjrYQeSGvHPvTmdwUrgz1z0cISyHBPxXOjskN_JfO7Y8KRqwsc16Hw/s320/IMG_2194.JPG" width="240" /></a></div><p><br /></p><h3 style="text-align: center;">Day 3</h3><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5P6CunKiVRwMWKJgcWNpfOTmEFXqpRLIaUNSFIWc3myuAHEnQz-kJfZjHT85gdSxr66i1EgxOF_xqJC7FPb910lOPp4A0sPj7dSgJKs9KvX7m-7e4sWgFAevnohWUzOHz9g_fq5nVyypblV6Eyg-oYj6o9uF9W-aT_Ah-rYq7FIhFlud6HzunRNja2A/s4032/IMG_2195.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5P6CunKiVRwMWKJgcWNpfOTmEFXqpRLIaUNSFIWc3myuAHEnQz-kJfZjHT85gdSxr66i1EgxOF_xqJC7FPb910lOPp4A0sPj7dSgJKs9KvX7m-7e4sWgFAevnohWUzOHz9g_fq5nVyypblV6Eyg-oYj6o9uF9W-aT_Ah-rYq7FIhFlud6HzunRNja2A/s320/IMG_2195.JPG" width="240" /></a></div><p><br /></p><h3 style="text-align: center;">Day 4</h3><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeoGt122OhvfPR-9l5QueJS4xx6bU8gGMfMzKEWlYeBFraO5tpLInlatFIWj0vfmgbJEcgeQZJSpEnwEuvDiDERj38KonNCtGELU9jKHpeV2fuql7vXJrnMzCanSh7b10XVxGxphfHYhtMM9U5zoeZuOGF4TSuimHAJ09Ywcbp1z9akWgeUBAYZ0yUbw/s4032/IMG_2196.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeoGt122OhvfPR-9l5QueJS4xx6bU8gGMfMzKEWlYeBFraO5tpLInlatFIWj0vfmgbJEcgeQZJSpEnwEuvDiDERj38KonNCtGELU9jKHpeV2fuql7vXJrnMzCanSh7b10XVxGxphfHYhtMM9U5zoeZuOGF4TSuimHAJ09Ywcbp1z9akWgeUBAYZ0yUbw/s320/IMG_2196.JPG" width="240" /></a></div><br /><div><br /></div><p></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-25876586986589865702022-09-09T13:23:00.001-07:002022-09-09T13:23:07.875-07:00Making a MC44144 tester for Cobra Command / Dexter research<p>I've pondered about whether the "obsolete" MC44144 chip could be useful for making Bega's Battle (and Cobra Command dedicated) work with Dexter. Although it isn't in production anymore, from what I can tell, it's still fairly obtainable.</p><p>Here's the PCB I've designed to help test it and see how well it works.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjObtsfxKBw-JQYeHA5EFJiGP-WhObHfqs-mSBfCJWctYy77TTJnVQIGu0RHKUAAPWRCtWhlKzV6beSSBw-T8Q6T0pJLBDymIuVH0-Q6CAbv_EynGJqfXya6j6YiLt1tmSKS2-7H3xiYj5a0L0Q12qGf_1huikDt1kcwOjj0d4v2ZYOBc2B0sC0dKUO4Q/s1398/mc44144test.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="745" data-original-width="1398" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjObtsfxKBw-JQYeHA5EFJiGP-WhObHfqs-mSBfCJWctYy77TTJnVQIGu0RHKUAAPWRCtWhlKzV6beSSBw-T8Q6T0pJLBDymIuVH0-Q6CAbv_EynGJqfXya6j6YiLt1tmSKS2-7H3xiYj5a0L0Q12qGf_1huikDt1kcwOjj0d4v2ZYOBc2B0sC0dKUO4Q/s320/mc44144test.png" width="320" /></a></div><br /><p><br /></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-50858097860993204912022-03-18T22:56:00.004-07:002022-03-19T15:15:30.626-07:00Cobra Command wouldn't boot<p>I've been trying to get my Cobra Command boardset (Bega's Battle conversion) up and running. I have no official wiring harness, so I've been making my own wiring + PCB adapters, including power, serial, and RGB video. When I tried powering up Cobra Command and plugging it into Dexter I got nothing.</p><p>So I did what anyone who loves tedious troubleshooting work would do. I sniffed the 6502 CPU to see where the program was getting stuck.</p><p><br /></p>I found that the program was looping endlessly at a subroutine at 0xE176:<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjWJ8yIJWn61as7vy6Ud3d7lOBqI_Hj3L1uzXMWUEObjLH65BLG57uwB1_L3pSN6EGZjP3-j-kn4N9GS9ROIoegsWxcQAEr2rNWFtuAJ7h7-mwEz3wkhOZLXwPHOOA27rpOigknrgO2gVCLJH7SXtIWdHah0X4dai8WNWVvdEcxwfzxOuKDzeZoeDXiSA=s694" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="180" data-original-width="694" height="83" src="https://blogger.googleusercontent.com/img/a/AVvXsEjWJ8yIJWn61as7vy6Ud3d7lOBqI_Hj3L1uzXMWUEObjLH65BLG57uwB1_L3pSN6EGZjP3-j-kn4N9GS9ROIoegsWxcQAEr2rNWFtuAJ7h7-mwEz3wkhOZLXwPHOOA27rpOigknrgO2gVCLJH7SXtIWdHah0X4dai8WNWVvdEcxwfzxOuKDzeZoeDXiSA=s320" width="320" /></a></div><br /><div>But I wanted to know what was calling this subroutine. Through some clever triggering, I was able to narrow it down to this area of code:</div><div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh4GqhKdMhiIcwxr5fMxwjEwJRD087QcHg8wDUBaedXdCNjqEzJVZW8rNhKwXfNxVuZx_p2xiHpx9WM7YkGcmDyo5MGyudeCyE7-hVm_iQyUvLhVeLTaxyptXYvt3RWRS8I3LLbHNPTvbJGGLykYGaZ_wMkYd5eJ0HOaTjdh7_0x7sX05v0ChgS4rSOCg=s900" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="216" data-original-width="900" height="77" src="https://blogger.googleusercontent.com/img/a/AVvXsEh4GqhKdMhiIcwxr5fMxwjEwJRD087QcHg8wDUBaedXdCNjqEzJVZW8rNhKwXfNxVuZx_p2xiHpx9WM7YkGcmDyo5MGyudeCyE7-hVm_iQyUvLhVeLTaxyptXYvt3RWRS8I3LLbHNPTvbJGGLykYGaZ_wMkYd5eJ0HOaTjdh7_0x7sX05v0ChgS4rSOCg=s320" width="320" /></a></div></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjh3IdPvKdt81_F3kIhN2LvPF9xlJZ1PT_FrqgNHsIAQaKJZG6_m4TwlfvGh8rFB1Dion4TBUn7U3It1zNYRP3iP7vezb5ksULZ4lJ8X7G3AfLF4mXR9Pvz3v_ta-xh5JhdnZ1NSZHmw-Sqq0a1-zeZ4L9-YsSJfsmw9n0t88NiNP8i1OeNBAdl7f68Nw=s672" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="200" data-original-width="672" height="95" src="https://blogger.googleusercontent.com/img/a/AVvXsEjh3IdPvKdt81_F3kIhN2LvPF9xlJZ1PT_FrqgNHsIAQaKJZG6_m4TwlfvGh8rFB1Dion4TBUn7U3It1zNYRP3iP7vezb5ksULZ4lJ8X7G3AfLF4mXR9Pvz3v_ta-xh5JhdnZ1NSZHmw-Sqq0a1-zeZ4L9-YsSJfsmw9n0t88NiNP8i1OeNBAdl7f68Nw=s320" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;">So basically, the game is sending the "clear all" command to the laserdisc player and blocking indefinitely until it gets a response (which may never happen).</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Conclusion? Serial I/O isn't making it from the game to Dexter.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">After some more poking around, the answer ended up being quite simple.</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiwNwGa1KxRw29FhvdqSTpLaEtZXBpC-GI1dhF5r1K2etZtELZi9jYE8KbINbWFqJRmW0DwuR1l_eyv5h4i5Aw3O5rSqVGQdDOl0OMxLEXhiVqmaxY96_e_eQ5mehdc8yz7qf3pbVmKjpm-1MkJQ8IeMBHjK7kOgkF0MdbrEVEa-Q6fZS5bxK0N4wUbrg" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="56" data-original-width="538" height="33" src="https://blogger.googleusercontent.com/img/a/AVvXsEiwNwGa1KxRw29FhvdqSTpLaEtZXBpC-GI1dhF5r1K2etZtELZi9jYE8KbINbWFqJRmW0DwuR1l_eyv5h4i5Aw3O5rSqVGQdDOl0OMxLEXhiVqmaxY96_e_eQ5mehdc8yz7qf3pbVmKjpm-1MkJQ8IeMBHjK7kOgkF0MdbrEVEa-Q6fZS5bxK0N4wUbrg" width="320" /></a></div><br />The game is communicating at 1200 bps! I've never seen a game communicate this slowly to the laserdisc player!</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">I was getting tripped up because I was assuming 9600 bps and even after staring at the logic analyzer capture and seeing traffic, my brain just didn't make the connection that maybe everything on the game PCB was working correctly and I just was assuming the incorrect clock rate!</div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-68592429853921841442021-11-20T13:25:00.006-08:002021-11-20T20:18:53.787-08:00My Dragon's Lair 2's RAM wasn't working. Here's how I [finally] discovered the problem!<p>I've had a DL2 boardset for a few years but have never tried to power it on. I also did not have a harness for it. Well, recently I decided to try to get it running. After making a power harness and a speaker harness, and burning a v3.19 EPROM, it was time to give it a shot!</p><p>Well, after powering it on, nothing happened. Three LEDs lit up, but there were no beeps and no I/O on the serial port that I could see. Ugh. After scanning some forums, I determined that the most common problem with getting DL2 working was the null modem adapter (it is non-standard). I studied the schematics and owners manual and determined that this was likely not my problem.</p><p>As I was basically blind, I decided to do what anyone would do who is a glutton for punishment: to sniff the pins of the CPU to see where it was getting stuck (or if it was even working).</p><p>The CPU type is 8088 which I was very unfamiliar with. I mean, I knew the assembly language command set quite well, but knowing what the actual pins on the CPU did, I was in the dark.</p><p>I pulled up the datasheet and was kinda mortified about how convoluted this CPU's design is. Unlike other 8-bit CPUs of the era (Z80, 6809), this 8088 CPU can address 1M of addressing space (instead of 64k) which you'd think would be a good thing. But unfortunately, to cram this functionality into 40 pins, they share the address lines with the data bus and some status bits. This makes decoding the CPU quite a challenge and often requires a separate IC near the CPU to present a normal address and data bus for the rest of the system. I am frankly a little shocked that intel won the CPU wars of the 80's as a result of this.</p><p>In order to make parsing a logic analyzer capture of the CPU more convenient, I needed to sniff a pin of said separate IC to make my life easier. This pin is called the ALE (hehe) pin, or Address Latch Enabled. Studying a hard-to-read schematic of the DL2 PCB, I was barely able to make this out on some empty pins that the DL2 PCB designers had kindly added to the PCB to make troubleshooting easier. (Had they not done this, I would've had to figure out a way to attach to a 100 pin surface mount part. Not my idea of fun!)</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGNFusjEXV-edN9dkYFTjLAsRLMw54t_w-dpce0iW0NyJRIrCVmJyDHS7-lfe7gMIPDoiVBb09OkDkWrgBlD33FPPed3nP_9GsbNVVxWQoZyQ-tgc-YurkXnpBocCWaDfMtQcAbfx5kMld/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="625" data-original-width="609" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGNFusjEXV-edN9dkYFTjLAsRLMw54t_w-dpce0iW0NyJRIrCVmJyDHS7-lfe7gMIPDoiVBb09OkDkWrgBlD33FPPed3nP_9GsbNVVxWQoZyQ-tgc-YurkXnpBocCWaDfMtQcAbfx5kMld/" width="234" /></a></div><br />Here is the wire I soldered onto this pin in order to attach the logic analyzer pin.<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip_dCnQtkNSJ00kGKDGvEjf6hlQr4n0UeH-GQrvwFK-s0E7KDLXMdDHah528WDnNKPjRN2KN9DVBSSbR5OOjFD_zeKGkOp805Xhs3SouHJUIEcPY3WyyGi-ij-X7N3a4vGFt87hM1Sxr-W/s4032/IMG_0255.HEIC" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEip_dCnQtkNSJ00kGKDGvEjf6hlQr4n0UeH-GQrvwFK-s0E7KDLXMdDHah528WDnNKPjRN2KN9DVBSSbR5OOjFD_zeKGkOp805Xhs3SouHJUIEcPY3WyyGi-ij-X7N3a4vGFt87hM1Sxr-W/s320/IMG_0255.HEIC" width="240" /></a></div><br /><p>I then used a 40-pin clip to attach my logic analyzer to the CPU itself.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5rBUssWCuDQmonhWiklLQDw0VWVQMHltH7budN0s6J7Q8mcgk4gqCfFLSjBZewV3VZ7WaSx8y3hB9Qn9-6_VKU8n8vkr3ya8djLpYNJrUXIzS2aBg189pp7TyQm7_ez_54I744RxTqpvO/s4032/IMG_0256.HEIC" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5rBUssWCuDQmonhWiklLQDw0VWVQMHltH7budN0s6J7Q8mcgk4gqCfFLSjBZewV3VZ7WaSx8y3hB9Qn9-6_VKU8n8vkr3ya8djLpYNJrUXIzS2aBg189pp7TyQm7_ez_54I744RxTqpvO/s320/IMG_0256.HEIC" width="240" /></a></div><br /><p>After sniffing some random traffic, I noticed that the program flow was not leaving the "BIOS" section of the ROM. I also noticed that the ROM seemed to be executing blank code or getting lost and branching/jumping to invalid code.</p><p>At this point, I was completely confused. I disassembled the ROM in IDA and started setting triggers on the logic analyzer to see if program execution got to certain parts of the code. This turned out to be much easier than just brute-forcing my way through arbitrary captured data.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTZPb2mP3OC1VEmbLKww7mcSRDVJL6G4JKZRTnZSoz2CEJGoXIaGS7G99HGqceF7wTpwrtYyo0HWJZTplNUiRSA1G-V9Nfroz4aEpxMpSqIc86B4MFsPMF8cws9UWFmqhq-RCD2OQoi_MF/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="733" data-original-width="210" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTZPb2mP3OC1VEmbLKww7mcSRDVJL6G4JKZRTnZSoz2CEJGoXIaGS7G99HGqceF7wTpwrtYyo0HWJZTplNUiRSA1G-V9Nfroz4aEpxMpSqIc86B4MFsPMF8cws9UWFmqhq-RCD2OQoi_MF/" width="69" /></a></div><br /><br /><p></p><p>Eventually, I narrowed my search down to this harmless looking subroutine.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs4doBj2GN92yTznSI62eOqJIvaIGh9I75aa47sF_mzncYC2VDJpYWxFD-3mPr_GIU0zca9BiV5hAcfACuGuzVojCI8rjllnI-DfylNoQMu54sEHsEZ0EsjLBKCBqbn06MLJf4FkJMN2Id/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="165" data-original-width="623" height="85" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs4doBj2GN92yTznSI62eOqJIvaIGh9I75aa47sF_mzncYC2VDJpYWxFD-3mPr_GIU0zca9BiV5hAcfACuGuzVojCI8rjllnI-DfylNoQMu54sEHsEZ0EsjLBKCBqbn06MLJf4FkJMN2Id/" width="320" /></a></div><br />It actually is the first subroutine that gets called after the ROM boots up (not a coincidence!).<p></p><p>Here's my logic analyzer capture of the 'retn' instruction (address 0xFE54F).</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuK0WultTFbzG8cHqhFyTaQ2WHRVkEFbDTo-48hcEc8roYjpdAJj8jEYNc72LPDe-rAQojyTRUc2z6dBs2-oR76ddQBqE6xJ5KLmCwFDPKJpvXN5uvyEY5KrfVNooPI1t9hpoMZqBvgWg_/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="491" data-original-width="1357" height="116" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuK0WultTFbzG8cHqhFyTaQ2WHRVkEFbDTo-48hcEc8roYjpdAJj8jEYNc72LPDe-rAQojyTRUc2z6dBs2-oR76ddQBqE6xJ5KLmCwFDPKJpvXN5uvyEY5KrfVNooPI1t9hpoMZqBvgWg_/" width="320" /></a></div><br />Here's my explanation of each numbered section in the screenshot:<p></p><p></p><ol style="text-align: left;"><li>Status of 4 means this an instruction fetch is about to take place.</li><li>0xFE54F is the address of the instruction to be fetched.</li><li>0xC3 is the fetched instruction (0xC3 is the RETN instruction).</li><li>Status of 5 means that this is a memory read.</li><li>0x0FFF6 is the address to read from (it should map to RAM). This is reading from the stack to get the subroutine's return address.</li><li>This is the data that the RAM returns. But wait! This isn't right. It's giving us the same value in the lower byte as the address (0xF6). The changes of this being the correct value are extremely unlikely.</li><li>Status of 5 means that another memory read is about to take place (the other byte of the return address).</li><li>0x0FFF7 is the address to read from. To get the return address's other byte. (wow, the 8088 was really messed up. 16-bit return addresses but the CPU supports a 20-address bus? Who designed this thing? haha)</li><li>This is the data that the RAM returns. But again, this isn't right! It's giving us the same value that was already on the address lines (0xF7). In other words, nothing is driving these address lines!</li></ol><div>And sure enough, the new CPU address is now 0xFF7F6 (ie completely wrong):</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYvTF7jmo4UlMCHYDfA0kzNibTP-lGwi7BX_JFMDAAr_dq18VpTPP125xZ4IbuR63Bp7dN8fGKxxgFyNtsB7LMOERx5RBhMM_HL9NNmA5hCMRSSMFBUm29FioXXT6OzRSyQhFjeFbtuTzy/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="266" data-original-width="336" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYvTF7jmo4UlMCHYDfA0kzNibTP-lGwi7BX_JFMDAAr_dq18VpTPP125xZ4IbuR63Bp7dN8fGKxxgFyNtsB7LMOERx5RBhMM_HL9NNmA5hCMRSSMFBUm29FioXXT6OzRSyQhFjeFbtuTzy/" width="303" /></a></div><br /><br /></div><div>Conclusion? RAM is either bad, not being controlled correctly, or missing entirely.</div><div><br /></div><div>At this point, I decided to inspect the DL2 PCB a little closer.</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilC6sscDHL88ZWL0uKSg4qis4iPwJdHOwvqGgvpKd2bnRfnAGFooxhNQkX0fXRcmB-QypgHfJCWGnM9kuY9UKPUJTBqThyphenhyphenwXzSsKZXo-lfRFC7tIAbTkiha96mNg2ItcM0v2FAFNAWF0YM/s4032/IMG_0253.HEIC" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilC6sscDHL88ZWL0uKSg4qis4iPwJdHOwvqGgvpKd2bnRfnAGFooxhNQkX0fXRcmB-QypgHfJCWGnM9kuY9UKPUJTBqThyphenhyphenwXzSsKZXo-lfRFC7tIAbTkiha96mNg2ItcM0v2FAFNAWF0YM/s320/IMG_0253.HEIC" width="240" /></a></div><br /><div>What the heck? Some empty sockets where RAM is supposed to be installed?</div><div><br /></div><div>People who own the game tell me that this is normal. So I haven't completely solved the problem yet. But I'm getting closer.</div><div><br /></div><div><b>UPDATE</b>: I can confirm that pin 16 on the RAM chips (Output Enable) is stuck high.</div><div><br /></div><div><b>UPDATE</b>: Looks like the problem may be pin 10 of "RP3" not making good contact with pin 59 ("CAS'") of U1, this 100-pin surface mount chip! That pin eventually is what drives the RAM's "Output Enable" to actually pulse.</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKivOrT8BkYlL1Na4LPtj-7wspvP2sP6sP0Xftjx5HqhMKxWkHCjXjpkvzHxcQZwXnExI-mDd73ug70ASOY3MlTtLCcgk5vvOYDU6esiFn2fxgVL2kDt98r91kZBZqzTSBmw_N5uqycarD/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="441" data-original-width="471" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKivOrT8BkYlL1Na4LPtj-7wspvP2sP6sP0Xftjx5HqhMKxWkHCjXjpkvzHxcQZwXnExI-mDd73ug70ASOY3MlTtLCcgk5vvOYDU6esiFn2fxgVL2kDt98r91kZBZqzTSBmw_N5uqycarD/" width="256" /></a></div><br /><b>UPDATE</b>: I decided to reflow the surface mount pins and that actually fixed the problem! I can't believe it! I would've never figured this out with schematics, a logic analyzer, and a logic probe!</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN5tJ16b0JrF5AX6arDfAqUWufH8aDdfugWeUwDkjZnz-WGyKk1JBbl8PVXSw89HVveJDAMbCF4CTWOyVbTKazCLcza_SCNcVYlOua-axBObqaxAOSt1PmeRtzTvvhpxhX2Kre0frz-knv/s4032/IMG_0258.HEIC" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjN5tJ16b0JrF5AX6arDfAqUWufH8aDdfugWeUwDkjZnz-WGyKk1JBbl8PVXSw89HVveJDAMbCF4CTWOyVbTKazCLcza_SCNcVYlOua-axBObqaxAOSt1PmeRtzTvvhpxhX2Kre0frz-knv/s320/IMG_0258.HEIC" width="240" /></a></div><br /><div><br /></div><p></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com1tag:blogger.com,1999:blog-304223897607246523.post-66924505890774983922021-10-09T10:46:00.006-07:002022-01-04T11:19:11.256-08:00Domesday Duplicator Gain Settings for specific laserdisc players<p>For the Domesday Duplicator gain setting, here are some values I've discovered through trial and error. <br /></p><p>See: <a href="https://www.domesday86.com/?page_id=2233#Gain_configuration">https://www.domesday86.com/?page_id=2233#Gain_configuration </a><br /></p><p><i>NOTE: The first number is switch 1 (so 1000 means switch 1 is on, the rest are off)</i></p><p>LD-V4300D:<br />LD-V8000: <br /></p><p><span> </span>1000<span><span> (8.5 gain)</span></span></p><p><span><span> </span></span></p><p><span><span>CLD-V2600:</span></span></p><ul style="text-align: left;"><li><span><span><span></span>0100 (6 gain if the disc isn't full length; will cause slight clipping at the end of a full length disc) </span></span></li><li><span><span>0010 (4.4 gain if the disc is full length) </span></span> <br /></li></ul><h4 style="text-align: left;">Resistor/Gain</h4><div>Switch 1: R406, 1.5k</div><div>Switch 2: R407, 1k</div><div>Switch 3: R408, 680</div><div>Switch 4: R409, 560</div><div><br /></div><div>Some values just for clarity:</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7KEnbyOjeNT2ct4Q-HuUqaJQovDDy3S267UKNBEX_CUezspbJmZD0VKFPIjWqQhY95Oqi1RLVU57DB1c_65CT2eELfDv4P-dtqdbDsfLV-cSvAQLpG1WlK-4Ax8G_d0se-LpNbUx3dmJV/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="126" data-original-width="615" height="66" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7KEnbyOjeNT2ct4Q-HuUqaJQovDDy3S267UKNBEX_CUezspbJmZD0VKFPIjWqQhY95Oqi1RLVU57DB1c_65CT2eELfDv4P-dtqdbDsfLV-cSvAQLpG1WlK-4Ax8G_d0se-LpNbUx3dmJV/" width="320" /></a></div><br /><br /></div>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-15976594807484354542021-09-02T09:15:00.001-07:002021-09-02T09:15:54.922-07:00Freedom Fighter information from David Riordan, one of the creators!<p> Last night, Brendon Zeidler and I had a chance to have a Zoom call with David Riordan, one of the creators of the laserdisc arcade game Freedom Fighter. The call was recorded, but I am not sure if it will be published so I am recording some notes from memory so that I don't forget.</p><p>The lead (only?) programmer of the game was <a href="https://apple.fandom.com/wiki/Dick_Huston">Dick Huston</a>.</p><p>The reason the prototype units were made from converted Star Rider hardware was that Millennium Games purchased old unused Star Rider hardware from Williams under the understanding that about 150 working units would be provided. In the end, less, maybe 50, units ended up working from that batch.</p><p>The modifications to the Star Rider hardware were done by an employee from Los Angeles who was better with electronics than with people. He also was responsible for designing the custom PIF board that replaces Star Rider's PIF board. David did not get along with this individual.</p><p>The Philips 22VP931 laserdisc player was chosen because of its amazing skipping ability without dropping video. Philips offered to sell their remaining batch of these players, but would not provide support in case something went wrong (which I found shocking). Philips also said it would not make any more of these players which meant that Freedom Fighter could have never been scaled up to mass production. I have still not been able to find any official documentation on how to control these players and don't expect to.</p><p>The joystick for the game was custom made. (Matt's notes follow in this paragraph) It relied on using Star Rider's existing inputs, which included the steering handlebar inputs for left/right movement and the acceleration throttle for up/down. Inputs unused by Star Rider, such as start1/start2, were used for fire and perhaps something else.</p><p>The laserdisc video that was split up into very short segments was created by a high-end machine made by <a href="https://en.wikipedia.org/wiki/Ampex">Ampex</a>. The machine was programmed (by a human) ahead of time and fed film reels of the unedited footage and it will chop the film up according to the program. The film was then reassembled to create the master that was used to manufacture the disc. (Matt's note: I may have misunderstood this process so my description may not be entirely accurate)</p><p>Millennium Games was a company formed by Malibu who owned 30-40 major entertainment venues across the country. Therefore, Freedom Fighter was a Malibu exclusive title.</p><p>Probably less than 50 prototype units were ever produced.</p><p>Steven Spielberg was a huge fan of the game and had one in his office at Amblin Entertainment in the 80's.</p><p>The animation to Freedom Fighter was done by a Japanese company called TOEI who had made a movie called <a href="https://en.wikipedia.org/wiki/Galaxy_Express_999_(film)">Galaxy Express 999</a> and wanted to see their work featured in a video game. Therefore, they were willing to work for very cheap to create the additional animation needed for the game. Apparently 90% of the video in Freedom Fighter was created by scratch for this purpose. On the disc if you can see the main character, it may have been movie footage. If you are seeing through the main character's eyes, it was new content created specifically for the game. Voices done for the game were done by Millennium Games.</p><p>The attract mode, including the saxophone music, was envisioned by Millennium Games, not TOEI.</p><p>The name, Freedom Fighter, was chosen since the alternative, 999, would be too confusing for audiences.</p><p>When the game worked, it was a big hit with crowds. As expected, the laserdisc players tended to fail (due to dust problems) and this spelled the doom of the game from have a longer lifespan.</p><p><br /></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-18900278934109928772021-08-06T14:50:00.002-07:002021-08-06T14:50:31.837-07:00DEXTER Data line 6 of 7 was being held high<p> This is a note to myself in case I ever have to troubleshoot this problem again.</p><p>On a Dexter board I was testing, I noticed that one of the data bits was stuck high. After some non-trivial testing, I finally isolated it to a bad diode, which really surprises me. This is the last part that I thought would be the problem!</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ChxdrUbvxwUsiSHhiUT9Xn_vKaEb5mW2QyWhLmmUwNUKVgbhCjdUn-MBG9rvfBP2W8qoZYHGxGvDR35SfXb_LQE2Z_orPL4q468zn_KH3RCXD4Bxr3E6zk_RrGQLvw2U_y0Hdz8t0C_S/s2048/dexter_3g_data6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1661" data-original-width="2048" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0ChxdrUbvxwUsiSHhiUT9Xn_vKaEb5mW2QyWhLmmUwNUKVgbhCjdUn-MBG9rvfBP2W8qoZYHGxGvDR35SfXb_LQE2Z_orPL4q468zn_KH3RCXD4Bxr3E6zk_RrGQLvw2U_y0Hdz8t0C_S/s320/dexter_3g_data6.png" width="320" /></a></div><br /><p>NOTE to future self: try removing this diode if the problem ever happens again.</p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-54604925342566959662021-07-22T10:11:00.000-07:002021-07-22T10:11:07.162-07:00Reproduction Dragon's Lair Scoreboard<p> I finally got around to order parts for Shaun Wood's reproduction Dragon's Lair scoreboard PCB that he sells <a href="https://wood1st.com/LaserCon/Extras/">here</a>.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz5QLGYvWtAvyMnPMiWRN2oR0FpPhl-EYb3IX0yJ-aEDGRm-tjCS0ejBS1tudMvUtlkKssOoxGT57KmPvfSpwAhhzxz3tK1ozDSOmpmo6Ie-BptlubGQf3FTjSwV_WoW1qpPV8vT1W2U1_/s4032/20210722_092525.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjz5QLGYvWtAvyMnPMiWRN2oR0FpPhl-EYb3IX0yJ-aEDGRm-tjCS0ejBS1tudMvUtlkKssOoxGT57KmPvfSpwAhhzxz3tK1ozDSOmpmo6Ie-BptlubGQf3FTjSwV_WoW1qpPV8vT1W2U1_/s320/20210722_092525.jpg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqWPElaCsSOnpSmyQQm_0xaMA4cRSoVBYIQ9rapeeVFLe9ifvJT4GHj6pm1HJ1WJ7VuoxkRh3hCa7Ppv9Mb-nQFfdh2n3KlHbwfrs1P6rn0p6phlZQLHCK2SreXstC6C1feUL2ZtHYRUgd/s4032/20210722_092537.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3024" data-original-width="4032" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqWPElaCsSOnpSmyQQm_0xaMA4cRSoVBYIQ9rapeeVFLe9ifvJT4GHj6pm1HJ1WJ7VuoxkRh3hCa7Ppv9Mb-nQFfdh2n3KlHbwfrs1P6rn0p6phlZQLHCK2SreXstC6C1feUL2ZtHYRUgd/s320/20210722_092537.jpg" width="320" /></a></div><br /><p>For anyone considering soldering one of these up, I found this to be a relatively easy task compared to other boards I've soldered. Shaun provides a list of parts along with Mouser and Digikey part numbers. Some of the parts were out of stock, so I had to find alternates. Here are the alternates (Digikey part numbers) I ordered that seem to work fine:</p><p></p><ul style="text-align: left;"><li>493-1523-ND (C1)</li><li>732-2095-ND (J1)</li><li>S1KQCT-ND (R1, R2)</li></ul><p></p><p><br /></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-3402661809309795952021-07-13T10:13:00.003-07:002021-07-13T12:49:21.253-07:00Finding solder bridge using thermal camera<p>I had a Dexter with the RESET and DIAGNOSE lines tied together somewhere. I suspected a solder bridge but I couldn't find it. So I decided to send some current through RESET and DIAGNOSE and get out my thermal camera to see where things were getting hot. Here's what I saw:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaOlEa86KKdjbdECoDUBwltpG_MVP-fHX2WL5WhJQfuebJhd1gvgEl8riuRH57-zAjbo7doVnXg9HVOkaixZCXzELH051V2UUgvnBsQSjJCSlv78tWHc4KH-hKMDAFRJp9w6rdrN6ienz/s320/FLIR0010.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="240" data-original-width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaOlEa86KKdjbdECoDUBwltpG_MVP-fHX2WL5WhJQfuebJhd1gvgEl8riuRH57-zAjbo7doVnXg9HVOkaixZCXzELH051V2UUgvnBsQSjJCSlv78tWHc4KH-hKMDAFRJp9w6rdrN6ienz/s0/FLIR0010.jpg" /></a></div><p>I eventually found the bridge, but was not in the most intense place on the PCB:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgITNeKCDVOBxbqLucUu5GJHjzMqWdkKa8Oe3ChfviEJVOOfSwp1MHmFhYYzImbhpvfzLulbyl3AaCKewPuQdbd7_8XWZwbJlaPjeRoAZsiGCKSk9q1k0Uub3Ux9mF3P9Mbz5isGkYXXsZw/s908/dexter_3g_bridge.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="908" data-original-width="600" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgITNeKCDVOBxbqLucUu5GJHjzMqWdkKa8Oe3ChfviEJVOOfSwp1MHmFhYYzImbhpvfzLulbyl3AaCKewPuQdbd7_8XWZwbJlaPjeRoAZsiGCKSk9q1k0Uub3Ux9mF3P9Mbz5isGkYXXsZw/s320/dexter_3g_bridge.png" /></a></div><br /><p>In the future, instead of looking for the most intense spot on the PCB, I should observe the path that the heat is traveling. The fact that the heat was traveling down and left of where I was applying power was a clue that I would find the bridge somewhere along that path.</p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-35020851428317186102021-06-07T21:31:00.001-07:002021-06-07T21:31:07.506-07:00Esh's Aurunmilla Repair: Strange black lines<p> Esh Repair! I almost didn't notice these weird unexplained black lines until I looked closer.</p><p><br /></p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/8JHWn4Wg8z4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-19467381745821445382021-04-23T08:17:00.004-07:002021-04-23T08:19:51.904-07:00My Rick Dyer interview!<p>Due to some extremely lucky circumstances, I was able to spend an afternoon with the man who created one of my most treasured childhood memories. In 1983 Rick Dyer was the catalyst that produced the amazing arcade game, Dragon's Lair. As a young kid during this time, the memories of seeing this game for the first time in a random pizza parlor in Los Angeles still leave a deep impression upon me. I had previously met Rick twenty years ago at the Classic Gaming Expo in Las Vegas, NV but it was during an autograph line so I only spoke to him for about ten seconds. I never expected to talk to him again after that. But his Dragon's Lair had stopped working so he was referred to me due to my Dexter project and eventually asked me to come fix his Dragon's Lair which he is showcasing at a rental property in Spokane, Washington. After I fixed the Dragon's Lair, I asked him for this interview and he graciously accepted.</p><p><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/oWpw3Y0wKE0" title="YouTube video player" width="560"></iframe></p><p>The video of Time Traveler running on Dexter that I mention during the interview is <a href="https://www.facebook.com/groups/LaserdiscArcadeGames/permalink/4404104856289564/?__cft__[0]=AZU4Fap5PxdmzTqRbUZTruVIuc7s4BDjQ1p0PfxTvg1Z1AVoi8XTIA0QVswl77DyjYN13eDO4PRmckiYhLBx-BHu9aNUuUHbxymdVn5mux1naWyMt89tP5LpfyaEiN5JtL6hQPkGPf0NKNZJivkU4Pgx&__tn__=%2CO%2CP-R">here</a>.</p><p>I also asked him several questions in the car which I did not record. I am paraphrasing his answers below before I forget.</p><p><b>Q: I asked Rick what his background was before Dragon's Lair. Was he a tech guy? A business guy?</b></p><p>A: Rick said that he had worked on Intellivision titles for another company and had been doing moon-lighting projects on the side. His side business became so big that he eventually quit his day job and formed his own company. His company made a lot of handheld games, I believe that little LCD games that I would see kids playing during recess around 1982 when I was in elementary school. The company was successful and had about 40 employees. (I found this particularly surprising because I had always imagined that Rick had approached Don Bluth as an individual who had an idea, not as the owner of a successful company of 40 people). Rick went to school for engineering and preferred to do engineering but as his company grew he was forced into a management role instead.</p><p><b>Q: I asked Rick when he first saw a laserdisc and what gave him the idea to use it in a video game.</b></p><p>A: Rick says he saw it at a trade show and realized that it would be good to use in a video game at that time. He felt pressure to be first to market with this idea because he was sure someone else would release a product using this idea if he didn't.</p><p><b>Q: I asked Rick about the Thayer's Quest origins and mentioned that I heard it was originally not a laserdisc game.</b></p><p>A: Rick said that Thayer's Quest went through several iterations and used different more primitive technologies before it became a laserdisc game.</p><p><b>Q: I asked Rick what company he hired to do the Thayer's Quest animation.</b></p><p>A: Rick said it was a company in the Philippines.</p><p><b>Q: I asked Rick what the motivation was to have two audio tracks per scene in Thayer's Quest.</b></p><p>A: Rick said it was so that you'd hear something different when you visited the scene a second time.</p><p><b>Q: I asked Rick how he managed to successfully pitch Dragon's Lair to Don Bluth. Wouldn't Don Bluth be a hard guy to reach and an even harder guy to convince to take on such a risky project?</b></p><p>A: Rick said that he got lucky because Don Bluth's company was looking for another project after Secret of NIMH and Rick was at the right place at the right time. Rick had previously worked with Cinematronics which is why he approached them to handle manufacturing of the game.</p><p><b>Q: I asked Rick how many people programmed the z80 code for Dragon's Lair. Was it one guy or a team?</b></p><p>A: A team.</p><p><b>Q: I asked Rick some more details about the production of Dragon's Lair. Wasn't it insanely expensive to get prototype laserdiscs made? How did he figure out how to get a laserdisc made?</b></p><p>A: Rick said his team did the research to learn how to get a laserdisc made. And yes, prototype discs were expensive to manufacture. Both Don Bluth's company and Cinematronics were in financial peril during the production of Dragon's Lair and the game almost didn't get finished due to money running out at both locations. The game cost over $1M to create which was unheard of at the time.</p><p><b>Q: I asked Rick why the drawbridge scene is skipped in all versions of Dragon's Lair.</b></p><p>A: Rick didn't remember why. (I would've shown him a clip to refresh his memory but I was running out of time)</p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com2tag:blogger.com,1999:blog-304223897607246523.post-47869575682965273022021-04-17T19:39:00.000-07:002021-04-17T19:39:04.427-07:00Dragon's Lair Power Supply Replacement<p> I recently followed Shaun Wood's <a href="http://www.d-l-p.com/tech/docs/PSadaptor.asp">excellent guide</a> to creating a modern replacement for the Dragon's Lair power supply.</p><p>After some minor failures, I got it working with a few tweaks to his instructions:</p><p></p><ul style="text-align: left;"><li>The J2 (aka "P2" on his page) connector should have the black wire on pin 1, not the white. So the pattern should go black, white, black, white instead of white, black, white, black. This is to be consistent with the internal wiring my both my Dragon's Lair and Space Ace cabinets. Since it is AC power, polarity may not matter for performance, but for safety it could be important.</li><li>To minimize observed monitor noise, tie FG and GND together. Thanks to Brad Oldham for the suggestion. <a href="https://forums.arcade-museum.com/threads/wiring-fg-and-ground-together-on-switching-ps.465896/">Here</a> is a random thread I found on the internet on the subject. Without doing this, my monitor picture was significantly noisy.</li><li>Model of power supply that I ended up using successfully is Arcity MIN HONG MH-120N-R3 which can be currently purchased from <a href="https://www.amazon.com/gp/product/B07RT54H9V/">https://www.amazon.com/gp/product/B07RT54H9V/</a></li></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEind1TQZejagIrJc_Ac7hzOyDWuyDvwLNcVn7UpVvPJevpD_xFaDtrpUYKNbhmAUNfwZm8e7_RNqCTPvCOEpYiEfLazt2cLuQ43D_2F3fLUaVvfOabol_Wae3rB-knfCJrd7EWkVVoVYUPv/s4032/20210417_203714.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEind1TQZejagIrJc_Ac7hzOyDWuyDvwLNcVn7UpVvPJevpD_xFaDtrpUYKNbhmAUNfwZm8e7_RNqCTPvCOEpYiEfLazt2cLuQ43D_2F3fLUaVvfOabol_Wae3rB-knfCJrd7EWkVVoVYUPv/s320/20210417_203714.jpg" /></a></div><br /><div><br /></div><p></p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-12966957760212013202021-01-08T18:19:00.005-08:002021-01-08T18:20:13.006-08:00Dragon's Lair's software watchdog<p><span face="Arial, Helvetica, sans-serif" style="background-color: white; color: #222222; font-size: small;">I've been rewriting Daphne's Z80 emulator (from scratch) and testing it on Dragon's Lair. I've got it far enough along so that it loops at the disc routine at 0x231 waiting for an LD-V1000 strobe. While I had it looping, I was checking out some performance metrics to see how fast my new Z80 emu was running. To my shock, after about 1 minute, program execution moved away from that endless loop. After a few hours of tracking down why, I discovered this software watchdog that I never knew existed.</span></p><div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><br /></div><div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">(my disassembly below)</div><div style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><br /></div><div style="background-color: white; color: #222222; font-size: small;"><span style="font-family: courier;">ROM:19E3 DecrementWatchdog: ; CODE XREF: IRQ+1BC↑j<br />ROM:19E3 ld hl, A0DE_WatchDogCounter<br />ROM:19E6 call DecrementMem16 ; Decrements a 16-bit memory location<br />ROM:19E6 ; Flags are set according to SBC rules.<br />ROM:19E6 ; HL: pointer to 16-bit memory value<br />ROM:19E6 ; DE and BC are clobbered<br />ROM:19E9 jr nc, CheckSoundThenExitIrq<br />ROM:19EB jp DoSoftReset ; watchdog has not been fed. we're stuck in an endless loop.<br /></span></div><div style="background-color: white; color: #222222; font-size: small;"><span style="font-family: courier;"><br /></span></div><div style="background-color: white; color: #222222; font-size: small;"><span style="font-family: courier;"><br /></span></div><div style="background-color: white; color: #222222; font-size: small;"><span style="font-family: courier;">ROM:1FCF DoSoftReset: ; CODE XREF: IRQ+1CB↑j<br />ROM:1FCF ld sp, 0A3FFh ; blow away all stack info; start over.<br />ROM:1FD2 ld hl, 0A030h<br />ROM:1FD5 ld de, 0A031h<br />ROM:1FD8 ld bc, 3CFh<br />ROM:1FDB ld (hl), 0<br />ROM:1FDD ldir ; this appears to clear mosts of the game data except the boot-up stuff<br />ROM:1FDF call ResetWatchdogCounter ; resets watchdog counter back to max value (about 70 seconds)<br />ROM:1FDF ; (this must be called regularly to avoid a soft system reset)<br />ROM:1FE2 ei<br />ROM:1FE3 jp loc_1244 ; this is an alternative to "RETI"; essentially giving up on recovering<br /></span></div><div style="background-color: white; color: #222222; font-size: small;"><span style="font-family: courier;"><br /></span></div><div style="background-color: white; color: #222222; font-size: small;"><span style="font-family: courier;"><br /></span></div><div style="background-color: white; color: #222222; font-size: small;"><span style="font-family: courier;">ROM:1C2D ; =============== S U B R O U T I N E ==============================<wbr></wbr>=========<br />ROM:1C2D<br />ROM:1C2D ; resets watchdog counter back to max value (about 70 seconds)<br />ROM:1C2D ; (this must be called regularly to avoid a soft system reset)<br />ROM:1C2D<br />ROM:1C2D ResetWatchdogCounter: ; CODE XREF: START+10↑p<br />ROM:1C2D ; sub_15B4+F5↑p ...<br />ROM:1C2D ld hl, 8AAh<br />ROM:1C30 ld (A0DE_WatchDogCounter), hl<br />ROM:1C33 ret<br />ROM:1C33 ; End of function ResetWatchdogCounter<br />ROM:1C33<br />ROM:1C34<br />ROM:1C34 ; =============== S U B R O U T I N E ==============================<wbr></wbr>=========</span></div>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-68110752019875978482020-12-29T10:27:00.003-08:002020-12-29T10:27:33.189-08:00Dragon's Lair (and Space Ace) boot-up explained<p> I occasionally get questions about whether Dexter is 'the problem' when a Dragon's Lair or Space Ace doesn't work. Here's a video to shed some light on where boot problems may be.</p><p><br /></p>
<iframe width="560" height="315" src="https://www.youtube.com/embed/IGCc-JU4_FQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0tag:blogger.com,1999:blog-304223897607246523.post-60213361516140074262020-12-08T10:19:00.000-08:002020-12-08T10:19:05.566-08:00ASUS G75VW laptop - replacing small internal fan connector<p> When I was taking my Asus G75VW laptop apart (an older laptop but still quite useful!), I noticed one of the fan power connectors was falling apart. It broke as I removed it.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3EQ0bzwvPGHpOL-GJM32sX-5DBM8qPEmSoGbVgalNXfVeYdHokSYxVnwEjIFB42w6fXx15KdbCo5YJi2ppIZx9fisNADSQI1LIPsh1gTxidhhjAGLzmNFXGG6VotgKHkmTp0c38QdPL6y/s4032/20201130_105111.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="4032" data-original-width="3024" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3EQ0bzwvPGHpOL-GJM32sX-5DBM8qPEmSoGbVgalNXfVeYdHokSYxVnwEjIFB42w6fXx15KdbCo5YJi2ppIZx9fisNADSQI1LIPsh1gTxidhhjAGLzmNFXGG6VotgKHkmTp0c38QdPL6y/s320/20201130_105111.jpg" /></a></div><br /><p>After much searching, I found an "exact" replacement:</p><p>TE Connectivity part 440146-4</p><p>or Digikey part A98724-ND</p><p>Hopefully this helps someone else in the future, as this was quite difficult for me to locate.</p>Matt Ownbyhttp://www.blogger.com/profile/01141290413986333512noreply@blogger.com0