Files
psopeeps-newserv/system/ppc/VersionDetect.s
T

31 lines
666 B
ArmAsm

# This function returns the game version, with values more specific than can be
# detected by the sub_version field in various login commands.
# The returned value has the format 03GGRRVV, where:
# G = game (Ox4F (O) = Episodes 1&2, 0x53 (S) = Episode 3)
# R = region (0x45 (E), 0x4A (J), 0x50 (P))
# V = minor version (0 = 1.00, 1 = 1.01, 2 = 1.02, etc.)
newserv_index_E3:
entry_ptr:
reloc0:
.offsetof start
start:
lis r3, 0x8000
lwz r4, [r3]
lbz r5, [r3 + 7]
li r3, -1
rlwinm r0, r4, 16, 16, 31
cmplwi r0, 0x4750
bnelr
lis r3, 0x3300
rlwimi r3, r4, 8, 8, 23
rlwimi r3, r5, 0, 24, 31
ori r3, r3, 0x0030
blr