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_IPmkdir -p ~/.local/share/playtron/apps/localRsync 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.exeExample:
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: linuxBy 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: falseFlatpaks 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.PrismLaunchername: Minecraft (Prism Launcher)
executable: ./flatpak-launcher.sh
os: linux
runtime: false # Flatpak and other system binaries should run without the runtimeOptionally, 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.jpgCopy 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 playserveTo 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.