Legacy Reverse-Engineering Resources
These references support work on the original Fallout binaries and older tooling. For source-level engine research, start with the Community Edition and Reference Edition projects listed under Projects.
The binary offsets, compiler notes, and databases below are retained for historical reference and compatibility work. Check the executable version before using an offset or database; these resources are not a current source-code reference.
Fallout2.exe
f2_res.dll (High resolution patch)
Watcom
Watcom is the compiler that was used to compile both Fallout 1 and 2.
Watcom does not support the __fastcall keyword except to alias it to null. The register calling convention may be selected by command line switch. (However, IDA uses __fastcall anyway for uniformity.)
Up to 4 registers are assigned to arguments in the order eax, edx, ebx, ecx. Arguments are assigned to registers from left to right.
If any argument cannot be assigned to a register (say it is too large) it, and all subsequent arguments, are assigned to the stack. Arguments assigned to the stack are pushed from right to left. Names are mangled by adding a suffixed underscore.
eax->func(edx, ebx, ecx, push...)
func(eax, edx, ebx, ecx, push...)
ASM
x86 and amd64 instruction reference
Online x86 / x64 Assembler and Disassembler
Reversing tools
IDA 7 freeware - disassembler/debugger
IDA 5 - Old version of IDA, suitable for DOS reversing
HxD - Freeware Hex Editor and Disk Editor ( alternatives)
idbutil - Tool for dumping data from IDA pro databases
IDA database
This database is outdated and is preserved as a historical snapshot. Prefer the CE and RE source projects for engine research.
idbtool.exe --enums Fallout2.idb > enums.txt
idbtool.exe --names Fallout2.idb > names.txt