Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

 
 

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minecraft Dungeons II on Linux

A local stand-in for Microsoft Gaming Services so Minecraft Dungeons II (Steam app 1912410) can start under Proton. The game looks for xgameruntime.dll. This repository builds that DLL. It does not modify the game and it does not include Microsoft's library.

On first launch it signs you in with your own Microsoft account through the normal device-code page at https://www.microsoft.com/link, then caches the Xbox tokens next to the helper. Later launches reuse that cache until it expires.

Install

Proton and Python 3 are required. Clone this repository into the directory the DLL searches and run the installer:

git clone https://github.com/Alextibtab/Dungeons2_linux_fix.git ~/.local/share/dungeons2-compat
cd ~/.local/share/dungeons2-compat
chmod +x install.sh
./install.sh

install.sh creates a Python virtual environment in .venv and installs the third-party cryptography package into it; the device-token step needs that package. The DLL runs xauth.py with the environment's interpreter and falls back to /usr/bin/python3 when .venv is absent. Creating a venv needs Python's venv module — on Debian/Ubuntu install python3-venv first (sudo apt install python3-venv).

install.sh copies src/xgameruntime.dll to three places:

  • next to Dungeons.exe
  • next to Dungeons-Win64-Shipping.exe
  • into the Proton prefix drive_c/windows/system32

If the game lives in another Steam library, the script reads libraryfolders.vdf. Point STEAM_ROOT at your Steam install if it is not ~/.local/share/Steam.

In Steam, open the game's properties and set the launch option:

WINEDLLOVERRIDES="xgameruntime=n" %command%

Quit the game completely before installing. A running process keeps the old DLL.

First sign-in

Start the game from Steam. A window shows a code and opens https://www.microsoft.com/link. Enter the code, then sign in with the Microsoft account that should own the Xbox profile. Leave that page as https://www.microsoft.com/link with no extra query string.

The token file is ~/.local/share/dungeons2-compat/tokens.txt (mode 0600). Do not share it. When it expires, the next launch refreshes it or asks you to sign in again.

The cache holds three Xbox tokens, one per relying party: http://xboxlive.com for the general Xbox services, rp://api.minecraftservices.com/ for Minecraft, and http://playfab.xboxlive.com/ for PlayFab. The PlayFab token is minted with a proof-of-possession device token, which PlayFab requires; without it the account-link step fails.

Rebuild

The DLL already in src/ is ready to install. To build it yourself you need a MinGW-w64 posix cross compiler:

x86_64-w64-mingw32-gcc-posix -shared -O2 -Wall -Wextra -o src/xgameruntime.dll src/xgameruntime.c
./install.sh

What the game gets

The DLL answers the Gaming Services calls this title makes: task queues, a signed-in Xbox user (your real XUID and gamertag from the cache), title id, retail sandbox, persistent local storage, and the HTTPS security settings XCurl asks for before it connects. PlayFab login still uses the Steam session. The Microsoft token is returned only when the game asks for one, and the DLL picks the token that matches the requested service: the Minecraft token for api.minecraftservices.com, the PlayFab token for playfabapi.com, and the general Xbox token for everything else such as *.xboxlive.com.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages