Both sides previous revisionPrevious revisionNext revision | Previous revision |
games:wine:old_school_runescape_jagex_launcher_c [2024/01/24 08:04] – Sean Rhone | games:wine:old_school_runescape_jagex_launcher_c [2024/05/09 17:43] (current) – Sean Rhone |
---|
* Old School RuneScape ((http://oldschool.runescape.com)) (for RuneScape/RS3, see [[games:wine:runescape_jagex_launcher|these notes instead]]) | * Old School RuneScape ((http://oldschool.runescape.com)) (for RuneScape/RS3, see [[games:wine:runescape_jagex_launcher|these notes instead]]) |
* C++ Client | * C++ Client |
* [[https://www.youtube.com/watch?v=NFDe9AVVlxo|Installation Video]] ((Frame drops seen in the video do **not** happen locally)) | * [[https://www.youtube.com/watch?v=dThU5GKjNRo|Installation Video]] |
| |
* This allows running the Jagex Launcher and the C++ OSRS clients through ''wine'' | * This allows running the Jagex Launcher and the C++ OSRS clients through ''wine'' |
===== Prerequisites ===== | ===== Prerequisites ===== |
| |
* [[distros:fedora_workstation_gnome|Fedora Workstation]] | * [[distros:opensuse_tumbleweed_gnome|openSUSE Tumbleweed (GNOME)]] |
* [[notes:wine|Wine]] | * [[notes:wine|Wine]] |
| |
| |
* 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)) | * 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)) |
* :!: Jagex Launcher sometimes has issues with being interacted with from GNOME tray with the AppIndicator/KStatusNotifierItem support for GNOME Shell extension; disable it ((this automatically installs on Fedora through Steam as a dep, and is included out-the-box with Ubuntu 23.10)) ((TODO: See if AppIndicator can be disabled exclusively for Wine or prefixes instead of disabling globally)) | * :!: When first launching OSRS after installation, at the lobby before pressing Play Now, allow OSRS to download its full data cache ((2024/04/29: It downloads around 500 KB/s and bandwidth can be observed through GNOME System Monitor; should be done within a few minutes)) |
| |
| ====== 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)) |
| * 2024/04: The Jagex Launcher tray icon was fine on Xfce and KDE Plasma 6, so presumably this only applies to GNOME |
| |
| gnome-extensions disable 'appindicatorsupport@rgcjonas.gmail.com' |
| |
| gnome-extensions disable 'ubuntu-appindicators@ubuntu.com' |
| |
====== Install ====== | ====== Install ====== |
===== Jagex Launcher ===== | ===== Jagex Launcher ===== |
| |
* :!: You need to supply your own ''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)) | * :!: 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 or [[#manual|zipped to continue following these notes]]; 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 ==== | ==== Google Drive ==== |
| |
* [[https://drive.google.com/file/d/11ngQ49_z5l6hww-3XcL52Zpb-_uzLNsr/view|Google Drive]] link to a clean ''Jagex Launcher'' folder with SHA256 | * [[https://drive.google.com/file/d/1ycvSFHTCXNQ7kXnPTS8XHFg__qgfB2ti/view?usp=sharing|Google Drive]] link to a clean ''Jagex Launcher'' folder with SHA256 |
* Use this if at all unsure | * Use this if at all unsure |
| |
sha256sum ~/'Downloads/20240118-Jagex-Launcher.zip' | grep 'SHA256: abd0b91c73dec43da4cd60117f16dc765c910ed1606db2a6df09c75617ff7621' > '/dev/null' && unzip -b -o -qq ~/'Downloads/20240118-Jagex-Launcher.zip' -d ~/'.wine/Old School RuneScape/drive_c/Program Files' && sync | sha256sum ~/'Downloads/20240509-Jagex-Launcher.zip' | grep 'bc143b9cafbf6d735193d64e486be5015d4a4e857c61329e1a49f7143987789d' > '/dev/null' && unzip -b -o -qq ~/'Downloads/20240509-Jagex-Launcher.zip' -d ~/'.wine/Old School RuneScape/drive_c/Program Files' && sync |
| |
==== Manual ==== | ==== Manual ==== |
| |
* Expects something like ''~/Downloads/20230920-Jagex-Launcher.zip'' with any date | * 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 | 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' | gio open ~/'.wine/Old School RuneScape/drive_c/Program Files' |
| |
==== Official Installer ==== | |
| |
* :!: 2023/09/16: The installer doesn't launch a GUI and seemingly can't be silently-installed | |
* See [[notes:jagex_launcher_installer_wine|Jagex Launcher Installer]] notes for testing | |
| |
===== Old School RuneScape ===== | ===== Old School RuneScape ===== |
| |
* Update launcher if prompted, log-in, select OSRS -> New Official Client -> Install | * Update launcher if prompted, log-in, select OSRS -> New Official Client ((RuneLite nor any other options were tested with these notes)) -> 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 | 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 |
====== Settings ====== | ====== Settings ====== |
| |
* ''FpsLimit'' is ideal for Wayland sessions in order to prevent uncapped framerate and unnecessary high energy usage; set ''1''Hz above refresh rate | * 1080p, fullscreen, max draw distance, MSAA x4, W416, Nearest-neighbour UI scaling |
| * :!: If using Wayland, set ''FpsLimit'' to the screen's refresh rate to prevent uncapped framerates ((changing the in-game Framerate limit option to anything will overwrite whatever was specified, including going back to ''0'' with Unlimited)) |
| |
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' | * Last updated: 2024/01/31 |
| |
<code>DisplayBuildInfo 1</code> | |
| |
<code>FpsLimit 75</code> | |
| |
===== Defaults ===== | |
| |
* 1080p, max draw distance, MSAA x4, W416, Nearest-neighbour | |
* Last updated: 2024/01/18 | |
| |
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' | 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' |
DisplayFps 0 | DisplayFps 0 |
DrawDistance 90 | DrawDistance 90 |
FpsLimit 75 | FpsLimit 0 |
Fullscreen 0 | Fullscreen 1 |
HideUserName 0 | HideUserName 0 |
LastWorldId 416 | LastWorldId 416 |
WindowTopmost 0 | WindowTopmost 0 |
WindowWidth 1920</code> | WindowWidth 1920</code> |
| |
| ===== Steam ===== |
| |
| * ''preferences_client.dat'' if OSRS is installed through Steam and ran through Proton |
| |
| 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' |
| |
====== Desktop Launcher ====== | ====== Desktop Launcher ====== |
* TODO: Kill and Cache clean-up is behind ''bash -c'' and presumably don't need ''CHANGEME''s; can be modernized like ''Exec'' | * 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>rm -f ~/'.local/share/applications/wine/Programs/OSClient.desktop' && mkdir -p ~/'.local/share/applications/wine/Programs/Jagex' && ln --symbolic --force '/dev/null' ~/'.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> | <code> |
Categories=Game;AdventureGame;RolePlaying | 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" | 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 | Type=Application |
StartupNotify=true | StartupNotify=true |
Icon=D0C9_osclient.0 | Icon=D0C9_osclient.0 |
StartupWMClass=osclient.exe | StartupWMClass=osclient.exe |
Actions=Cache;Kill;Notes; | Actions=OpenGL;Cache;Kill;Notes; |
| |
| [Desktop Action OpenGL] |
| 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' vblank_mode='3' mesa_glthread='true' MESA_NO_ERROR='1' WINEPREFIX=~/'.wine/Old School RuneScape' wine ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher/JagexLauncher.exe' --disable-gpu --disable-software-rasterizer" |
| Name=Launch without Zink |
| |
[Desktop Action Cache] | [Desktop Action Cache] |
| |
===== Execute ===== | ===== Execute ===== |
| |
| * TODO: OSRS can technically be launched directly and accept username/password logins; separate Jagex Launcher methods and add a direct OSRS one |
| |
==== Jagex Launcher ==== | ==== 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)) | * ''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)) |
| * This has no enforced Vsync nor Zink usage |
| |
<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> | <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> |
| |
| ==== Forced Vsync ==== |
| |
| * Sets ''vblank_mode=3'', ''mesa_glthread=true'', and ''MESA_NO_ERROR=1'' |
| |
| <code>cd ~/'.wine/Old School RuneScape/drive_c/Program Files/Jagex Launcher' && vblank_mode='3' mesa_glthread='true' MESA_NO_ERROR='1' 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 ==== | ==== Zink ==== |
| |
* ''MESA_LOADER_DRIVER_OVERRIDE=zink'' | * Sets ''MESA_LOADER_DRIVER_OVERRIDE=zink'' and ''MESA_VK_WSI_PRESENT_MODE=immediate'' |
* ''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)) |
* :!: 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)) ((2023/12: 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> | <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> |