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