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
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