Skip to content

Latest commit

 

History

History
98 lines (85 loc) · 11.8 KB

README.md

File metadata and controls

98 lines (85 loc) · 11.8 KB

Functions

Each function has been categorised based on their original source file, as summarised by the table below. The progress column tracks the percentage of functions within a given source file that has been documented.

Source File Start Address End Address Progress
_crt.cpp 0x401000 0x401029 N/A
appfat.cpp 0x40102A 0x401DA3 100%
automap.cpp 0x401DA4 0x40311A 100%
capture.cpp 0x40311B 0x4034D8 100%
codec.cpp 0x4034D9 0x4037D3 100%
control.cpp 0x4037D4 0x407409 30%
cursor.cpp 0x40740A 0x4084A5 100%
dead.cpp 0x4084A6 0x4086F3 100%
debug.cpp 0x4086F4 0x4087B0 100%
diablo.cpp 0x4087B1 0x40ACAC 51%
doom.cpp 0x40ACAD 0x40ADD5 100%
drlg_l1.cpp 0x40ADD6 0x40D356 100%
drlg_l2.cpp 0x40D357 0x40FF80 51%
drlg_l3.cpp 0x40FF81 0x412654 5%
drlg_l4.cpp 0x412655 0x415097 2%
dthread.cpp 0x415098 0x415361 100%
dx.cpp 0x415362 0x4158A8 100%
effects.cpp 0x4158A9 0x415F42 22%
encrypt.cpp 0x415F43 0x4161FB 100%
engine.cpp 0x4161FC 0x41804D 66%
error.cpp 0x41804E 0x4182AC 100%
fault.cpp 0x4182AD 0x418865 16%
gamemenu.cpp 0x418866 0x418C8A 0%
gendung.cpp 0x418C8B 0x419E8A 36%
gmenu.cpp 0x419E8B 0x41A552 20%
help.cpp 0x41A553 0x41A7B2 100%
init.cpp 0x41A7B3 0x41B18F 63%
interfac.cpp 0x41B190 0x41B813 100%
inv.cpp 0x41B814 0x41F095 10%
items.cpp 0x41F096 0x425442 12%
lighting.cpp 0x425443 0x426563 0%
loadsave.cpp 0x426564 0x4279F1 34%
log.cpp 0x4279F2 0x427E0D 100%
mainmenu.cpp 0x427E0E 0x428055 30%
minitext.cpp 0x428056 0x4283BF 100%
missiles.cpp 0x4283C0 0x430FDE 2%
monster.cpp 0x430FDF 0x43AD32 1%
movie.cpp 0x43AD33 0x43AE8F 100%
mpqapi.cpp 0x43AE90 0x43BBA3 100%
msg.cpp 0x43BBA4 0x43F848 19%
msgcmd.cpp 0x43F849 0x43FAC3 16%
multi.cpp 0x43FAC4 0x440DAD 7%
nthread.cpp 0x440DAE 0x44121C 100%
objects.cpp 0x44121D 0x448754 5%
pack.cpp 0x448755 0x448DF4 100%
palette.cpp 0x448DF5 0x4493D3 100%
path.cpp 0x4493D4 0x4498EB 35%
pfile.cpp 0x4498EC 0x44A8E5 100%
player.cpp 0x44A8E6 0x450D32 5%
plrmsg.cpp 0x450D33 0x450FFD 12%
portal.cpp 0x450FFE 0x45138D 7%
quests.cpp 0x45138E 0x452830 48%
restrict.cpp 0x452831 0x452974 100%
scrollrt.cpp 0x452975 0x456624 16%
setmaps.cpp 0x456625 0x456A15 100%
sha1.cpp 0x456A16 0x456CBA 100%
sound.cpp 0x456CBB 0x45744D 100%
spells.cpp 0x45744E 0x457A00 100%
stores.cpp 0x457A01 0x45C198 67%
sync.cpp 0x45C199 0x45C86F 0%
themes.cpp 0x45C870 0x45E08B 67%
tmsg.cpp 0x45E08C 0x45E150 100%
town.cpp 0x45E151 0x46019A 15%
towners.cpp 0x46019B 0x4618A4 100%
track.cpp 0x4618A5 0x4619A6 100%
trigs.cpp 0x4619A7 0x462C6C 100%
wave.cpp 0x462C6D 0x46305F 11%
render.cpp 0x463060 0x469719 0%
_crt.cpp 0x46971A 0x47746F N/A
pkware.cpp 0x477470 0x478FFF N/A

Notes

The mapping between source file names and address ranges has been inferred by cross-referencing information from the v1.09b release of Diablo 1 against the debug release and the Japanese Playstation 1 release of Diablo 1. A majority of the original source file names (55/67) were discovered from assert strings in the debug release, while some (1/67) were discovered from section names in the Japanese Playstation 1 release of Diablo 1. The remaining 11 source file names have been inferred by categorising the behaviour of their respective functions, and by exploiting the fact that the source files have been linked together in alphabetical order.

The following source file names are known to be correct based on assert strings in the debug release: appfat.cpp, automap.cpp, capture.cpp, codec.cpp, control.cpp, cursor.cpp, dead.cpp, debug.cpp, diablo.cpp, doom.cpp, drlg_l1.cpp, drlg_l2.cpp, drlg_l3.cpp, drlg_l4.cpp, dthread.cpp, dx.cpp, effects.cpp, encrypt.cpp, engine.cpp, error.cpp, gamemenu.cpp, gendung.cpp, gmenu.cpp, init.cpp, interfac.cpp, inv.cpp, items.cpp, lighting.cpp, loadsave.cpp, minitext.cpp, missiles.cpp, monster.cpp, movie.cpp, mpqapi.cpp, msg.cpp, multi.cpp, nthread.cpp, objects.cpp, palette.cpp, pfile.cpp, player.cpp, plrmsg.cpp, portal.cpp, quests.cpp, scrollrt.cpp, setmaps.cpp, sound.cpp, stores.cpp, sync.cpp, themes.cpp, tmsg.cpp, town.cpp, towners.cpp, trigs.cpp and wave.cpp.

The following source file names are known to be correct based on section names in the Japanese Playstation 1 release: spells.cpp.

The following source file names are known to be correct based on debug information in the 1997-12-08 Alpha release on Playstation 1 (codeword Easy as Pie): help.cpp, path.cpp and track.cpp.

The following source file names are believed to be correct based on the alphabetic linking order constraint and the function declarations (PackItem and PackPlayer) inferred from the symbol debug information of the Japanese Playstation 1 release: pack.cpp.

The following source file names are believed to be correct based on the alphabetic linking order constraint as inferred from the 1.01 release of Hellfire: render.cpp.

The following source file names are believed to be correct based on educated guesses: fault.cpp, log.cpp, mainmenu.cpp and sha1.cpp.

The following source file names are most likely incorrect, but they are the result of best efforts attempts at identifying source file names which describe the behaviour of their respective functions while satisfying to the alphabetic linking order constraint: msgcmd.cpp and restrict.cpp. Any suggestions and ideas to further improve these names would be hugely appreciated!

The _crt.cpp source file name is a pseudo-file name used for functions related to the C and C++ run-time.

The pkware.cpp source file contains the PKWARE Data Compression Library.