entryway
Forum Staple
Posts: 2522
Registered: 01-04 |
kb1 said:
Quasar, how did you get Idapro to disassemble both the 16-bit DOS extender, and the 32-bit embedded program? More specifically, did you find the file offset as well as segment load addresses, and the entry-point for the 32-bit code? I've been trying to use the latest free version of Idapro to check out some of the old Doom DOS exes, which could be really cool for things like Doom 1.2 demo compatibility, etc. Idapro reads the DOS4GW code ok, but seems to stumble (understandably) on the game's 32-bit code.
You should remove DOS4GW stuff from EXE with HEX editor before giving it to IDA. For example for DOOM2.EXE v1.9 (709 905 bytes) you should remove first 152 084 bytes. The real EXE starts from 4D 5A B2 sequence (the 4-th occurrence of MZ string from the start of EXE)
btw, I have almost fully disassembled DOOM2.EXE v1.9 and DOOM95.EXE (it was an easy way for fixing some desynch in prboom+, because I can debug win32 doom95.exe from IDA). Approximately 95% of functions names and variables are defined in my DOOM2.idb DOOM95.idb. Also I have IDBs for others EXE like dosdoom, tasdoom, etc, but they are only for special cases like emulation of spechit overrun for corresponding complevels in prboom+, heretic+ and doom+ hacks, etc
Last edited by entryway on 12-04-08 at 10:20
|