Misc unit data initialization
Jump to navigation
Jump to search
00087a28: 27bdffa0 addiu r29,r29,0xffa0 00087a2c: afb1003c sw r17,0x003c(r29) 00087a30: 97b10074 lhu r17,0x0074(r29) load unit palette 00087a34: afa40018 sw r4,0x0018(r29) 00087a38: 87a40078 lh r4,0x0078(r29) load misc ID 00087a3c: afb00038 sw r16,0x0038(r29) 00087a40: 8fb00070 lw r16,0x0070(r29) load spritesheet ID 00087a44: afb70054 sw r23,0x0054(r29) 00087a48: 8fb7007c lw r23,0x007c(r29) Load unit's battle data pointer 00087a4c: afb5004c sw r21,0x004c(r29) 00087a50: 8fb50080 lw r21,0x0080(r29) 00087a54: afb40048 sw r20,0x0048(r29) 00087a58: 8fb40084 lw r20,0x0084(r29) Ptr. to sprite's spritesheet loaded into ram? 00087a5c: afbf005c sw r31,0x005c(r29) 00087a60: afbe0058 sw r30,0x0058(r29) 00087a64: afb60050 sw r22,0x0050(r29) 00087a68: afb30044 sw r19,0x0044(r29) 00087a6c: afb20040 sw r18,0x0040(r29) 00087a70: afa50020 sw r5,0x0020(r29) 00087a74: afa60028 sw r6,0x0028(r29) 00087a78: 0c020f35 jal 0x00083cd4 initialize data check 00087a7c: a7a70030 sh r7,0x0030(r29) 00087a80: 00409021 addu r18,r2,r0 00087a84: 16400003 bne r18,r0,0x00087a94 branch if initializing data 00087a88: 0200f021 addu r30,r16,r0 spritesheet ID 00087a8c: 08021ff9 j 0x00087fe4 jump if data already initialized 00087a90: 00001021 addu r2,r0,r0
data being initialised (start of battle)
00087a94: 00102400 sll r4,r16,0x10 00087a98: 92560004 lbu r22,0x0004(r18) load misc ID 00087a9c: 00042403 sra r4,r4,0x10 00087aa0: 0c020718 jal 0x00081c60 save spritesheet ID to VRAM? 00087aa4: a25e0006 sb r30,0x0006(r18) store spritesheet ID 00087aa8: 305300ff andi r19,r2,0x00ff r19 = unit's VRAM slot 00087aac: a2420005 sb r2,0x0005(r18) store spritesheet VRAM slot 00087ab0: 3402ffff ori r2,r0,0xffff 00087ab4: 1662000b bne r19,r2,0x00087ae4 branch if valid VRAM address exists 00087ab8: 2602ffa0 addiu r2,r16,0xffa0 spritesheet ID - 60 00087abc: 92440004 lbu r4,0x0004(r18) load misc ID 00087ac0: 00000000 nop 00087ac4: 00041900 sll r3,r4,0x04 00087ac8: 00641821 addu r3,r3,r4 00087acc: 00031980 sll r3,r3,0x06 00087ad0: 3c01800b lui r1,0x800b 00087ad4: 00230821 addu r1,r1,r3 00087ad8: ac207304 sw r0,0x7304(r1) clear initialization byte 00087adc: 08021ff9 j 0x00087fe4 00087ae0: 00001021 addu r2,r0,r0 return r2 = 00
Valid VRAM slot available for unit:
00087ae4: 3042ffff andi r2,r2,0xffff r2 = spritesheet ID - 0x60 00087ae8: 2c420026 sltiu r2,r2,0x0026 set if generic class 00087aec: 10400004 beq r2,r0,0x00087b00 branch if not (if unique/monster unit) 00087af0: 00000000 nop 00087af4: 12e00004 beq r23,r0,0x00087b08 branch if unit data = 00 00087af8: 00111400 sll r2,r17,0x10 00087afc: 92f10004 lbu r17,0x0004(r23) load palette (set by ENTD) 00087b00: 00000000 nop 00087b04: 00111400 sll r2,r17,0x10 00087b08: 00021403 sra r2,r2,0x10 00087b0c: 28420006 slti r2,r2,0x0006 set if palette < 6 00087b10: 14400002 bne r2,r0,0x00087b1c branch if so 00087b14: 02802021 addu r4,r20,r0 00087b18: 00008821 addu r17,r0,r0 else default to palette 0 00087b1c: 02602821 addu r5,r19,r0 r19 = spritesheet VRAM slot 00087b20: 02c03021 addu r6,r22,r0 misc unit ID 00087b24: 02403821 addu r7,r18,r0 r18 = misc data 00087b28: 00111400 sll r2,r17,0x10 00087b2c: 00021403 sra r2,r2,0x10 00087b30: a2510007 sb r17,0x0007(r18) store palette 00087b34: ae400154 sw r0,0x0154(r18) initialize status data 00087b38: ae400150 sw r0,0x0150(r18) -- 00087b3c: ae40014c sw r0,0x014c(r18) -- 00087b40: ae400148 sw r0,0x0148(r18) -- 00087b44: ae400144 sw r0,0x0144(r18) -- 00087b48: ae400140 sw r0,0x0140(r18) -- 00087b4c: 0c021dc1 jal 0x00087704 calculate unit palette? 00087b50: afa20010 sw r2,0x0010(r29) 00087b54: 8fa40018 lw r4,0x0018(r29) load X coordinate 00087b58: 8fa50020 lw r5,0x0020(r29) load y coordinate 00087b5c: 8fa60028 lw r6,0x0028(r29) load map level? 00087b60: 0c060fed jal 0x00183fb4 Get tile's data pointer 00087b64: 00000000 nop 00087b68: 02402021 addu r4,r18,r0 r4 = misc data 00087b6c: 90450006 lbu r5,0x0006(r2) load sprite effects 00087b70: 34060001 ori r6,r0,0x0001 00087b74: 00052882 srl r5,r5,0x02 sprite effects / 4 00087b78: 0c02091a jal 0x00082468 tile palette change? 00087b7c: 30a50003 andi r5,r5,0x0003 check 0x10 flag 00087b80: 3c048009 lui r4,0x8009 00087b84: 24844bc4 addiu r4,r4,0x4bc4 00087b88: 34050004 ori r5,r0,0x0004 00087b8c: 02c03021 addu r6,r22,r0 misc unit ID 00087b90: 0c0249b6 jal 0x000926d8 get palette data 00087b94: 00003821 addu r7,r0,r0 00087b98: 00162100 sll r4,r22,0x04 misc unit ID 00087b9c: 0c008e95 jal 0x00023a54 00087ba0: 340501e3 ori r5,r0,0x01e3 00087ba4: a6420010 sh r2,0x0010(r18) store innate ability 4 (Temp. VRAM Palette) 00087ba8: 26620014 addiu r2,r19,0x0014 00087bac: 16a00005 bne r21,r0,0x00087bc4 branch if r21 != 0 00087bb0: a642000e sh r2,0x000e(r18) store VRAM slot + 0x14 as innate ability 3? 00087bb4: 34020001 ori r2,r0,0x0001 00087bb8: a642000a sh r2,0x000a(r18) set 1 at innate ability 1? 00087bbc: 08021ef3 j 0x00087bcc 00087bc0: a64201d8 sh r2,0x01d8(r18) set graphic trigger to 1
00087bc4: a640000a sh r0,0x000a(r18) if r21 != 0, set innate ability 1 to 0 00087bc8: a64001d8 sh r0,0x01d8(r18) set graphic trigger to 0
00087bcc: 3c03feff lui r3,0xfeff 00087bd0: 3463ffff ori r3,r3,0xffff 0xfeffffff 00087bd4: 3c07fbff lui r7,0xfbff 00087bd8: 34e7ffff ori r7,r7,0xffff 0xfbffffff 00087bdc: 3c0af7ff lui r10,0xf7ff 00087be0: 354affff ori r10,r10,0xffff 0xf7ffffff 00087be4: 3c09efff lui r9,0xefff 00087be8: 3529ffff ori r9,r9,0xffff 0xefffffff 00087bec: 3c08dfff lui r8,0xdfff 00087bf0: 3508ffff ori r8,r8,0xffff 0xdfffffff 00087bf4: 02402021 addu r4,r18,r0 r4 = misc data 00087bf8: 265301d8 addiu r19,r18,0x01d8 r19 = misc data + 0x01d8 00087bfc: 33c2ffff andi r2,r30,0xffff r2 = spritesheet ID 00087c00: a240011e sb r0,0x011e(r18) clear 0x11e 00087c04: ae570134 sw r23,0x0134(r18) store unit data pointer 00087c08: a640000c sh r0,0x000c(r18) clear animation 00087c0c: 97ab0030 lhu r11,0x0030(r29) r7 input 00087c10: 0040a821 addu r21,r2,r0 r21 = spritesheet ID 00087c14: 000b1400 sll r2,r11,0x10 00087c18: 00021183 sra r2,r2,0x06 00087c1c: a6420070 sh r2,0x0070(r18) store current faceing 00087c20: 2402ffff addiu r2,r0,0xffff 00087c24: a6420072 sh r2,0x0072(r18) store facing change 00087c28: a642006c sh r2,0x006c(r18) ?? 00087c2c: a642006e sh r2,0x006e(r18) ?? 00087c30: a2400130 sb r0,0x0130(r18) initialize mount/rider value 00087c34: a240013f sb r0,0x013f(r18) -- 00087c38: a6400074 sh r0,0x0074(r18) -- 00087c3c: a6400076 sh r0,0x0076(r18) -- 00087c40: a6400078 sh r0,0x0078(r18) -- 00087c44: a240007f sb r0,0x007f(r18) -- 00087c48: a240009c sb r0,0x009c(r18) -- 00087c4c: a6400012 sh r0,0x0012(r18) -- 00087c50: a6400014 sh r0,0x0014(r18) -- 00087c54: a240013c sb r0,0x013c(r18) -- 00087c58: a640007a sh r0,0x007a(r18) -- 00087c5c: a2400087 sb r0,0x0087(r18) -- 00087c60: ae400088 sw r0,0x0088(r18) -- 00087c64: 8e420080 lw r2,0x0080(r18) 00087c68: 93a60018 lbu r6,0x0018(r29) load X coordinate? 00087c6c: 00431024 and r2,r2,r3 remove 0x01000000 flag (float?) 00087c70: a246007c sb r6,0x007c(r18) store X coordinate 00087c74: ae420080 sw r2,0x0080(r18) store new X coordinate 00087c78: 8e420080 lw r2,0x0080(r18) 00087c7c: 93a50020 lbu r5,0x0020(r29) load Y coordinate 00087c80: 00471024 and r2,r2,r7 remove 0x04000000 flag 00087c84: a245007d sb r5,0x007d(r18) store Y coordinate 00087c88: ae420080 sw r2,0x0080(r18) 00087c8c: 8e420080 lw r2,0x0080(r18) load X coordinate 00087c90: 93a30028 lbu r3,0x0028(r29) load map level 00087c94: 004a1024 and r2,r2,r10 remove 0x08000000 flag 00087c98: 00491024 and r2,r2,r9 remove 0x10000000 flag 00087c9c: 00481024 and r2,r2,r8 remove 0x20000000 flag 00087ca0: a243007e sb r3,0x007e(r18) store map level 00087ca4: ae420080 sw r2,0x0080(r18) store new flags 00087ca8: a2460080 sb r6,0x0080(r18) store X coordinate 00087cac: a2450081 sb r5,0x0081(r18) store Y coordinate 00087cb0: 0c0206c3 jal 0x00081b0c store some coordinate stuff? 00087cb4: a2430082 sb r3,0x0082(r18) store map level 00087cb8: 02c02021 addu r4,r22,r0 misc unit ID 00087cbc: 00002821 addu r5,r0,r0 00087cc0: 34022000 ori r2,r0,0x2000 00087cc4: 34110001 ori r17,r0,0x0001 00087cc8: ae400030 sw r0,0x0030(r18) 00087ccc: ae40002c sw r0,0x002c(r18) 00087cd0: ae400028 sw r0,0x0028(r18) 00087cd4: ae420038 sw r2,0x0038(r18) Store special move flags 00087cd8: a6400054 sh r0,0x0054(r18) 00087cdc: a6400052 sh r0,0x0052(r18) 00087ce0: a6400050 sh r0,0x0050(r18) 00087ce4: a640005c sh r0,0x005c(r18) 00087ce8: a640005a sh r0,0x005a(r18) 00087cec: a6400058 sh r0,0x0058(r18) 00087cf0: a6400064 sh r0,0x0064(r18) 00087cf4: a6400062 sh r0,0x0062(r18) 00087cf8: a6400060 sh r0,0x0060(r18) 00087cfc: a240013e sb r0,0x013e(r18) palette modified 00087d00: a2510298 sb r17,0x0298(r18) set unit shadow 00087d04: a2510299 sb r17,0x0299(r18) set unit shadow 00087d08: a240029a sb r0,0x029a(r18) 00087d0c: a24002bc sb r0,0x02bc(r18) reset number display flag 00087d10: a64002be sh r0,0x02be(r18) reset number display type <Numerical display pointer initialization> 00087d14: 0c01eb42 jal 0x0007ad08 initialize a bunch of data 00087d18: a64002c2 sh r0,0x02c2(r18) initialize display pointer activation 00087d1c: 02c02021 addu r4,r22,r0 misc unit ID 00087d20: 34050001 ori r5,r0,0x0001 00087d24: 0c01eb42 jal 0x0007ad08 00087d28: ae4202c4 sw r2,0x02c4(r18) store numerical display pointer 1 00087d2c: 02c02021 addu r4,r22,r0 misc unit ID 00087d30: 34050002 ori r5,r0,0x0002 00087d34: 0c01eb42 jal 0x0007ad08 00087d38: ae4202c8 sw r2,0x02c8(r18) store numerical display pointer 2 00087d3c: 8e4402c4 lw r4,0x02c4(r18) load pointer 1 00087d40: 8e4302c8 lw r3,0x02c8(r18) load pointer 2 00087d44: 34101000 ori r16,r0,0x1000 00087d48: ae4202cc sw r2,0x02cc(r18) store pointer 3 00087d4c: a450000a sh r16,0x000a(r2) initialize X/Y stretch = 0x0010 00087d50: a4500008 sh r16,0x0008(r2) -- 00087d54: a470000a sh r16,0x000a(r3) -- 00087d58: a4700008 sh r16,0x0008(r3) -- 00087d5c: a490000a sh r16,0x000a(r4) -- 00087d60: a4900008 sh r16,0x0008(r4) -- 00087d64: 8e4502c4 lw r5,0x02c4(r18) 00087d68: 8e4402c8 lw r4,0x02c8(r18) 00087d6c: 8e4302cc lw r3,0x02cc(r18) 00087d70: 3402001f ori r2,r0,0x001f 00087d74: a4620004 sh r2,0x0004(r3) Store VRAM spritesheet ID = 0x1f (frame.bin) 00087d78: a4820004 sh r2,0x0004(r4) 00087d7c: a4a20004 sh r2,0x0004(r5) 00087d80: 8e4502c4 lw r5,0x02c4(r18) 00087d84: 8e4402c8 lw r4,0x02c8(r18) 00087d88: 96420010 lhu r2,0x0010(r18) load temp. VRAM palette 00087d8c: 8e4302cc lw r3,0x02cc(r18) 00087d90: 24420100 addiu r2,r2,0x0100 temp VRAM palette + 0x0100 (was 0x78c0 for goblin initialization) 00087d94: a4620006 sh r2,0x0006(r3) store VRAM Palette ID to numerical display pointers 00087d98: a4820006 sh r2,0x0006(r4) 00087d9c: a4a20006 sh r2,0x0006(r5) 00087da0: 8e4502c4 lw r5,0x02c4(r18) 00087da4: 8e4302c8 lw r3,0x02c8(r18) 00087da8: 8e4202cc lw r2,0x02cc(r18) 00087dac: 02c02021 addu r4,r22,r0 misc unit ID 00087db0: a0510003 sb r17,0x0003(r2) store image type = 0x0001 00087db4: a0710003 sb r17,0x0003(r3) 00087db8: a0b10003 sb r17,0x0003(r5) 00087dbc: a24002dc sb r0,0x02dc(r18) set status bubble active byte = 0 00087dc0: a24002dd sb r0,0x02dd(r18) set status bubble = 0 00087dc4: 0c01eb6d jal 0x0007adb4 initialize more number display pointer data 00087dc8: a64002e0 sh r0,0x02e0(r18) 00087dcc: 02c02021 addu r4,r22,r0 misc unit ID 00087dd0: ae4202e4 sw r2,0x02e4(r18) pointer to bubble data 00087dd4: 0c01eb92 jal 0x0007ae48 initialize item/equip display pointer data 00087dd8: a24002d0 sb r0,0x02d0(r18) clear item display 00087ddc: 02c02021 addu r4,r22,r0 00087de0: ae4202d8 sw r2,0x02d8(r18) item/equip display pointer 00087de4: 0c01eb18 jal 0x0007ac60 sprite display setting 00087de8: ae4002e8 sw r0,0x02e8(r18) 00087dec: 02a02021 addu r4,r21,r0 00087df0: ae420204 sw r2,0x0204(r18) store sprite display pointer 00087df4: 0c02066a jal 0x000819a8 Spritesheet data pointer setting (SHP) 00087df8: a64001da sh r0,0x01da(r18) 00087dfc: 02a02021 addu r4,r21,r0 00087e00: ae4201fc sw r2,0x01fc(r18) store spritesheet data pointer 00087e04: 0c020682 jal 0x00081a08 Spritesheet data pointer setting (SEQ) 00087e08: ae4201f4 sw r2,0x01f4(r18) store spritesheet data pointer again 00087e0c: 8e430204 lw r3,0x0204(r18) load sprite display pointer 00087e10: 0000a021 addu r20,r0,r0 00087e14: ae420200 sw r2,0x0200(r18) Save SEQ pointer 00087e18: ae4201f8 sw r2,0x01f8(r18) -- 00087e1c: 34020001 ori r2,r0,0x0001 00087e20: a64201e2 sh r2,0x01e2(r18) store anim. wait time = 1 00087e24: 34020006 ori r2,r0,0x0006 00087e28: a64001e4 sh r0,0x01e4(r18) 00087e2c: a64001de sh r0,0x01de(r18) 00087e30: a64201dc sh r2,0x01dc(r18) store animation = 6 (standing?) 00087e34: a64001e0 sh r0,0x01e0(r18) 00087e38: a64001f0 sh r0,0x01f0(r18) 00087e3c: a64001ea sh r0,0x01ea(r18) 00087e40: a64001ec sh r0,0x01ec(r18) 00087e44: a64001ee sh r0,0x01ee(r18) 00087e48: a4700008 sh r16,0x0008(r3) store sprite X size 00087e4c: 8e420204 lw r2,0x0204(r18) load sprite display pointer 00087e50: 34110208 ori r17,r0,0x0208 r17 = 0x208 00087e54: a450000a sh r16,0x000a(r2) store sprite Y size 00087e58: 8e420204 lw r2,0x0204(r18) load sprite display pointer again 00087e5c: 02402021 addu r4,r18,r0 00087e60: 0c020bbb jal 0x00082eec set animation based on status 00087e64: a440000c sh r0,0x000c(r2) 00087e68: 02402021 addu r4,r18,r0 00087e6c: 02602821 addu r5,r19,r0 00087e70: 0c021206 jal 0x00084818 progress animation 00087e74: 34060001 ori r6,r0,0x0001 00087e78: 001e1400 sll r2,r30,0x10 00087e7c: 00028403 sra r16,r2,0x10 r16 = spritesheet ID 00087e80: 02519821 addu r19,r18,r17 r19 = 0x208 in misc data 00087e84: 02c02021 addu r4,r22,r0 r4 = misc ID 00087e88: 0c01eb2b jal 0x0007acac Initialize WEP1 sprite RGB Actually initialise sprite, wep, and eff palettes for all units (r20 is graphic counter (0 - unit, 1 - wep, 2 - eff) 00087e8c: 02802821 addu r5,r20,r0 00087e90: 1680000a bne r20,r0,0x00087ebc branch if wep/eff spritesheet 00087e94: ae620024 sw r2,0x0024(r19) store ?? pointer some sprite section 00087e98: 02a02021 addu r4,r21,r0 00087e9c: 340b0001 ori r11,r0,0x0001 00087ea0: 0c020696 jal 0x00081a58 get spritesheet SHP data pointer 00087ea4: a66b0002 sh r11,0x0002(r19) 00087ea8: 02a02021 addu r4,r21,r0 00087eac: 0c0206a5 jal 0x00081a94 00087eb0: ae62001c sw r2,0x001c(r19) store SHP data pointer 00087eb4: 08021fb7 j 0x00087edc 00087eb8: ae620020 sw r2,0x0020(r19) store spritesheet animations pointers address
if initialising unit's weapon/effect graphics:
00087ebc: 02a02021 addu r4,r21,r0 00087ec0: 34020002 ori r2,r0,0x0002 00087ec4: 0c0206b4 jal 0x00081ad0 get 800b669c address 00087ec8: a6620002 sh r2,0x0002(r19) Store graphic type as 2 00087ecc: 02a02021 addu r4,r21,r0 00087ed0: 0c0206b8 jal 0x00081ae0 get 800b6edc address (neither use r4 input?) 00087ed4: ae62001c sw r2,0x001c(r19) store pointer to weapon SHP data 00087ed8: ae620020 sw r2,0x0020(r19) store pointer to weapon SEQ data
00087edc: 340b0001 ori r11,r0,0x0001 00087ee0: 8e620024 lw r2,0x0024(r19) load 362 section pointer 00087ee4: 34031000 ori r3,r0,0x1000 00087ee8: a6600000 sh r0,0x0000(r19) 00087eec: a66b000a sh r11,0x000a(r19) 00087ef0: a6600006 sh r0,0x0006(r19) 00087ef4: a6600004 sh r0,0x0004(r19) 00087ef8: a6600008 sh r0,0x0008(r19) 00087efc: a6600018 sh r0,0x0018(r19) 00087f00: a6600012 sh r0,0x0012(r19) 00087f04: a6600014 sh r0,0x0014(r19) 00087f08: a6600016 sh r0,0x0016(r19) 00087f0c: a4430008 sh r3,0x0008(r2) store X stretch 00087f10: 8e620024 lw r2,0x0024(r19) 00087f14: 00000000 nop 00087f18: a443000a sh r3,0x000a(r2) store Y stretch 00087f1c: 8e620024 lw r2,0x0024(r19) 00087f20: 00000000 nop 00087f24: a440000c sh r0,0x000c(r2) 00087f28: 2a020086 slti r2,r16,0x0086 00087f2c: 1040000b beq r2,r0,0x00087f5c branch if >= chocobo (any monster) 00087f30: 2a02003c slti r2,r16,0x003c 00087f34: 10400009 beq r2,r0,0x00087f5c branch if >= Velius (includes all Lucavi + generics) 00087f38: 2a02004a slti r2,r16,0x004a 00087f3c: 14400007 bne r2,r0,0x00087f5c branch if < Squire (so, every unit...?) 00087f40: 3402005d ori r2,r0,0x005d 00087f44: 12020005 beq r16,r2,0x00087f5c branch if mime (already covered?) 00087f48: 02402021 addu r4,r18,r0 r4 = misc data
Never triggered?
00087f4c: 02512821 addu r5,r18,r17 r5 = 0x208 in misc data? 00087f50: 02803021 addu r6,r20,r0 00087f54: 0c02149b jal 0x0008526c 00087f58: 34070001 ori r7,r0,0x0001
00087f5c: 26940001 addiu r20,r20,0x0001 00087f60: 2a820003 slti r2,r20,0x0003 00087f64: 1440ffc6 bne r2,r0,0x00087e80 set other 2 sprite pointers 00087f68: 26310030 addiu r17,r17,0x0030 Do for unit, weapon, and weapon effect 00087f6c: 3c03800a lui r3,0x800a 00087f70: 24638a54 addiu r3,r3,0x8a54 80088a54 00087f74: 8c620000 lw r2,0x0000(r3) 00087f78: 00000000 nop 00087f7c: ae420000 sw r2,0x0000(r18) Store pointer to previous misc. unit 00087f80: ac720000 sw r18,0x0000(r3) Store current unit as previous misc. unit 00087f84: 8e420134 lw r2,0x0134(r18) load unit data 00087f88: 00000000 nop 00087f8c: 9044001d lbu r4,0x001d(r2) load right hand weapon 00087f90: 0c020dd6 jal 0x00083758 set item graphic/palette 00087f94: 02402821 addu r5,r18,r0 00087f98: 8e420134 lw r2,0x0134(r18) 00087f9c: 00000000 nop 00087fa0: 9044018a lbu r4,0x018a(r2) 00087fa4: 0c0603f9 jal 0x00180fe4 prep for special status flag enabling 00087fa8: 00000000 nop 00087fac: 3c030200 lui r3,0x0200 00087fb0: 8e420080 lw r2,0x0080(r18) 00087fb4: 92440004 lbu r4,0x0004(r18) 00087fb8: 00431025 or r2,r2,r3 apply dragoon jumping? 00087fbc: 0c01a38c jal 0x00068e30 status/sprite transformation/animation setting 00087fc0: ae420080 sw r2,0x0080(r18) 00087fc4: 0c020bbb jal 0x00082eec set animation based on status 00087fc8: 02402021 addu r4,r18,r0 00087fcc: 3c04fdff lui r4,0xfdff 00087fd0: 3484ffff ori r4,r4,0xffff 00087fd4: 8e430080 lw r3,0x0080(r18) 00087fd8: 02401021 addu r2,r18,r0 00087fdc: 00641824 and r3,r3,r4 Remove dragoon jumping? 00087fe0: ac430080 sw r3,0x0080(r2) 00087fe4: 8fbf005c lw r31,0x005c(r29) 00087fe8: 8fbe0058 lw r30,0x0058(r29) 00087fec: 8fb70054 lw r23,0x0054(r29) 00087ff0: 8fb60050 lw r22,0x0050(r29) 00087ff4: 8fb5004c lw r21,0x004c(r29) 00087ff8: 8fb40048 lw r20,0x0048(r29) 00087ffc: 8fb30044 lw r19,0x0044(r29) 00088000: 8fb20040 lw r18,0x0040(r29) 00088004: 8fb1003c lw r17,0x003c(r29) 00088008: 8fb00038 lw r16,0x0038(r29) 0008800c: 27bd0060 addiu r29,r29,0x0060 00088010: 03e00008 jr r31 00088014: 00000000 nop