---=== DEACC32 ===--- Armin Rigo version 1.01 Oct 20th 97, for Windows 95 & NT.. ******What's New in 1.01********* + added an anti-hacking solution. You can no longer replace .qc files in the progs.dat file with ones with invalid file names. This utility allows you to decompile the QuakeC and HexenC "progs.dat" files which contain programs included into the games Quake, from ID Software, and Hexen II, from Raven Software. It lets you see how they programmed Quake and Hexen II behaviors. It also lets you decompile any "mod". For Quake, you need to expand your pak0.pak file before you can access "progs.dat". For Hexen II, the files "progs.dat" and "progs2.dat" are already available out of the pak files. To expand pak files, use shareware utilities like SWUNPACK or programs like QuArK. Note that no compiler is available. Deacc32 can only be used to decompile "progs.dat" files for documentation purposes. The resulting code is not 100% compatible with standard QuakeC, i.e. you cannot simply make a few changes and use QCC (QuakeC compiler, from id Software) to recompile it. I recommend you to write small changes using QuArK, which lets you write only the mods and compile them over an already compiled "progs.dat". This works for Quake as well as for Hexen II and it is the only Hexen II compiler available at time. About decompiling ----------------- Open a DOS box and use the following syntax : DEACC32 where is the complete path to the "progs.dat" to decompile. Decompiled files are written in the current directory. If you give no file name, Deacc32 looks for "progs.dat" in the current directory. The decompiling process does not create exactly the same source files that where used at compile time. For example, all comments are lost. There are other small problems that you should be aware of, too; data types must sometimes be guessed out of partial information, and some guesses may be inaccurate. The type of function results is an example of such guesses. Some special types are also simplified : all "object field" types are written as instead of ".string", ".float", ".vector", and so on; all "function pointer" types are written as instead of the complete function header, like "void()" or "float(vector v, string name)". Deacc32 can decompile Hexen II - specific code, including arrays and simplified instructions like "+=". Where to find... ---------------- All programs cited above can be found from the ftp site ftp://ftp.cdrom.com/pub/idgames2 or any mirror. Visit QuArK's home page at http://www.planetquake.com/quark/index.shtm where you can find QuArK (QUake Army Knife) and Deacc32. Deacc32 is based on the old Deacc. The Delphi 2 source code has been included in the archive. Do whatever you want with this program or his source code, as long as you include this text file unmodified along with any distribution including Deacc32 or programs based on its source code. I don't assume any responsibilities for anything that can happen from the use of all this ! Deacc32 and its source code are freeware. You may not ask people to pay for it anything more than the distribution charges. You can contact me at arigo@alphanet.ch DO NOT SEND ANY FILE with your e-mails ! By Armin Rigo, author of QuArK