Difference between revisions of "Sandbox"
(New Linux guide) |
m |
||
Line 94: | Line 94: | ||
== 2.1. Run the installer == | == 2.1. Run the installer == | ||
− | $ WINEPREFIX=${BTA_ROOT}/wine64 WINEARCH=win64 wine BTAdvancedLauncher.exe | + | $ WINEPREFIX="${BTA_ROOT}/wine64" WINEARCH=win64 wine BTAdvancedLauncher.exe |
== 2.2. Click the “Advanced Mode” button. == | == 2.2. Click the “Advanced Mode” button. == | ||
Line 148: | Line 148: | ||
$ cd ${BT_ROOT}/Mods/ModTek | $ cd ${BT_ROOT}/Mods/ModTek | ||
− | $ WINEPREFIX=${BTA_ROOT}/wine64 WINEARCH=win64 wine ModTekInjector.exe | + | $ WINEPREFIX="${BTA_ROOT}/wine64" WINEARCH=win64 wine ModTekInjector.exe |
ModTek Injector | ModTek Injector | ||
--------------- | --------------- |
Revision as of 22:14, 2 April 2021
This guide assumes you are using the native Linux version of BattleTech. If you installed the Windows version, got it running with Proton, and successfully installed BTA, please write up a document similar to this one for your scenario.
1. Prepare
1.1. Set some vars we’ll need later to avoid typos
Double-check these paths with your local installation, they may be different.
$ BTA_ROOT="$HOME/src/BATTLETECH/BTA"
Steam on Debian
$ BT_ROOT="$HOME/.steam/debian-installation/steamapps/common/BATTLETECH"
Steam on other distros
Check your $HOME/.steam
directory and modify the above environment variable assignment accordingly.
GOG
$ BT_ROOT="$HOME/GOG Games/BATTLETECH"
1.2. Ensure dependencies are installed
Package* | Purpose |
---|---|
wine | run the installer |
unzip | unzip the installer package |
jq | allow pathfinder.sh to parse JSON |
* Package name may differ on your distribution.
Debian & Friends (Ubuntu, Mint, Pop_OS!, PureOS)
$ sudo apt install wine unzip jq
RedHat & Friends (Fedora, SuSe)
$ sudo dnf install wine unzip jq
Arch & Friends (Manjaro, GamerOS)
$ sudo pacman -S wine unzip jq
1.3. Prepare Wine prefix for the BTA installer.
The wine-mono package listed here is for reference only. You can get the most recent version from https://dl.winehq.org/wine/wine-mono/.
$ mkdir -p "${BTA_ROOT}" $ cd "${BTA_ROOT}" $ wget https://dl.winehq.org/wine/wine-mono/6.1.0/wine-mono-6.1.0-x86.msi $ WINEPREFIX="${BTA_ROOT}/wine64" WINEARCH=win64 wine msiexec /i wine-mono-6.1.0-x86.msi
1.4. Download the BTA installer and Extract the .zip into ${BTA_ROOT}
You’ll have to manually download the installer from NexusMods. Save it to your ${BTA_ROOT}
. Then unzip it.
$ unzip 'BattleTech Advanced 3062 Installer-452-v8-5-2-1613256258.zip'
1.5. Prepare the Mods directory
If you try to run BTA alongside other mods, problems are likely. If the Mods directory already exists, back it up (optional), and delete it.
Clean up and create the Mods directory:
$ rm -rf "${BT_ROOT}/Mods" $ mkdir -p "${BT_ROOT}/Mods"
1.6. Collect paths for the BTA installer
The installer needs to know where to install to. It does not know how to browse into Linux “hidden” paths (such as $HOME/.steam). Instead, you must copy and paste paths into the installer’s file/directory chooser after clicking the “Browse” button.
Also, the installer cannot parse Linux paths. You must convert them to Windows paths and include the Windows drive letter Z:
, which is where wine mounts the Linux filesystem as if it were a Windows filesystem.
Collect those Windows paths:
Install Target path
Examples:
$ echo "Z:${BT_ROOT}/Mods" | sed -e 's#/#\\#g' Z:\home\indigo\.steam\debian-installation\steamapps\common\BATTLETECH\Mods
Checkout Workspace path
$ echo "Z:${BTA_ROOT}" | sed -e 's#/#\\#g' Z:\home\indigo\src\BATTLETECH\BTA
BattleTech.exe Binary path
$ echo "Z:${BT_ROOT}/BattleTech" | sed -e 's#/#\\#g' Z:\home\indigo\.steam\debian-installation\steamapps\common\BATTLETECH\BattleTech
2. Install BTA
2.1. Run the installer
$ WINEPREFIX="${BTA_ROOT}/wine64" WINEARCH=win64 wine BTAdvancedLauncher.exe
2.2. Click the “Advanced Mode” button.
Click
2.3. Input the Install Target and Checkout Workspace paths
Click the “Browse” button next to each path and copy/paste the Windows paths you made in step 1.6 into the “Filename” field of the file picker.
2.4. Run the install
Click the “Install and Update BTA” button. Pay attention to any popups or instructions.
2.5. Choose your Advanced Configuration Options
Select all the things you want to install. Make sure Fire Option for Linux Users is set to “Old Fire for Linux Users”
2.6. Wait for it.
After installing the mod, the installer will install ModTek. ModTek needs to know where your BattleTech binary lives. The installer cannot find BattleTech.exe and will ask you where to find it. Give it the “BattleTech.exe Binary path” collected earlier. It will not complain when there is not .exe
extension on the filename.
2.7. Ensure all the paths and symlinks are correct
Note: This step is optional, depending on your distribution.
At this point the installation for Windows is complete. However, you’re not done. Because HBS was kind enough to provide us with a native binary, and because BTA’s installer runs as if it were a Windows program, we have to create some symlinks to make sure BattleTech can see all the mod files.
Thankfully some magical creature named “b2cc” has written a script to do this for us. The script is called “pathfinder.sh”. Download and run it.
$ cd ${BT_ROOT} $ wget https://gist.githubusercontent.com/b2cc/c312bec251aaecbfedd07e4d4bda512e/raw/f7fdaa5bc458372b421a6a207e93c4d9ea257901/pathfinder.sh $ less pathfinder.sh # its up to you to make sure script doesn't do anything naughty! $ bash pathfinder.sh -c
You should see a lot of console spam and green success words.
If you do not, ask for help.
3. Okay, that’s it.
All done. Run the game. Assuming all went well, you can go stomp around and get your dakka dakka pew pew on.
If for whatever reason things are not working, check the Troubleshooting section.
Troubleshooting
Likely cause: ModTek isn’t patched into the game correctly.
This can happen if mono is incorrectly installed or was not installed before the BTA installer was run the first time.
Solution: (re)run the ModTek Injector. It should look like this if it worked correctly:
$ cd ${BT_ROOT}/Mods/ModTek $ WINEPREFIX="${BTA_ROOT}/wine64" WINEARCH=win64 wine ModTekInjector.exe ModTek Injector --------------- Assembly-CSharp.dll backed up to Assembly-CSharp.dll.orig Injecting Assembly-CSharp.dll with ModTek.Injection.LoadModTek at BattleTech.Main.Start Writing back to Assembly-CSharp.dll... Injection complete!
Issue: BattleTech refuses to launch/crashes to desktop immediately
Likely cause: Libc library conflict. The system libc is likely newer than, and incompatible with, the libc included in BattleTech’s native Linux distribution.
Solution: Remove libc.so.6 from the BattleTech game directory. This forces BattleTech to use the system libc.
$ mkdir -p "${BTA_ROOT}/../BattleTech_Data/Plugins/x86_64/" $ mv "${BT_ROOT}/BattleTech_Data/Plugins/x86_64/libc.so.6" "${BTA_ROOT}/../BattleTech_Data/Plugins/x86_64/"
Issue: Not listed here
There are a few Linux users on the BTA Discord channel, you can ask for help in General Chat or open a support ticket with #ticketbot to get help resolving issues with BTA. For general issues with BattleTech on Linux, there are several forums available by searching your favorite search engine.