The aim of this project is to organize and cross-reference a collection of notes related to the inner workings of the Diablo 1 game engine. The initial work has focused on creating a foundation and high-level structure (think documentation skeleton) for organizing these notes. A few function declarations and global variable declarations have already been documented, but mainly to provide a reference for how the structure of the documentation may look like. Future work will focus on documenting the remaining relevant function declarations, global variable declarations, structure definitions and enumerate definitions of the Diablo 1 game engine.
The notes are currently organized into the following categories.
- Functions: function declarations.
- Global variables (read-only): global variable declarations in the read-only data section.
- Global variables (read-write): global variable declarations in the read-write data section.
- Global variables (uninitialized): global variable declarations in the uninitialized data section.
- Structures: structure definitions.
- Enumerates: enumerate definitions.
- Storm ordinals: Storm.dll function declarations based on ordinal numbers.
Category | Progess |
---|---|
Functions | 12% (239/1955 functions) |
Global variables (read-only) | 94% (26804/28372 bytes) |
Global variables (read-write) | 95% (187436/196860 bytes) |
Global variables (uninitialized) | 22% (468048/2048516 bytes) |
Storm ordinals | 63% (37/58 functions) |
The README of each sub-project tracks the progress for each of its source files.
Anyone interested in contributing to the project may do so in whichever way they desire. This may include:
- Provide ideas on how to better structure the information
- Point out mistakes or inconsistencies in the notes
- Improve the existing notes
- Add documentation for
- function declarations (e.g. drlg_l1_place_door)
- global variable declarations (e.g. cathedral_stairway_down_piece_ids)
- structure definitions (e.g. Shadow)
- enumerate definitions (e.g. quest_level)
- ...
None of this work would have been possible without Jarulf's Guide to Diablo and Hellfire, one of few truly amazing resources on the Internet.
The source code and any original content of this repository is hereby released into the public domain.