No description
Find a file
2023-05-05 17:12:33 -05:00
.github/workflows Typo in artifact command 2022-06-20 13:20:26 -04:00
client More branding, add CI 2023-05-05 17:12:33 -05: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 Add EscClose plugin 2023-01-30 08:54:07 +01:00
ref Added more CS2 opcodes, need to adopt NXT naming next 2022-05-15 23:47:55 -04:00
signlink remove redundant file separator char for linux-specific branch 2023-01-11 23:20:44 +01:00
.gitignore Export frame buffer to PNG, allow transparency 2022-04-25 18:42:32 -04:00
.gitlab-ci.yml More branding, add CI 2023-05-05 17:12:33 -05: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
README.md Support optional config.json 2022-05-30 09:48:15 -04:00
settings.gradle Commit start of plugin work 2022-09-25 09:40:13 -05:00

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