Releases: JordanRO2/ro2-client-mods
Release list
Client data fixes v1.0.0 — b303 (2022-02-11)
Patched client data archives for Ragnarok Online 2 build 303 (2022-02-11).
Drop these four files into your client's Data folder, replacing the existing ones.
Back up your originals first — or restore them from a clean client install, they are unmodified stock files.
| file | md5 |
|---|---|
ITEM.VDK |
3e576b5946a86eed045c387e85574020 |
ACTOR.VDK |
530841dca2d67fd7dde1297a90138c42 |
ITEM1.VDK |
f78b100cb8760d8e2ad200b13e5a8cb1 |
DATA.VDK |
7b99f8d05369b6cd61d214635de2c1a7 |
Rag2.exe |
f8e7a86b0c3be00d3441909c43eb2a3b |
Verify with MD5SUMS.txt / SHA256SUMS.txt before installing. Rag2.exe goes in SHIPPING, not Data.
Executable fixes (28)
Rag2.exe carries byte patches on top of the stock build 303 executable — 324 bytes changed plus a small added code section. Highlights:
Large-Address-Aware. The stock client is capped at 2 GB of virtual address space and dies once it crosses that, usually after an hour or several zone loads. The crash shows up under half a dozen different signatures — writes to address 0 in zone loading, an int 3 in the SpeedTree allocation-failure handler, assorted null dereferences — all from the same root cause. This lifts the cap to 4 GB.
Crash guards. Dungeon-entry null dereference plus 38 null-vtable-call guards on RMI and UI paths, derived from real minidumps — including one on the item-tooltip path (a re-entrant null vtable call caught live), one on the honing/polishing packet path, one on the equipment-UI skill-name path, and one on the skill-icon linked-UI teardown path.
Quality and performance. 16x anisotropic filtering, full-resolution textures, high-quality shaders kept at far and mid LOD, no per-frame Sleep(0), inlined hot-loop singleton getters, view-cone culling.
Run python exe/patch_client.py --list in this repository for the full catalog of all 72 fixes and which are on by default.
What is fixed
Soulmaker doll stray shadow. A doll cast a shadow at another player's feet instead of its owner's. SOULDOLL_28.nif was the only doll mesh using CPU skinning; its only GPU-readable geometry held the bind pose, which is authored at the character origin, so any frame drawn before the CPU deform finished put a doll-shaped silhouette on the ground.
Hanbok (Woman) statue deformation. On a Noel ranking statue the dress stretched away toward other models. Same root cause: the statue render path assigns a GPU-skinning shader based on whether a mesh has a skinning modifier, never on whether that modifier is GPU-capable — so a CPU-skinned mesh got a shader whose bone matrices were never uploaded, and it drew with whatever the previous statue left behind.
Chieftain Great Sword rendering inside-out. TWOHANDSWORD_09.nif was authored fully inverted — both triangle winding and normals — so the two agreed with each other while both faced inward. Both are corrected; the model now matches healthy weapons on face orientation and normal agreement alike. Also affects five other items sharing that mesh.
Odinguitar (Noel) inside-out. The four Noel variants had the same defect. Their non-Noel siblings measured correct and are untouched.
Stolen Dartboard showing flowers on male humans. Comemark_Male_Back_01.nif was the Flower umbrella asset packaged under the wrong filename. It shipped correct in 2014-2015 builds and broke by 2021. Replaced with the human-female file, which measures geometrically identical to the genuine 2015 male one.
103 meshes moved from CPU to GPU skinning, across 40 files — costumes, weapons, monsters, NPCs and player transform models. Only 104 of the client's 32,949 skinned meshes used the CPU path at all; it was an authoring accident rather than a design choice.
Modernised shaders, carried over from earlier work: per-texel specular driven by the artist's gloss and mask maps rather than one uniform highlight, plus SSAO and outline defaults.
Clean (stock) archives
The four *.clean.VDK files are the unmodified stock archives — byte-for-byte the original
build 303 (2022-02-11) data, provided for reverting or verification. To use one, rename it to drop
.clean (e.g. ITEM.clean.VDK → ITEM.VDK) and drop it in Data.
| file | md5 |
|---|---|
ITEM.clean.VDK |
c82ccc877218e2586400ce6c1a151925 |
ACTOR.clean.VDK |
9560d9eece500dc162e90ebd8f95d9b2 |
ITEM1.clean.VDK |
5402c004f0dc4603fbcb45e5e9eceb26 |
DATA.clean.VDK |
51477073c54cb475da73d3fe4e978a59 |
Reverting
Restore the four stock archives and the stock Rag2.exe from a clean client. Every file here is rebuildable from the pristine 2022-02-11 archives plus the sources in this repository, so nothing is lost by going back.