Misc unit data initialization

From Final Fantasy Hacktics Wiki
Revision as of 05:35, 3 April 2023 by Talcall (talk | contribs)
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 both wep1 and wep2? (r20 seems to be pointer to spritesheet in ram?)
00087e8c: 02802821 addu r5,r20,r0
00087e90: 1680000a bne r20,r0,0x00087ebc		branch if spritesheet not loaded into ram?
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 no spritesheet loaded:

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 SHP data
00087ed8: ae620020 sw r2,0x0020(r19)		store pointer to animations address pointers


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