Deframed v. 1.0 By Chris Gillespie gilles2@hubcap.clemson.edu 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 gilles2@hubcap.clemson.edu. 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. Usage ----- 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. Example Uses: deframed -cb binpatch txtpatch Converts a binary patch file named BINPATCH.FRB to a text patch file named TXTPATCH.FRT deframed -ct txtpatch binpatch Converts a text patch file named TXTPATCH.FRT to a binary patch file named BINPATCH.FRT. 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 :-). Credits ------- Thanks to Matt Fell (matt.burnett@acebbs.com) who produced the specs that made editing the frame table possible.