mirror of
https://gitlab.com/2009scape/rt4-client.git
synced 2026-08-01 14:39:16 -06:00
No description
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. |
||
|---|---|---|
| .github/workflows | ||
| client | ||
| deob-annotations | ||
| gradle/wrapper | ||
| lib | ||
| playground | ||
| plugin-playground | ||
| ref | ||
| signlink | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| build.gradle | ||
| gradlew | ||
| gradlew.bat | ||
| LICENSE | ||
| README.md | ||
| settings.gradle | ||
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