Diablo Source Code Reconstructed With Support for Latest OSes, Mods
Blizzard has recently revisited some of its classic titles, with updates and improvements dropping for Warcraft III, Starcraft, and World of Warcraft’s upcoming Classic servers. Some of its older games, like the original Diablo, however, haven’t received the same coat of paint or support. Diablo was a huge hit in 1996, eventually shifting 2.5 million copies by 2001 — but it was completely dwarfed by Diablo II, which reportedly sold 17.5 million copies. But interest in the original game has never died, and one programmer, GalaXyHaXz, has posted a reconstruction of Diablo’s source code, dubbed Devilution, that’s intended to significantly improve the original game’s compatibility with modern operating systems, as well as allowing it to be ported to OSes like Linux.
According to Galaxy, he was able to pull this project off in just four months in part by getting extremely lucky. He writes:
Blizzard gave Diablo’s source code to two developers: Synergestic Software (to create an expansion), and Climax Studios (to create a Playstation port). Now Sony of Japan has long been known for letting things slide in their QA department. Anything from prototypes to full source code leaks (Beatmania), and Diablo was no exception. A symbolic file was accidentally left on the Japanese port, which contained a layout of everything in the game. This includes functions, data, types, and more! A beta version of the port also leaked, which contained yet another one of these files.
To top it all off, a debug build of the PC version is contained right there on your Diablo disc! Hidden in DIABDAT.MPQ -> D1221A.MPQ -> DIABLO.EXE. This build contains debug tools not found in the retail game, and many assert strings giving away code information. Combining these aspects not only makes reversing the game much easier, but it makes it far more accurate. File names, function names, and even line numbers will be fairly close to the real deal.
The project has multiple goals. In the long run, having access to reconstructed source code should make it easier to maintain and improve the game, and this project has opened up the ability to mod Diablo like never before. It’s also possible to build the file to run under Linux, though would-be players should be aware: There are no art assets included here. You’ll need to own the original Diablo CD-ROM or have access to the game’s assets in order to use Devilution to play it.
Devilution opens up Diablo for modding long-term, and there’s already talk on Reddit on whether some mod projects for that game might use the eventual Devilution source code or work with any mod projects that are spun out of the reconstructed source code. It’s always interesting to see what modders can do, even with assets as old as Diablo’s, and having access to even reconstructed source should make it easier to fix bugs or create new mods and content. Best-case, it could allow existing mods to improve and extend their own work more quickly and easily, along with possible support on other operating systems (for now, only x86 is supported).
As a onetime Diablo II modder myself, I’ll be curious to see what happens next. Reconstructed source code is the sort of achievement we’d have killed for back 17 years ago when I was working with Diablo II.
Continue reading
Protect Your Online Privacy With the 5 Best VPNs
Investing in a VPN is a smart choice right now, but the options are vast. To help narrow things down a bit, we've rounded up five of our very favorite consumer services.
RISC-V Tiptoes Towards Mainstream With SiFive Dev Board, High-Performance CPU
RISC V continues to make inroads across the market, this time with a cheaper and more fully-featured test motherboard.
The PlayStation 5 Will Only Be Available Online for Launch Day
The PlayStation 5 isn't going to be available in stores on launch day, and if you want to pick up an M.2 SSD to expand its storage, you'll have some time to figure out that purchase.
ARMing for War: New Cortex-A78C Will Challenge x86 in the Laptop Market
ARM took another step towards challenging x86 in its own right with the debut of the Cortex-A78C this week. The new chip packs up to eight "big" CPU cores and up to an 8MB L3 cache.