Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
games:old_school_runescape [2019/11/11 07:41] – Sean Rhone | games:old_school_runescape [2024/05/10 03:43] – [Notes] Sean Rhone |
---|
| |
* Old School RuneScape ((http://oldschool.runescape.com)) | * Old School RuneScape ((http://oldschool.runescape.com)) |
| * :!: Java; see [[games:wine:old_school_runescape_jagex_launcher_c|New C++ Client]] notes for the modern GPU-accelerated client |
| |
| ===== Prerequisites ===== |
| |
| * [[distros:fedora_workstation_gnome|Fedora Workstation]] |
| |
===== Notes ===== | ===== 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 ((does some weird tiling thing and is unplayable)) and as of 2019/10/24, has significantly worse performance on a i5-4278U CPU | * :!: 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 |
| |
==== Copyright Footer ==== | ==== Copyright Footer ==== |
| |
* ''jagexappletviewer.jar'' from ''OldSchool.msi'' was used because it allows the copyright footer bar to be removed upon logging in (([[https://github.com/rsu-client/rsu-client/commit/b2553e5aeca9a0e6b271b5b17eee9a57c8d6ef11|rsu-client commit]] and [[https://github.com/rsu-client/rsu-client/issues/127|initial bug report]])) ((the previously used direct-link ''jagexappletviewer.jar'' can be found [[http://oldschool.runescape.com/downloads/jagexappletviewer.jar|here]])) | * ''jagexappletviewer.jar'' from ''OldSchool.msi'' was used because it allows the copyright footer bar to be removed upon logging in (([[https://github.com/rsu-client/rsu-client/commit/b2553e5aeca9a0e6b271b5b17eee9a57c8d6ef11|rsu-client commit]] and [[https://github.com/rsu-client/rsu-client/issues/127|initial bug report]])) ((the previously used direct-link ''jagexappletviewer.jar'' can be found [[http://oldschool.runescape.com/downloads/jagexappletviewer.jar|here]])) |
* :!: The copyright footer is **not** hidden with OpenJDK 12, 13, and presumably any JRE newer than 11 if ''jagexappletviewer.jar'' comes from ''OldSchool.msi'' ((last tested 2019/10/22)) | * :!: The copyright footer was **not** hidden with OpenJDK 12, 13, and presumably any JRE newer than 11 if ''jagexappletviewer.jar'' comes from ''OldSchool.msi'' ((last tested 2019/10/22)) |
* :!: 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 ((this flag doesn't work with the ''jagexappletviewer.jar'' from ''OldSchool.msi'')) | |
| |
====== Install ====== | ====== Install ====== |
| |
===== Dependencies ===== | |
| |
* ''wmctrl'' is used to toggle between windowed and fullscreen states | * ''wmctrl'' is used to toggle between windowed and fullscreen states |
| * ''p7zip-plugins'' is needed to extract ''jagexappletviewer.jar'' from ''OldSchool.msi'' later ((only ''7z'' can do this properly and **not** ''7za'', ''cabextract'', nor ''unar'')) ((this is expected to already be installed from the Fedora prerequisite)) |
| * :!: As of 2023/03/17, Java 19 didn't work on Fedora 37, but 11 is still fine |
| |
==== Fedora Workstation ==== | sudo dnf install java-11-openjdk wmctrl && sync |
| |
* ''p7zip-plugins'' is needed to extract ''jagexappletviewer.jar'' from ''OldSchool.dmg'' later ((only ''7z'' can do this properly and **not** ''7za'', ''cabextract'', nor ''unar'')) ((this is expected to already be installed from the Fedora prerequisite)) | |
| |
* 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 | sudo apt install openjdk-11-jre wmctrl && sync |
| |
==== openSUSE Tumbleweed ==== | ==== Show Java Paths ==== |
| |
* Last tested: N/A | * Useful for specifying Java 11 in the launch script below instead of changing it system-wide |
* :!: 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' | sudo update-alternatives --config 'java' |
**** | **** |
| |
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 | 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 ====== | ====== Desktop Launcher ====== |
===== Old School RuneScape ===== | ===== Old School RuneScape ===== |
| |
* :!: Change ''opengl'' and ''uiScale'' flags as-needed | * :!: ''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' | mkdir -p ~/'.local/share/applications' && nano ~/'.local/share/applications/Old School RuneScape.desktop' |
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! | 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 | 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' | 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 | Type=Application |
StartupNotify=true | StartupNotify=true |
Icon=/home/CHANGEME/runescape/oldschool/OSRS.icns | Icon=/home/CHANGEME/runescape/oldschool/OSRS.icns |
StartupWMClass=jagexappletviewer | StartupWMClass=jagexappletviewer |
Actions=GL;Screen;Cache; | Actions=Screen;Cache;Notes; |
| |
[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] | [Desktop Action Screen] |
StartupNotify=false | StartupNotify=false |
Exec='/usr/bin/wmctrl' -r 'Old School RuneScape' -b toggle,fullscreen -F | Exec='/usr/bin/wmctrl' -r 'jagexappletviewer.jagexappletviewer' -x -b 'toggle,fullscreen' |
Name=Toggle Fullscreen/Windowed | Name=Toggle Fullscreen/Windowed |
| |
StartupNotify=false | 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.'" | 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</code> | Name=Cache Cleanup |
| |
| [Desktop Action Notes] |
| StartupNotify=false |
| Exec=gio open 'https://wiki.realmofespionage.xyz/games:old_school_runescape' |
| Name=Installation Notes</code> |
| |
sed -i 's/'CHANGEME'/'$USER'/g' ~/'.local/share/applications/Old School RuneScape.desktop' | sed -i 's/'CHANGEME'/'$USER'/g' ~/'.local/share/applications/Old School RuneScape.desktop' |
| |
| ==== Icon ==== |
| |
| * The icon provided from the macOS ''.dmg'' is higher-res than the one in the Windows ''.msi'' |
| * ''.icns'' isn't a valid image file format [[https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html|according to Freedesktop.org Specifications]] so this isn't in the standard icon folder |
| |
| 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 ====== | ====== Quick Commands ====== |
| |
==== Old School RuneScape ==== | ==== Old School RuneScape ==== |
| |
* See [[notes:java_flags|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' | 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' |
* Places it at ''~/Downloads/windows-jagexappletviewer.jar'' | * 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 | 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 === | === macOS === |
* Places it at ''~/Downloads/macos-jagexappletviewer.jar'' | * 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 | 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 |
| |
=== Generic === | |
| |
* Downloads ''jagexappletviewer.jar'' directly with ''wget'' ((no idea what this version actually is or what platform it's for)) | |
* Places it at ''~/Downloads/generic-jagexappletviewer.jar'' | |
| |
wget -O ~/'Downloads/generic-jagexappletviewer.jar' 'http://oldschool.runescape.com/downloads/jagexappletviewer.jar' && sync | |
| |
===== Android ===== | ===== Android ===== |
* OpenJDK 9 had GPU usage and lower FPS | * OpenJDK 9 had GPU usage and lower FPS |
* Need ''-Djava.system.class.loader=app.systemclassloader'' | * 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 | 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 |
| |
cd ~/'runescape/oldschool' | 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'</code> | ~/'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'</code> |
| |
| ===== Legacy Java Client ===== |
| |
| * Last tested: 2024/05/10 |
| |
| notepad "%UserProfile%\jagexcache\jagexlauncher\oldschool\oldschool.prm" |
| |
| <code> |
| -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</code> |
| |