So for the past couple weeks, I've been decompiling the PC game Gemfire. This game has great historical significants to my closest circle of friends. It's how two of them gained their handles--Zendor (now just Zen) and Pluvius. I've been a Gemfire addict for around 14 years myself. But the PC version is quite dated--even when it was released it wasn't utilising cutting edge anything. The graphics are 8-color, the sound basic MIDI (AdLib YM3812 FM synthesiser) and the AI pretty easy to defeat.
Way back, in around 1993 or 1994, I figured out how to cheat in Gemfire by using a hexeditor to give myself a massive advantage. I knew a bit already about how the games were saved. So I decided to take this a step further--completely decompile saved games and scenarios.
I didn't take much C code before I had CSV files for everything variable in each of the starting scenarios. Then I remembered once finding additional coat-of-arms back in the day. So, I decided to extend the code that did the CSV file creation into an editor. Before long, I had the ability to change every aspect of each scenario. I found the additional coat-of-arms as well as family names to go with them, and sure enough, I could put these families into play in the game. The PC version of Gemfire never used those additional families, so I seeing things only the developers had seen.
The EXE file for Gemfire also contained a lot of information as well. This is where I pulled all the text, such as family names, character names and lands names. Each of these seemed to be organised into structures as well, so I decided to decode them as well. I found all the connections for lands, attack settings for 5th units and a few numbers I'm unsure of.
So, now I have an editor and a bunch of CSV files with everything about the game--not to mention around 100 hours of playing time. Since I was running out of summer, I thought maybe I'd make a Gemfire guide. After all, I had tons of information for it. And thus I began Gemfire.DrQue.net
Since I had become so good at simply taking information directly out of the game, I thought that rather then trying to manually capture all the graphics, I could simply decode the graphics files. I received a crash course in CGA graphics and figured out the 8-color file format. Rather then palette indexes, there were 3 bytes for each 8 pixels. The first byte was blue, the second green and the third red. Each bit reflected a pixel, and the combination of each of the bits across the 3 bytes reflected the color. Didn't take long to make a CGA to 24-bit color converter. The result: I had all the game graphics.
With school back in session, I'm not sure how much time I'll have to spend completing the site, but there is a lot of information there already.