GithubHelp home page GithubHelp logo

murkl / d2launcher Goto Github PK

View Code? Open in Web Editor NEW
30.0 3.0 7.0 15.46 MB

Diablo II • Median XL • Mod Launcher for Linux

Home Page: https://github.com/murkl/d2launcher/releases/latest

Shell 100.00%
diablo2 median-xl linux games zenity modification diablo-ii standalone wine lightweight

d2launcher's Introduction

Diablo II • Median XL • Launcher

Features

  • Simple Backup & Restore
  • 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

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

  • 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

Pop_OS!

  • 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

Documentation

You can override the script properties in the configuration settings (Settings > Edit Configuration). These settings can be edited manually in ~/.d2launcher/d2launcher.conf.

Backup & Restore

All files are located here: ~/.d2launcher. Simply copy & paste to another system. Feel free to move your Diablo II installation dir to ~/.d2launcher/bin/diablo2 to backup all files together.

Logging

The logging file is ~/.d2launcher/d2launcher.log and is not rotated. 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")

Example d2launcher.conf

d2_dir="$HOME/.d2launcher/bin/diablo2"
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"
gui_width="420"
gui_height="320"
mxl_update_exclude=("cnc-ddraw config.exe" "ddraw.dll")

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"

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 diablo 2 install dir (same as your d2_dir property).
  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 ...

Glide Wrapper Settings

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:

d2launcher's People

Contributors

murkl avatar thorinori avatar yandoroshenko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

d2launcher's Issues

Default Configs

I wanted to double check what the default config settings were (and then change them to cnc-ddraw by default since Glide is basically super broken now) but can't seem to find how they are being set. I found where you are checking and creating the config entries, but am not quite sure beyond that. Any info would be appreciated!

use existing prefix

I have the original game already installed in a different wine prefix. What is the point of d2launcher creating its own prefix with proton? Can I use the existing prefix in any way?

Font text very hard to see

I thought it was just broken. I'm getting the app through AUR and using a dark theme in XFCE and I have to highlight with my mouse in order to see it. You can see the version information is barely legible. Other prompts such as installing patches is hard to know whether its working since they look blank.
Screenshot_2023-05-18_13-42-49

Stuck on custom proton download

i'm on linux mint, got d2 launcher up and running
using wine 7.5 with the custom prefixes, both are set to my .wine path in the d2 launcher configs

when i double click the diablo 2 in d2launcher it asks me to download proton 64 bit, i click yes
it downloads, and installs correctly, i click okay

it then tells me i need to install proton 64 bit again, and it just loops like that, help would be greatly appreciated :)

Thank you!

I tried so hard to get vanilla MedianXL working with their Appimage and eventually gave up for months until I found this project. Sorry if this is not a legit issue, but it was the easiest way for me to say thanks. If there is anything you need help testing, I am glad to help in any way I can.

Need to insert disc ?

Hello,

First, thanks a lot for you work !
i have successfully followed the steps described, but there is at the end a message asking to insert disc. Wine isn't supposed to bypass this ? Am i missing something ? Of course my laptop doesnt have disc insertion..

thanks again :)

API available

Hello there,

whist here from the MXL dev team, I'm working on a new launcher to replace the one we have for windows currently. Thought you may want to know there's an API available to get the files for the latest mod release. The new windows launcher uses this API and you are free to integrate it in the Linux launcher you developed, it's a public API.

https://launcher.median-xl.com/docs

Once you fetch the release manifest from the API, the files can be downloaded @ https://get.median-xl.com/get.php?type={channel}&tag={tag}&file={filename} (these variables come from the manifest that was just fetched)

For example: https://get.median-xl.com/get.php?type=mxl_release&tag=2.5.2&file=D2Sigma.dll

Feel free to reach out via discord if you have questions/requests

PopOS `notify-send` not found

First of all THANK YOU for this. I'm trying to get MedianXL working on Pop!_OS 20.10 x86_64, which is Ubuntu-based but I guess doesn't have notify-send. Would you modify the README to support suggesting this install or otherwise working around the missing binary?

PopOS

cat /etc/os-release               
NAME="Pop!_OS"
VERSION="20.10"
ID_LIKE="ubuntu debian"
PRETTY_NAME="Pop!_OS 20.10"
HOME_URL="https://pop.system76.com"
....

Err

➜  d2launcher-3.2.4 ./d2launcher 
............
./d2launcher: line 104: notify-send: command not found

Fix

sudo apt-get install ruby-notify

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.