Difference between revisions of "Battle Message Display"
Jump to navigation
Jump to search
Line 55: | Line 55: | ||
0007339c: 02501021 addu r2,r18,r16 | 0007339c: 02501021 addu r2,r18,r16 | ||
000733a0: 9044018e lbu r4,0x018e(r2) | 000733a0: 9044018e lbu r4,0x018e(r2) | ||
− | 000733a4: 0c01e9c9 jal 0x0007a724 | + | 000733a4: 0c01e9c9 jal 0x0007a724 Find Misc Unit Data Pointer (checks for a specific unit -> r4 = unit ID to get the pointer for |
000733a8: 00000000 nop | 000733a8: 00000000 nop | ||
000733ac: 00409821 addu r19,r2,r0 | 000733ac: 00409821 addu r19,r2,r0 |
Revision as of 08:03, 24 February 2012
r18 = Attacker Misc. Data ; r19 = Defender Misc. Data 000732c8: 27bdffc8 addiu r29,r29,0xffc8 000732cc: 3402002e ori r2,r0,0x002e 000732d0: afb00020 sw r16,0x0020(r29) 000732d4: 34100001 ori r16,r0,0x0001 000732d8: afbf0030 sw r31,0x0030(r29) 000732dc: afb3002c sw r19,0x002c(r29) 000732e0: afb20028 sw r18,0x0028(r29) 000732e4: afb10024 sw r17,0x0024(r29) 000732e8: 3c018009 lui r1,0x8009 000732ec: ac2260e4 sw r2,0x60e4(r1) 000732f0: 3c018004 lui r1,0x8004 000732f4: ac305980 sw r16,0x5980(r1) 000732f8: 3c01800a lui r1,0x800a 000732fc: ac208db8 sw r0,-0x7248(r1) 00073300: 0c01e875 jal 0x0007a1d4 00073304: 00000000 nop 00073308: 0c01cc59 jal 0x00073164 0007330c: 00409021 addu r18,r2,r0 00073310: 0c01cc94 jal 0x00073250 00073314: 02402021 addu r4,r18,r0 00073318: 3404003c ori r4,r0,0x003c 0007331c: 0c04ebb7 jal 0x0013aedc 00073320: a24002d0 sb r0,0x02d0(r18) Store ? as 0x00 00073324: 924301a2 lbu r3,0x01a2(r18) Load ? into r3 00073328: 34020006 ori r2,r0,0x0006 r2 = 0x06 0007332c: 10620005 beq r3,r2,0x00073344 Branch if 0x1a2 = 0x06 00073330: 34020009 ori r2,r0,0x0009 r2 = 0x09 00073334: 1062000c beq r3,r2,0x00073368 Branch if 0x1a2 = 0x09 00073338: 00000000 nop 0007333c: 0801cce3 j 0x0007338c 00073340: 00008021 addu r16,r0,r0 r16 = 0x00 00073344: 0c010f48 jal 0x00043d20 00073348: 34040002 ori r4,r0,0x0002 r4 = 0x02 0007334c: 3404000a ori r4,r0,0x000a r4 = 0x0a 00073350: 8e420134 lw r2,0x0134(r18) Load Attacker's Stats 00073354: 34051838 ori r5,r0,0x1838 00073358: 9046018a lbu r6,0x018a(r2) Load Attacker's Unit ID 0007335c: 00003821 addu r7,r0,r0 00073360: 0801cd29 j 0x000734a4 00073364: afb00010 sw r16,0x0010(r29) 00073368: 0c010f48 jal 0x00043d20 0007336c: 34040002 ori r4,r0,0x0002 00073370: 3404000a ori r4,r0,0x000a 00073374: 8e420134 lw r2,0x0134(r18) Load Attacker's Stats 00073378: 34051828 ori r5,r0,0x1828 0007337c: 9046018a lbu r6,0x018a(r2) Load Attacker's Unit ID 00073380: 00003821 addu r7,r0,r0 r7 = 0x00 00073384: 0801cd29 j 0x000734a4 00073388: afb00010 sw r16,0x0010(r29) Store r16 0007338c: 9242018d lbu r2,0x018d(r18) Load ??? 00073390: 00000000 nop 00073394: 18400027 blez r2,0x00073434 Branch if 0x18d < 0 00073398: 00008821 addu r17,r0,r0 r17 = 0x00 0007339c: 02501021 addu r2,r18,r16 000733a0: 9044018e lbu r4,0x018e(r2) 000733a4: 0c01e9c9 jal 0x0007a724 Find Misc Unit Data Pointer (checks for a specific unit -> r4 = unit ID to get the pointer for 000733a8: 00000000 nop 000733ac: 00409821 addu r19,r2,r0 000733b0: 1260001b beq r19,r0,0x00073420 000733b4: 00000000 nop 000733b8: 8e620134 lw r2,0x0134(r19) Load Defender's Stats 000733bc: 00000000 nop 000733c0: 10400017 beq r2,r0,0x00073420 000733c4: 00000000 nop 000733c8: 9042018c lbu r2,0x018c(r2) Load Defender's hit flag? 000733cc: 00000000 nop 000733d0: 10400013 beq r2,r0,0x00073420 Branch if attack missed 000733d4: 00000000 nop 000733d8: 0c04ebb7 jal 0x0013aedc 000733dc: 3404003c ori r4,r0,0x003c r4 = 0x003c 000733e0: 8e430170 lw r3,0x0170(r18) Load Last Attack Used ID? 000733e4: 00000000 nop 000733e8: 00031040 sll r2,r3,0x01 ID * 2 000733ec: 00431021 addu r2,r2,r3 ID * 3 000733f0: 3c018009 lui r1,0x8009 000733f4: 00220821 addu r1,r1,r2 000733f8: 90313e12 lbu r17,0x3e12(r1) Load Battle Message ID 000733fc: 00000000 nop 00073400: 1220000c beq r17,r0,0x00073434 Branch if Battle Message = 0x00 00073404: 34020006 ori r2,r0,0x0000 r2 = 0x06 (disassembly error) 00073408: 1622000d bne r17,r2,0x00073440 Branch if Battle Message =/= 0x06 (Invite message) 0007340c: 3402002b ori r2,r0,0x002b r2 = 0x2b 00073410: 0c010f48 jal 0x00043d20 ? 00073414: 34040002 ori r4,r0,0x0002 r4 = 0x02 00073418: 0801cd0e j 0x00073438 0007341c: 34020006 ori r2,r0,0x0006 r2 = 0x06 00073420: 9242018d lbu r2,0x018d(r18) Load ? 00073424: 26100001 addiu r16,r16,0x0001 r16 + 1 00073428: 0202102a slt r2,r16,r2 If r16 < r2, set r16 to 0x01; otherwise set to 0x00 0007342c: 1440ffdc bne r2,r0,0x000733a0 Branch if r16 is less then r2 00073430: 02501021 addu r2,r18,r16 R16 + r18 (r18 = Unit Data?) 00073434: 34020006 ori r2,r0,0x0006 r2 = 0x06 00073438: 12220003 beq r17,r2,0x00073448 Branch if Battle Message ID does not = 0x06 (Invite message) 0007343c: 3402002b ori r2,r0,0x002b 00073440: 1622000a bne r17,r2,0x0007346c Branch if Battle Message ID = 0x2b (Malboro message) 00073444: 00000000 nop 00073448: 3404000a ori r4,r0,0x000a r4 = 0x0a | 0007344c: 36251800 ori r5,r17,0x1800 1800 + Battle Message ID 00073450: 8e420134 lw r2,0x0134(r18) Load Attacker's Stats 00073454: 8e630134 lw r3,0x0134(r19) Load Defender's Stats 00073458: 9046018a lbu r6,0x018a(r2) Load Attacker's Unit ID 0007345c: 9067018a lbu r7,0x018a(r3) Load Defender's Unit ID 00073460: 34020001 ori r2,r0,0x0001 00073464: 0801cd29 j 0x000734a4 00073468: afa20010 sw r2,0x0010(r29) Store 0x01 (display successful?) 0007346c: 12200008 beq r17,r0,0x00073490 Final branch check, branch if there is no Battle Message 00073470: 3404000a ori r4,r0,0x000a r4 = 0x0a 00073474: 36251800 ori r5,r17,0x1800 1800 + Battle Message ID 00073478: 8e420134 lw r2,0x0134(r18) Load Attacker's Stats 0007347c: 00003821 addu r7,r0,r0 r7 = 0x00 00073480: 9046018a lbu r6,0x018a(r2) Load Unit ID 00073484: 34020001 ori r2,r0,0x0001 r2 = 0x01 00073488: 0801cd29 j 0x000734a4 0007348c: afa20010 sw r2,0x0010(r29) Store 0x01 (display successful?) 00073490: 8e420134 lw r2,0x0134(r18) Load Attacker's Stats 00073494: 00002821 addu r5,r0,r0 r5 = 0x00 00073498: 9046018a lbu r6,0x018a(r2) Load Attacker's Unit ID 0007349c: 00003821 addu r7,r0,r0 r7 = 0x00 000734a0: afa00010 sw r0,0x0010(r29) store 0x00 (display fail?) 000734a4: 0c05066e jal 0x001419b8 000734a8: 00000000 nop 000734ac: 8fbf0030 lw r31,0x0030(r29) 000734b0: 8fb3002c lw r19,0x002c(r29) 000734b4: 8fb20028 lw r18,0x0028(r29) 000734b8: 8fb10024 lw r17,0x0024(r29) 000734bc: 8fb00020 lw r16,0x0020(r29) 000734c0: 27bd0038 addiu r29,r29,0x0038 000734c4: 03e00008 jr r31 000734c8: 00000000 nop