User Tools

Site Tools


games:old_school_runescape

Information

  • Old School RuneScape 1)

Notes

  • -Dsun.java2d.opengl=true enables Hardware-acceleration via OpenGL, but as of 2018/10/10, this is broken with Intel Graphics on multiple computers 2) and as of 2019/10/24, has significantly worse performance on a i5-4278U CPU
  • jagexappletviewer.jar from OldSchool.msi was used because it allows the copyright footer bar to be removed upon logging in 3) 4)
  • :!: The copyright footer is not hidden with OpenJDK 12, 13, and presumably any JRE newer than 11 if jagexappletviewer.jar comes from OldSchool.msi 5)
  • :!: The copyright footer is only hidden with jagexappletviewer.jar from OldSchool.dmg if -Djava.system.class.loader=app.systemclassloader is set on both macOS and Linux hosts 6)

Install

Dependencies

  • wmctrl is used to toggle between windowed and fullscreen states

Fedora Workstation

  • p7zip-plugins is needed to extract jagexappletviewer.jar from OldSchool.dmg later 7) 8)
  • Last tested: 2019/11/01 with Fedora Workstation 31 and OpenJDK 13
sudo dnf install java-latest-openjdk wmctrl && sync

Ubuntu

  • Last tested: 2019/10/22 with Ubuntu 19.10
  • :!: TODO: Update the OpenJDK version and test with the new applet source
sudo apt install openjdk-11-jre wmctrl && sync

openSUSE Tumbleweed

  • Last tested: N/A
  • :!: TODO: Update the OpenJDK version and test with the new applet source
sudo zypper install java-11-openjdk wmctrl && sync

Set Default Java

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.dmg' 'http://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' ~/'runescape/oldschool/jagexappletviewer.jar' && cp '/tmp/oldschool/OldSchool-dmg/OSRS.icns' ~/'runescape/oldschool/OSRS.icns' && rm -Rf '/tmp/oldschool' && sync

Desktop Launcher

Old School RuneScape

  • :!: Change opengl and uiScale flags as-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/bin/java' -Duser.home='/home/CHANGEME/runescape/oldschool' -Djava.class.path='/home/CHANGEME/runescape/oldschool/jagexappletviewer.jar' -Dcom.jagex.config='http://oldschool.runescape.com/jav_config.ws' -Dhttps.protocols='TLSv1.2' -Xms'768M' -Xmx'768M' -Djava.system.class.loader='app.systemclassloader' -Dswing.crossplatformlaf='com.sun.java.swing.plaf.gtk.GTKLookAndFeel' -Dsun.java2d.opengl='false' -Dsun.java2d.uiScale='2' 'jagexappletviewer' 'oldschool'
Type=Application
StartupNotify=true
Path=/home/CHANGEME/runescape/oldschool
Icon=/home/CHANGEME/runescape/oldschool/OSRS.icns
StartupWMClass=jagexappletviewer
Actions=GL;Screen;Cache;

[Desktop Action GL]
Exec='/usr/bin/java' -Duser.home='/home/CHANGEME/runescape/oldschool' -Djava.class.path='/home/CHANGEME/runescape/oldschool/jagexappletviewer.jar' -Dcom.jagex.config='http://oldschool.runescape.com/jav_config.ws' -Dhttps.protocols='TLSv1.2' -Xms'768M' -Xmx'768M' -Djava.system.class.loader='app.systemclassloader' -Dswing.crossplatformlaf='com.sun.java.swing.plaf.gtk.GTKLookAndFeel' -Dsun.java2d.opengl='true' -Dsun.java2d.uiScale='2' 'jagexappletviewer' 'oldschool'
Name=Start with OpenGL acceleration

[Desktop Action Screen]
StartupNotify=false
Exec='/usr/bin/wmctrl' -r 'Old School RuneScape' -b toggle,fullscreen -F
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
sed -i 's/'CHANGEME'/'$USER'/g' ~/'.local/share/applications/Old School RuneScape.desktop'

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

  • See Java Flags for flags that can be added to this
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 9)

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' 'http://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' 'http://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

Generic

  • Downloads jagexappletviewer.jar directly with wget 10)
  • Places it at ~/Downloads/generic-jagexappletviewer.jar
wget -O ~/'Downloads/generic-jagexappletviewer.jar' 'http://oldschool.runescape.com/downloads/jagexappletviewer.jar' && 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
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='2' 'jagexappletviewer' 'oldschool'
2)
does some weird tiling thing and is unplayable
4)
the previously used direct-link jagexappletviewer.jar can be found here
5)
last tested 2019/10/22
6)
this flag doesn't work with the jagexappletviewer.jar from OldSchool.msi
7)
only 7z can do this properly and not 7za, cabextract, nor unar
8)
this is expected to already be installed from the Fedora prerequisite
10)
no idea what this version actually is or what platform it's for
games/old_school_runescape.txt · Last modified: 2019/11/11 07:41 by Sean Rhone