<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>David Haywood's MAME(tm) WIP</title>
	<atom:link href="http://mamedev.emulab.it/haze/feed/" rel="self" type="application/rss+xml" />
	<link>http://mamedev.emulab.it/haze</link>
	<description>Independent MAME Work In Progress</description>
	<lastBuildDate>Sun, 22 Aug 2010 17:21:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Kung-Fu Converting</title>
		<link>http://mamedev.emulab.it/haze/2010/08/22/kung-fu-converting/</link>
		<comments>http://mamedev.emulab.it/haze/2010/08/22/kung-fu-converting/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 17:20:45 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/?p=542</guid>
		<description><![CDATA[Converted arcade boards are pretty common, and in many cases trivial. The ones which require significant hardware mods are generally a bit more interesting. Team Europe dug up a Yie Ar Kung-Fu running on a Track and Field board. There are some similarities in the hardware, but this still requires some fairly significant changes to [...]]]></description>
			<content:encoded><![CDATA[<p>Converted arcade boards are pretty common, and in many cases trivial.  The ones which require significant hardware mods are generally a bit more interesting.</p>
<p>Team Europe dug up a Yie Ar Kung-Fu running on a Track and Field board.</p>
<p>There are some similarities in the hardware, but this still requires some fairly significant changes to the game code to run (it also seems to be a completely different revision of the game to any of the supported sets, which make me wonder what the source of it is)</p>
<p>I haven&#8217;t managed to get the sound working yet, it looks like they&#8217;re bypassing the Z80 sound hardware that Track and Field used completely (there is no rom for the z80, assuming it isn&#8217;t missing)</p>
<p><center><br />
<img src="http://mamedev.emulab.it/haze/news2010/yie_1_small.jpg" alt="Yie Ar Kung-Fu" /> </p>
<p><img src="http://mamedev.emulab.it/haze/news2010/yie_2_small.jpg" alt="Yie Ar Kung-Fu" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/yie_3_small.jpg" alt="Yie Ar Kung-Fu" /> </p>
<p><img src="http://mamedev.emulab.it/haze/news2010/yie_4_small.jpg" alt="Yie Ar Kung-Fu" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/yie_5_small.jpg" alt="Yie Ar Kung-Fu" /> </p>
<p><img src="http://mamedev.emulab.it/haze/news2010/yie_6_small.jpg" alt="Yie Ar Kung-Fu" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/yiear_1.png" alt="Yie Ar Kung-Fu" /> <img src="http://mamedev.emulab.it/haze/news2010/yiear_2.png" alt="Yie Ar Kung-Fu" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/yiear_3.png" alt="Yie Ar Kung-Fu" /> <img src="http://mamedev.emulab.it/haze/news2010/yiear_4.png" alt="Yie Ar Kung-Fu" /><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/08/22/kung-fu-converting/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Getting Your Priorities Right</title>
		<link>http://mamedev.emulab.it/haze/2010/08/21/getting-your-priorities-right/</link>
		<comments>http://mamedev.emulab.it/haze/2010/08/21/getting-your-priorities-right/#comments</comments>
		<pubDate>Sat, 21 Aug 2010 20:55:01 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/?p=538</guid>
		<description><![CDATA[The Toaplan 2 driver (games using the GP9001 VDP) has always been a bit of a MESS in MAME, especially the priority system in the driver. A couple of releases back I decided to start something of a rewrite of the driver, cleaning up many of the hacks that were present. I&#8217;d actually started this [...]]]></description>
			<content:encoded><![CDATA[<p>The Toaplan 2 driver (games using the GP9001 VDP) has always been a bit of a MESS in MAME, especially the priority system in the driver.  A couple of releases back I decided to start something of a rewrite of the driver, cleaning up many of the hacks that were present.  I&#8217;d actually started this rewrite a long time ago, but didn&#8217;t submit it at the time because there were two games I was unable to get working properly with my new cleaner code, the dual VDP ones, namely Batsugun and Dogyuun.</p>
<p>The problem was the old code was rendering all the layers in multiple passes (calling sprite draw functions once for each priority and such) which broke basic things like sprite-sprite priority.  Each game was rendering different layers in arbitrary order depending on the specific needs of that game to compensate for this.</p>
<p>In cleaning up the code I managed to reduce all the single VDP cases to a single call to draw all the graphics in the correct order, this however broke Batsugun and Dogyuun because the self-contained rendering function broke the hacks which were interleaving the output from each of the VDPs.  Batsugun had never worked properly anyway (and had various priority glitches on certain levels and the ending), but with the new code it was completely unplayable in some levels.</p>
<p>I originally wanted to fix this before submitting it, and it was left sitting for a while.  Eventually somebody else took a hand at &#8216;fixing&#8217; the Toaplan2 driver, however the fixes submitted were nothing but further hacks to the driver (checking which level was currently running and further hacking the priority of each layer based on that).  The code submitted was gross to say the least, so I decided to submit my code, and demote Batsugun and Dogyuun to Non-working status instead, pending proper fixes which weren&#8217;t hacks.  My new code was a lot cleaner for every other game in the driver, and I knew it would form the basis of a correct solution eventually, so this was a worthwhile step even if it meant the games were unplayable for several versions.</p>
<p>I tried various things to get the mixing correct with very little luck, and the driver remained in the broken state for quite a few releases.  In the meantime I did some further cleanups to the VDP rendering code, and converted it all to use the new C++ devices Aaron had been adding support for in the core.  With the GP9001 extracted to its own file, as a proper device, I decided to take another look at the priority mixing, strongly believing that there must be some kind of PAL on the board to mix the output of the two VDPs, because it didn&#8217;t seem entirely logical.</p>
<p>One of the big problems was I didn&#8217;t know exactly what each VDP output externally.  By displaying the output of each VDP on separate screens it was clear the the individual mixing of each VDP was correct, as expected (the mixing code for single VDPs worked fine)  However, I didn&#8217;t know if the VDPs output any kind of priority data externally to mix with, or just the colour data.  A few more attempts later, and I was still getting nowhere with the dual mixing, and almost ready to give up.</p>
<p>At that point Quench came forward with some information that proved to be very useful in the end. He&#8217;d managed to reverse the equations of a Pal which sat between the two VDPs on a Batsugun board.  From his equations it was clear that the VDPs didn&#8217;t output any kind of priority information externally, and the mixing had to be entirely based on the palette index.</p>
<p>I implemented his equations directly, which in theory should have worked, but the results were disappointing, the output was a mess, pixels were showing through where pixels shouldn&#8217;t have shown through, and I didn&#8217;t know why.  I took a break for a week to try and figure out why this might have been, then tried re-implementing it in a slightly different way.  Same result.</p>
<p>All was not lost at this point however, because despite the equation not working directly it had provided me with some useful information.  I now knew exactly which bits were being fed into the pal, and thus which bits could potentially be used to determine the mixing order, even if the given equation wasn&#8217;t working.</p>
<p>Rearranging things a bit I came up with my own solution, making use of the same bits that Quench had figured out were being input into the PAL.  The first attempt left some random black dots in the level, quickly realising that where those dots appeared should actually be showing the other VDP I amended my code and had something which worked.  Testing the game from start to end showed that all the problematic test cases I&#8217;d documented were now correct.  Finally.</p>
<p>The other benefit of this mixing was that the tile number hack, which was being used to hide some garbage on the first level of Batsugun could be removed, as it happens the palette index of the garbage is set so that it appears behind the background anyway.</p>
<p>Dogyuun was still an issue, it didn&#8217;t work with the new code, however, a bit of testing later, and I&#8217;m pretty sure that just uses a simple mixing system, with the output of one VDP appearing above the other, nothing complex.</p>
<p>The net result of this is that for the first time Batsugun can be rendered without hacks, and looks correct on all levels.  There is still room for optimization in the code (I&#8217;d made it as verbose as possible when debugging, rather than optimized, but it&#8217;s correct)</p>
<p>The next step for Batsugun will be adding the missing opcodes and features to the V30 core so that all the V35+ features it needs are supported (register banking etc.)  Currently AWJ is meant to be working on this, but I haven&#8217;t heard any progress recently.  That will allow for full sound emulation in the game.</p>
<p>I may add more technical details to this post later, but for now I have to go out ;-)</p>
<p><center><br />
<img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_1.png" alt="Batsugun" /> <img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_2.png" alt="Batsugun" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_3.png" alt="Batsugun" /> <img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_4.png" alt="Batsugun" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_5.png" alt="Batsugun" /> <img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_6.png" alt="Batsugun" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_7.png" alt="Batsugun" /> <img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_8.png" alt="Batsugun" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_9.png" alt="Batsugun" /> <img src="http://mamedev.emulab.it/haze/news2010/batsugun_pri_10.png" alt="Batsugun" /><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/08/21/getting-your-priorities-right/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Puzzle Break by Semicom</title>
		<link>http://mamedev.emulab.it/haze/2010/07/07/puzzle-break-by-semicom/</link>
		<comments>http://mamedev.emulab.it/haze/2010/07/07/puzzle-break-by-semicom/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 16:55:52 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/?p=534</guid>
		<description><![CDATA[This is an Arkanoid style game, like all 68k based Semicom games some work was required to extract 0&#215;200 bytes of code in RAM which gets put there by the MCU on startup.]]></description>
			<content:encoded><![CDATA[<p>This is an Arkanoid style game, like all 68k based Semicom games some work was required to extract 0&#215;200 bytes of code in RAM which gets put there by the MCU on startup.</p>
<p><center><br />
<img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_1.png" alt="Puzzle Break" /> <img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_2.png" alt="Puzzle Break" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_3.png" alt="Puzzle Break" /> <img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_4.png" alt="Puzzle Break" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_5.png" alt="Puzzle Break" /> <img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_6.png" alt="Puzzle Break" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_7.png" alt="Puzzle Break" /> <img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_8.png" alt="Puzzle Break" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_9.png" alt="Puzzle Break" /> <img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_10.png" alt="Puzzle Break" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_11.png" alt="Puzzle Break" /> <img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_12.png" alt="Puzzle Break" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/pzlbreak_13.png" alt="Puzzle Break" /><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/07/07/puzzle-break-by-semicom/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>No ID-ea</title>
		<link>http://mamedev.emulab.it/haze/2010/07/03/no-id-ea/</link>
		<comments>http://mamedev.emulab.it/haze/2010/07/03/no-id-ea/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 12:42:33 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/2010/07/03/no-id-ea/</guid>
		<description><![CDATA[Team Europe dumped an unknown game from Model Racing. I&#8217;m currently unsure as to the correct title for the game. It&#8217;s a 4 round shooting game I&#8217;m *guessing* based on the list at Tilt.it that it&#8217;s &#8216;Gun Champ&#8217; because the description doesn&#8217;t match Super Shot (there are no balloons etc.) and it&#8217;s definitely not Clay [...]]]></description>
			<content:encoded><![CDATA[<p>Team Europe dumped an unknown game from Model Racing.  I&#8217;m currently unsure as to the correct title for the game.  It&#8217;s a 4 round shooting game</p>
<p>I&#8217;m *guessing* based on the list at <a href="http://www.tilt.it/deb/i-mr.html">Tilt.it</a> that it&#8217;s &#8216;Gun Champ&#8217; because the description doesn&#8217;t match Super Shot (there are no balloons etc.) and it&#8217;s definitely not Clay Busters because that appears to be a clone of Allied Leisure&#8217;s Clay Shooting.  It could of course been an unlisted title.  The boards are marked CS235A and CS238A.</p>
<p>If anybody can positively identify this (I&#8217;m assuming it was distributed mainly in Italy) then it would help with the name in MAME. </p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_scene1.png" alt="Model Racing Shooting Game" /> <img src="http://mamedev.emulab.it/haze/news2010/mr_scene2.png" alt="Model Racing Shooting Game" /><br />
<img src="http://mamedev.emulab.it/haze/news2010/mr_scene2a.png" alt="Model Racing Shooting Game" /> <img src="http://mamedev.emulab.it/haze/news2010/mr_scene3.png" alt="Model Racing Shooting Game" /><br />
<img src="http://mamedev.emulab.it/haze/news2010/mr_scene4.png" alt="Model Racing Shooting Game" /></p>
<p>It&#8217;s currently unplayable due to some issues with inputs / the shifter emulation (I don&#8217;t think it expects the same behavior as the one on Space Invaders)</p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/07/03/no-id-ea/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Making a Killing, Killing a Dragon</title>
		<link>http://mamedev.emulab.it/haze/2010/04/27/making-a-killing-killing-a-dragon/</link>
		<comments>http://mamedev.emulab.it/haze/2010/04/27/making-a-killing-killing-a-dragon/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 21:43:29 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/?p=525</guid>
		<description><![CDATA[One of the most common questions I get asked is &#8216;Why is the PGM hardware so badly emulated?&#8217; The answer to this is simple, it isn&#8217;t. The actual PGM emulation (aside from the sound chip) is mostly complete. The problem is that every single PGM game has it&#8217;s own protection scheme, and the later ones [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most common questions I get asked is &#8216;Why is the PGM hardware so badly emulated?&#8217;</p>
<p>The answer to this is simple, it isn&#8217;t.  The actual PGM emulation (aside from the sound chip) is mostly complete.  The problem is that every single PGM game has it&#8217;s own protection scheme, and the later ones (which is the real reason people complain) are very, very well protected, and are <strong>IMPOSSIBLE</strong> to emulate properly without expensive hardware decapping because even with trojans you can&#8217;t read out all the internal ROM code.  (So don&#8217;t ask about them)</p>
<p>With that said some of the older ones still present interesting challenges to study.  The Killing Blade has been emulated for a long time, but it&#8217;s always bothered me that in order for it to run a dump of the RAM content from a running machine was required to bypass proper emulation of a scrambled DMA device.   A few days ago XingXing sent me some data from tests he did on the PCB, allowing me to properly implement the transfers and remove the fake ROM.  This means that both sets of The Killing Blade now work correctly (previously only the parent set worked, because the RAM dump was incorrect for the clone).</p>
<p><center><img src="http://mamedev.emulab.it/haze/news2010/killbld_0000.png" width=320 height=224 alt="The Killing Blade" /></center></p>
<p>Not that exciting, but from an emulation point of view, good to understand, and it was interesting to find that the xor/add/subtraction table used for the transfers is actually stored at the start of the MCU data rom.  Emulating the device also revealed another interesting oddity.  Previously an entire block of startup code for the game was missing, because it was put in ram, executed, and erased, and thus missing from the RAM dump.  This performs some additional security checks, these haven&#8217;t been figured out yet (and aren&#8217;t that important, they were completely missing before afterall!), but will present another interesting challenge at some point.</p>
<p>Slightly more interesting is the fact that the chip which is thourgh to be responsible for the scrambled DMA (IGS022) can be exchanged between games, although the chip it&#8217;s used in conjunction with (IGS025) can&#8217;t..  </p>
<p>There is one other game running on PGM that uses this combination of chips, and that&#8217;s Dragon World 3, which at this point becomes a potentially interesting target.  XingXing provided a RAM dump similar to the Killing Blade one which allows the game to boot, but I&#8217;m hoping that it can be elimiated quickly by reusing the DMA code (IGS022) code tha was figured out for The Killing Blade.  The problem is the game makes much more extensive use of the IGS025 chip, and currently doesn&#8217;t even appear to attempt to trigger any DMA operations.  It does boot now, but until those chips are emulated it won&#8217;t work, it crashes when you attempt to start a game.  Unlike the later games it&#8217;s a realistic emulation target at this point however.</p>
<p><center><img src="http://mamedev.emulab.it/haze/news2010/drgw3_0000.png" width=320 height=224 alt="Dragon World 3" /> <img src="http://mamedev.emulab.it/haze/news2010/drgw3_0001.png" width=320 height=224 alt="Dragon World 3" /></center></p>
<p>Thanks to XingXing for the hardware work / information.</p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/04/27/making-a-killing-killing-a-dragon/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Returning to the Moon</title>
		<link>http://mamedev.emulab.it/haze/2010/03/14/returning-to-the-moon/</link>
		<comments>http://mamedev.emulab.it/haze/2010/03/14/returning-to-the-moon/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 15:21:36 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/?p=517</guid>
		<description><![CDATA[If you thought this was Stern&#8217;s Moon War you wouldn&#8217;t be too wrong That&#8217;s MoonWar, as it&#8217;s been emulated in MAME for several years now, and if that was all I was going to tell you then this would be a pretty boring update wouldn&#8217;t it? There are a few things about MoonWar that never [...]]]></description>
			<content:encoded><![CDATA[<p>If you thought this was Stern&#8217;s Moon War you wouldn&#8217;t be too wrong<br />
<center><br />
<img src="http://mamedev.emulab.it/haze/news2010/moonwar2_1.png" alt="MoonWar?" /> <img src="http://mamedev.emulab.it/haze/news2010/moonwar2_2.png" alt="MoonWar?" /><br />
</center></p>
<p>That&#8217;s MoonWar, as it&#8217;s been emulated in MAME for several years now, and if that was all I was going to tell you then this would be a pretty boring update wouldn&#8217;t it?</p>
<p>There are a few things about MoonWar that never quite added up.  Firstly, the original boards / roms are all marked as MW2, leading to several people buying them, thinking it was a sequel to the game in MAME, only to find out it was exactly the same game, with exactly the same titlescreen.</p>
<p>A few years ago another board marked MoonWar turned up, but this time it was a Frenzy board, Stern&#8217;s old hardware, not related in any way to the hardware on which the known version of MoonWar ran on.  Sadly, the only thing populated on this board were the Speech roms, for the S14001A sound chip which Berzerk, and Frenzy used for speech.  Sure enough, the roms contained speech clips which sounded like they could be from a game called &#8216;Moon War&#8217;, but there were no other roms, and the whole thing looked like it was probably just some one-off prototype that was lost forever.</p>
<p>This left as many questions as answers, because the Frenzy hardware is vastly inferior to the hardware that the known MoonWar game ran on and definitely wouldn&#8217;t have been capable of running a game resembling the known game.  Frenzy was also released in the same year as the known MoonWar game, and only a year after Berzerk which didn&#8217;t exactly leave a large timeframe for the development of two &#8216;MoonWar&#8217; games, so what exactly was this mysterious board, and did Stern really make 2 MoonWar games?</p>
<p>Yesterday that question was finally answered.  Team Europe &#038; Volker Hann dumped a Frenzy board which was missing it&#8217;s sound roms.  That board turned out to be running MoonWar.  The existing game in MAME really is a sequel, hence the MW2 markings.  Stern probably weren&#8217;t happy with how limited this game on Frenzy hardware looked, so just aborted the project before giving it a wide release.  By combining the old &#8216;speech only&#8217; and the new dump which was missing the speech roms we appear to have a complete set.  As you can see from the screenshots below, it&#8217;s a significantly less advanced looking game than the previously known MoonWar (and it really was developed in the same year) but unlike the &#8216;sequel&#8217; / released game it&#8217;s full of Speech just like Berzerk was, it&#8217;s a shame they didn&#8217;t include any of that in the sequel!.  There&#8217;s even a nice little Evil Otto reference in there.</p>
<p><center><br />
<img src="http://mamedev.emulab.it/haze/news2010/moonwar_1.png" alt="Moon War!" /> <img src="http://mamedev.emulab.it/haze/news2010/moonwar_2.png" alt="Moon War!" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/moonwar_2a.png" alt="Moon War!" /> <img src="http://mamedev.emulab.it/haze/news2010/moonwar_3.png" alt="Moon War!" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/moonwar_4.png" alt="Moon War!" /> <img src="http://mamedev.emulab.it/haze/news2010/moonwar_5.png" alt="Moon War!" /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/moonwar_6.png" alt="Moon War!" /> <img src="http://mamedev.emulab.it/haze/news2010/moonwar_7.png" alt="Moon War!" /><br />
</center></p>
<p>It uses some kind of analog dial for rotation of the player ship, which I haven&#8217;t quite managed to hook up correctly yet (I can only rotate in one direction)  Other than that it an be played.  My only concern is if there is a mismatch between the program roms and the speech roms, because the speech sometimes talks about &#8216;Hyperflip&#8217; and I haven&#8217;t worked out what it means yet.  (although I have warped from one side of the screen to the other sometimes, so it might just mean that)</p>
<p>Another rare piece of history uncovered anyway, such things always bring a smile to my face especially when they just turn up out of the blue like this.</p>
<p><a href="http://mamedev.emulab.it/haze/news2010/Moonwar.mp3">Here</a> is an audio recording of it running in MAME, for those interested.</p>
<p>The same guys also dumped a very rare version of Berzerk with German speech.  It&#8217;s a different code revision (appears to be based on the &#8216;new&#8217; rules found in the parent set)  Somehow the Robots sound even more intimidating when they speak in German!  You can hear that <a href="http://mamedev.emulab.it/haze/news2010/Berzerk.mp3">here</a>.  It&#8217;s been a very good week!</p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/03/14/returning-to-the-moon/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
<enclosure url="http://mamedev.emulab.it/haze/news2010/Moonwar.mp3" length="1950171" type="audio/mpeg" />
<enclosure url="http://mamedev.emulab.it/haze/news2010/Berzerk.mp3" length="1518587" type="audio/mpeg" />
		</item>
		<item>
		<title>Digging Home the Point</title>
		<link>http://mamedev.emulab.it/haze/2010/03/13/digging-home-the-point/</link>
		<comments>http://mamedev.emulab.it/haze/2010/03/13/digging-home-the-point/#comments</comments>
		<pubDate>Sat, 13 Mar 2010 19:54:43 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/?p=513</guid>
		<description><![CDATA[&#8220;Imitation is the most sincere form of flattery&#8221; A few days ago the Dumping Union acquired an interesting looking Korean arcade title called Mr. Dig. The game was released by Korean company &#8216;Sun&#8217; (no, not the Java people) and runs on an arcade PCB using the Hyperstone CPU. This hardware was used for a number [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Imitation is the most sincere form of flattery&#8221;</p>
<p>A few days ago the Dumping Union acquired an interesting looking Korean arcade title called Mr. Dig.  The game was released by Korean company &#8216;Sun&#8217; (no, not the Java people) and runs on an arcade PCB using the Hyperstone CPU.  This hardware was used for a number of Korean games and the CPU wasn&#8217;t really used for any arcade titles developed outside of Korea.</p>
<p>From the screenshots the game looked like some kind of copy of Namco&#8217;s Mr. Driller.  Unlike most Korean games we knew that it couldn&#8217;t just be a bootleg of Mr. Driller with various hacks applied because it was running on completely different hardware; the original Mr. Driller runs on Playstation 1 based hardware, which is driven by a MIPs based CPU and is &#8217;3d&#8217; hardware.  The Hyperstone CPU definitely isn&#8217;t binary compatible with the PSX code, and the graphics hardware is completely different.  Screenshots also showed a 2 player mode, which Mr. Driller doesn&#8217;t have.</p>
<p>Let me stress again, this game is not a bootleg, it contains no Namco code at all.  I actually don&#8217;t even think it directly steals any art from the original game, it&#8217;s a reprogrammed game, the code has been rewritten from scratch, and the art, while clearly influenced by the original art appears to have been redrawn too.</p>
<p>With that in mind, look at the screenshots below to see just how far &#8216;Sun&#8217; went in order to try and imitate the look and feel of the original &#8216;Mr. Driller&#8217; game when they produced their own version &#8216;Mr. Dig&#8217; (note, the Mr. Driller screenshots are scaled for easier comparison, the original runs at a higher resolution than Mr. Dig)</p>
<p>I&#8217;ve also included some screenshots at the end which demonstrate the unique features that &#8216;Sun&#8217; added which aren&#8217;t present in the original game.  These include Bombs (which explode a few seconds after you touch them and are hazardous as a result) and &#8216;EXTRA&#8217; letters to collect.  In addition there is the aforementioned 2 player mode.  You&#8217;re not prompted to start a 2 player game, but one can be started by pressing the 2nd player start button during the mode select screen.  The winner appears to be the player who can survive the longest, or, I assume, get the the bottom first.  You can&#8217;t simply wait around to avoid dying either as the game will kill you if you don&#8217;t move for a while.</p>
<p>I&#8217;d like to thank the Dumping Union for getting this PCB, I know it wasn&#8217;t the cheapest game but it&#8217;s a fascinating insight into Korean development, showing what was going on during a transitional period in the industry as they were moving from producing mostly bootlegs using hacked code from popular games with new graphics / sounds) to actually writing their own code; in this case writing their own code, but learning by imitating others.  Cheesy as it might appear I think it&#8217;s an important part of history :-)</p>
<p><center><br />
<img src="http://mamedev.emulab.it/haze/news2010/mr_dig_1.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_1.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_2.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_2.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_3.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_3.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_4.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_4.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_5.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_5.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_6.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_6.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_7.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_7.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_8.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_8.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_9.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_9.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_10.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_10.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_11.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_11.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_12.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_12.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_13.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_13.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_14.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_14.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_15.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_15.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_16.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_16.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_17.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_17.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_18.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_18.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_19.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_19.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_20.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_20.png" alt="Mr Driller" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_21.png" alt="Mr Dig" width=320 height=240 /> <img src="http://mamedev.emulab.it/haze/news2010/mr_driller_21.png" alt="Mr Driller" width=320 height=240 /></p>
<p>New stuff only in Mr. Dig</p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_extra_1.png" alt="Mr Dig" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_extra_2.png" alt="Mr Dig" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_extra_3.png" alt="Mr Dig" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_extra_4.png" alt="Mr Dig" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_extra_5.png" alt="Mr Dig" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_extra_6.png" alt="Mr Dig" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_extra_7.png" alt="Mr Dig" width=320 height=240 /></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/mr_dig_extra_8.png" alt="Mr Dig" width=320 height=240 /><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/03/13/digging-home-the-point/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Back of the Net</title>
		<link>http://mamedev.emulab.it/haze/2010/01/18/back-of-the-net/</link>
		<comments>http://mamedev.emulab.it/haze/2010/01/18/back-of-the-net/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 20:56:55 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/?p=510</guid>
		<description><![CDATA[With the redumped ROMs from Japump / Dumping Union, and a few tweaks the the driver Versus Net Soccer is looking a lot better. There are still some 1 frame sprite glitches (like the other GX Type 4 games), and a problem with the background layer not wrapping properly (see the crowd, Rushing Heroes suffers [...]]]></description>
			<content:encoded><![CDATA[<p>With the redumped ROMs from Japump / Dumping Union, and a few tweaks the the driver Versus Net Soccer is looking a lot better.</p>
<p>There are still some 1 frame sprite glitches (like the other GX Type 4 games), and a problem with the background layer not wrapping properly (see the crowd, Rushing Heroes suffers from the same issue), bad sound (the sound rom is still bad), and the only the left screen working properly, but it&#8217;s basically fully playable for the first time, as can be seen below.</p>
<p><center><br />
<img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_2.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_3.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_4.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_5.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_6.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_7.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_8.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_9.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_10.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_11.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_12.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_13.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_14.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_15.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_16.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_17.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_18.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_19.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_20.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_21.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_22.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_23.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_24.png" alt="Versus Net Soccer" width=640 height=224/></p>
<p><img src="http://mamedev.emulab.it/haze/news2010/vsnet_newer_25.png" alt="Versus Net Soccer" width=640 height=224/><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/01/18/back-of-the-net/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Unification pt.2</title>
		<link>http://mamedev.emulab.it/haze/2010/01/11/unification-pt-2/</link>
		<comments>http://mamedev.emulab.it/haze/2010/01/11/unification-pt-2/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 00:10:49 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/?p=508</guid>
		<description><![CDATA[R.Belmont recently made a post about upcoming changes in MAME 0.136u1. The 0.136u1 update of MAME will be a major update for several reasons, not only will it be the first ever version to be compiled as C++ code (although the vast majority of the project is still written in C) it will also be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://rbelmont.mameworld.info/?p=519">R.Belmont</a> recently made a post about upcoming changes in MAME 0.136u1.  The 0.136u1 update of MAME will be a major update for several reasons, not only will it be the first ever version to be compiled as C++ code (although the vast majority of the project is still written in C) it will also be the first version where the cross-platform SDLMame becomes an official target alongside the standard windows compile.</p>
<p>That&#8217;s not the only unification that&#8217;s going on at the moment however.  As followers of this site may have noticed, I&#8217;ve always prefered the MAME style &#8216;software lists&#8217; over the open-ended approach taken by MESS with regards to loading software hence the creation of side-projects such as HazeMD and TinyCDI which serve to document both the hardware AND the software released on a platform.  Changes are underway in MESS right not to bring that concept to MESS alongside the existing open-ended loading (for homebrew etc.)</p>
<p>This will bring MESS much closer inline with MAME&#8217;s level of documentation and policies, properly documenting what software was available for each system.  The MAME / MESS database format provides a more comprehensive way to document cartridges than the existing databases which are available, and will allow proper cart dumps, with proper rom naming to be supported just as easily as in MESS.  It will also inherit the parent/clone relationship system from MAME, and have fields for Manufacturer, and Year information, just as can be found in MAME.</p>
<p>Hopefully with changes like this MESS can become the ultimate database for Console informaiton, much as MAME has become for Arcade systems.  The current databases are limited, and despite their intentions are unable to properly document some details about the cartdiges (such as the actual ROM labels, # of roms, sizes etc.) so assuming MESS can get some traction in this area it is more than capable of becoming a far better reference than those already out there.  This is something I&#8217;ve wanted to see for a long time because while the existing console ROM formats are great if you just want to play games in any given emulator they fail to actual document things the way MAME does.  As the games become older starts to become more of a priority, and isn&#8217;t something you can rely on the various rereleases on modern platforms because those are simply about playing the games, so it&#8217;s important for other people to document it.  There are other advantages to the MESS / MAME database too, for example, the development team make no claims of ownership over the database, once exported from the executable you&#8217;re free (and even encouraged) to use / import the information for use in your own emulator, so that things can be consistently and correctly supported.</p>
<p>This should also lead to it being possible to create sites like <a href="http://maws.mameworld.info/maws/">The fantastic MAWS</a> from the MESS database, and also easier set-name based bugtracking and regression testing as is used on <a href="http://www.mametesters.org/">Mametesters</a>.  It&#8217;s a large undertaking, but as long as people can get behind the idea, and support it then it could be of great benefit to everybody who cares about the history of Computer / Console software, and the emulation of these systems.</p>
<p>This could well be the start of a unified database system for Computers / Consoles, and the first step in the Console emulation scene growing up to be something that&#8217;s more than just about &#8216;playing the games&#8217;.  Here&#8217;s hoping.</p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/01/11/unification-pt-2/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Me And You Versus The World</title>
		<link>http://mamedev.emulab.it/haze/2010/01/02/me-and-you-versus-the-world/</link>
		<comments>http://mamedev.emulab.it/haze/2010/01/02/me-and-you-versus-the-world/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 22:04:57 +0000</pubDate>
		<dc:creator>Haze</dc:creator>
				<category><![CDATA[General News]]></category>

		<guid isPermaLink="false">http://mamedev.emulab.it/haze/?p=505</guid>
		<description><![CDATA[Olivier managed to pass the first protection check in this. I swapped the data rom loading, and we have a title screen. I think the rom naming is incorrect, and it&#8217;s possible some of the sprite roms are too small too, investigating. *edit* I&#8217;m 99.9% sure that the roms are too small. The sprite roms [...]]]></description>
			<content:encoded><![CDATA[<p>Olivier managed to pass the first protection check in this.  I swapped the data rom loading, and we have a title screen.  I think the rom naming is incorrect, and it&#8217;s possible some of the sprite roms are too small too, investigating.  *edit*  I&#8217;m 99.9% sure that the roms are too small.  The sprite roms contain nothing but player gfx and heads, but are used for a lot more in the game.</p>
<p><center><br />
<img src="http://mamedev.emulab.it/haze/news2010/vsnet.png" alt="Vs. Net Soccer" width=578 height=224/><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://mamedev.emulab.it/haze/2010/01/02/me-and-you-versus-the-world/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
