initial commit cloning rt4 client and making a small cosmetic tweak

This commit is contained in:
EmoScape 2025-03-01 20:42:36 -05:00
commit 1c2489ce06
1051 changed files with 629202 additions and 0 deletions

61
README.md Normal file
View File

@ -0,0 +1,61 @@
[Fork of Pazaz/RT4-Client](https://github.com/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

0
build.gradle Normal file
View File

51
client/build.gradle Normal file
View File

@ -0,0 +1,51 @@
plugins {
id 'java'
id 'application'
id 'org.jetbrains.kotlin.jvm' version '1.4.10'
}
mainClassName = 'rt4.client'
version = '1.0.0'
sourceCompatibility = 1.8
targetCompatibility = 1.8
compileJava.options.encoding = 'UTF-8'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
dependencies {
compileOnly project(':deob-annotations')
implementation project(':signlink')
implementation 'lib:gson'
implementation 'lib:gluegen-rt'
implementation 'lib:gluegen-rt-natives-windows-amd64'
implementation 'lib:gluegen-rt-natives-windows-i586'
implementation 'lib:gluegen-rt-natives-linux-amd64'
implementation 'lib:gluegen-rt-natives-linux-i586'
implementation 'lib:gluegen-rt-natives-macosx-universal'
implementation 'lib:gluegen-rt-natives-android-aarch64'
implementation 'lib:gluegen-rt-natives-linux-aarch64'
implementation 'lib:jogl-all'
implementation 'lib:jogl-all-natives-linux-aarch64'
implementation 'lib:jogl-all-natives-windows-amd64'
implementation 'lib:jogl-all-natives-windows-i586'
implementation 'lib:jogl-all-natives-linux-amd64'
implementation 'lib:jogl-all-natives-linux-i586'
implementation 'lib:jogl-all-natives-macosx-universal'
implementation 'lib:jogl-all-natives-android-aarch64'
runtime 'org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10'
}
jar {
manifest {
attributes 'Main-Class': "$mainClassName"
}
from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More