No description
Find a file
Skalfate 51b15b32d5 These changes fix the HD-Mode lag and crashes that happen when the client is launched into HD-Mode or when changing into HD-Mode..
In Windows, on first launch into HD-Mode or at launch going from SD-Mods to HD-Mode, the CPU maxes out and music issues, and is unable to enter into HD-Mode without lag or  multiple crashes.

This is because when the code that is supposed to execute GLProfile.initSingleton() waits for its turn on syncronized function queue and then a while loop keeps sleeping the thread until a status code of 1 is returned. Additionally, starting with jogl version 2.0 GLProfile.initSingleton() is not even necessary as its automatically done.

The code commented out has no purpose other than just to execute GLProfile.initSingleton().

Commented out the code and made comments to preserve the original code.
2026-01-07 22:36:57 -07:00
.github/workflows Typo in artifact command 2022-06-20 13:20:26 -04:00
client These changes fix the HD-Mode lag and crashes that happen when the client is launched into HD-Mode or when changing into HD-Mode.. 2026-01-07 22:36:57 -07:00
deob-annotations Autoformat using tab characters 2022-06-27 20:30:17 -04:00
gradle/wrapper Switched build system to gradle 2022-04-20 19:26:30 -04:00
lib Add arm64 linux natives 2023-01-21 22:05:19 -08:00
playground Update build.gradle for playground 2022-09-25 09:40:54 -05:00
plugin-playground Added toggle for price display of ground items plugin 2025-06-06 19:32:57 +00:00
ref Added more CS2 opcodes, need to adopt NXT naming next 2022-05-15 23:47:55 -04:00
signlink These changes fix the HD-Mode lag and crashes that happen when the client is launched into HD-Mode or when changing into HD-Mode.. 2026-01-07 22:36:57 -07:00
.gitignore Export frame buffer to PNG, allow transparency 2022-04-25 18:42:32 -04:00
.gitlab-ci.yml Update .gitlab-ci.yml file 2024-06-11 20:21:09 +00:00
build.gradle New gradle scripts to modularize the build process 2022-04-20 21:50:21 -04:00
gradlew Added more CS2 opcodes, need to adopt NXT naming next 2022-05-15 23:47:55 -04:00
gradlew.bat Switched build system to gradle 2022-04-20 19:26:30 -04:00
LICENSE Clarify license for Gitlab for Open Source 2025-05-21 11:22:57 +00:00
README.md Include fork notice in README 2023-05-05 23:05:34 +00:00
settings.gradle Commit start of plugin work 2022-09-25 09:40:13 -05:00

Fork of Pazaz/RT4-Client

Goals

  • Identify all classes
    • Create new static classes by grouping related members
  • Identify all methods
  • Identify all fields
  • Identify all local variables
  • Remove any remaining obfuscation (possibly none left)
  • Fix poor decompiler behavior (fernflower)
  • Replace magic numbers and bitmasks with named final fields
  • Refactor code to improve behavior/readability
  • Modernize code/libraries (High DPI support, modern refresh rates, ...)
  • Support existing servers via global config flags that adjust packet behaviors
  • Organize classes into packages

OpenRS2 annotations are left in the source to build a deob map from, in case some of my changes aren't desirable.
That mapping can be used to generate a new deob with everything renamed for you.

Instructions

Build requirements:

  • Java 8+

Runtime requirements:

  • SD: Java 8+
  • HD on Windows, use Java 15 or lower. There is a JOGL issue on 16+ related to how they grab the WGL context from the window.
  • HD on Linux: Java 8+
  • HD on macOS: Not possible yet on latest macOS. Might work for earlier OS versions.
git clone https://github.com/Pazaz/RT4-Client.git
cd RT4-Client
./gradlew run

You will be connected to a test server automatically.
This server is provided by 2009scape for their own internal developments.

Deviations

Configurable:

  • Packet behaviors to make it compatible with existing servers
  • View distance in HD
  • Bilinear map filtering in HD/SD
  • Tweening enabled by default (existed in client)
  • Shift-click behavior on inventory items enabled by default (existed in client)

Unconfigurable:

  • JOGL was updated to 2.4.0
  • Update/render loop was decoupled to tick indepedently from each other
  • Camera panning input rewritten to use render loop timing
  • Varp array size was extended to 3500 instead of 2500
  • Mouse wheel camera movement (click middle button and move mouse)
  • Render FPS is set to your monitor's refresh rate

Libraries Used

  • JOGL/Gluegen 2.4.0rc
  • Google Gson 2.9.0