With the release of the Diablo 1 source code, I spent some time to set up a development environment in which I could compile the source code.
Wanting to be as close as possible to the tools used in the 90s by the development team, I opted for the Windows 95-based toolset. It took me a few days to create a VMWare virtual machine running Windows 95, sound drivers, video drivers, and Visual C++ 6.0 with the ability to compile, link, and hit breakpoints in the Diablo 1 source code.
This VM contains everything you need to hack or modify Diablo 1, and to add your own features.
I wrote a "how to start" readme on the desktop of the VM. Moreover, I've included tools for MPQ and image manipulation.
To try it out, I used it to create few small features myself. They're all implemented inside Source\sm_utils\sm_utils.cpp. By looking at all the functions I added, you can find where they're called from to figure out some of the workings of the code base. Here's what I added:
- Deckard Cain gives you a unique item when you ask him
- Items display their sell value when mouse-hovered
- Example of drawing/animating a sprite
- A toggled insta-kill mode, which instantly kills mouse-hovered monsters
Diablo 1 toolchain VM
- download this and run it in VMWare Player to gain access to everything needed to modify Diablo 1. Some knowledge of C is required. Source code is included.
VMWare Player 12.5.1
- install this to be able to run the toolchain VM and compile your own version of Diablo 1!
VMWare Player 16.1.0
- install this if the older version above does not work
I'm providing this install log for anyone who wishes to install the toolchain components himself:
- install (in a new VM) windows 95 and vmware tools
- install vc++ 6.0 professional (serial 465-6389583) - "typical" installation
- which installs IE 4.01 SP1 and THEN VC++ 6.0 professional
- skipped MSDN
- install msie401sp2 (Internet Explorer 4.01 SP2) (required by MDAC 2.8 SP1)
- install MDAC 2.8 SP1 (required by vs6sp5)
- some steps failed (ole and msxml) but overall succeeded
- install vs6sp5 (service pack 5 for vc++ 6.0) (required by vcpp5)
- install vcpp5 (vc++ 6.0 Processor Pack)
- install Microsoft Visual C++ 5.0 Professional (serial 111-1111111) - "typical" installation
- install VS97SP3 (service pack 3 for Visual C++ 5.0)