Name: djavul
Owner: sanctuary
Description: An open source reference re-implementation of the Diablo 1 game engine (work in progress).
Created: 2017-10-14 00:06:14.0
Updated: 2018-05-12 18:21:57.0
Pushed: 2018-05-12 18:21:56.0
Homepage:
Size: 283
Language: Go
GitHub Committers
User | Most Recent Commit | # Commits |
Other Committers
User | Email | Most Recent Commit | # Commits |
README
djavul
Preservation project for an all time classic, Diablo 1.
Note, djavul requires an original copy of diablo.exe
and diabdat.mpq
. None of the Diablo 1 game assets are provided by this project.
Project aim and objectives
The aim of this project is to provide an open source reference re-implementation of the Diablo 1 game engine.
To achieve this aim, the following objectives have been identified.
- Develop an understanding of the inner workings of the Diablo 1 game engine (subproject notes).
- Convert the original game assets to file formats with open specifications (subproject formats).
- Provide a framework of extensive test cases for comparing the re-implementation against the original Diablo 1 game engine.
- Split the engine into self-contained modules that may be validated and verified independently.
- Implement a set of tools around these modules which through interaction provide the functionality of the original Diablo 1 game engine.
- Validate that - given a deterministic seed - the re-implementation achieve pixel perfection, by mirroring the mouse and keyboard input and comparing the graphic and audio output against the original Diablo 1 game.
Design
For an overview of the key idea behind this project, refer to the design documentation.
Installation
For installation and run instructions, refer to the respective documentation:
Progress
2018-05-12
- Interact with the Diablo 1 game engine from Python script.
2018-03-30
- Running the Djavul frontend (
djavul-frontend.exe
) on a Windows 7 host system (left) and the Djavul backend (djavul.exe
) on the same system using a modified version of DiabloPatch (right).
2018-03-25
- Running the Djavul frontend (
djavul-frontend
) on a Linux host system (left) and the Djavul backend (djavul.exe
) on a Windows XP VirtualBox guest (right).
2017-12-23
- Decode legacy Diablo 1 save files.
2017-12-22
2017-12-21
- Forward mouse and keyboard input from Djavul frontend to Diablo 1 game engine (also referred to as the Djavul backend).
2017-12-16
2017-11-24
- Correct rendering of Tristram.
2017-11-22
- Mirror output using Pixel.
2017-11-13
- Dungeon generation of Cathedral.