Kroah's Retro Game "Decompilation" Effort
March 5, 2007
I have recently stumbled across one of the most impressive, hardcore retro computing efforts I've ever encountered. A reader, Kroah, broke into chat with me the other day, indicating that he had been searching for months and months for the manual to the game Time Bandit. He saw a photo I had linked on the Usenet several years ago, in which the manual was pictured in the background. It was chance that he found me here at Byte Cellar, but now that he had, could I provide it? I could.Why did he want the Time Bandit manual? He is building a sequel. How, you ask? With the Time Bandit Utility of his creation. You see, Kroah's passion is "decompilation". That is, breaking a game down to its basics, and then building a easy-to-use tool--GUI and everything, that allows editing of level maps, graphics, game scripts, etc. Coded in in C# under .NET, his Time Bandit Utility allows you to modify the core game, or go far beyond and create more or less a whole new game based on the original engine. The images above are just a quick demonstration of what can be done with the tool. Good stuff, eh? Well - it gets better. It's not just the Atari ST classic Time Bandit he has decompiled; a host of classic games have gone under the knife, as can be seen at his page: Archon, Seven Cities of Gold, M.U.L.E., Gateway to Apshai and more--classics, all.
Kroah tells me that he follows a certain drill in decompilation:
- Decompile and decrypt the game with an über tool (thanks IDA)
- Understand the whole data and code
- Make a tool to read/write the data (and updating some game code)
- Create new levels before releasing the custom tool
- Develop on a cool story
- Build the levels (this takes time...)
- Release the new levels and wait for the community feedback
- Release the tool
- This game has really a complex obfuscator and code protector (I spent numerous nights decrypting it...). The hardest I've ever seen. There's 3 layers of XOR encryption (at loading, in game and when loading/saving). With this, some checksums are computed and it hangs the computer randomly in time after the check... So I first decrypted the 3 layers and write it back to disk, removing the decoding code and the checksums. After that, I've extended the floppy to a double sided one (720k) and updated the loading code (the floppy is raw copied to memory). Now the game won't run on a 512K, but we have lot more free memory to do the levels. Scripts and texts take great amount of space. When I'll have time, I'll add a little encryption before loading because all the texts are readable on the floppy... not good for cheaters ;)
Now that you mention it, I could use some help with the 1993 release of Seven Cities of Gold...
Specificaly getting it to read the VALUES.CFG file...
I know this prolly isn't the place to ask for this help, but I've not yet come accross ANYTHING relating to this issue...
Thanks,
~Cadi



