diff --git a/README.md b/README.md index 1bc859e0b..47743b95c 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,8 @@ Compiling Definitions - `SLEEP` (default: off) will define whether to sleep the program to prevent 100% CPU usage - `_DEBUG` (default: off) will define whether to include debug features (refer to [Debugging Document](Support/debug.md)) +# [Compatibility Matrix, Compilations, Platform Statuses](Support/compatibility_matrix.md) + # Installing Once compiled, the Devilution binary will serve as a replacement for `Diablo.exe`. A clean installation of Diablo patched to 1.09(b) is needed to run the game. Either copy Devilution into Diablo's installation folder, or make sure the following files are present: - `DIABDAT.MPQ` : if `COPYPROT` was defined, then the Diablo CD will be required @@ -49,10 +51,7 @@ Once compiled, the Devilution binary will serve as a replacement for `Diablo.exe To run the game in windowed mode, a DirectDraw wrapper will be needed. Strange Bytes' [DirectDraw patch](http://www.strangebytes.com/index.php/projects/1-diablo-1-windows-7-vista-patch) is recommended. To install, place the `ddraw.dll` into the same location as the Devilution binary. -# Troubleshooting -While Devilution should produce a binary close to the original (compatible with Windows 95/NT), it may cause issues on newer systems. It has been reported to frequently crash on some setups, although for many it appears to be running flawless otherwise. Windows 7, Linux-WINE, and Windows 10 have all reported success. - -Note that newer compilers may need to be tweaked to properly produce an executable. Currently this is being worked on to provide multiple Makefiles for a variety of systems. To ensure the best results, either MinGW or Visual Studio 2003/older should be used for the time being. +# [Troubleshooting](Support/troubleshooting.md) # F.A.Q. > Wow, does this mean I can download and play Diablo for free now? diff --git a/Support/INSTALL_windows.md b/Support/INSTALL_windows.md index f644dca08..8b4fea962 100644 --- a/Support/INSTALL_windows.md +++ b/Support/INSTALL_windows.md @@ -1,14 +1,23 @@ # Installation -## Dependencies +## Dependencies and Initial Environment Configuration * Install [MSYS2](https://www.msys2.org/) ```bash # Start the *MSYS2 MinGW 32-bit* terminal. + +# If this is the first time, go ahead and update all of your components, and +# follow and instructions about restarting the terminal and running the update again: +pacman -Syu + +# After everything is updated, let's download all of the components needed +# to build it and set up any dependency symlinks: pacman -Sy git make mingw-w64-i686-gcc mingw-w64-i686-binutils + ln -s /mingw32/i686-w64-mingw32/bin/dlltool.exe /usr/bin/i686-w64-mingw32-dlltool.exe ln -s /mingw32/i686-w64-mingw32/bin/as.exe /usr/bin/i686-w64-mingw32-as.exe +ln -s /mingw32/bin/windres.exe /usr/bin/i686-w64-mingw32-windres.exe ``` ## Building @@ -18,11 +27,20 @@ git clone https://github.com/galaxyhaxz/devilution cd devilution cp /path/to/diablo_game_dir/diabloui.dll . cp /path/to/diablo_game_dir/storm.dll . + +# If you only have a single core machine or if building in parallel +# causes issues, simply run the following command: make + +# If you want to compile faster, then use the following command (Substitute # for +# your number of processors + 1. So if you have an 8 core processor, use 9: +make -j# ``` ## Install ```bash +# The Devilution executable will be placed in the root of your Devilution repository. +# Simply copy this over to your Diablo installation folder: cp devilution.exe /path/to/diablo_game_dir/ -``` +``` \ No newline at end of file diff --git a/Support/compatibility_matrix.md b/Support/compatibility_matrix.md new file mode 100644 index 000000000..21fcf71b7 --- /dev/null +++ b/Support/compatibility_matrix.md @@ -0,0 +1,25 @@ +# Compatibility Matrix, Compilations, Platform Statuses, Etc + +Please use UTC times for all entries. The Z ending represents UTC time. + +## Status Cheat Sheet + +[Modeled after Wine HQ's Rating System](https://wiki.winehq.org/AppDB_Rating_Definitions) + +| Rank | Description | +| --- | --- | +| Platinum | Works perfectly right after compilation either better or equal to Native Diablo Executable. | +| Gold | Works right after compilation with no crashes during gameplay but workarounds needed. | +| Silver | Works right after compilation with no crashes during gameplay but issues exist where no workarounds exist. | +| Bronze | Mostly works but there are still some problems remaining that prevent a full playthrough.| +| Trash | Game has severe problems and cannot be played. | + +## Windows + +| Date | Status | OS | Bitness | Version (OS) | Build (OS) | Compiler | Build Platform | User | Workaround | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | +| 2018-06-24 @ 17:05 Z| Gold | 10 | x64 | 1803 | 17134.112 | i686-w64-mingw32-gcc-7.3.0 | MSYS 2 i686 | fearedbliss | Needed to use ddraw patch. | + +## Linux + +## Mac OS X \ No newline at end of file diff --git a/Support/troubleshooting.md b/Support/troubleshooting.md new file mode 100644 index 000000000..4c2bc5a65 --- /dev/null +++ b/Support/troubleshooting.md @@ -0,0 +1,21 @@ +# Troubleshooting + +While Devilution should produce a binary close to the original (compatible with Windows 95/NT), it may cause issues on newer systems. It has been reported to frequently crash on some setups, although for many it appears to be running flawless otherwise. Windows 7, Linux-WINE, and Windows 10 have all reported success. + +Note that newer compilers may need to be tweaked to properly produce an executable. Currently this is being worked on to provide multiple Makefiles for a variety of systems. To ensure the best results, either MinGW or Visual Studio 2003/older should be used for the time being. + +## Compilations with Different Toolchains +Compiling with different compilers (Visual C++, MinGW, Etc) will lead lead to different +results with how the executable interacts with the operating system, and may lead to either +weird crashes or different types of problems either during startup or runtime. + +For example, for fearedbliss, on his Windows 10 x64 machine where he compiled Devilution +with MSYS2/MinGW32, he was getting the following messages: + +![Screenshot 1: Windows 2000 Advisory](https://i.imgur.com/ScFLGu5.png) + +![Screenshot 2: DirectDraw Error ](https://i.imgur.com/kiWkBuk.png) + +In order for him to fix these issues, he simply used the DirectDraw patch (ddraw.dll) +and placed that .dll in his Diablo directory. That seems to have fixed it and he was +able to launch and run Diablo with no crashes (Quick smoke test - Cleared Level 1). \ No newline at end of file