Get ENTD data pointer and load units

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search

0008e7b8: 27bdffe8 addiu r29,r29,0xffe8
0008e7bc: afbf0010 sw r31,0x0010(r29)
0008e7c0: 0c010a20 jal 0x00042880               # --> Get Current ENTD Pointer  r2 = result
0008e7c4: 00000000 nop
0008e7c8: 00402021 addu r4,r2,r0                # r4 = result from above
0008e7cc: 2402ffff addiu r2,r0,0xffff           # r2 = 0xffff: The result indicating that there was no ENTD ID set
0008e7d0: 10820009 beq r4,r2,0x0008e7f8         # Branch to end if the result indicated that there was no ENTD (r2 will be set to 0x00 after landing this jump)
0008e7d4: 00000000 nop
0008e7d8: 10800008 beq r4,r0,0x0008e7fc         # Branch to end if the result was 0x00, indicating that the file was still to be loaded?
0008e7dc: 34020001 ori r2,r0,0x0001             # Set r2 to 0x01... to indicate that the file was still being loaded?
0008e7e0: 0c05fe28 jal 0x0017f8a0               # --> Big ENTD unit loading routine
0008e7e4: 00002821 addu r5,r0,r0                # r5 = 0
0008e7e8: 3c048004 lui r4,0x8004
0008e7ec: 8c847604 lw r4,0x7604(r4)             # r4 = Value at 0x80047604: Pointer to the start of the current ENTD sector's data?
0008e7f0: 0c011273 jal 0x000449cc               # --> C52 Free but with extra steps: Clear the ENTD data from memory?
0008e7f4: 00000000 nop
0008e7f8: 00001021 addu r2,r0,r0                # r2 = 0x00, to indicate that the ENTD was either 0x00 or had finished loading
0008e7fc: 8fbf0010 lw r31,0x0010(r29)
0008e800: 27bd0018 addiu r29,r29,0x0018
0008e804: 03e00008 jr r31
0008e808: 00000000 nop