| Both sides previous revisionPrevious revisionNext revision | Previous revision | 
| games:wine:old_school_runescape_jagex_launcher_c [2024/02/25 15:11]  –  Sean Rhone | games:wine:old_school_runescape_jagex_launcher_c [2024/08/13 16:15] (current)  – removed Sean Rhone | 
|---|
| ====== Information ====== |  | 
|  |  | 
| * Jagex Launcher ((https://www.jagex.com/en-GB/launcher)) |  | 
| * Old School RuneScape ((http://oldschool.runescape.com)) (for RuneScape/RS3, see [[games:wine:runescape_jagex_launcher|these notes instead]]) |  | 
| * C++ Client |  | 
| * [[https://www.youtube.com/watch?v=dThU5GKjNRo|Installation Video]] |  | 
|  |  | 
| * This allows running the Jagex Launcher and the C++ OSRS clients through ''wine'' |  | 
| * Jagex Launcher can be closed after pressing ''Play'' and the OSRS client window appears ((the log-in session carries over through world switches and even log-outs; Jagex Launcher only needs to be re-opened if you close the OSRS client window)) |  | 
|  |  | 
| ===== Prerequisites ===== |  | 
|  |  | 
| * [[distros:fedora_workstation_gnome|Fedora Workstation]] or [[distros:ubuntu_desktop|Ubuntu]] |  | 
| * [[notes:wine|Wine]] |  | 
|  |  | 
| ===== Notes ===== |  | 
|  |  | 
| * On the first OSRS client launch, it may start an invisible game window; Close ''osclient.exe'' and re-launch it from Jagex Launcher ((on Windows this seems to manifests as a //visible// game window that doesn't appear in the taskbar; OSRS defies typical window-management logic :p presumably when it tries to define a default window position on first-launch)) |  | 
|  |  | 
| ====== Disable Legacy GNOME Tray ====== |  | 
|  |  | 
| * :!: Jagex Launcher sometimes has issues with being interacted with from GNOME tray with the AppIndicator/KStatusNotifierItem support for GNOME Shell extension ((this automatically installs on Fedora through Steam as a dep, and is included out-the-box with Ubuntu 23.10)) |  | 
| * Can be an issue on other desktop environments ((2023/12: Xfce seemed fine with openSUSE TW)) |  | 
|  |  | 
| gnome-extensions disable 'ubuntu-appindicators@ubuntu.com' |  | 
|  |  | 
| gnome-extensions disable 'appindicatorsupport@rgcjonas.gmail.com' |  | 
|  |  | 
| ====== Install ====== |  | 
|  |  | 
| ===== Initial ===== |  | 
|  |  | 
| **** |  | 
|  |  | 
| mkdir -p ~/'.wine' && WINEPREFIX=~/'.wine/Old School RuneScape' WINEARCH='win64' wineboot && WINEPREFIX=~/'.wine/Old School RuneScape' winetricks 'discord_game_sdk=disabled' && sync |  | 
|  |  | 
| ===== Jagex Launcher ===== |  | 
|  |  | 
| * :!: You'll need to supply ''Jagex Launcher'' files as the installer doesn't work ((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)) |  | 
| * See [[notes:jagex_launcher_installer_wine|Jagex Launcher Installer]] notes for installer testing |  | 
|  |  | 
| ==== Google Drive ==== |  | 
|  |  | 
| * [[https://drive.google.com/file/d/1iUxgHHBCQXziYHfcDwp3rxFXyb9mL3c2/view?usp=sharing|Google Drive]] link to a clean ''Jagex Launcher'' folder with SHA256 |  | 
| * Use this if at all unsure |  | 
|  |  | 
| sha256sum ~/'Downloads/20240211-Jagex-Launcher.zip' | grep 'cd924d7b145349912879c429c44416403af5be494914d15446301b2e42cc4812' > '/dev/null' && unzip -b -o -qq ~/'Downloads/20240211-Jagex-Launcher.zip' -d ~/'.wine/Old School RuneScape/drive_c/Program Files' && sync |  | 
|  |  | 
| ==== Manual ==== |  | 
|  |  | 
| * Expects something like ''~/Downloads/20240211-Jagex-Launcher.zip'' with any date |  | 
| * The top-level of the archive should be the ''Jagex Launcher'' folder ((should have file contents like ''20240211-Jagex-Launcher.zip/Jagex Launcher/JagexLauncher.exe'')) |  | 
|  |  | 
| unzip -b -o -qq ~/'Downloads/'*'Jagex'*'Launcher.zip' -d ~/'.wine/Old School RuneScape/drive_c/Program Files' && sync |  | 
|  |  | 
| gio open ~/'.wine/Old School RuneScape/drive_c/Program Files' |  | 
|  |  | 
| ===== Old School RuneScape ===== |  | 
|  |  | 
| * Update launcher if prompted, log-in, select OSRS -> New Official Client -> Install |  | 
|  |  | 
| mkdir -p ~/'.wine/Old School RuneScape/dxvk_shader_cache' && cd ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher' && MESA_SHADER_CACHE_DIR=~/'.wine/Old School RuneScape' DXVK_STATE_CACHE_PATH=~/'.wine/Old School RuneScape/dxvk_shader_cache' WINEPREFIX=~/'.wine/Old School RuneScape' wine ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/JagexLauncher.exe' --disable-gpu --disable-software-rasterizer |  | 
|  |  | 
| ===== Clean Up ===== |  | 
|  |  | 
| **** |  | 
|  |  | 
| rm -f ~/'Downloads/Jagex Launcher Installer.exe' ~/'Downloads/'*'Jagex Launcher.zip' && cd ~ && sync |  | 
|  |  | 
| ====== Settings ====== |  | 
|  |  | 
| * ''FpsLimit'' is ideal for Wayland sessions in order to prevent uncapped framerate and potential thermal-throttling |  | 
|  |  | 
| mkdir -p ~/'.wine/Old School RuneScape/drive_c/users/'$USER'/AppData/Local/Jagex/Old School Runescape' && nano ~/'.wine/Old School RuneScape/drive_c/users/'$USER'/AppData/Local/Jagex/Old School Runescape/preferences_client.dat' |  | 
|  |  | 
| <code>DisplayBuildInfo 1</code> |  | 
|  |  | 
| <code>FpsLimit 74</code> |  | 
|  |  | 
| ===== Steam ===== |  | 
|  |  | 
| **** |  | 
|  |  | 
| mkdir -p ~/'.local/share/Steam/steamapps/compatdata/1343370/pfx/drive_c/users/steamuser/AppData/Local/Jagex/Old School Runescape' && nano ~/'.local/share/Steam/steamapps/compatdata/1343370/pfx/drive_c/users/steamuser/AppData/Local/Jagex/Old School Runescape/preferences_client.dat' |  | 
|  |  | 
| ===== Defaults ===== |  | 
|  |  | 
| * 1080p, fullscreen, max draw distance, MSAA x4, W416, Nearest-neighbour |  | 
| * Last updated: 2024/01/31 |  | 
|  |  | 
| mkdir -p ~/'.wine/Old School RuneScape/drive_c/users/'$USER'/AppData/Local/Jagex/Old School Runescape' && nano ~/'.wine/Old School RuneScape/drive_c/users/'$USER'/AppData/Local/Jagex/Old School Runescape/preferences_client.dat' |  | 
|  |  | 
| <code> |  | 
| AntiAliasingSampleLevel 2 |  | 
| Brightness 0 |  | 
| DefaultWorldId 416 |  | 
| DisplayBuildInfo 0 |  | 
| DisplayFps 0 |  | 
| DrawDistance 90 |  | 
| FpsLimit 74 |  | 
| Fullscreen 1 |  | 
| HideUserName 0 |  | 
| LastWorldId 416 |  | 
| MasterVolume 100 |  | 
| TitleVolume 100 |  | 
| UIQuality 0 |  | 
| WindowHeight 1080 |  | 
| WindowMode 2 |  | 
| WindowTopmost 0 |  | 
| WindowWidth 1920</code> |  | 
|  |  | 
| ====== Desktop Launcher ====== |  | 
|  |  | 
| * TODO: Kill and Cache clean-up is behind ''bash -c'' and presumably don't need ''CHANGEME''s; can be modernized like ''Exec'' |  | 
|  |  | 
| <code>rm -f ~/'.local/share/applications/wine/Programs/OSClient.desktop' && mkdir -p ~/'.local/share/applications/wine/Programs/Jagex' && ln --symbolic --force '/dev/null' '/home/espionage724/.local/share/applications/wine/Programs/OSClient.desktop' && nano ~/'.local/share/applications/wine/Programs/Jagex/Old School RuneScape.desktop' && sed -i 's/'CHANGEME'/'$USER'/g' ~/'.local/share/applications/wine/Programs/Jagex/Old School RuneScape.desktop'</code> |  | 
|  |  | 
| <code> |  | 
| [Desktop Entry] |  | 
| Name=Old School RuneScape |  | 
| Categories=Game;AdventureGame;RolePlaying |  | 
| Exec='/bin/bash' -c "cd ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Old School RuneScape' MESA_LOADER_DRIVER_OVERRIDE='zink' MESA_VK_WSI_PRESENT_MODE='immediate' WINEPREFIX=~/'.wine/Old School RuneScape' wine ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/JagexLauncher.exe' --disable-gpu --disable-software-rasterizer" |  | 
| Type=Application |  | 
| StartupNotify=true |  | 
| Icon=D0C9_osclient.0 |  | 
| StartupWMClass=osclient.exe |  | 
| Actions=Cache;Kill;Notes; |  | 
|  |  | 
| [Desktop Action Cache] |  | 
| StartupNotify=false |  | 
| Exec='/bin/bash' -c "rm -Rf '/home/CHANGEME/.wine/Old School RuneScape/drive_c/users/CHANGEME/AppData/Local/Jagex/Old School Runescape/'* '/home/CHANGEME/.wine/Old School RuneScape/drive_c/'*'.log' '/home/CHANGEME/.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/JagexLauncher.dxvk-cache' '/home/CHANGEME/.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/Games/Old School RuneScape/Client/osclient.dxvk-cache' '/home/CHANGEME/.wine/Old School RuneScape/drive_c/users/CHANGEME/AppData/Local/Jagex Launcher/logs/'* '/home/CHANGEME/.wine/Old School RuneScape/mesa_shader_cache'* && sync && notify-send 'The Old School RuneScape cache has been cleaned.'" |  | 
| Name=Cache Cleanup |  | 
|  |  | 
| [Desktop Action Kill] |  | 
| Exec='/bin/bash' -c "WINEPREFIX=~/'.wine/Old School RuneScape' wineserver --kill" |  | 
| Name=Force-close |  | 
|  |  | 
| [Desktop Action Notes] |  | 
| StartupNotify=false |  | 
| Exec='/bin/bash' -c "gio open 'https://wiki.realmofespionage.xyz/games:wine:old_school_runescape_jagex_launcher_c'" |  | 
| Name=Installation Notes |  | 
|  |  | 
| # End</code> |  | 
|  |  | 
| ===== Icon ===== |  | 
|  |  | 
| * Requires ''wrestool'' |  | 
|  |  | 
| <code>mkdir -p ~/'.local/share/icons/hicolor/64x64/apps' && cd ~/'.local/share/icons/hicolor/64x64/apps' && wrestool --output='D0C9_osclient.0.png' --extract --type='14' ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/Games/Old School RuneScape/Client/osclient.exe' && cd ~</code> |  | 
|  |  | 
| ====== Quick Commands ====== |  | 
|  |  | 
| ===== Winecfg ===== |  | 
|  |  | 
| **** |  | 
|  |  | 
| WINEPREFIX=~/'.wine/Old School RuneScape' winecfg |  | 
|  |  | 
| ===== Winetricks ===== |  | 
|  |  | 
| **** |  | 
|  |  | 
| WINEPREFIX=~/'.wine/Old School RuneScape' winetricks |  | 
|  |  | 
| ===== Registry Editor ===== |  | 
|  |  | 
| **** |  | 
|  |  | 
| WINEPREFIX=~/'.wine/Old School RuneScape' regedit |  | 
|  |  | 
| ===== Kill ===== |  | 
|  |  | 
| **** |  | 
|  |  | 
| WINEPREFIX=~/'.wine/Old School RuneScape' wineserver --kill |  | 
|  |  | 
| ===== Execute ===== |  | 
|  |  | 
| ==== Jagex Launcher ==== |  | 
|  |  | 
| * ''PULSE_LATENCY_MSEC=400'' [[https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1769#note_1146786|source]] ((required to fix audio glitches present in music even on Fedora 38+ where PipeWire is used)) |  | 
|  |  | 
| <code>cd ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher' && PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Old School RuneScape' DXVK_STATE_CACHE_PATH=~/'.wine/Old School RuneScape/dxvk_shader_cache' WINEDEBUG='' WINEPREFIX=~/'.wine/Old School RuneScape' wine ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/JagexLauncher.exe' --disable-gpu --disable-software-rasterizer</code> |  | 
|  |  | 
| ==== Zink ==== |  | 
|  |  | 
| * ''MESA_LOADER_DRIVER_OVERRIDE=zink'' |  | 
| * ''MESA_VK_WSI_PRESENT_MODE=immediate'' |  | 
| * :!: This is required for GNOME on Wayland with Intel UHD 630 in order to workaround an odd 50 FPS limit ((TODO: Figure out what this is about and if it affects other GPU vendors; this is also reproducible with [[games:wine:diablo_2|Diablo II non-Resurrected]] when ran through a Glide-to-OpenGL wrapper)) |  | 
|  |  | 
| <code>cd ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher' && MESA_LOADER_DRIVER_OVERRIDE='zink' MESA_VK_WSI_PRESENT_MODE='immediate' PULSE_LATENCY_MSEC='400' MESA_SHADER_CACHE_DIR=~/'.wine/Old School RuneScape' DXVK_STATE_CACHE_PATH=~/'.wine/Old School RuneScape/dxvk_shader_cache' WINEDEBUG='' WINEPREFIX=~/'.wine/Old School RuneScape' wine ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/JagexLauncher.exe' --disable-gpu --disable-software-rasterizer</code> |  | 
|  |  | 
| ==== Troubleshooting ==== |  | 
|  |  | 
| * Wine's virtual desktop may be necessary with certain desktop/window managers and with Wayland |  | 
|  |  | 
| <code>explorer /desktop='Jagex-Launcher','1280x720'</code> |  | 
|  |  | 
| ===== File Manager ===== |  | 
|  |  | 
| ==== Jagex Launcher ==== |  | 
|  |  | 
| **** |  | 
|  |  | 
| gio open ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/' |  | 
|  |  | 
| ==== Old School RuneScape ==== |  | 
|  |  | 
| **** |  | 
|  |  | 
| <code>gio open ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/Games/Old School RuneScape/Client/'</code> |  | 
|  |  |