Use this when you want ROCKNIX to launch a Steam game through x86 or ARM Steam, or when you need to compare host-library toggles before the game starts.
Manual instructions: Navigate to your Steam game in ROCKNIX, press the NORTH button on the controller to open Advanced Settings, then adjust these per-game values before launching Steam.
These ROCKNIX keys belong in /storage/.config/system/configs/system.cfg and are applied per game before Steam starts. The part inside brackets is the desktop launcher filename, not the game title you type from memory. Some setups also mirror values to steam["Steam.desktop"].steam_version=; that mirror is still in system.cfg, not inside the desktop file.
steam_version- Steam architecture path. Use
x86 for x86 Steam or arm64 for ARM Steam.
vulkan_host_library- Host Vulkan libraries. Usually
1 for Vulkan, DXVK, and VKD3D games. Try 0 only after recording a baseline.
drm_host_library- Host DRM/libdrm path. Usually
0. Try 1 for display, GPU device, or gamescope isolation.
gl_host_library- Host OpenGL libraries. Usually
0. Try 1 for OpenGL launchers or helper windows.
wayland_client_host_library- Host Wayland client libraries. Usually
0. Try 1 for compositor, windowing, focus, or gamescope issues.
asound_host_library- Host ALSA/asound libraries. Usually
0. Try 1 for audio device, crackle, or latency problems.
gamescope- Handheld Steam compositor path. Usually
1 for normal ROCKNIX Steam launches.
Example: HELLDIVERS 2
steam["HELLDIVERS™ 2.desktop"].steam_version=arm64
steam["HELLDIVERS™ 2.desktop"].vulkan_host_library=1
steam["HELLDIVERS™ 2.desktop"].drm_host_library=0
steam["HELLDIVERS™ 2.desktop"].gl_host_library=0
steam["HELLDIVERS™ 2.desktop"].wayland_client_host_library=0
steam["HELLDIVERS™ 2.desktop"].asound_host_library=0
steam["HELLDIVERS™ 2.desktop"].gamescope=1
uptime#Load average and uptime
free -h#RAM and swap overview
zramctl#Zram DATA, COMPR, TOTAL, and DISKSIZE
ps -eo pid,ppid,stat,wchan,etime,pcpu,pmem,rss,comm,args --sort=-pcpu | head -20#Top CPU and wait-state processes
ps -eo pid,ppid,stat,wchan,etime,pcpu,pmem,rss,comm,args --sort=-rss | head -15#Top RAM/RSS processes
cat /sys/class/kgsl/kgsl-3d0/gpu_busy_percentage#Adreno GPU busy percentage
cat /sys/class/kgsl/kgsl-3d0/cur_freq#Adreno GPU current frequency
cat /sys/class/thermal/thermal_zone*/type#Thermal sensor names
cat /sys/class/thermal/thermal_zone*/temp#Thermal sensor readings
dmesg | tail -80#Recent kernel faults, OOM, GPU, DRM, and IO lines
Run a quick snapshot while the game is running, hung, or immediately after it exits. Record RAM, zram, top CPU/RSS processes, blocked or waiting process clues from wchan, GPU load or frequency, thermals, and any fresh kernel fault lines.
zramctl is more useful than swap-used alone: DATA is real uncompressed payload, COMPR is compressed size, TOTAL is allocator usage, and DISKSIZE is capacity.
These commands come from the RP6 reference scripts. If one path is missing on your build, write not available and keep the rest of the snapshot. Do not change test settings just to make the snapshot cleaner.
Example: HELLDIVERS 2
Usage: RAM used 5.2G / available 1.1G; zram DATA 1.8G, COMPR 650M, TOTAL 760M; HELLDIVERS 2 RSS 3.4G; GPU busy 82%; thermals stable; new dmesg faults no.
/storage/steam-<appid>.log
/storage/.local/share/Steam/logs/gameprocess_log.txt
/storage/.local/share/Steam/logs/console-linux.txt
/storage/.local/share/Steam/logs/webhelper-linux.txt
/var/log/exec.log
/storage/steam-<appid>.logProton reached the game or launcher.
/storage/.local/share/Steam/logs/gameprocess_log.txtSteam launched, but Proton or the app did not clearly start.
/storage/.local/share/Steam/logs/console-linux.txtSteam client messages for compatibility-tool, library, and general client behavior.
/storage/.local/share/Steam/logs/webhelper-linux.txtSteam UI, embedded page, or launcher web view messages.
/var/log/exec.logEmulationStation launch routing failed before Steam took over.
- Use the Proton log if the game or launcher starts under Proton.
- Use Steam logs if Steam opens but the handoff to Proton or the app is unclear.
- Use
/var/log/exec.log if the launch never reaches Steam.
Example: HELLDIVERS 2
/storage/steam-553850.log
/storage/.local/share/Steam/logs/gameprocess_log.txt
/storage/.local/share/Steam/logs/console-linux.txt
/storage/.local/share/Steam/logs/webhelper-linux.txt
/var/log/exec.log
/storage/.local/share/applications/<desktop-file>
/usr/bin/runemu.sh "/storage/.local/share/applications/<desktop-file>" -Psteam --core=steam --emulator=steam
The desktop file is the launcher name EmulationStation uses. Launching through EmulationStation applies the per-game system.cfg settings and the ROCKNIX Steam wrapper. The runemu.sh command is useful for scripted launches because it still uses that ROCKNIX path.
A bare Steam URL launch can skip parts of that path, so avoid it when comparing reports or troubleshooting host-library settings.
Example: HELLDIVERS 2
/storage/.local/share/applications/HELLDIVERS™ 2.desktop
/usr/bin/runemu.sh "/storage/.local/share/applications/HELLDIVERS™ 2.desktop" -Psteam --core=steam --emulator=steam
/storage/.config/system/configs/system.cfg
steam["<desktop-file>"].steam_version=x86
steam["<desktop-file>"].gamescope=0
Use the same ROCKNIX Advanced Settings screen where you choose the Steam version. Set the Steam version you want, such as x86, then turn Gamescope off so Steam launches in the regular desktop interface instead of Big Picture mode.
Manual instructions: Navigate to the Steam game in ROCKNIX, press NORTH to open Advanced Settings, confirm the Steam version, then set Gamescope to off before launching.
Desktop Steam is easier for some compatibility setup and debugging, but controller navigation can be rough. Depending on your device, plug in a USB mouse so you can reach Steam menus reliably.
Example: HELLDIVERS 2
steam["HELLDIVERS™ 2.desktop"].steam_version=x86
steam["HELLDIVERS™ 2.desktop"].gamescope=0
PROTON_LOG=1 %command%
/storage/steam-<appid>.log
Add the Proton log option in Steam game Properties, General, Launch Options. Proton writes the log after the game starts. Turn the option off again for normal play or performance testing.
Start with PROTON_LOG=1. Avoid broad WINEDEBUG unless you know what extra signal you need, because it can create huge logs and slow the game enough to change the result.
PROTON_LOG=1 %command%
/storage/steam-553850.log
/storage/.local/share/Steam/userdata/<user-id>/config/localconfig.vdf
"<appid>"
{
"LaunchOptions" "PROTON_LOG=1 %command%"
}
The Steam UI is the safest way to edit launch options. Keep %command% in the value so Steam still inserts the real game command. Change one launch option at a time and record the exact text.
The file view is useful for confirming what Steam saved for the app id.
"553850"
{
"LaunchOptions" "PROTON_LOG=1 %command%"
}
TU_DEBUG=nolrz %command%
TU_DEBUG is Mesa Turnip's debug setting for Qualcomm Adreno Vulkan. nolrz disables LRZ, the low-resolution depth rejection path that helps the GPU skip hidden pixels earlier.
Use it when a game launches but has flickering geometry, black textures, broken shadow maps, or depth-related artifacts. It can cost performance, so treat it as one test variable and remove it if it does not clearly help.
Example: HELLDIVERS 2
"553850"
{
"LaunchOptions" "TU_DEBUG=nolrz %command%"
}
/storage/.local/share/Steam/config/config.vdf
"CompatToolMapping"
{
"<appid>"
{
"name" "<compat-tool>"
"config" ""
"priority" "250"
}
}
Preferred path: Steam game Properties, Compatibility, force a compatibility tool, then choose the Proton or Steam Native runtime. The name value is the selected compatibility tool id for the game.
For official Steam Proton tools, the Steam Linux Runtime is not listed in compatibilitytool.vdf. Follow the tool's toolmanifest.vdf instead: require_tool_appid gives the runtime appid, appmanifest_<appid>.acf gives the installed folder, and the runtime folder's toolmanifest.vdf confirms the runtime layer.
/storage/.local/share/Steam/steamapps/common/Proton - Experimental/toolmanifest.vdf
/storage/.local/share/Steam/steamapps/common/Proton Hotfix/toolmanifest.vdf
/storage/.local/share/Steam/steamapps/common/Proton 11.0/toolmanifest.vdf
/storage/.local/share/Steam/steamapps/common/Proton 10.0/toolmanifest.vdf
"require_tool_appid" "<runtime-appid>"
Runtime appid map
4183110 -> Steam Linux Runtime 4.0
/storage/.local/share/Steam/steamapps/common/SteamLinuxRuntime_4
4185400 -> Steam Linux Runtime 4.0 - Arm64
/storage/.local/share/Steam/steamapps/common/SteamLinuxRuntime_4-arm64
1628350 -> Steam Linux Runtime 3.0 sniper
/storage/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper
3810310 -> Steam Linux Runtime 3.0 sniper - Arm64
/storage/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper-arm64
/storage/.local/share/Steam/steamapps/appmanifest_<runtime-appid>.acf
"name" "<runtime name>"
"installdir" "<runtime installdir>"
/storage/.local/share/Steam/steamapps/common/<runtime installdir>/toolmanifest.vdf
"compatmanager_layer_name" "container-runtime"
"CompatToolMapping"
{
"553850"
{
"name" "proton_experimental"
"config" ""
"priority" "250"
}
}
/storage/.local/share/Steam/compatibilitytools.d/
/storage/.local/share/Steam/compatibilitytools.d/<custom-proton-folder>/
/storage/.local/share/Steam/compatibilitytools.d/<custom-proton-folder>/compatibilitytool.vdf
This folder is for custom or local compatibility tools, such as community Proton builds or device-specific ARM Proton tools. The compatibilitytool.vdf file belongs inside the custom tool's folder. Official Steam Proton tools use their own toolmanifest.vdf lookup instead.
"compat_tools"
{
"<custom-tool-id>"
{
"display_name" "<custom Proton name>"
}
}
/storage/.local/share/Steam/steamapps/compatdata/<appid>
/storage/.local/share/Steam/steamapps/shadercache/<appid>
Switching Steam x86/ARM, Proton major versions, Steam Native, or custom tools can leave a game using old compatibility prefix or shader cache data. If a game only starts failing after those runtime changes, moving aside or removing the per-game folders lets Steam generate clean ones on the next launch.
Caution: Back up first and close Steam before cleanup. These folders can include per-game Proton prefix state, saves stored inside the prefix, and compiled shader data.
Example: HELLDIVERS 2
/storage/.local/share/Steam/steamapps/compatdata/553850
/storage/.local/share/Steam/steamapps/shadercache/553850