murkl / d2launcher

Diablo II • Median XL • Mod Launcher for Linux
https://github.com/murkl/d2launcher/releases/latest
37 stars 7 forks source link
appimage arch bash diablo-ii diablo2 elementaryos games gtk gui lightweight linux median-xl minimalist modification script shell standalone ubuntu wine zenity

Diablo II • Median XL • Launcher

Download

Features

Installation

You need the Diablo II installation files for the script to work! (You will be asked for the location in the script)

Arch Linux

Debian/Ubuntu/elementaryOS

Pop_OS!

Documentation

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"

Backup & Restore

All files are located here: ~/.d2launcher. Simply copy & paste to another system. The Diablo II binary files are stored here ~/.d2launcher/bin/diablo2.

Logging

The logging file is ~/.d2launcher/d2launcher.log and is rotated on every start of d2launcher. This contains only logs from execution of Diablo II.

Exclude files from update patch

Add this array property to exclude files from update mxl_update_exclude=("file1" "file2")

Median XL Beta

Change the property mxl_update_channel from public to beta.

Change Download URL's

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

Custom Wine Version

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"

Theming

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"

Using D2Stats

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.

Using cnc-ddraw

Thanks to @GnomeBeans

  1. Download latest cnc-ddraw.zip
  2. Unzip the downloaded cnc-ddraw.zip and drop the content into ~/.d2launcher/bin/diablo2 install dir.
  3. Goto Settings > Wine Settings > Library and override/add ddraw (set DLL load strategy to: native then built in).
  4. Change d2_args property in Settings > Edit Configuration from -3dfx to -ddraw
  5. Optimize prefered settings: Settings > Direct Draw Settings (optional)
  6. Run Diablo II

Using Game Mode / Hybrid Graphics

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"

Diablo II arguments

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

User Tweaks

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.

Update Tweaks Database

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

Tweaks Database Syntax

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:

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!

Share your own Tweaks Database

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.

Glide Wrapper Settings (deprecated)

Change in Settings > Glide Wrapper Settings (optional)

Settings

☐          window mode
☑          capture mouse
☐          keep aspect ratio
☐          vertical synchronization (VSYNC)
no         fps-limit
no         static size
☐          window extras
auto       refreshrate
☑          desktopresolution

Renderer

32 MB       texture-memory
1024x1024   buffer-texture-size
☑           32 bit rendering
☑           texture for videos
☑           bilinear filtering
☑           supersampling
☑           shader-gamma
☐           no gamma
☑           keep desktop composition

Extensions

☑           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

External Sources

Many thanks to these projects: