I think that just modifying mss_threepageconditional will not work.
Because the size of the structure is different.
@ r5 = StatScreenStruct. Preserve no scratch registers!
ldr r0,[r5,#0x0C] @ r0 = character struct.
ldr r1,[r0] @load character pointer
ldrb r1,[r1,#0x4] @load character number
mov r0,#16 <<<<
mul r1,r0
adr r0,PersonalInfoTable @load first like
ldr r0,[r0]
ldrh r0,[r0,r1]
In the version of SkillSystems, it is committed with “#12”.
Therefore, strange phenomena occur when only mss_threepageconditional is modified.
SkillSystems version
@ Autohook to 0x08088690. r0 should equal the number of stat screen pages to have upon hitting the strb r0, [ r5, #0x01 ].
@ r5 = StatScreenStruct. Preserve no scratch registers!
ldr r0,[r5,#0x0C] @ r0 = character struct.
ldr r1,[r0] @load character pointer
ldrb r1,[r1,#0x4] @load character number
mov r0,#12 <<<<
mul r1,r0
adr r0,PersonalInfoTable @load first like
ldr r0,[r0]
ldrh r0,[r0,r1]
FEBuilderGBA also uses SkillSystems, so it uses “#12”.
However, since only mss_threepageconditional was updated to the latest version, the fix of “#16” was applied.
That has caused an accident.