Both sides previous revisionPrevious revisionNext revision | Previous revision |
games:old_school_runescape [2023/04/11 06:06] – Sean Rhone | games:old_school_runescape [2024/08/13 16:01] (current) – removed Sean Rhone |
---|
====== Information ====== | |
| |
* Old School RuneScape ((http://oldschool.runescape.com)) | |
| |
===== Prerequisites ===== | |
| |
* [[distros:fedora_workstation_gnome|Fedora Workstation]] | |
| |
===== Notes ===== | |
| |
* ''-Dsun.java2d.opengl=true'' enables Hardware-acceleration via OpenGL ((This is known to be broken with Intel graphics on multiple computers as it does some weird tiling thing and is unplayable)) | |
* :!: 2020/09/24: There are no known configurations where ''-Dsun.java2d.opengl=true'' offers a performance benefit | |
* :!: 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 ==== | |
| |
* ''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 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)) | |
| |
====== Install ====== | |
| |
* ''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 | |
| |
sudo dnf 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.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 ===== | |
| |
* :!: Change ''opengl'' and ''uiScale'' flags as-needed | |
| |
mkdir -p ~/'.local/share/applications' && nano ~/'.local/share/applications/Old School RuneScape.desktop' | |
| |
<code> | |
[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/k=3/l=$(Language:0)/jav_config.ws' -Djdk.tls.client.protocols='TLSv1.3' -Dhttps.protocols='TLSv1.3' -Xms'768M' -Xmx'768M' -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 '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 | |
| |
[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' | |
| |
==== 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 ====== | |
| |
===== 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' | |
| |
<code>-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -XX:+AlwaysPreTouch -Xms'512M' -Xmx'512M' -XX:-UseBiasedLocking -XX:+DisableExplicitGC</code> | |
| |
<code>-XX:+UseNUMA</code> | |
| |
===== 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 ((see the [[#copyright_footer|copyright footer notes]] above)) | |
| |
=== 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 | |
| |
<code> | |
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"</code> | |
| |
===== 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 | |
| |
<code> | |
#!/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'</code> | |
| |