Deframed v. 1.0
By Chris Gillespie
Deframed v. 1.0 is a very crude utility to extract the frame table from
the registered version 1.2 of DOOM.EXE. Patch files can be created in text
or binary format, edited and written back to DOOM.EXE. Deframed must reside
in the directory with DOOM.EXE.
Disclaimer: The author is not responsible for any damage this software
causes to the DOOM.EXE file or any other software, files, or hardware.
If you have problems with DEFRAMED, contact me via email at
Text Patch File Format
The first thing in a text patch file is a .FORVERSION line, indicating
what version of DOOM the patch file is meant to be used with. Only DOOM
version 1.2 is supported.
Following the version number are the entries from the frame table.
The first line specifying an entry has a $ symbol in the first column,
followed by the entry number (0-511). On a new line after the entry
are seven unsigned 4-byte integers. The meaning of these integers is
explained in Matt Fell's Doom Specs. As a side note, the fourth integer
is actually two 2-byte integers, but I was too lazy to split it apart :-).
Text files do not have to contain the ENTIRE frame table. It may only
contain a few entries and the entry # next the $ symbol will be used as
an index into the frame table.
Binary Patch File Format
Deframed can also produce binary patch files. The first four bytes of
a binary patch file contain the float value for the version of DOOM the
patch file is for and the remaining bytes contain the raw frame table
data extracted from DOOM.EXE.
When using deframed, the names of text file patches must have the
extension, .FRT, and the names of binary file patches muse have the
extension, .FRB. If no file extension are specified, these extensions
are added automatically based on the option being used (it is assumed
that binary files have .FRB for an extension and text files use .FRT).
THE EXTENSION NAME IS THE ONLY ERROR CHECKING DONE TO VERIFY WHETHER A
PATCH FILE IS BINARY OR TEXT.
deframed -cb binpatch txtpatch
Converts a binary patch file named BINPATCH.FRB to a text patch file
deframed -ct txtpatch binpatch
Converts a text patch file named TXTPATCH.FRT to a binary patch file
Note: If the text file is not a complete list of frame table entries,
it is combined with the frame table in DOOM.EXE for conversion.
deframed -e txtpatch 18 31
Extracts entries 18 through 31 in the frame table of DOOM.EXE and
APPENDS them to a text patch file called TXTPATCH.FRT. The -e option
only works for text patch files. Valid entry ranges for DOOM 1.2
are 0 through 511.
deframed -pb binpatch
Patches DOOM.EXE with the binary patch file named BINPATCH.FRB.
deframed -pt txtpatch
Patches DOOM.EXE with the text patch file named TXTPATCH.FRT.
deframed -rb binpatch
Retrieves a binary patch file named BINPATCH.FRB from DOOM.EXE.
deframed -rt txtpatch
Retrieves a complete text patch file named TXTPATCH.FRT from DOOM.EXE.
deframed -rt txtpatch -con
The -con option creates text patch files in a more condensed format,
uliminating some of the extra spacing.
NOTE: DEFRAMED does not protect against overwrites.
I do not plan to release future versions; I'm hoping Greg Lewis's DEHACKED
will support frame-table editing in the future :-).
Thanks to Matt Fell (email@example.com) who produced the specs that
made editing the frame table possible.