Devilution
Diablo devolved - magic behind the 1996 computer game
Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

DevilutionX 1.0.1

Features

  • Toggle fullscreen at any point by hitting alt+enter (mouse grab can be disabled in diablo.ini)
  • Controller: B button closes the currently active panel.
  • Added a navigation menu for controllers
  • Focus on the exit item before quitting.
  • Minor performance improvements (save/load time and main menu).
  • Add a list of known mods

Platforms

  • Added support for 32bit PowerPc
  • Added support for Amiga
  • Added support Clockwork PI GameShell
  • Added support for GKD350h
  • Switch to OPK for RetroFW (requires 2.0)
  • Update OpendDingus/RetroFW build root

Bugfixes

  • Game crashing on systems that do not report monitor refresh rate.
  • Fixed belt not working correctly when holding shift on us keyboard layouts
  • Always keep track of the latest hero level when selecting difficulty.
  • Correct screenshot path
  • Turn the screen red for 200ms when taking screenshots.
  • Fix town load screen missing on the first load.
  • Fix minor HOM issue at some houses in town.
  • Allow for space as text input
  • Fixed a couple of typos in error messages

Original Diablo bugs

  • Fix belt not working correctly when holding shift on *non-*us keyboard layouts
  • Fix one more rare crash.

DevilutionX 1.0.0

Features

  • FPS no longer capped at 20hz; smoother mouse and transitions
  • Full-featured gamepad support
  • All movies can now be skipped via ESC
  • Implement --help, --version and --data-dir
  • Implement FPS counter (-f)
  • Force windowed mode with -x
  • Skip startup movies with -n
  • Implement scroll wheel navigation
  • Implement touch support
  • Load assets from the same folder as the mpq
  • Faster loading

Platforms

  • Added Nintendo Switch support
  • Added Retro Gamer Handheld (OpenDingux/Retrofw) support
  • Added OpenBSD support
  • Windows version is now build as GUI an app and has an icon

Bugfixes

  • Fixed random missing sounds
  • Fixed NPCs not talking about the right quest
  • Error messages implemented in GUI
  • Fixed having to restart the game between network sessions
  • Fixed game not working on some Radeon GPUs
  • Fixed panel missing after minimizing game if upscaling is disabled
  • Fixed clicks in the left letterbox being incorrectly handled
  • Fixed end movie not looping

Original Diablo bugs

  • Fixed a large number of rare stability issues from the original game
  • Correctly take open panels into account when casting spells
  • Fix sound some times being muted after Diablo dies

DevilutionX 0.5.0

Features

  • Sound is now accurate to the original
  • All in-game issues fixed
  • Delete hero, inline dialogs and scrollbars are now implemented
  • Screenshots now have different names
  • Multiple simultaneous dialogs fixed
  • All builds are now 64bit (except for Windows and Raspberry Pi)
  • Memory leaks and crashes fixed
  • All keys are now mapped
  • UI text now has correct shadows
  • Much lower CPU usage
  • diabdat.mpq can now be loaded with read-only access

Known issues

  • Error dialogs not implemented in main UI
  • The game must restart after hosting multiplayer

<a href="https://github.com/diasurgical/devilution/compare/0.9.6...0.10.0">0.10.0</a>

June 22, 2019

  • All functions are now binary identical to the 1.09b version
  • Fix buying from Wirt
  • Replace many magic numbers with constants
  • Fix a handful of minor issues
  • Add toggle fullscreen with alt+enter in debug builds

June 21, 2019

June 1, 2019

DevilutionX 0.4.0

May 20, 2019

  • Fixed flickering mouse in caves
  • 32bit ARM build (Raspberry Pi)
  • 32bit FreeBSD build
  • 32bit Haiku support (see HaikuDepot)
  • Included font for rendering credits and progress screen
  • Upscaling quality can be adjusted or fully disabled in diablo.ini
  • Windowed mode can be set in diablo.ini
  • Mouse capture can be set in diablo.ini
  • Direct file access implemented (mods won't need to pack their files in an MPQ)
  • Music and speech memory leaks fixed

<a href="https://github.com/diasurgical/devilution/compare/0.9.0...0.9.6">0.9.6</a>

May 19, 2019

<a href="https://github.com/diasurgical/devilution/compare/0.8.0...0.9.0">0.9.0</a>

May 2, 2019

April 15, 2019

  • Code is once again compiled as C++ as some parts appear to require despite the indications in Rich header

<a href="https://github.com/diasurgical/devilution/compare/0.7.0...0.8.0">0.8.0</a>

April 12, 2019

<a href="https://github.com/diasurgical/devilution/compare/0.6.0...0.7.0">0.7.0</a>

April 9, 2019

April 9, 2019

  • The last of the compiler flags are figured out

March 22, 2019

DevilutionX 0.3.0

March 20, 2019

  • Fix dialog volume
  • 32bit macOS build
  • Fix crash in town during multiplayer
  • Screenshot implemented

<a href="https://github.com/diasurgical/devilution/compare/v0.5.0...0.6.0">0.6.0</a>

March 19, 2019

DevilutionX 0.2.0

March 17, 2019

  • Fully implemented audio (all issues from 0.1.0 fixed)
  • Fully implemented multiplayer
  • Windows 32bit build
  • Gameplay is fully featured and plays like the original
  • Memory leaks fixed
  • Most known crashes have been fixed

March 7, 2019

DevilutionX 0.1.0

February 27, 2019

  • Linux 32bit build
  • Basic audio
  • Video playback
  • Basic menus
  • Graphics
  • Gameplay
  • Basic multiplayer over TCP/UDP
  • Persistent settings
  • Encrypted network connection with password protection

<a href="https://github.com/diasurgical/devilution/compare/0.4...v0.5.0">0.5.0</a>

January 14, 2019

  • 50% of functions are now binary identical to the 1.09b version
  • #456 Assets can now be loaded directly form disk (no need for MPQ-files when modding)
  • #528 Code ported to C (can still be compiled as C++)
  • #111 Rich Header no longer contains incorrect sections
  • #182 defined a Code Style with accompanying clang-format definition
  • Diabloui.dll is now also part of the source tree
  • Added Contribution Guide
  • Added PDB build option for comparing with devilution-comparer
  • CI now runs the original build chain
  • Most magic numbers are now replaced by enums
  • The code was reduced by 10,000 lines
  • Fix a few issues, mostly relating to multiplayer

November 17, 2018

  • An older and more original PSX symbol file is discovered

October 1, 2018

  • Compiler version is confirmed to be correct by discovery of the Rich header

September 18, 2018

  • Merge nightly back in to devilution

September 3, 2018

  • Travis is configured to report the overall project delta to 1.09b on every change

September 1, 2018

  • Devilution-comparer is developed for comparing binary diff in compiled functions

August 28, 2018

  • The correct compiler combination is found by trial and error plus a bit of luck

<a href="https://github.com/diasurgical/devilution/compare/0.3...0.4">0.4.0</a>

September 16, 2018

  • Fix crash
  • Get the first functions bin exact
  • Fix render issues
  • Introduce debug functions from the 1.00 debug release
  • Fix missiles
  • More consts, sizeof and defines
  • Fix several issues with dungeon generation code
  • Fix multiplayer
  • Fix error messages
  • Correct names based on PSX symbols and DX SDK

August 20, 2018

  • Created nightly fork where code clean up can take place until major bugs are fixed in the main project

July 6, 2018

  • Setup a Discord channel

July 1, 2018

  • Diablo 1.09b is determined to have been compiled with the /O1 flag

<a href="https://github.com/diasurgical/devilution/compare/0.1.0...0.3">0.3.0</a>

June 28, 2018

  • Windows binary can now be compiled under Linux and Mac OS X
  • Windows binary can now be compiled under VS 5.10
  • Fix multiple crashes
  • Remove cheesy copyright notice
  • Set up continuous building via Travis and AppVeyor
  • Icon added
  • Fix Zhar quest, monster squelching and golems
  • Use consts for various values

June 20, 2018

June 18, 2018

0.1.0

June 6, 2018

  • Devilution is unleashed upon the world! Version 0.1.0!

June 3, 2018

  • Polishing things up for final release
  • Added a cheesy fake copyright notice to dissuade monetary gain
  • Properly integrated Storm and DiabloUI into the project

May 28, 2018

  • Fixed bugs with save files
  • You can now load Devilution saves in the vanilla game

May 25, 2018

  • Finally! Figured it out and now monsters spawn correctly
  • The game can be completed from start to finish with a few tricks

May 21, 2018

  • Took a week break, begin working on monster code again
  • Nearly all quests work now
  • Fixed a bug with Adria

May 8, 2018

  • Fix bugs with character drawing
  • Fix bugs relating to item affix generation
  • Towners no longer crash the game

May 7, 2018

  • Port debugging functions from the debug release
  • Still can't figure out the zombie problem

May 5, 2018

  • Begin fixing quest code and testing completion

April 26, 2018

  • Zombies are spawning in all dungeon types... sigh

April 20, 2018

  • Split code from IDA's C file into separate CPP files
  • All dungeon types can now be entered
  • Objects are now mostly working
  • Begin uncommenting monster code and fixing them

April 11, 2018

  • Begin fixing up dungeon generation and objects

April 4, 2018

  • Fixed many crashing bugs when in town and dungeon
  • Items, missiles, and spells are now drawn

April 1, 2018

  • Finally fixed the render bug, everything draws correctly!
  • Character animation now draws correctly
  • The cathedral is now mostly working

March 29, 2018

  • Fixed tons of bugs
  • You can now walk around in town
  • Entering the dungeon almost always crashes

March 27, 2018

  • Uncommented and fixed lots of broken code
  • The game screen now appears, although very glitchy

March 22, 2018

  • Control panel and inventory now work almost flawlessly

March 21, 2018

  • Temporarily commented out tons of broken code
  • You can now get past the loading screen and into town
  • Music also works
  • Control panel mostly works but game screen is black

March 18, 2018

  • The title screen now works
  • Freezes during the loading screen

March 16, 2018

  • Fixed enough bugs that you can now launch binary
  • Crashes during title screen

March 14, 2018

  • Fix remaining errors in code
  • Code now compiles and produces a non-working binary

March 13, 2018 – <em>! SPECIAL DAY !</em>

  • Dump the database to C code via IDA

March 8, 2018

  • Correct various function signatures
  • Correct struct names and types
  • Plug in enumerates
  • Finish correcting and documenting data sections

February 26, 2018

  • Finish documenting functions
  • Begin correcting names to match PSX

February 18, 2018

  • Begin adding enumerates
  • Add more minor structs
  • Clean up data sections

February 15, 2018

  • Almost finished adding every function
  • Begin working on major structs

February 8, 2018

  • Add more functions
  • Begin adding data from Sanctuary project

February 4, 2018

January 15, 2018

  • The concept of Devilution is born
  • Research into Diablo's code and mechanics
  • Research from Jarulf's guide