Before attack: Load SP2

From Final Fantasy Hacktics Wiki
(Redirected from 000771a0 - 00077310)
Jump to navigation Jump to search

000771a0: 27bdffe0 addiu r29,r29,0xffe0
000771a4: afbf001c sw r31,0x001c(r29)
000771a8: 0c01e875 jal 0x0007a1d4				Get casting unit's misc data
000771ac: afb00018 sw r16,0x0018(r29)
000771b0: 3c03800a lui r3,0x800a
000771b4: 8c638d70 lw r3,-0x7290(r3)
000771b8: 00000000 nop
000771bc: 14600039 bne r3,r0,0x000772a4			Branch if there is already an address here
000771c0: 00408021 addu r16,r2,r0
000771c4: 0c011105 jal 0x00044414                              Calculate Available RAM Address
000771c8: 34048000 ori r4,r0,0x8000				Request 0x8000 bytes of space (11 0x800 sized blocks)
000771cc: 3c01800a lui r1,0x800a
000771d0: ac228d70 sw r2,-0x7290(r1)				Store Ram address of spritesheet graphics? to store?
000771d4: 02002021 addu r4,r16,r0
000771d8: 0c01ea10 jal 0x0007a840	                        0007a840 - 0007a964 Calculate SP2 file to load for unit (exception for worker 8 obviously)
000771dc: 00402821 addu r5,r2,r0
000771e0: 00401821 addu r3,r2,r0
000771e4: 2402ffff addiu r2,r0,0xffff
000771e8: 1462000b bne r3,r2,0x00077218			Branch if loading from SP1, or no LBA pointer for supposed file.
000771ec: 00000000 nop
000771f0: 3c04800a lui r4,0x800a
000771f4: 8c848d70 lw r4,-0x7290(r4)				pointer to stored graphics
000771f8: 0c011180 jal 0x00044600                              00044600 - 0004466c - if could not load file, restore requested RAM.
000771fc: 00000000 nop
00077200: 3c01800a lui r1,0x800a
00077204: ac208d70 sw r0,-0x7290(r1)				set pointer to null
00077208: 0c01cfbb jal 0x00073eec				Set damage display type based on ability
0007720c: 00000000 nop
00077210: 0801dcb8 j 0x000772e0
00077214: 00000000 nop
00077218: 14600031 bne r3,r0,0x000772e0			branch if there was an error calculating the file data?
0007721c: 00000000 nop
00077220: 3c04800a lui r4,0x800a
00077224: 8c848d70 lw r4,-0x7290(r4)
00077228: 0c011180 jal 0x00044600                              00044600 - 0004466c - restore requested ram space (wasn't used?)
0007722c: 00000000 nop
00077230: 3c01800a lui r1,0x800a
00077234: ac208d70 sw r0,-0x7290(r1)
00077238: 0801dcb8 j 0x000772e0
0007723c: 00000000 nop
00077240: 27a40010 addiu r4,r29,0x0010
00077244: 3c05800a lui r5,0x800a
00077248: 8ca58d70 lw r5,-0x7290(r5)				pointer to jobstts.out? helpmenu.out?
0007724c: 92020004 lbu r2,0x0004(r16)				load unit Misc. ID
00077250: 3c01800a lui r1,0x800a
00077254: 00260821 addu r1,r1,r6
00077258: 942377d0 lhu r3,0x77d0(r1)
0007725c: 34420040 ori r2,r2,0x0040
00077260: 3c01800a lui r1,0x800a
00077264: 00260821 addu r1,r1,r6
00077268: ac2277c4 sw r2,0x77c4(r1)				Store unit ID with 0x40 flag to VRAM slot 4
0007726c: a7a30010 sh r3,0x0010(r29)
00077270: 3c01800a lui r1,0x800a
00077274: 00260821 addu r1,r1,r6
00077278: 942377d2 lhu r3,0x77d2(r1)
0007727c: 34020040 ori r2,r0,0x0040
00077280: a7a20014 sh r2,0x0014(r29)
00077284: 34020100 ori r2,r0,0x0100
00077288: a7a20016 sh r2,0x0016(r29)
0007728c: 0c00923f jal 0x000248fc                              000248fc - 0002495c - very complicated, file loading shenanigans maybe?
00077290: a7a30012 sh r3,0x0012(r29)
00077294: 0c01cfbb jal 0x00073eec				Set damage display type based on ability
00077298: 00000000 nop
0007729c: 0801dcb8 j 0x000772e0
000772a0: 00000000 nop
000772a4: 0c0111b2 jal 0x000446c8                              000446c8 - 000446d4
000772a8: 00000000 nop
000772ac: 1440000c bne r2,r0,0x000772e0
000772b0: 00001821 addu r3,r0,r0
000772b4: 340400ff ori r4,r0,0x00ff
000772b8: 00003021 addu r6,r0,r0				r6 = 0
000772bc: 3c01800a lui r1,0x800a
000772c0: 00260821 addu r1,r1,r6
000772c4: 8c2277c4 lw r2,0x77c4(r1)				load misc unit ID from VRAM
000772c8: 00000000 nop
000772cc: 1044ffdc beq r2,r4,0x00077240			loop if 0xff
000772d0: 24630001 addiu r3,r3,0x0001
000772d4: 28620002 slti r2,r3,0x0002
000772d8: 1440fff8 bne r2,r0,0x000772bc
000772dc: 24c67564 addiu r6,r6,0x7564
000772e0: 0c01d2eb jal 0x00074bac                              Free Cursor Controller Input - if all succeeds?
000772e4: 00000000 nop
000772e8: 0c011298 jal 0x00044a60                              Find Address for Polygons by Depth - depth table pointer (z direction)
000772ec: 00000000 nop
000772f0: 3c058004 lui r5,0x8004
000772f4: 8ca55944 lw r5,0x5944(r5)
000772f8: 0c04fd48 jal 0x0013f520                              Data setting from menu selections
000772fc: 00402021 addu r4,r2,r0
00077300: 8fbf001c lw r31,0x001c(r29)
00077304: 8fb00018 lw r16,0x0018(r29)
00077308: 27bd0020 addiu r29,r29,0x0020
0007730c: 03e00008 jr r31
00077310: 00000000 nop