If an error occurs, notify the user -If an error occured on the last run of the game, re-check all files |
1 week ago | |
---|---|---|
.chglog | 1 month ago | |
.vscode | 2 weeks ago | |
images | 1 month ago | |
tools | 2 weeks ago | |
.gitignore | 4 weeks ago | |
GetPaliaUpdates.sh | 3 weeks ago | |
README.MD | 2 weeks ago | |
WhereIsPalia.bat | 2 months ago | |
get_palia_appid.sh | 4 weeks ago | |
install_palia.sh | 2 weeks ago | |
install_palia_old.sh | 2 weeks ago | |
known-hashes.json | 2 weeks ago | |
palia_steam_helper.code-workspace | 2 weeks ago | |
palia_steam_helper.sh | 1 week ago |
README.MD
Palia Steam Helper
Let's make it easy to play Palia on the Steam Deck(and Linux) Report Bug · Request Feature
Table of Contents
About The Project
Palia Steam Helper is a set of scripts designed to make it as easy as possible to get Palia running on the Steam Deck and Linux.
Why do we need to make it easier? Well, as of the creation of this project, Palia is currently in Beta, and only officially available for Windows. However, thanks to the hard work over many years of the Wine and Proton teams, we can still get Palia running on systems that run Linux OS, the Steam Deck is one such system. Unfortunately, getting games running through Wine/Proton can be a challenge, and getting that working on the Steam Deck and running in Game Mode is a whole extra challenge.
But don't worry, "we got ya fam"(I think thats what the kids are saying these days).
Just head down below, and follow the steps to get playing.
(You don't need to download anything from this Github page, the command in the installation section will do that for you.)
Getting Started
The easiest way to get going is to use the convenient one line command below.
Note: You don't need to download anything from Github. The command below will handle that for you.
Installation
-
Open a terminal in the path you want the game installed to, paste the command below in to a terminal, and execute it.
(You don't need to download anything from this Github page, the below command will do that for you.)curl -L https://raw.githubusercontent.com/t3nk3y/palia_steam_helper/main/install_palia.sh | bash
Experimental
The experimental version of the installer has been merged in to the main script.
-
The game should either automatically be added to Steam as palia_steam_helper.sh, or a window will open in Steam to let you manually add the script.
-
Once added to Steam, you need to edit the game, and set it to use "Proton Experimental" as the Compatability tool.
-
Finally, run the game to complete the install process.
Roadmap
- Single, simple, pasteable command to perform the setup process.
- Single script to add to Steam with very minor user intervention required.
- Only use tools that come with the Steam Runtime environment.
- Automatically prepare game requirements in the Wine/Proton environment.
- Provide a GUI to show install progress.
- Skip EULA screen to workaround extremely glitchy issues when accepting EULA.
- GUI screen to tell user they must agree to the EULA and TOS if they use the script.
- Install all game files to the same path as the script, to simplify location selection.
- Provide some graphics assets for Steam to use.
- Text/gif tutorial for install.
- Text/gif tutorial for setting images manually.
- Create basic demo video.
- Create basic how-to video.
- Create detailed how-to video, including explaination of entering desktop mode and using deck controls.
Stretch goals
- Improve installer so it can automatically:
- Add the game to steam.
- Set the game's compatability tool.
- Set the game's name.
- Set all of the images for the game.
- Import a custom controller scheme.
- Create a flatpak and add to flathub so users can simply install from Discover.
- Make everything more robust
See the open issues for a full list of proposed features (and known issues).
Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
License
¯\(ツ)/¯ Don't sell it, I guess. Abide by the EULA and TOS provided by Singularity 6 for Palia.
Contact
Madalee - discord
Project Link: https://github.com/t3nk3y/palia_steam_helper
Further Details
Below is a, potentially overly, in-depth explaination of everything these scripts do.
It's intended for anyone who is interested in the nitty-gritty, and isn't needed for anyone who just wants to play the game.
The entire process consistes of a few commands/scripts
-
a single bash command:
curl -L https://raw.githubusercontent.com/t3nk3y/palia_steam_helper/main/install_palia.sh | bash
This uses curl(a command line based http downloader) to download the install_palia.sh script and passes the content of the file to bash(a command interpreter, one of the most common used in linux)
-
install_palia.sh
This bash script does a few things:- Checks to see if it's in your home directly, if so, it tells you not to run it from your home directory and quits
- Checks if you already have palia_steam_helper:
- if you do, it updates it to the latest version, then quits
- If you dont, it downloads it, then tries to add it to Steam as a non-steam game for you, by using the xdg-open(tell X-windows environments to open a webpage in the default browser) command combined with a steam:// URL. However, as this feature of Steam seems to be broken in the newer versions, it will likely just open the "Add a non-steam game" for you.
- If it fails to even get the "Add a non-steam game" to open, it will let you know
- Walks you through selecting the right file in steam, renaming the shortcut, and setting it to use the right Proton mode.
-
palia_steam_helper.sh
This is the main script, and the one you run from Steam, each time. Even though it ends in .sh, it's actually a Python script. It only ends in .sh because Steam will not show it by default if it doesn't end in an extension it's expecting.
It does the following:- Changes the location of where the Proton prefix will be placed so it gets put in the same directory as the script, in a subdirectory called "steam". This simplifies the process of letting the user decide where they want the game installed(such as on the main drive vs SD card), and makes it a lot easier to find the game files in the future, vs being stored deep, in a hidden folder under steams stuff in the users home directory under some random numbered folder.
- Sets several Proton/Wine/DXVK/GPU environment variables intended to improve performance.(mostly related to shader caching)
- DXVK_CONFIG_FILE - Set to script directory/dxvk.conf for convenience
- DXVK_HUD - Set to show "Compiling Shaders" message when doing so(maybe it doesnt work with DX12)
- DXVK_STATE_CACHE_PATH - Set DXVK state cache to subdirectory of script directory
- VKD3D_SHADER_CACHE_PATH - Set VKD3D shader cache to subdirectory of script directory
- __GL_SHADER_DISK_CACHE_PATH - Set GL shader cache to subdirectory of script directory
- __GL_SHADER_DISK_CACHE - Enable GL Shader disk cache(likely on by default anyway)
- __GL_SHADER_DISK_CACHE_SKIP_CLEANUP - Keep the GL shader cache between launches
- STAGING_SHARED_MEMORY - Enable staging shared memory
- DXVK_ASYNC - Enable DXVK async shader compile (may be default, and deprecated)
- RADV_PERFTEST - Enable Radeon shader cache and async shader compile
- mesa_glthread - Enable mesa based async shader compile (Intel only I think)
- PROTON_NO_FSYNC - Disable FSYNC, it seems to mess things up
- If this is a SteamDeck:
- Put the shader caches on the root drive(not the current directory) as it should be the fastest drive in the system
Placed in /home/user/.cache/Palia
- Put the shader caches on the root drive(not the current directory) as it should be the fastest drive in the system
- Checks if the PaliaLauncher.exe is already installed in the right place
(We are assuming if the file is there, Palia is already fully installed):- If it isn't, do the following for initial install:
- Download the latest Palia patch manifest, and get the following from it:
- What is the newest patch version
- What is the URL for the base game zip
- Download VCRedist 2022 (required by Palia)
- Download PaliaLauncher.exe
- Download base Palia game zip
- Make a steam folder under the same folder as a the script
- Make a pfx folder for the Wine/Proton prefix under the steam folder
- Make the full folder structure for Palia up to drive_c/users/steamuser/AppData/Local/Palia/Client
- Extract the base Palia zip to the Client folder
- Create a registry file to tell Palia that UE and Palia are installed in the correct paths
- Create a bat file to import the registry file and to query the registry to make sure the changes stick
- Run the bat file
This step is what actually initializes the prefix - Install VCRedist 2022 in the prefix
- Cleanup all temp files(eg, registry, batch script, zip files, etc...)
- Make the Palia Downloads folder next to the Client folder, as it is requires for PalaiaLauncher.exe to run
- Place PaliaLauncher.exe where it belongs
drive_c/users/steamuser/AppData/Local/Palia/Launcher/PaliaLauncher.exe
- Download the latest Palia patch manifest, and get the following from it:
- If it isn't, do the following for initial install:
- Launch PaliaLauncher.exe