Files
psopeeps-newserv/system/ppc/Ep3-VIPCard.patch.s
T
2022-11-05 10:39:22 -07:00

33 lines
993 B
ArmAsm

# This gives you a VIP card in PSO Episode 3 USA.
# This patch is only for PSO Episode 3 USA, which means it requires the
# EnableEpisode3SendFunctionCall option to be enabled in config.json. If that
# option is disabled, the Patches menu won't appear for the client. If this
# patch is run on a different client version, it will do nothing.
entry_ptr:
reloc0:
.offsetof start
start:
# Note: We don't actually need this for Episode 3, since all Episode 3
# versions correctly clear the caches before running code from a B2 command.
# But we leave it in to be consistent with patches for Episodes 1&2.
.include InitClearCaches
# First, make sure this is actually Episode 3 USA; if not, do nothing
lis r4, 0x4750
ori r4, r4, 0x5345 # 'GPSE'
lis r5, 0x8000
lwz r5, [r5]
li r3, -1
cmp r4, r5
bnelr
# Call seq_var_set(7000) - this gives the local player a VIP card
li r3, 7000
lis r0, 0x8010
ori r0, r0, 0xBD18
mtctr r0
bctr