|
(Or "How the deed was done") Remastering is a very long and complicated process, involving a deep understanding of both C and assembly language, and how one is translated into the other. There are four main stages to the process:
The disassembly stage is reasonably automatic. I use Microsoft's DEBUG utility to dump the code and data segments into a text file, and lots of QEdit macros to make the code more reasonable. I don't use a more complicated disassembler such as Sourcer because the extra layer of complexity it uses actually makes the code more difficult to understand at a fundamental level. The decompilation stage is slow and boring, and I haven't yet worked out how to do it automatically, so I use a "wetware" decompiler - i.e. my brain. I am currently experimenting with automatic decompilation techniques which may open up whole new realms of Remastering possibilities. After the decompilation stage, the program is in the form of C source, but all the information about variable and function names has been lost - this is effectively "shrouded" source. The next stage is deshrouding, which is sometimes extremely satisfying and sometimes extremely frustrating. During this stage you get to find out all the hidden secrets of the program and exactly how it works. The rewriting part is the most fun bit. As PC technology has changed so much, huge sections of the code have been made redundant and can be deleted or substituted with much simpler lines. For example, the high scores are now saved in an actual file, DIGGER.SCO, and *not* on an arbitrary sector of the disk in drive A:, as the original did. This is also where new features get added and bugs eliminated. This is also the part that is never quite finished... The other tools I used were Borland's Turbo C 2.0 to write simple utilities for mundane tasks such as extract the graphics data and putting it into a format I could use with CHARDES , my personal favourite sprite editor. I used this program to redraw all the graphics in glorious 16 colour 640x400 VGA. Some parts of Digger are still written in Assembler, and these are assembled with A86. The whole caboodle is now compiled with Borland's C++ 4.52 compiler and compressed using PKLITE. I am always on the lookout for the next game to remaster, but it has to have some particular properties:
|