Mount & Blade II: Bannerlord

Mount & Blade II: Bannerlord

[GUIDE/STATUS] Bannerlord on Linux w/ Proton
Figure a state-of-the-union thread on this would be useful, given the number of threads on Linux support (and the disorganized state of the one big one). Mods: can we get this pinned?

tl;dr: after a bunch of fiddling and patching between myself and a bunch of other Butterlords on GitHub, we've got (singleplayer) M&B2 in a pretty workable state with a (patched) Proton.

Great! How do I run Bannerlord on Linux?

Current process:

  • Download and install Proton 5.5-GE-1[github.com] (instructions[github.com]) and set it as the game's compatibility tool (you'll likely need to restart Steam to get it to show up as an option)
  • Run the following in a terminal:
    cd "~/.steam/steam/steamapps/common/Mount & Blade II Bannerlord/bin/Win64_Shipping_Client" ln -s Bannerlord.exe ManagedStarter.exe ln -s Bannerlord_BE.exe ManagedStarter_BE.exe

If you're okay with long save times and stuttering, you can end here. Else, you can try to either install .NET (fastest savetimes and best performance, but at the cost of more frequent crashes):

  • Install protontricks[github.com] if not already installed (requires Winetricks[wiki.winehq.org], which is usually available in distro package repos)
  • Run the launcher at least once to generate the Wine prefix
  • Run "protontricks 261550 dotnet472"
  • Download .NET Core[dotnet.microsoft.com]
  • Run "protontricks 261550 --gui":
    • Choose "Select the default wineprefix"
    • Choose "Run explorer"
    • Use the Explorer window to run and install the .NET installer you downloaded above

Or you can install/build a custom kernel with "FUTEX_WAIT_MULTIPLE" support (mild performance improvement; significant savetime improvement, but not quite as fast as with .NET; good stability):

  • General info from Valve
  • Arch: linux-tkg[github.com] or linux-fsync[aur.archlinux.org] or XanMod[xanmod.org]
  • Ubuntu: Valve's PPAs[launchpad.net] (kernel-bionic or kernel-disco depending on your Ubuntu version) or XanMod[xanmod.org]
  • Debian: XanMod[xanmod.org]
  • Slackware: I'll have a SlackBuild up at some point
  • Others: ???

Won't BattlEye drink from our skulls and eat our livers?

As of right now, TaleWorlds has not made BattlEye mandatory for singleplayer (nor would they have any reason to do so).

Multiplayer was previously working, but as of 7 May 2020[github.com] BattlEye is indeed kicking players from servers, so multiplayer is no longer a possibility unless/until we have the ability to host non-BattlEye dedicated servers.

My mouse still doesn't work!

You need to use a Proton build with the Bannerlord-specific patches, whether it's GloriousEggroll (linked above) or one you built from source. Some users have reported that the mouse doesn't work on the first run (even with a patched Proton) but does on subsequent runs.

I'm getting crashes and/or stuttering!

There are a couple log files that are useful here:

  • In "~/.steam/steam/steamapps/compatdata/261550/pfx/drive_c/ProgramData/Mount and Blade II Bannerlord/logs", the "rgl_log_NN.txt" and "rgl_log_errors_NN.txt" files (where NN is a number; I've usually seen 42, but sometimes it's 41)
  • "~/steam-261550.log" (to generate this you'll need to add PROTON_LOG=1 to your launch options in Steam, e.g. "PROTON_LOG=1 %command%")

If you're getting stuttering, it'd also be useful to stick DXVK_HUD=full in your launch options (so "DXVK_HUD=full PROTON_LOG=1 %command%") and provide a screenshot.

Ultimately, though, Windows users are seeing a lot of these issues, too. Welcome to Early Access :) If you're lucky enough to have a working Crash Reporter, feel free to use that to submit crash reports (while TaleWorlds doesn't officially support Linux yet, with or without Proton, it may still be useful as an alternate perspective on potential or confirmed Windows bugs as well).

When the game crashes Steam's stuck in "Running" and I can't stop it

Fire up a process manager (e.g. htop) and look for any lingering explorer.exe processes. Kill those and that should hopefully clear things up. If not, then do the same for any lingering wineserver processes, as well as any other .exe processes.

You can also run "pkill .exe && pkill wineserver" as a nuclear option (but keep in mind that this will affect any other Wine applications running as well).
Last edited by YellowApple; May 10 @ 3:23pm
< >
Showing 1-15 of 51 comments
Adding my vote to have it pinned, please do.
Parasol Apr 6 @ 1:44pm 
I appreciate that thread.

Wine is necessary for the second part I guess ? (protontricks and winetricks)
I end up with a "wineserver not found !" error if I try launching winetricks.
Originally posted by Parasol:
I appreciate that thread.

Wine is necessary for the second part I guess ? (protontricks and winetricks)
I end up with a "wineserver not found !" error if I try launching winetricks.
I do believe you'll need a system-wide Wine to install Winetricks, yeah. Protontricks will automatically point at whatever Proton version you're using for a given game, though.
Parasol Apr 7 @ 3:48am 
Do you need a 64bits or a 32bits wine prefix ? I may be doing something wrong, but no matter how I install Wine (HQWine install), Protontricks picks up a 64bits prefix. Is it a problem ?
Last edited by Parasol; Apr 7 @ 9:38am
Parasol Apr 7 @ 10:26am 
All right, I ignored those issues, I'm not sure I did the Protontricks part correctly but I just tried a custom battle and it works great, put aside some stuttering at the beginning. Thank you.
Bunnyhop Apr 7 @ 11:50am 
Originally posted by Parasol:
Do you need a 64bits or a 32bits wine prefix ? I may be doing something wrong, but no matter how I install Wine (HQWine install), Protontricks picks up a 64bits prefix. Is it a problem ?

The prefix (other than the system/home default, which isn't relevant for this and you don't want to be using that) is separate from the wine install (and proton basically is a fork (version) of wine). Wine or proton would be like the 'kernel/base' and the prefix would be like the harddisk with all the data.

The prefixes ('harddisks') for steamplay/proton games are all in your steamapps/compatdata folder (in your steam directory, or secondary steamlibrary - whichever) numbered by their appID. Each of those folders is a separate prefix with its own 'windows', system files, and registry. (all neatly contained in that folder)

When you run wine or proton using WINEPREFIX=that folder/pfx, it'll contain all alterations and stuffs to that folder.

The actual gamefiles are packaged differently (this goes for proton prefixes, steamplay/steam installs, and the way it handles it - regular wine does not by default do things this way); so they're the same as it would be under windows in your steamapps/common folder.
Once you initialize (run it, via steam UI, after downloading and installing it) it with steamplay (under properties of the game, after enabling steamplay for non-white listed titles, it should show you a list of what proton versions or builds you have installed that you can run it with) the game, the prefix will be made in compatdata for that game. That's the prefix you'll use for running the game, and which you'll direct protontricks to (via protontricks 261550 dotnet472 in this case - it tells protontricks the appid which it will find the compatdir folder for - named the same - and this is the wineprefix that will be used for the running and installation of dotnet472, it will pass this info and other tweaks to winetricks, like a wrapper)

Protontricks will use the proton default or the proton version you specify for it to use. Winetricks alone, will by default use the system-wide installed wine binaries, unless you specify otherwise.

If you just want to start anew or think you did something wrong during the installation of tweak - delete the 261550 folder in compatdata, and run the game through steam again. It'll re-create a fresh one.

(I don't know if this was of any help, or if I misunderstood what the misunderstanding was, or if I just added more confusion to the mix. If the latter let me know, I'll delete the post.)
Bumping with an update on multiplayer (I haven't tested it myself, but it allegedly works if you tell the game to bugger off when it asks you to install BattlEye) and some additional tips around debug logs and cleaning up stuck Wine processes after crashes.

Mods: pinning this thread would still be appreciated.
Last edited by YellowApple; Apr 7 @ 8:41pm
Parasol Apr 8 @ 12:14am 
I don't want to be too pessimist, but if it goes like other games using BE, BattleEye will probably kick you out after less than a minute. Actually, I'm rather worried about a Linux port because of BE, but maybe I shouldn't.
Originally posted by Parasol:
I don't want to be too pessimist, but if it goes like other games using BE, BattleEye will probably kick you out after less than a minute. Actually, I'm rather worried about a Linux port because of BE, but maybe I shouldn't.

Battleye supports Linux natively, it just doesn't work with Wine/Proton. There's still hope. :)
Parasol Apr 8 @ 3:14am 
I'm glad to read that :)
Giorgio Apr 9 @ 2:41pm 
Do you know where the save files are? I have read somewhere if you delete the autosave, that stop the autosave ingame, and that's very annoying when i leave a town, bim, autosave and waiting
Originally posted by Ordo ab chao:
Do you know where the save files are? I have read somewhere if you delete the autosave, that stop the autosave ingame, and that's very annoying when i leave a town, bim, autosave and waiting

Should be (change YOURUSERNAME to your user name):

/home/YOURUSERNAME/.local/share/Steam/steamapps/compatdata/261550/pfx/drive_c/users/steamuser/My Documents/Mount and Blade II Bannerlord/Game Saves/Native
Giorgio Apr 10 @ 9:51am 
oh yes thank you, you are a boss
EDIT: No unfortunately it doesn't work, a new autosave data is created in game
Last edited by Giorgio; Apr 10 @ 10:06am
Bumping with updated instructions to reflect recent findings with fsync-enabled kernels (namely: FUTEX_WAIT_MULTIPLE helps quite a bit with save times, though still not quite to the extent as .NET via protontricks).
Bunnyhop Apr 11 @ 3:35am 
Seems like mods utilizing Harmony (0Harmony.dll in the mod dir) for replacing/customizing windows and dialogue ingame require dotnet. Example being quality of life ones like MBFastDialogue. (as a sadnote)
< >
Showing 1-15 of 51 comments
Per page: 15 30 50

Date Posted: Apr 6 @ 12:38am
Posts: 51