User Tools

Site Tools


games:linux:old_school_runescape

Information

  • Old School RuneScape 1)
  • :!: Java; see New C++ Client notes for the modern GPU-accelerated client

Prerequisites

Notes

  • :!: 2023/06/19: There are no known configurations where -Dsun.java2d.opengl=true offers a performance benefit
  • :?: 2024/05/10: -Dsun.java2d.opengl=true seems to result in slightly lower reported FPS in certain areas compared to no hardware-acceleration, but camera movement and NPC animations are notably smoother at all times
  • :!: 2020/03/24: On macOS, using the official .dmg to install OSRS resulted in the worst possible performance due to a mix of forced GPU acceleration and Retina with Java 8; it was recommended to manually install OSRS and to use the latest OpenJDK package available instead to workaround this
  • -Dsun.java2d.uiScale at 2 and higher increases all UI scale in-game, and improves performance with lowering texture resolution
  • jagexappletviewer.jar from OldSchool.msi was used because it allows the copyright footer bar to be removed upon logging in 2) 3)
  • :!: The copyright footer was not hidden with OpenJDK 12, 13, and presumably any JRE newer than 11 if jagexappletviewer.jar comes from OldSchool.msi 4)

Install

  • wmctrl is used to toggle between windowed and fullscreen states
  • p7zip-plugins is needed to extract jagexappletviewer.jar from OldSchool.msi later 5) 6)
  • :!: As of 2023/03/17, Java 19 didn't work on Fedora 37, but 11 is still fine
sudo dnf install java-11-openjdk wmctrl && sync
sudo apt install openjdk-11-jre wmctrl && sync

Show Java Paths

  • Useful for specifying Java 11 in the launch script below instead of changing it system-wide
sudo update-alternatives --config 'java'

Old School RuneScape

rm -Rf ~/'runescape/oldschool' '/tmp/oldschool' && mkdir -p ~/'runescape/oldschool' '/tmp/oldschool' && wget -O '/tmp/oldschool/OldSchool.msi' 'https://www.runescape.com/downloads/oldschool.msi' && 7z e -o'/tmp/oldschool/OldSchool-msi' -y '/tmp/oldschool/OldSchool.msi' && 7z e -o'/tmp/oldschool/rslauncher-cab' -y '/tmp/oldschool/OldSchool-msi/rslauncher.cab' && cp '/tmp/oldschool/rslauncher-cab/JagexAppletViewerJarFile'* ~/'runescape/oldschool/jagexappletviewer.jar' && cp '/tmp/oldschool/rslauncher-cab/JagexAppletViewerPngFile' ~/'runescape/oldschool/jagexappletviewer.png' && rm -Rf '/tmp/oldschool' && sync

Desktop Launcher

Old School RuneScape

  • :!: Exec='s Java path may need changed depending on the distro
  • Change uiScale if-needed
mkdir -p ~/'.local/share/applications' && nano ~/'.local/share/applications/Old School RuneScape.desktop'
[Desktop Entry]
Name=Old School RuneScape
Comment=Relive the challenging levelling system and risk-it-all PvP of the biggest retro styled MMO. Play with millions of other players in this piece of online gaming heritage where the community controls the development so the game is truly what you want it to be!
Categories=Game;Java;AdventureGame;RolePlaying
Exec='/usr/lib/jvm/java-11-openjdk-amd64/bin/java' -Xms256M -Xmx2G -XX:+UseConcMarkSweepGC -Duser.home='/home/CHANGEME/runescape/oldschool' -Djava.class.path='/home/CHANGEME/runescape/oldschool/jagexappletviewer.jar' -Dcom.jagex.config='http://oldschool.runescape.com/k=3/l=$(Language:0)/jav_config.ws' -Djdk.tls.client.protocols='TLSv1.3' -Dhttps.protocols='TLSv1.3' -Dsun.java2d.opengl='false' -Dsun.java2d.uiScale='1' 'jagexappletviewer' 'oldschool'
Type=Application
StartupNotify=true
Path=/home/CHANGEME/runescape/oldschool
Icon=/home/CHANGEME/runescape/oldschool/OSRS.icns
StartupWMClass=jagexappletviewer
Actions=Screen;Cache;Notes;

[Desktop Action Screen]
StartupNotify=false
Exec='/usr/bin/wmctrl' -r 'jagexappletviewer.jagexappletviewer' -x -b 'toggle,fullscreen'
Name=Toggle Fullscreen/Windowed

[Desktop Action Cache]
StartupNotify=false
Exec='/bin/bash' -c "rm -Rf '/home/CHANGEME/runescape/oldschool/jagexcache' '/home/CHANGEME/runescape/oldschool/jagexappletviewer.preferences' '/home/CHANGEME/runescape/oldschool/jagex_cl_oldschool_LIVE.dat' '/home/CHANGEME/runescape/oldschool/random.dat' '/home/CHANGEME/runescape/oldschool/'*'.log' '/home/CHANGEME/runescape/oldschool/.java' '/tmp/oldschool' && sync && notify-send 'The Old School RuneScape cache has been cleaned.'"
Name=Cache Cleanup

[Desktop Action Notes]
StartupNotify=false
Exec=gio open 'https://wiki.realmofespionage.xyz/games:old_school_runescape'
Name=Installation Notes
sed -i 's/'CHANGEME'/'$USER'/g' ~/'.local/share/applications/Old School RuneScape.desktop'

Icon

rm -Rf '/tmp/oldschool' && mkdir -p '/tmp/oldschool' && wget -O '/tmp/oldschool/OldSchool.dmg' 'https://www.runescape.com/downloads/OldSchool.dmg' && 7z e -o'/tmp/oldschool/OldSchool-dmg' -y '/tmp/oldschool/OldSchool.dmg' && cp '/tmp/oldschool/OldSchool-dmg/OSRS.icns' ~/'runescape/oldschool/OSRS.icns' && rm -Rf '/tmp/oldschool' && sync

Quick Commands

Clear Cache

rm -Rf ~/'runescape/oldschool/jagexcache' ~/'runescape/oldschool/jagexappletviewer.preferences' ~/'runescape/oldschool/jagex_cl_oldschool_LIVE.dat' ~/'runescape/oldschool/random.dat' '/tmp/oldschool' && sync

Execute

Old School RuneScape

cd ~/'runescape/oldschool' && java -Duser.home='.' -Djava.class.path='jagexappletviewer.jar' -Dcom.jagex.config='http://oldschool.runescape.com/jav_config.ws' -Dhttps.protocols='TLSv1.2' -Dsun.java2d.opengl='false' -Dsun.java2d.uiScale='1' 'jagexappletviewer' 'oldschool'
-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+AlwaysPreTouch -Xms'512M' -Xmx'512M' -XX:-UseBiasedLocking -XX:+DisableExplicitGC
-XX:+UseNUMA

File Manager

Root

gio open ~/'runescape/oldschool'

Testing

jagexappletviewer.jar

  • :!: jagexappletviewer.jar has varying filesizes depending on where it's sourced from, along with different functionality depending on the host operating system 7)

Windows

  • Extracts jagexappletviewer.jar from OldSchool.msi and requires 7z
  • Places it at ~/Downloads/windows-jagexappletviewer.jar
rm -Rf '/tmp/oldschool' && mkdir -p '/tmp/oldschool' && wget -O '/tmp/oldschool/OldSchool.msi' 'https://www.runescape.com/downloads/oldschool.msi' && 7z e -o'/tmp/oldschool/OldSchool-msi' -y '/tmp/oldschool/OldSchool.msi' && 7z e -o'/tmp/oldschool/rslauncher-cab' -y '/tmp/oldschool/OldSchool-msi/rslauncher.cab' && cp '/tmp/oldschool/rslauncher-cab/JagexAppletViewerJarFile'* ~/'Downloads/windows-jagexappletviewer.jar' && rm -Rf '/tmp/oldschool' && sync

macOS

  • Extracts jagexappletviewer.jar from OldSchool.dmg and requires 7z
  • Places it at ~/Downloads/macos-jagexappletviewer.jar
rm -Rf '/tmp/oldschool' && mkdir -p '/tmp/oldschool' && wget -O '/tmp/oldschool/OldSchool.dmg' 'https://www.runescape.com/downloads/OldSchool.dmg' && 7z e -o'/tmp/oldschool/OldSchool-dmg' -y '/tmp/oldschool/OldSchool.dmg' && cp '/tmp/oldschool/OldSchool-dmg/jagexappletviewer.jar' ~/'Downloads/macos-jagexappletviewer.jar' && rm -Rf '/tmp/oldschool' && sync

Android

  • TODO
am start -n 'com.jagex.oldscape.android/.AndroidLauncher'
am force-stop 'com.jagex.oldscape.android'

Windows

Create Directory

  • Alternatively, use Explorer to make the runescape folder in the User folder and runescape\oldschool
if not exist %UserProfile%"\runescape\oldschool" mkdir %UserProfile%"\runescape\oldschool"
start %UserProfile%"\runescape"

Java

  • Download the Windows .zip of the latest Java package from https://jdk.java.net/
  • Extract the root folder from the archive and drop it in the runescape folder
  • Folder structure should be %UserProfile%\runescape\jdk-14
  • javaw.exe should exist at %UserProfile%\runescape\jdk-14\bin\javaw.exe

jagexappletviewer.jar

  • Extract it from the macOS Oldschool.dmg installer
  • Should reside at %UserProfile%\runescape\oldschool\jagexappletviewer.jar

Batch File

  • Should reside at %UserProfile%\runescape\osrs.cmd
  • The usual command-line arguments above can be tossed in or altered as-needed
cd "jdk-"*"\bin"

start javaw.exe -Djava.system.class.loader="app.systemclassloader" -Duser.home="..\..\oldschool" -Djava.class.path="..\..\oldschool\jagexappletviewer.jar" -Dcom.jagex.config="http://oldschool.runescape.com/jav_config.ws" -Dhttps.protocols="TLSv1.2" -Xms"768M" -Xmx"768M" -Dsun.java2d.uiScale="1" "jagexappletviewer" "oldschool"

macOS

  • need macOS dmg .jar
  • Need OpenJDK 13 or something in the ~/runescape folder
  • OpenJDK 9 had GPU usage and lower FPS
  • Need -Djava.system.class.loader=app.systemclassloader
  • :!: This very likely needs refactored
rm -Rf ~/'runescape/oldschool' && mkdir -p ~/'runescape/oldschool' && curl 'http://oldschool.runescape.com/downloads/jagexappletviewer.jar' -o ~/'runescape/oldschool/jagexappletviewer.jar' && curl 'https://lh3.googleusercontent.com/WLvp10q8TwtyVgMsYL7gW0c7NVG5vnFcRNS7oQtTnSyWbM9kgo_MS8QZa3bsylNgZDba' -o ~/'runescape/oldschool/jagexappletviewer.png' && sync
#!/usr/bin/env zsh

cd ~/'runescape/oldschool'
~/'runescape/jdk-13.0.1.jdk/Contents/Home/bin/java' -Djava.system.class.loader='app.systemclassloader' -Duser.home='.' -Djava.class.path='jagexappletviewer.jar' -Dcom.jagex.config='http://oldschool.runescape.com/jav_config.ws' -Dhttps.protocols='TLSv1.2' -Xms'768M' -Xmx'768M' -Dsun.java2d.opengl='false' -Dsun.java2d.uiScale='1' 'jagexappletviewer' 'oldschool'

Legacy Java Client

  • Last tested: 2024/06/19
notepad "%UserProfile%\jagexcache\jagexlauncher\oldschool\oldschool.prm"
-Djava.class.path=jagexappletviewer.jar
-Dsun.java2d.opengl=true
-Dsun.java2d.accthreshold=0
-Dcom.jagex.config=http://oldschool116.runescape.com/k=3/l=$(Language:0)/jav_config.ws
-Xmx512m
-Xms256M
-Dhttps.protocols=TLSv1.3
-XX:+UseSerialGC
jagexappletviewer

Jagex Launcher Flags

  • Last tested: 2024/06/19
--disable-gpu --disable-software-rasterizer --single-process --launch=osrs --silent
3)
the previously used direct-link jagexappletviewer.jar can be found here
4)
last tested 2019/10/22
5)
only 7z can do this properly and not 7za, cabextract, nor unar
6)
this is expected to already be installed from the Fedora prerequisite
/var/www/wiki/data/pages/games/linux/old_school_runescape.txt · Last modified: by 127.0.0.1