One thing struck me as strange, though. What was Defender II? I never saw that in an arcade anywhere, and it looked a heck of a lot like Stargate. In fact, it seemed it was Stargate, just with a different name. I shrugged it off as being a version of the game that I just never saw it before.
Years later, (well, at least for me anyway), I finally knew why. To quote from Jeff Vavasour's webpage:
- Officially we've got to call Stargate "Defender II" these days because a Ouija board manufacturer claimed prior trademark on the name Stargate. The ROM hack I created to turn Stargate into Defender II has since become the "official" ROM and title artwork for all subsequent releases of the game, in a revisionist sort of way.
One day, I stumbled upon Sean Riddle's page, and on it he mentions some work he had done with Williams Arcade Classics for the PC. By the looks of the page, everything's from around ten years ago. To cut to the chase, he was able to extract the original ROMS from the PC version from the game. At that point, I thought to myself "wouldn't it be neat to play Defender II in MAME?"
I had the original DOS version of WAC, so that was out of the way. The only problem, though, is he only has the source code for the programs he wrote to extract the data, not the executables, though it looked like he did at one time. And it looked like he ran it on an Amiga. Lightbulb!...head on over to Archive.org, and I should be able to find it there, which I did. Yay!
Damn! Still doesn't work, but why? I couldn't even get the programs to run after booting my computer straight into DOS. His program just straight wouldn't work, and the one written by Jonathan Wolf kept giving me the "couldn't allocate buffer for memory map" error. Grrr. What to do? What to do? Maybe a HEX editor?
Well, now we we're getting somewhere. Each program on the disc is self-contained (DEFENDER.EXE, JOUST.EXE, etc.), and includes the original ROMS built into its executable, just kind of all glued together as one big ROM, instead of separate files. Digging in further, and comparing to the actual ROM code, I was able to determine the beginning and end of the ROMS. Cool! Getting even closer.
Damn! Why do I have over 50K of data? The total of the ROMS should be exactly 48K (4096 x 12). What's extra/different that I can get rid of, and what's changed/different that I need to keep? It was getting late that night, and I was getting ready to go out of town for a week, so it was time to put it to the side , or was it? Sean mentioned on his page that on the Win95 version of WAC, the ROMS were uncompressed, making it easier to extract stuff. I took a shot and tried eBay. Lo and behold, at that very moment, I was able to find the Win95 version, which is supposedly slightly rare to come by. It even had a "Buy It Now" that was reasonably priced. Bought, paid, and then wait.
It arrived while I was out of town, of course, so I had to wait with anticipation. Once I got home, I spent time with my family of course; I was gone for a week, and they missed me =D
Once they all went to bed, however, it was off to the computer, rip open the package, and fire up the CD.
Damn! Thing looks practically identical to the DOS version. Let's see, what's different. Ah, yes, those "GAMEx.INF" files weren't there before, and each one has a "GAMEx.HLP" file to go with it. Looks like game number two is our winner. But it's 50KB again, WTF! This needs some closer investigation.
Finally! I got it figured out. There is some code in the very beginning of the file that does "I'm not sure what," and some code in the middle that handles the start menu for the PC executable. Rip that out and you are left with...dramatic pause...48KB! Split the file into twelve equal 4KB parts, and it worked perfectly...well almost. The attract mode is acting up some. Darn! Time to compare files one by one. To cut this already long story short, it was ROM "1." Replacing that with the one from an original Stargate lets the game run just fine.
What's different between this and Stargate? Well, other than the four screenshots on this page, as far as I can tell, absolutely nothing. It's the same old game. If you compare these ROMS to an original dump of Stargate, you'll see they are identical byte for byte except for the name change to Defender II, and the three-byte difference in the first ROM.
So why did I even bother? Simple...no one had done it yet, and it sounded interesting to do =D
Will this ever be in the official MAME? Nope, not a chance. For one, even though it is based off the original arcade code, it is still code that never found an actual arcade release. The two releases you can find in arcades are based off of this exact code, but it's still not the same. Two, it's not the complete code. To make it work, I had to use ROM "1" from Stargate, plus the sound and video-decoder proms from Stargate (the code in WAC is only the program code; the sound is done using samples).
Not bad for a non-programmer. If you want to try it out, I've posted a TinyMAME build below that supports it. Enjoy =D