Table of Contents

Information

Prerequisites

Notes

Disable Legacy GNOME Tray

gnome-extensions disable 'ubuntu-appindicators@ubuntu.com'
gnome-extensions disable 'appindicatorsupport@rgcjonas.gmail.com'

Dependencies

sudo dnf install 'openssl1.1.x86_64' && sync

Install

Initial

mkdir -p ~/'.wine' && WINEPREFIX=~/'.wine/RuneScape' WINEARCH='win64' wineboot && sync

Jagex Launcher

Google Drive

sha256sum ~/'Downloads/20240509-Jagex-Launcher.zip' | grep 'bc143b9cafbf6d735193d64e486be5015d4a4e857c61329e1a49f7143987789d' > '/dev/null' && unzip -b -o -qq ~/'Downloads/20240509-Jagex-Launcher.zip' -d ~/'.wine/RuneScape/drive_c/Program Files' && sync
gio open ~/'.wine/RuneScape/drive_c/Program Files'

Manual

unzip -b -o -qq ~/'Downloads/'*'Jagex'*'Launcher.zip' -d ~/'.wine/RuneScape/drive_c/Program Files' && sync
gio open ~/'.wine/RuneScape/drive_c/Program Files'

RuneScape

Jagex Launcher

mkdir -p ~/'.wine/RuneScape/dxvk_shader_cache' && cd ~/'.wine/RuneScape/drive_c/Program Files/Jagex Launcher' && MESA_SHADER_CACHE_DIR=~/'.wine/RuneScape' DXVK_STATE_CACHE_PATH=~/'.wine/RuneScape/dxvk_shader_cache' WINEPREFIX=~/'.wine/RuneScape' wine ~/'.wine/RuneScape/drive_c/Program Files/Jagex Launcher/JagexLauncher.exe' --disable-gpu --disable-software-rasterizer

RuneScape

cd ~ && rm -Rf ~/'.runescape' ~/'.wine/RuneScape/Jagex/launcher' ~/'.wine/RuneScape/Jagex/updater' ~/'.wine/RuneScape/Jagex/RuneScape/GlobalSettings.jcache' ~/'.wine/RuneScape/Jagex/RuneScape/Settings.jcache' ~/'.wine/RuneScape/Jagex/RuneScape/ShaderManager.jcache' ~/'.local/share/icons/hicolor/'*'/apps/runescape.png' ~/'.local/share/applications/RuneScape.desktop' '/tmp/runescape' && mkdir -p ~/'.wine/RuneScape/Jagex/updater' '/tmp/runescape' && wget -O '/tmp/runescape/runescape-launcher-amd64.deb' 'https://content.runescape.com/downloads/ubuntu/pool/non-free/r/runescape-launcher/runescape-launcher_2.2.11_amd64.deb' && unar -o '/tmp/runescape' '/tmp/runescape/runescape-launcher-amd64.deb' && unar -o '/tmp/runescape' '/tmp/runescape/runescape-launcher-amd64/data.tar.xz' && cp '/tmp/runescape/data/usr/bin/runescape-launcher' '/tmp/runescape/data/usr/share/games/runescape-launcher/runescape' ~/'.wine/RuneScape/Jagex/updater' && cp -R '/tmp/runescape/data/usr/share/icons' ~/'.local/share' && ls ~/'.wine/RuneScape/Jagex/updater/runescape' ~/'.wine/RuneScape/Jagex/updater/runescape-launcher' > '/dev/null' && rm -Rf '/tmp/runescape' && ln --backup --symbolic --force ~/'.wine/RuneScape/Jagex/updater/runescape-launcher' ~/'.wine/RuneScape/drive_c/Program Files/Jagex Launcher/Games/RuneScape/RuneScape.exe' && sync

runescape-launcher

nano ~/'.wine/RuneScape/Jagex/updater/runescape-launcher'
#!/bin/sh

if [ -z $1 ]; then
    configURI=http://www.runescape.com/k=5/l=\$\(Language:0\)/jav_config.ws
else
    configURI=$1
    shift
fi

export SDL_VIDEO_X11_WMCLASS="RuneScape"

# Audio
#export SDL_AUDIODRIVER='pipewire'
export PULSE_LATENCY_MSEC='400'
export SDL_AUDIODRIVER='pulseaudio'
export PULSE_PROP_OVERRIDE="application.name='RuneScape' application.icon_name='runescape' media.role='game'"

# Display Server
#export SDL_VIDEODRIVER='wayland'
export SDL_VIDEODRIVER='x11'

# Custom

unset XMODIFIERS
~/'.wine/RuneScape/Jagex/updater/runescape' --configURI $configURI $@

Modern Open/Mesa Graphics

# Modern Open/Mesa Graphics
export MESA_SHADER_CACHE_DIR=~/'Jagex'
export MESA_GL_VERSION_OVERRIDE='4.6COMPAT'
export MESA_NO_ERROR='1'
export mesa_glthread='true'
export MESA_DISK_CACHE_SINGLE_FILE='1'
export MESA_DISK_CACHE_DATABASE='1'

Zink

# Zink
export MESA_SHADER_CACHE_DIR=~/'Jagex'
export MESA_LOADER_DRIVER_OVERRIDE='zink'
export GALLIUM_DRIVER='zink'

Old Intel Graphics

# Old Intel Graphics
export MESA_SHADER_CACHE_DIR=~/'Jagex'
export MESA_GLSL_VERSION_OVERRIDE='130'
export MESA_GL_VERSION_OVERRIDE='3.0'
export mesa_glthread='true'

NVIDIA Proprietary

# NVIDIA Proprietary
export __GL_SHADER_DISK_CACHE_PATH=~/'Jagex'
export __GL_THREADED_OPTIMIZATIONS='1'

Debugging

export MESA_DEBUG='1'
export LIBGL_DEBUG='verbose'

More Environment Variables

Clean Up

rm -f ~/'Downloads/Jagex Launcher Installer.exe' ~/'Downloads/'*'Jagex Launcher.zip' && cd ~ && sync

Settings

Game

Music Player

Camera

sudo dnf install 'sqlitebrowser' -y
sqlitebrowser ~/'Jagex/RuneScape/Settings.jcache'

Developer Console

GNOME Keybind

gsettings set 'org.gnome.desktop.wm.keybindings' 'switch-group' "['disabled']"

Keybind Reset

gsettings reset 'org.gnome.desktop.wm.keybindings' 'switch-group'

Commands

help
displayfps
renderer

Volume

Information

Get Index

pactl list sink-inputs | grep '#'

Set Volume

pactl set-sink-input-volume 'x' '155%'

Ping

nano '/tmp/rs3-ping.sh' && chmod +x '/tmp/rs3-ping.sh' && '/tmp/rs3-ping.sh'
for world in {1..141};
do
    res=$(ping world${world}.runescape.com -c 1 2>&0 | grep "time=" | cut -d' ' -f 8,9 | cut -d'=' -f 2) && echo World ${world}: ${res};
done

Desktop Launcher

mkdir -p ~/'.local/share/applications/wine/Programs/Jagex' && nano ~/'.local/share/applications/wine/Programs/Jagex/RuneScape.desktop'
[Desktop Entry]
Name=RuneScape
Categories=Game;AdventureGame;RolePlaying
Exec='/bin/bash' -c "cd ~/'.wine/RuneScape/drive_c/Program Files/Jagex Launcher' && MESA_SHADER_CACHE_DIR=~/'.wine/RuneScape' WINEPREFIX=~/'.wine/RuneScape' wine ~/'.wine/RuneScape/drive_c/Program Files/Jagex Launcher/JagexLauncher.exe' --disable-gpu --disable-software-rasterizer"
Type=Application
StartupNotify=true
Icon=runescape
StartupWMClass=RuneScape
Actions=Kill;Cache;Notes;

[Desktop Action Kill]
Exec='/bin/bash' -c "WINEPREFIX=~/'.wine/RuneScape' wineserver --kill && killall -9 'rs2client' 'runescape' 'runescape-launcher'"
Name=Force-close

[Desktop Action Cache]
Exec='/bin/bash' -c "rm -Rf ~/'.runescape' ~/'.wine/RuneScape/Jagex/mesa_shader_cache' ~/'.wine/RuneScape/Jagex/GLCache' ~/'.wine/RuneScape/Jagex/launcher/instance.lock' ~/'.wine/RuneScape/Jagex/RuneScape/ShaderManager.jcache' '/tmp/runescape' && sync && notify-send 'The RuneScape cache has been cleaned.'"
Name=Cache Clean-up

[Desktop Action Notes]
StartupNotify=false
Exec='/bin/bash' -c "gio open 'https://wiki.realmofespionage.xyz/games:wine:runescape_jagex_launcher'"
Name=Installation Notes

# End

Quick Commands

Winecfg

WINEPREFIX=~/'.wine/RuneScape' winecfg

Winetricks

WINEPREFIX=~/'.wine/RuneScape' winetricks

Registry Editor

WINEPREFIX=~/'.wine/RuneScape' regedit

Kill

WINEPREFIX=~/'.wine/RuneScape' wineserver --kill && killall' -9 'rs2client' 'runescape' 'runescape-launcher'

Execute

Jagex Launcher

cd ~/'.wine/RuneScape/drive_c/Program Files/Jagex Launcher' && 
MESA_SHADER_CACHE_DIR=~/'.wine/RuneScape' WINEPREFIX=~/'.wine/RuneScape' wine ~/'.wine/RuneScape/drive_c/Program Files/Jagex Launcher/JagexLauncher.exe'

Troubleshooting

WINEDEBUG=''
explorer /desktop='Jagex-Launcher','1280x720'
--disable-gpu --disable-software-rasterizer

ln --backup --symbolic --force ~/'Jagex/updater/runescape-launcher' ~/'.wine/Jagex Launcher/drive_c/Program Files/Jagex Launcher/Games/RuneScape/RuneScape.exe'

Installer Version Check

File Manager

Jagex Launcher

gio open ~/'.wine/RuneScape/drive_c/Program Files/Jagex Launcher/'

Cache

mkdir -p ~/'Jagex/RuneScape' && gio open ~/'Jagex/RuneScape/'
4)
the log-in session carries over through world switches and even log-outs; Jagex Launcher only needs re-opened if you close the RS client window
5)
2024/03/24: RuneScape folder is 10.9 GB
6)
this automatically installs on Fedora through Steam as a dep, and is included out-the-box with Ubuntu 23.10
7)
2023/12: Xfce on openSUSE TW seemed fine
8)
install Jagex Launcher on a Windows machine first, and then the Jagex Launcher folder in Program Files can be copied over as-is to the Wine prefix; you don't need to log-in but ideally run it once after installation for it to update to the latest version
9)
should have file contents like 20240206-Jagex-Launcher.zip/Jagex Launcher/JagexLauncher.exe
10)
the launcher is changed to run runescape from it's working directory instead of in /usr/share/..
11)
it's unknown if this causes any issues or improves anything
12)
the default value as of 2022/09/27 is 4730
13)
PipeWire on Fedora 36 seems to have expected volume by-default
14)
this should 404; if it doesn't then there's an updated package and the notes are referencing an older version number
15)
2024/04/04: Full cache is around 11.3 GB