Purpose
This guide will explain how to install SRB2Kart onto a Steam Deck running SteamOS 3.0. This process will involve unlocking the Deck's system partition, setting up the system to build packages, compiling SRB2Kart on the Deck, and finally installing it.
Background
The Steam Deck's operating system, SteamOS 3.0, is based on a highly customizable Linux distribution named Arch Linux. In addition to its extensive set of modifications to the Arch base system, SteamOS also "locks down" its system partition as a safeguard against modifications that would leave it unusable. Despite these modifications, the core Arch utilities which make it so customizable are still (mostly) present in SteamOS.
The presence of these tools within SteamOS 3.0 allows SRB2Kart to be built for the Steam Deck. The most relevant of these tools are the package manager, pacman, and the Arch Build System (ABS), which provides a standardized way of turning third-party software (such as SRB2Kart) into packages that pacman can manage. Arch user SteelTitanium has created ABS scripts for generating SRB2Kart packages and uploaded them to the Arch User Repository (AUR), enabling other Arch users to install SRB2Kart with (relative) ease.
Disclaimer
By following this guide, you recognize that it will direct you in performing actions that have the potential to damage your SteamOS system, and accept responsibility for any damages resulting from following the guide. These actions may include, but are not limited to:
Limitations
The SRB2Kart installation achieved by this method is unlikely to survive a SteamOS system update, as the updates function by re-imaging the system partition, effectively wiping all of these changes. You will most likely need to redo all of these steps following a system update. The package files themselves (from Steps 5 & 6 below) may survive, but they are unlikely to work once installed on the new system due to version differences between the new libraries versus what was used at build-time.
Assumptions
This guide assumes that you have not yet performed any actions to modify your SteamOS system from its default state.
Conventions Used in this Guide
bash code blocks indicate commands to be run in the SteamOS command prompt, which is available via the Konsole app in Desktop Mode. For example, this is one command:
Unless otherwise directed, each line within the code block is to be copied verbatim into the command prompt, after which the Enter key must be used to submit the command. If there are multiple lines within the code block, enter the topmost command first, then proceed to the next once the former has finished (which is indicated by the reappearance of the prompt text that initially appeared when you first opened the window).
Instructions
If all has gone successfully up to this point, then congratulations! SRB2Kart should now be installed on your Steam Deck! You can find two options for launching the game, "Sonic Robo Blast 2 Kart" and "Sonic Robo Blast 2 Kart (OpenGL)," in the main menu of Desktop Mode.
This guide will explain how to install SRB2Kart onto a Steam Deck running SteamOS 3.0. This process will involve unlocking the Deck's system partition, setting up the system to build packages, compiling SRB2Kart on the Deck, and finally installing it.
Background
The Steam Deck's operating system, SteamOS 3.0, is based on a highly customizable Linux distribution named Arch Linux. In addition to its extensive set of modifications to the Arch base system, SteamOS also "locks down" its system partition as a safeguard against modifications that would leave it unusable. Despite these modifications, the core Arch utilities which make it so customizable are still (mostly) present in SteamOS.
The presence of these tools within SteamOS 3.0 allows SRB2Kart to be built for the Steam Deck. The most relevant of these tools are the package manager, pacman, and the Arch Build System (ABS), which provides a standardized way of turning third-party software (such as SRB2Kart) into packages that pacman can manage. Arch user SteelTitanium has created ABS scripts for generating SRB2Kart packages and uploaded them to the Arch User Repository (AUR), enabling other Arch users to install SRB2Kart with (relative) ease.
Disclaimer
By following this guide, you recognize that it will direct you in performing actions that have the potential to damage your SteamOS system, and accept responsibility for any damages resulting from following the guide. These actions may include, but are not limited to:
- Unlocking the system partition to allow for unofficial modifications.
- Reinstalling and/or overwriting existing software in the SteamOS system.
- Installing and/or running software from unofficial sources (AUR scripts, SRB2Kart, etc.).
Limitations
The SRB2Kart installation achieved by this method is unlikely to survive a SteamOS system update, as the updates function by re-imaging the system partition, effectively wiping all of these changes. You will most likely need to redo all of these steps following a system update. The package files themselves (from Steps 5 & 6 below) may survive, but they are unlikely to work once installed on the new system due to version differences between the new libraries versus what was used at build-time.
Assumptions
This guide assumes that you have not yet performed any actions to modify your SteamOS system from its default state.
Conventions Used in this Guide
bash code blocks indicate commands to be run in the SteamOS command prompt, which is available via the Konsole app in Desktop Mode. For example, this is one command:
Bash:
echo "This is a command."
Unless otherwise directed, each line within the code block is to be copied verbatim into the command prompt, after which the Enter key must be used to submit the command. If there are multiple lines within the code block, enter the topmost command first, then proceed to the next once the former has finished (which is indicated by the reappearance of the prompt text that initially appeared when you first opened the window).
Instructions
Several of the commands necessary for this process will require administrator privileges within SteamOS. These privileges are already granted to the default Steam Deck user account,
To set the
After submitting this command, you should be asked to enter your new password. Type your desired password (nothing will appear on-screen as you do this), then press the Enter key to submit it. Repeat this process when asked to confirm your password.
deck
, but require that a password be entered to activate them. A password is not set for this account by default.To set the
deck
user's password, use the command below:
Bash:
passwd
After submitting this command, you should be asked to enter your new password. Type your desired password (nothing will appear on-screen as you do this), then press the Enter key to submit it. Repeat this process when asked to confirm your password.
The SteamOS system partition is locked by default to prevent corruption to the system. As several of the following steps involve intentionally modifying the system partition, this protection must be removed.
To disable the system partition's read-only mode, use the following command:
Note that the
To disable the system partition's read-only mode, use the following command:
Bash:
sudo steamos-readonly disable
Note that the
sudo
command is used to elevate the command whih follows to administrator privileges. You may be asked to enter your password (from Step 1) periodically when sudo
is used.SRB2Kart relies on some components provided by other software packages. These must be installed prior to building SRB2Kart. Additionally, the SteamOS versions of some Arch Linux packages are missing files needed by the ABS. pacman can be used to (re)install these missing or incomplete dependencies.
Before pacman will work, however, its keyring (the mechanism that it uses to verify package integrity) must be initialized. Use the following commands:
Then, to install the required packages, use the following command:
Upon submitting that command, you will likely see numerous warnings about reinstalling packages that are already installed. Ignore those warnings; we intend for that to happen. pacman may prompt you to select packages within a group, or to confirm that you wish to proceed with the operations. Simply press the Enter key at each of these prompts to take the default option.
For more information about SRB2Kart's dependencies, see the SRB2 Wiki's documentation for compiling from source.
Before pacman will work, however, its keyring (the mechanism that it uses to verify package integrity) must be initialized. Use the following commands:
Bash:
sudo pacman-key --init
sudo pacman-key --populate archlinux
Then, to install the required packages, use the following command:
Bash:
sudo pacman -S base-devel glibc linux-api-headers libpng zlib sdl2 sdl2_mixer libgme curl libopenmpt
Upon submitting that command, you will likely see numerous warnings about reinstalling packages that are already installed. Ignore those warnings; we intend for that to happen. pacman may prompt you to select packages within a group, or to confirm that you wish to proceed with the operations. Simply press the Enter key at each of these prompts to take the default option.
For more information about SRB2Kart's dependencies, see the SRB2 Wiki's documentation for compiling from source.
There are two AUR packages required for a working SRB2Kart installation:
Follow each of the above links to their respective AUR pages, where a download link (called "Download snapshot") will be provided in the "Package Actions" box. Use this link to download each package as a .tar.gz file.
The downloaded archive files must now be extracted. Open a command window in the folder where those files were downloaded; if you are using the default file manager in SteamOS's Desktop Mode, Dolphin, then you can do this by right-clicking on the folder's background and choosing "Open Terminal." Then issue the following commands:
There should now be two new folders here:
Follow each of the above links to their respective AUR pages, where a download link (called "Download snapshot") will be provided in the "Package Actions" box. Use this link to download each package as a .tar.gz file.
The downloaded archive files must now be extracted. Open a command window in the folder where those files were downloaded; if you are using the default file manager in SteamOS's Desktop Mode, Dolphin, then you can do this by right-clicking on the folder's background and choosing "Open Terminal." Then issue the following commands:
Bash:
tar -xf srb2kart-data.tar.gz
tar -xf srb2kart.tar.gz
There should now be two new folders here:
srb2kart-data
and srb2kart
.srb2kart-data is a dependency of srb2kart, so the former must be installed first.
Open a command window in the
The ABS must be used to convert this AUR package into one that pacman will recognize. This process is automated by the makepkg command:
This may take a moment.
There should now be a file whose name starts with
Now use pacman to install the generated package file. Modify the following command to match the version number that you built:
When asked if you would like to proceed with the installation, answer yes.
Open a command window in the
srb2kart-data
folder from Step 4. If you still have the command window from last step open, you can use this command to change to that folder:
Bash:
cd srb2kart-data
The ABS must be used to convert this AUR package into one that pacman will recognize. This process is automated by the makepkg command:
Bash:
makepkg
This may take a moment.
makepkg
will print status information as it works. If the final message starts with ==> Finished making: srb2kart-data
, then the build was successful.There should now be a file whose name starts with
srb2kart-data-
and ends with -any.pkg.tar.zst
here. The exact name will depend on the version number of the AUR package that you downloaded in Step 4; for example, version 1.3-2's file name would be srb2kart-data-1.3-2-any.pkg.tar.zst
. This is the pacman package file.Now use pacman to install the generated package file. Modify the following command to match the version number that you built:
Bash:
sudo pacman -U srb2kart-data-1.3-2-any.pkg.tar.zst
When asked if you would like to proceed with the installation, answer yes.
This process will be virtually identical to that from Step 5.
Open a command window in the
Use
This will likely take much longer than the
The name of the generated package file in this case should start with
Modify the pacman command below to match your version number:
When asked if you would like to proceed with the installation, answer yes.
Open a command window in the
srb2kart
folder from Step 4. If you just completed Step 5 and still have that command window open, then this command should suffice:
Bash:
cd ../srb2kart
Use
makepkg
to build the package:
Bash:
makepkg
This will likely take much longer than the
makepkg
from Step 5 did, as the SRB2Kart code must actually be compiled on your own system for this step. You may experience a long break in the status output during the process. Again, though, a final ==> Finished making:
message should eventually appear as a sign of success.The name of the generated package file in this case should start with
srb2kart-
and end with -x86_64.pkg.tar.zst
, with the version number being placed between those two parts. Version 1.3-4's file name would be srb2kart-1.3-4-x86_64.pkg.tar.zst
.Modify the pacman command below to match your version number:
Bash:
sudo pacman -U srb2kart-1.3-4-x86_64.pkg.tar.zst
When asked if you would like to proceed with the installation, answer yes.
If all has gone successfully up to this point, then congratulations! SRB2Kart should now be installed on your Steam Deck! You can find two options for launching the game, "Sonic Robo Blast 2 Kart" and "Sonic Robo Blast 2 Kart (OpenGL)," in the main menu of Desktop Mode.
For ease of access within the Steam client, SRB2Kart may be added as a Non-Steam game.
- Open the Steam client from the main menu of the Deck's Desktop Mode.
- Click the "Add a Game" button in the bottom left corner of the window, then "Add a Non-Steam Game."
- Locate "Sonic Robo Blast 2 Kart" and/or "Sonic Robo Blast 2 Kart (OpenGL)" in the resulting list of programs and select them.
- Click "Add Selected Programs."
I would like to thank my friend Korthra, whose desire to play SRB2Kart on his Steam Deck directly led to the (hours of trial-and-error that would eventually inspire the) creation of this guide. I do not have a Steam Deck of my own, so figuring this out was truly a team effort.
I would also like to thank SteelTitanium for publishing their SRB2Kart scripts to the AUR, and of course the SRB2 and SRB2Kart communities for creating these games and their associated documentation.
I would also like to thank SteelTitanium for publishing their SRB2Kart scripts to the AUR, and of course the SRB2 and SRB2Kart communities for creating these games and their associated documentation.