REDIVIVUS

Proposals / #1029

gnSkillAssSpinDamage_RingAngle (0x006e1274) is a signed int: the sign-extended index is tested against it with JGE

applied · by Niehztog · submitted 2026-11-02, applied 2026-11-02

Ghidra v1841 · 4ca0e98

This read-only dword (value 0xbf) is read twice, both in SKILLASS_ReleaseChargeUpAttack, each time as the upper bound of a signed range test on a skills.txt srvprgfunc entry before indexing SKILLSRVDOFUNCS: 005d53b3 MOVZX EAX,word ptr [EDX] / TEST AX,AX / JLE / 005d53bb MOVSX EAX,AX / 005d53be CMP EAX,[0x006e1274] / 005d53c4 JGE, and the same at 005d5429 MOVSX EAX,AX / 005d542c CMP EAX,[0x006e1274] / 005d5432 JGE. As undefined4 the generator declares it uint32_t, which turns both compares unsigned (JAE). Recompiled with VC8 SP1 (the 1.14d compiler) on main f26206a with the global as int: both compares come out as the original's JGE, and no function in the TU changes status. Type only; the name is left as it is.

Changes 1, applied together

  1. Retype global win 0x006e1274

    typeundefined4 (4 bytes)→int