Around 5 years ago MAME 0.150 was released (17 September 2013) and in this release was a rewrite of the Data East protection chip handling, which allowed many previously problematic games that ran on Data East hardware to run without hitting protection related issues. To me it was one of the biggest advances in emulation at the time because quite a number of games made very devious use of the protection.
At that time there were two sets of Super Shanghai Dragon’s Eye dumped. The first was an English language bootleg that partially worked, but appeared to have buggy code where the bootleggers had missed protection checks and not reworked certain elements for the bootleg hardware properly. The emulation was imperfect, and trying to figure it out wasn’t helped by being unsure which bugs were emulation bugs and which were errors that would happen in the actual bootleg.
The second set was a Japanese set of the original game, which prior to the Data East protection work previously mentioned, had not worked properly either as various protection checks were failing.
Once the new protection code was in the Japanese set became playable, but had a number of graphical problems, and it wasn’t 100% clear how things hooked up because the existing hookups in the driver were based around the bootleg, which wasn’t quite the same as the original hardware, and some bad assumptions had been made.
While the game worked well enough to be marked as ‘Working’ in MAME the palette and priority issues were annoying, however, due to interests wavering, the driver got put on the back-burner and remained there ever since.
A recent dump of the original, non-bootleg English language set however prompted me to go back and look at the driver, and looking at it with fresh eyes I was able to spot some really quite obvious errors and reimplement the priority and mixing in a way that actually works for all situations.
Left old emulation, Right new emulation
MAME 0.201 and below | MAME 0.202 and above |
---|---|
The emulation of the bootleg was also improved, and benefits from the priority fixes, however there are still a number of other glitches, such as it not clearing the text in certain situations, and hanging at the end of the intro text until you press a button in quest mode. These appear to be cares where the bootleggers failed to deal with the protection properly as previously mentioned, so very likely happen on the bootleg hardware too.
Interesting note unrelated to the emulation: using the infinite ‘helper’ cheat isn’t actually very useful as the game always ends up recommending the first pair it finds, not the best, which inevitably leads to you failing levels.
and yeah, I know it’s a Shanghai tile matching game, and everybody seems to hate those these days, but all drivers need attention :-)
I like Shanghai tile matching games. Thank you very much for your efforts on this one.
haze is my precious thing :) (…..but seriously, nice work!)
Nice. Thanks!
Ho Haze,
There will be an article about Operation Wolf actual C-Chip emulation vs simulation? I read nothing in Bryan site.
Thanks!
Hi Haze,
Do you plan an article on Operation Wolf C-Chip emulation vs simulation? Moreover, the driver warns for imperfect sound. How far is a solution for It?
Thanks
The most recent iteration of the simulation was fairly good, although did break in some cases, LordBBH managed to break it while streaming his MAME Roulette show for example, he got to the end of the game and the helicopters didn’t chase the camera, but instead kept flying across the screen in a glitched out way.
Such glitches don’t happen with the real emulation.
Bryan has an older article from the previous time he improved the simulation.
Imperfect sound is some kind of filtering effect, most noticeable with the coin sound, which plays twice, when the second time it should be more like a much quieter echo happening around the same time, not directly after (I believe)