- Simple Backup & Restore (Savegames & Diablo II Installation)
- User Tweaks (Auto Install Scripts for Plugins etc.)
- Custom Proton (64 Bit) build will download by script
- Download latest Median XL patch (incl. notification on new updates)
- Median XL Version Management
- Import/Export of savegames
- D2 Stats included (will download by script)
- Sven's Glide wrapper included
- Direct Draw cnc-ddraw supported
- Diablo II 1.13c files to work with Median XL included
- Updater (incl. notification on new updates)
- Supports the execution of EXE files within the wine prefix
- Configurable (see Documentation)
- Shellcheck approved
- 100% GUI
You need the Diablo II installation files for the script to work! (You will be asked for the location in the script)
- Install from AUR
- Download & Extract: d2launcher.tar.gz
- Install Dependencies
sudo apt install wine zenity curl unzip jq wmctrl fuse2 xdelta3
- Some distros label fuse2 as libfuse2, if you receive an error about fuse2 not being found, try libfuse2
- Run
./d2launcher
- Download & Extract: d2launcher.tar.gz
- Install Dependencies
sudo apt install wine zenity curl unzip jq wmctrl fuse2 ruby-notify xdelta3
- Some distros label fuse2 as libfuse2, if you receive an error about fuse2 not being found, try libfuse2
- Run
./d2launcher
You can override the script properties in the configuration settings (Settings
> Edit Configuration
). These settings can be edited manually in ~/.d2launcher/d2launcher.conf
.
Example d2launcher.conf
:
d2_exe="Diablo II.exe"
d2_args="-ddraw"
wine_init="gamemoderun"
d2_stats_tray="true"
update_check="true"
mxl_update_check="true"
mxl_update_channel="public"
mxl_update_exclude=("cnc-ddraw config.exe" "ddraw.dll")
gui_width="420"
gui_height="320"
tweaks_url="https://my/custom/url/to/tweaks.db"
All files are located here: ~/.d2launcher
. Simply copy & paste to another system. The Diablo II binary files are stored here ~/.d2launcher/bin/diablo2
.
The logging file is ~/.d2launcher/d2launcher.log
and is rotated on every start of d2launcher. This contains only logs from execution of Diablo II.
Add this array property to exclude files from update
mxl_update_exclude=("file1" "file2")
Change the property mxl_update_channel
from public
to beta
.
wine_native_url="https://github.com/Kron4ek/Wine-Builds/releases/download/6.3-7-proton/wine-6.3-7-proton-amd64.tar.xz"
d2_stats_url="https://github.com/Zahariel1942/D2Stats/releases/latest/download/D2Stats.zip"
d2_sigma_loader_url="https://github.com/SyndromeDayna/diablo-2-median-xl-sigma-loader/releases/download/3/sigma-loader.exe"
tweaks_url="https://raw.githubusercontent.com/murkl/d2launcher/refs/heads/main/res/tweaks.db"
Note: If you change the URLs, you have to force the regarding update/install: Update Manger
> Force Proton Update
/Force D2Stats Update
If you use Wine you have to set wine_user="$USER"
otherwise for Proton set to wine_user="steamuser"
wine_default="/path/to/your/custom/wine"
wineprefix="$HOME/my/custom/wine_prefix"
wine_user="steamuser"
gui_width="360"
gui_height="280"
gui_font="UbuntuMono Nerd Font"
gui_color="#eeeeee"
gui_size="9"
gui_dialog_width="280"
gui_dialog_height="140"
gui_dialog_font="UbuntuMono Nerd Font"
gui_dialog_color="#aaaaaa"
gui_dialog_size="9"
It's nessesary to start D2Stats (Statistics) in d2launcher first, before starting Diablo II. Because d2launcher will check every start of Diablo II (using pgrep) if D2Stats is running. In this case, d2launcher starts Diablo II automatically with sigma-loader.
Thanks to @GnomeBeans
- Download latest cnc-ddraw.zip
- Unzip the downloaded
cnc-ddraw.zip
and drop the content into~/.d2launcher/bin/diablo2
install dir. - Goto
Settings
>Wine Settings
>Library
and override/addddraw
(set DLL load strategy to:native then built in
). - Change
d2_args
property inSettings
>Edit Configuration
from-3dfx
to-ddraw
- Optimize prefered settings:
Settings
>Direct Draw Settings
(optional) - Run
Diablo II
Install the gamemode
package in your system and add this property in Settings
> Edit Configuration
:
wine_init="gamemoderun"
When using Hybrid Graphics, you can add for NVIDIA:
wine_init="prime-run gamemoderun"
Goto Settings
> Edit Configuration
and modify d2_args
property:
Enable Glide wrapper | -3dfx
Enable Direct Draw | -ddraw
Window mode | -w
Skip to Median XL Login | -skiptobnet
No sound | -ns
Note: Add multiple arguments with -ddraw -skiptobnet ...
Open Tweaks
in the main menu and select the desired tweak script that you want to install. This is intended for your own install scripts such as d2gl or cnc-ddraw.
To update this shown tweak list, goto Update Manager
> Update Tweaks Database
. The file set in the tweaks_url
property will be downloaded to ~/.d2launcher/tweaks.db
(or copied if tweaks_url
is set to a local file).
Separated by the two header lines ###!> name: ...
and ###!> version ...
(please keep this order), all tweak scripts are saved in one file.
The working directory is a generated temporary directory and is deleted after termination. You have access to the variables from d2launcher.conf
within the tweaks script.
Note: The Diablo II installation dir is: ~/.d2launcher/bin/diablo2
(use this dir to copy d2-gl files for example)
Example tweaks.db
:
- Create a new
~/tweaks.db
- Set
tweaks_url="~/tweaks.db"
Note: The tweaks.db
file can be saved in any location. It must then be adapted accordingly in the tweaks_url
.
###!> name: my_first_tweak_script
###!> version: 1.0.0
echo "You can use bash code to pimp your Diablo II here..."
###!> name: my_second_tweak_script
###!> version: latest
echo "Do another plugin stuff..."
Note: Root access is not supported!
You need to share your URL to your tweaks.db
and set as tweaks_url
in settings. Remember to update the tweaks database to create new local ~/.d2launcher/tweaks.db
from tweaks_url
.
Note: Feel free to open a PR and merge your tweaks into d2launcher as a PR.
Change in Settings
> Glide Wrapper Settings
(optional)
☐ window mode
☑ capture mouse
☐ keep aspect ratio
☐ vertical synchronization (VSYNC)
no fps-limit
no static size
☐ window extras
auto refreshrate
☑ desktopresolution
32 MB texture-memory
1024x1024 buffer-texture-size
☑ 32 bit rendering
☑ texture for videos
☑ bilinear filtering
☑ supersampling
☑ shader-gamma
☐ no gamma
☑ keep desktop composition
☑ GL_EXT_vertex_array
☑ GL_ATI_fragment_shader
☑ GL_ARB_fragment_program
☑ GL_EXT_paletted_texture
☑ GL_EXT_shared_texture_palette
☑ GL_EXT_packed_pixels
☑ GL_EXT_texture_env_combine
☑ WGL_EXT_swap_control
☑ WGL_ARB_render_texture
Many thanks to these projects:
- https://median-xl.com
- https://github.com/Kron4ek/Wine-Builds/
- https://github.com/Kyromyr/D2Stats
- https://github.com/Zahariel1942/D2Stats/
- https://github.com/SyndromeDayna/diablo-2-median-xl-sigma-loader
- https://github.com/synthagency/icons-flat-osx
- http://www.svenswrapper.de
- https://github.com/FunkyFr3sh/cnc-ddraw
- https://github.com/GavinK88/d2gl-mxl-1.0