Some event data setting routine

From Final Fantasy Hacktics Wiki
Revision as of 14:45, 8 February 2015 by Choto (talk | contribs) (Created page with "<font face='Courier New'> 0014ca80: 3c018017 lui r1,0x8017 0014ca84: 00200821 addu r1,r1,r0 0014ca88: 8c284038 lw r8,0x4038(r1) load Block # 0014ca8c: 00000000 nop 00...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

0014ca80: 3c018017 lui r1,0x8017
0014ca84: 00200821 addu r1,r1,r0
0014ca88: 8c284038 lw r8,0x4038(r1)			load Block #
0014ca8c: 00000000 nop
0014ca90: 00084280 sll r8,r8,0x0a			
0014ca94: 3c018016 lui r1,0x8016
0014ca98: 00200821 addu r1,r1,r0
0014ca9c: 8c295f98 lw r9,0x5f98(r1)			start of EVTCHR data (block data
0014caa0: 00000000 nop
0014caa4: 01094021 addu r8,r8,r9			get new address
0014caa8: ad100010 sw r16,0x0010(r8)		store all kinds of data
0014caac: ad110014 sw r17,0x0014(r8)
0014cab0: ad120018 sw r18,0x0018(r8)
0014cab4: ad13001c sw r19,0x001c(r8)
0014cab8: ad140020 sw r20,0x0020(r8)
0014cabc: ad150024 sw r21,0x0024(r8)
0014cac0: ad160028 sw r22,0x0028(r8)
0014cac4: ad17002c sw r23,0x002c(r8)
0014cac8: ad1a0030 sw r26,0x0030(r8)
0014cacc: ad1b0034 sw r27,0x0034(r8)
0014cad0: ad1c0038 sw r28,0x0038(r8)
0014cad4: ad1d003c sw r29,0x003c(r8)
0014cad8: ad1e0040 sw r30,0x0040(r8)
0014cadc: ad1f0044 sw r31,0x0044(r8)
0014cae0: 25080400 addiu r8,r8,0x0400		go to next block of data
0014cae4: 3c018017 lui r1,0x8017
0014cae8: 00200821 addu r1,r1,r0
0014caec: 8c2a4038 lw r10,0x4038(r1)		load byte again
0014caf0: 00000000 nop
0014caf4: 254a0001 addiu r10,r10,0x0001		increment byte
0014caf8: 3c018017 lui r1,0x8017
0014cafc: 00200821 addu r1,r1,r0
0014cb00: ac2a4038 sw r10,0x4038(r1)		store new byte
0014cb04: 340b0010 ori r11,r0,0x0010
0014cb08: 114b0007 beq r10,r11,0x0014cb28	branch if = 0x10 last block?
0014cb0c: 00000000 nop
0014cb10: 8d0b0048 lw r11,0x0048(r8)		load ?? byte
0014cb14: 00000000 nop
0014cb18: 140b0009 bne r0,r11,0x0014cb40	branch if not 0
0014cb1c: 00000000 nop
0014cb20: 080532b8 j 0x0014cae0				check next block
0014cb24: 00000000 nop
if out of bounds
0014cb28: 3c018016 lui r1,0x8016
0014cb2c: 00200821 addu r1,r1,r0
0014cb30: 8c285f98 lw r8,0x5f98(r1)
0014cb34: 3c018017 lui r1,0x8017
0014cb38: 00200821 addu r1,r1,r0
0014cb3c: ac204038 sw r0,0x4038(r1)			clear byte if none found
if 0x48 byte = 0x01
0014cb40: 0c050b2a jal 0x00142ca8
0014cb44: 00000000 nop
0014cb48: 3c018017 lui r1,0x8017
0014cb4c: 00200821 addu r1,r1,r0
0014cb50: 8c284038 lw r8,0x4038(r1)			load block pointer
0014cb54: 00000000 nop
0014cb58: 00084280 sll r8,r8,0x0a
0014cb5c: 3c018016 lui r1,0x8016
0014cb60: 00200821 addu r1,r1,r0
0014cb64: 8c295f98 lw r9,0x5f98(r1)			
0014cb68: 00000000 nop
0014cb6c: 01094021 addu r8,r8,r9			get block address
0014cb70: 8d100010 lw r16,0x0010(r8)		load data from new block
0014cb74: 8d110014 lw r17,0x0014(r8)
0014cb78: 8d120018 lw r18,0x0018(r8)
0014cb7c: 8d13001c lw r19,0x001c(r8)
0014cb80: 8d140020 lw r20,0x0020(r8)
0014cb84: 8d150024 lw r21,0x0024(r8)
0014cb88: 8d160028 lw r22,0x0028(r8)
0014cb8c: 8d17002c lw r23,0x002c(r8)
0014cb90: 8d1a0030 lw r26,0x0030(r8)
0014cb94: 8d1b0034 lw r27,0x0034(r8)
0014cb98: 8d1c0038 lw r28,0x0038(r8)
0014cb9c: 8d1d003c lw r29,0x003c(r8)
0014cba0: 8d1e0040 lw r30,0x0040(r8)
0014cba4: 8d1f0044 lw r31,0x0044(r8)		load different return address
0014cba8: 00000000 nop
0014cbac: 03e00008 jr r31
0014cbb0: 00000000 nop