Files
Linux-Fixes/Proton/Mount & Blade 2 Bannerlord.md

1.9 KiB

Mount & Blade 2 Bannerlord

Installing BLSE

  1. Install BLSE and Harmony like you would on Windows

  2. Set launch options to run the BLSE launcher:
    $(echo %command% | sed -r "s/proton waitforexitandrun .*/proton waitforexitandrun/") "$STEAM_COMPAT_INSTALL_PATH/bin/Win64_Shipping_Client/Bannerlord.BLSE.LauncherEx.exe"

  3. Go to your Bannerlord install directory ex. '/home/$USER/.steam/steamapps/Mount & Blade 2 Bannerlord/bin/Win64_Shipping_Client'

  4. Rename Mono.Cecil.dll to Mono.Cecil.dll.bak

  5. Symlink all files from $STEAM_COMPAT_INSTALL_PATH/Modules/Bannerlord.Harmony/bin/Win64_Shipping_Client/ to the current directory. You can use this script:

#!/bin/bash

SOURCE_DIR=../../Modules/Bannerlord.Harmony/bin/Win64_Shipping_Client  
LOG_FILE=symlinks-created.txt

> "$LOG_FILE" # Empty the log file

for file in "$SOURCE_DIR"/*; do  
  base=$(basename "$file")  
  if [ ! -e "$base" ]; then  
	ln -s "$file" .  
	echo "$base" >> "$LOG_FILE"  
	echo "Linked: $base"  
  else  
	if [ -L "$base" ]; then  
		echo "$base" >> "$LOG_FILE"  
		echo "Skipped (symlink already exists): $base"  
	else  
		echo "SHOULD NOT HAPPEN"  
	fi  
  fi  
done

echo "Symlinking complete. Reversible via: xargs rm < $LOG_FILE"
  1. You're done, launch the game

  2. BLSE may tell you harmony was not loaded from the right place, it's fine.

Issue: Under proton, the files from Modules/Bannerlord.Harmony/bin/Win64_Shipping_Client/ are not loaded in correctly. After step 2 you'd get a 'harmony not found' error, BLSE only looks in the main launcher directory. Symlinking fixes this, but Mono.Cecil.dll is provided by default:

Name: Mono.Cecil Version: 0.9.6.0 PublicKey: BlobPtr (0x00002d2c)

and this is the harmony Mono.Cecil.dll:

Name: Mono.Cecil Version: 0.11.5.0 PublicKey: BlobPtr (0x00003073)

so we have to remove the stock Mono.Cecil.dll