About
Remastering
Andrew Jenner, who remastered Styx, explains here how he managed the
job. In the future Andrew plans to rewrite Styx in C, including new
options.
Andrew:
"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:
- Disassemble
- Decompile
- Deshroud
- Rewrite
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, STYX.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 use are 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 Styx
are still written in Assembler, and these are assembled with A86.
I am always on the lookout for the next game to remaster, but it has
to have some particular properties:
- It must be free or abandoned by it's copyright owner.
- There has to be a good reason for remastering. In the case of Styx
and Digger, it was to get the game working again. In the case of
Sopwith, it is to get the network game working. Updating the
graphics isn't a good reason if I don't actually have any
replacement graphics (I'm not good enough at drawing to do them
myself).
- It has to be a real unique or the definitive version of the game.
For example, if you were to ask me to remaster Pacman I wouldn't
even know exactly which game you are referring to because there were
so many versions. There are also lots of good versions which work on
modern machines, so I would refuse anyway.
- I have to enjoy playing the game! Since I don't have much patience
with games, it therefore has to be one that I can pick up and don't
have to learn - it must be fun to play straight away.
- It must not be too big or remastering will take forever!"
This concludes Andrew's explanation. If you have a good idea for
remastering a game, contact us. |