Table of Contents:
This plugin allows sideloading games to your Playtron GameOS device that are not available on supported stores (development builds, DRM-free games, shareware, launchers, etc.)
Building is optional and recommended for plugin developers only.
A basic build can be done with cargo build
. Copy the plugin to your device:
scp target/debug/playtron-plugin-local playtron@$DEVICE_IP:~/.local/share/playtron/plugins/local/
Fully automated binary tarball and RPM builds are supported with the use of a container. Both x86_64 and aarch64 CPU architectures are supported. These commands will output packages to the dist
directory.
make in-docker TARGET='dist'
make in-docker TARGET='dist' ARCH="aarch64"
SSH into your device and create the folder for the installed games.
# You can find the device's IP in the Wi-Fi settings of your device
export DEVICE_IP=192.168.x.x
ssh playtron@$DEVICE_IP
mkdir -p ~/.local/share/playtron/apps/local
Rsync will allow you to copy a game folder to your device and make incremental updates.
To get Rsync on Windows, download the Cygwin installer from their website: https://cygwin.com/
Once in the Cygwin installer, make sure to select rsync
and OpenSSH
in the package selection.
You can now launch a bash console which will give you access to rsync.
On the machine you want to load the game from, locate your game folder
and create a file named gameinfo.yaml
. Populate this file with the following information:
name: The game's name
executable: game_executable.exe
Example:
name: "Street Fighter X Tekken"
executable: "SFTK.exe"
Windows executable (EXE) and batch (BAT) files are both supported.
In the case of a Linux game, also add os: linux
and prefix the executable with ./
Example:
name: Minecraft (Official)
executable: ./minecraft-launcher
os: linux
By default Linux executables are launched in the Sniper container. To ensure the best compatibility, prefer games built against the Sniper SDK. Read more here: https://gitlab.steamos.cloud/steamrt/sniper/sdk
If the runtime container causes issues, you can launch the executable without it, in the context of the OS. To do so, add to your gameinfo.yaml file:
runtime: false
Flatpaks are also supported by using a simple launch script. Use chmod +x flatpak-launcher.sh
to make the script executable.
Example:
#!/bin/bash
/usr/bin/flatpak run org.prismlauncher.PrismLauncher
name: Minecraft (Prism Launcher)
executable: ./flatpak-launcher.sh
os: linux
runtime: false # Flatpak and other system binaries should run without the runtime
Optionally, add an image to your game for the Playtron GameOS library. The image should be as close as possible to a 16:9 ratio and be in the highest quality possible (1080p or 1440p recommended)
image: https://url/of/the/game/artwork.jpg
Copy the game folder to your Playtron GameOS device:
# Run the command from the parent folder relative to your game
cd Games
# Make sure there is no trailing slash after `my-game`
rsync -avz my-game playtron@DEVICE_IP:~/.local/share/playtron/apps/local/
Restart the playserve
service or reboot to see your newly added game.
systemctl --user restart playserve
To update a game that has already been loaded on the device, simply run the rsync command again.
It might be necessary to add the --delete
flag to rsync if some game files have been removed.