-
-
Save flibitijibibo/f06e3f60eb66e5462da824e490229591 to your computer and use it in GitHub Desktop.
| #!/bin/bash | |
| # FNA Update Script | |
| # Written by Ethan "flibitijibibo" Lee | |
| # | |
| # Released under public domain. | |
| # No warranty implied; use at your own risk. | |
| # | |
| # Run this script in the game's executable folder. | |
| # | |
| # This script requires the following programs: | |
| # - git | |
| # - msbuild, which should include a C# compiler | |
| # | |
| # You may want to update MonoKickstart as well! | |
| # https://github.com/flibitijibibo/MonoKickstart/tree/master/precompiled | |
| # Be Smart. Be Safe. | |
| set -e | |
| # Move to script's directory | |
| cd "`dirname "$0"`" | |
| # Grab native libraries | |
| curl -O https://fna.flibitijibibo.com/archive/fnalibs.tar.bz2 | |
| tar xvfj fnalibs.tar.bz2 lib64 | |
| rm fnalibs.tar.bz2 # Wouldn't want to waste disk space, would we... | |
| # Download and build latest FNA | |
| if [ -d "FNA" ]; then | |
| cd FNA | |
| git pull | |
| git submodule update | |
| else | |
| git clone --recursive https://github.com/FNA-XNA/FNA | |
| cd FNA | |
| curl -o FNA.Settings.props https://flibitijibibo.com/Terraria.Settings.props | |
| fi | |
| msbuild /p:Configuration=Release /p:Platform=x86 FNA.sln | |
| cd .. | |
| cp FNA/bin/Release/* . | |
| # We out. | |
| echo Complete! |
Msbuild doesn't seem to work for me, so instead I just used xbuild and it worked flawlessly
Could someone be kind enough to help me with using this with other Renderers than OpenGL on Arch Linux? I updated the Kickstarter and ran this Script, but /gldevice:Vulkan freezes right after starting the game, something about VK_DEVICE_LOST. Trying to start with /gldevice:D3D11 complains about no valid driver being found
Edit: Solved it by installing libdxvk and lib32-libdxvk from AUR. And also vkd3d and lib32-vkd3d from Extra and Multilib Repo
This works fine for Terraria but not as well for tModLoader.
I tried using this for tModLoader, but it seems they use a modified version of FNA. As a result, using the FNA.dll built by this script crashes the game.
You can replace the libraries without any issues though. Run the script in an empty folder. Once the libraries are built (specifically, libFNA3D.so.0, libFAudio.so.0, libSDL2-2.0.so.0, and libtheorafile.so, saved in /lib64), copy them to /tModLoader/Libraries/Native/Linux/. It won't crash if you don't replace FNA.dll. However, I’m not sure if tModLoader's libraries are outdated, so replacing them might not have any effect.
fnalibs.tar.bz2 do not seem to be part of that flibitijibibo archive link anymore, but rather this link:
https://github.com/FNA-XNA/fnalibs-dailies/actions
this should probably be updated
That FNA update script for Linux gaming brings back memories of struggling to get my favorite games running smoothly on open-source systems, spending hours in terminal windows trying to fix dependency issues, and it's incredible how a simple bash script can automate the process of fetching libraries and building the latest FNA framework. The mechanics of using git, curl, msbuild, and managing native library files show that you don't need to be a Linux expert to keep your game installations up to date and running efficiently. While I was researching a bit more about useful tools to follow news and analysis of sports and digital entertainment, I found that at https://pakistan-mostbet.pk/ you can read a complete summary of how the platform works for sports analysis and interactive games, which seemed like an interesting resource to stay informed about trends in statistics and simulations. In conclusion, whether you are updating FNA libraries for Terraria or exploring digital platforms, having the right tools and following clear instructions can turn a frustrating experience into a smooth, successful one.
msbuild can be installed on arch linux with the mono-msbuild package