Main act menu loading
Jump to navigation
Jump to search
00140228: 3c038017 lui r3,0x8017 0014022c: 8c633cb8 lw r3,0x3cb8(r3) 00140230: 3c028015 lui r2,0x8015 00140234: 9042d324 lbu r2,-0x2cdc(r2) ability selected/not? 00140238: 27bdffc8 addiu r29,r29,0xffc8 0014023c: afbf0034 sw r31,0x0034(r29) 00140240: afbe0030 sw r30,0x0030(r29) 00140244: afb7002c sw r23,0x002c(r29) 00140248: afb60028 sw r22,0x0028(r29) 0014024c: afb50024 sw r21,0x0024(r29) 00140250: afb40020 sw r20,0x0020(r29) 00140254: afb3001c sw r19,0x001c(r29) 00140258: afb20018 sw r18,0x0018(r29) 0014025c: afb10014 sw r17,0x0014(r29) 00140260: afb00010 sw r16,0x0010(r29) 00140264: 2c420001 sltiu r2,r2,0x0001 true if ability not selected? 00140268: 84700128 lh r16,0x0128(r3) load skillset counter 0014026c: 3c038015 lui r3,0x8015 00140270: 8463d08a lh r3,-0x2f76(r3) load Unit ID 00140274: 3c018017 lui r1,0x8017 00140278: 00300821 addu r1,r1,r16 0014027c: 9032404c lbu r18,0x404c(r1) load action byte 00140280: 3c018017 lui r1,0x8017 00140284: 00300821 addu r1,r1,r16 00140288: 9037403c lbu r23,0x403c(r1) load skillset usability 0014028c: 00028040 sll r16,r2,0x01 r16 = selected/not action pointer? 00140290: 00031100 sll r2,r3,0x04 ID * 0x10 00140294: 00431021 addu r2,r2,r3 ID * 0x11 00140298: 3c038015 lui r3,0x8015 0014029c: 2463d46c addiu r3,r3,0xd46c 14d46c (charging/preview?) 001402a0: 0600007b bltz r16,0x00140490 branch to end if error? 001402a4: 0043a021 addu r20,r2,r3 r20 = charging/preview pointer + ID * 0x11 001402a8: 34130003 ori r19,r0,0x0003 001402ac: 3c1e8016 lui r30,0x8016 001402b0: 27de6a34 addiu r30,r30,0x6a34 80166a34 (skillset data) 001402b4: 34161024 ori r22,r0,0x1024 r22 = 0x1024 001402b8: 2415ffff addiu r21,r0,0xffff r21 = -0x1 001402bc: 02402021 addu r4,r18,r0 r4 = action menu byte 001402c0: 02002821 addu r5,r16,r0 r5 = negated action/not action * 2? 001402c4: 0c050335 jal 0x00140cd4 if elemental, this switches to next thread and does not complete loading abilities? 001402c8: 02e03021 addu r6,r23,r0 r6 = skillset usability 001402cc: 1653000d bne r18,r19,0x00140304 branch if action menu is not math 001402d0: 2602000b addiu r2,r16,0x000b r2 = mess + 0xb 001402d4: 02821021 addu r2,r20,r2 r2 = action halfword pointer + charging/preview pointer of unit 001402d8: 00508821 addu r17,r2,r16 r17 = acting/not * 4 + preview pointer + 0xb 001402dc: 3c038017 lui r3,0x8017 001402e0: 8c633cb8 lw r3,0x3cb8(r3) load menu data 001402e4: 92220000 lbu r2,0x0000(r17) 0xb or 0xf of preview/charging pointer 001402e8: 00000000 nop 001402ec: a46200ec sh r2,0x00ec(r3) store counter (number of menus?) 001402f0: 92220001 lbu r2,0x0001(r17) 0xc or 0x10 of preview/charging pointer 001402f4: 3c018016 lui r1,0x8016 001402f8: a42269bc sh r2,0x69bc(r1) 801669bc store the number of slots scrolled down the current menu (?) 001402fc: 080500d0 j 0x00140340 00140300: 03c01821 addu r3,r30,r0 r3 = skillset data 00140304: 3c048017 lui r4,0x8017 00140308: 8c843cb8 lw r4,0x3cb8(r4) pointer to menu data 0014030c: 00000000 nop 00140310: 84820128 lh r2,0x0128(r4) load selected action menu byte (attack, primary, secondary, etc.) 00140314: 00000000 nop 00140318: 00021040 sll r2,r2,0x01 times 2 0014031c: 02821021 addu r2,r20,r2 added to charging/preview pointer of unit 00140320: 90430003 lbu r3,0x0003(r2) load old menu selection 00140324: 00000000 nop 00140328: a48300ec sh r3,0x00ec(r4) store menu selection 0014032c: 90430004 lbu r3,0x0004(r2) load scroll 00140330: 24510003 addiu r17,r2,0x0003 + 3 00140334: 3c018016 lui r1,0x8016 00140338: a42369bc sh r3,0x69bc(r1) store number of slots scrolled down the menu 0014033c: 03c01821 addu r3,r30,r0 00140340: 2464000c addiu r4,r3,0x000c r4 = skillset data pointer + 0xc 00140344: 16530003 bne r18,r19,0x00140354 branch if not equip change 00140348: 00000000 nop 0014034c: 16000003 bne r16,r0,0x0014035c branch if acting/not (number of menus? * 2) is not 0 00140350: 00000000 nop 00140354: 080500d8 j 0x00140360 00140358: a4760000 sh r22,0x0000(r3) store 0x1024 here 0014035c: a4750000 sh r21,0x0000(r3) store -0x1 here 00140360: 24630002 addiu r3,r3,0x0002 next area in skillset data 00140364: 0064102a slt r2,r3,r4 set if skillset data doesn't yet match skillset + 0xc 00140368: 1440fff6 bne r2,r0,0x00140344 do 6 times 0014036c: 00000000 nop 00140370: 3c048017 lui r4,0x8017 00140374: 8c843cb8 lw r4,0x3cb8(r4) load block address 00140378: 00000000 nop 0014037c: 84820128 lh r2,0x0128(r4) load action menu byte (currently selected in action menu list...?) 00140380: 3c018017 lui r1,0x8017 00140384: 00220821 addu r1,r1,r2 00140388: 9023404c lbu r3,0x404c(r1) load action menu 0014038c: 3402000c ori r2,r0,0x000c 00140390: 14620003 bne r3,r2,0x001403a0 branch if action menu != equip change 00140394: 00000000 nop 00140398: 0c04f0e9 jal 0x0013c3a4 equip change routine 0013c3a4 - 0013c568 0014039c: a48000ec sh r0,0x00ec(r4) store 0 in counter 001403a0: 3c028014 lui r2,0x8014 001403a4: 2442fa6c addiu r2,r2,0xfa6c 13fa6c - got to abilities in skillset loading 001403a8: 3c018017 lui r1,0x8017 001403ac: ac223ca8 sw r2,0x3ca8(r1) store return address 001403b0: 0c0533ad jal 0x0014ceb4 Load Abilities for skillset Jump to other routine - save r31, stack 001403b4: 02002021 addu r4,r16,r0 001403b8: 0c050af4 jal 0x00142bd0 store some main data 001403bc: 340400fb ori r4,r0,0x00fb 001403c0: 0c04e6fb jal 0x00139bec exit? 001403c4: 00000000 nop 001403c8: 3c028017 lui r2,0x8017 001403cc: 8c423cb8 lw r2,0x3cb8(r2) 001403d0: 00000000 nop 001403d4: 904200ec lbu r2,0x00ec(r2) load counter 001403d8: 00000000 nop 001403dc: a2220000 sb r2,0x0000(r17) store 001403e0: 3c028016 lui r2,0x8016 001403e4: 904269bc lbu r2,0x69bc(r2) 001403e8: 12530003 beq r18,r19,0x001403f8 001403ec: a2220001 sb r2,0x0001(r17) 001403f0: 0c053256 jal 0x0014c958 001403f4: 00000000 nop 001403f8: 3c028017 lui r2,0x8017 001403fc: 8442e430 lh r2,-0x1bd0(r2) 16e430 00140400: 00000000 nop 00140404: 14550007 bne r2,r21,0x00140424 00140408: 34020002 ori r2,r0,0x0002 0014040c: 16020003 bne r16,r2,0x0014041c branch if not selecting ability type 00140410: 00000000 nop 00140414: 0c053256 jal 0x0014c958 00140418: 00000000 nop 0014041c: 08050121 j 0x00140484 00140420: 26100002 addiu r16,r16,0x0002 00140424: 3c028017 lui r2,0x8017 00140428: 8c423cb8 lw r2,0x3cb8(r2) 0014042c: 00000000 nop 00140430: 844200ec lh r2,0x00ec(r2) load counter 00140434: 3c038017 lui r3,0x8017 00140438: 8c634048 lw r3,0x4048(r3) 0014043c: 00021040 sll r2,r2,0x01 00140440: 00431021 addu r2,r2,r3 00140444: 94420000 lhu r2,0x0000(r2) load selection 00140448: 00000000 nop 0014044c: 24439000 addiu r3,r2,0x9000 00140450: 34020002 ori r2,r0,0x0002 00140454: 16020003 bne r16,r2,0x00140464 branch if not selecting ability type 00140458: 34020001 ori r2,r0,0x0001 0014045c: 3c018017 lui r1,0x8017 00140460: a4239830 sh r3,-0x67d0(r1) 00140464: 16020003 bne r16,r2,0x00140474 branch if not selecting value 00140468: 00000000 nop 0014046c: 3c018017 lui r1,0x8017 00140470: a4239832 sh r3,-0x67ce(r1) 00140474: 16000003 bne r16,r0,0x00140484 branch if not selecting ability 00140478: 00000000 nop 0014047c: 3c018017 lui r1,0x8017 00140480: a423982e sh r3,-0x67d2(r1) 00140484: 2610ffff addiu r16,r16,0xffff 00140488: 0601ff8d bgez r16,0x001402c0 do for each math skill 0014048c: 02402021 addu r4,r18,r0 00140490: 0c053256 jal 0x0014c958 00140494: 00000000 nop 00140498: 8fbf0034 lw r31,0x0034(r29) 0014049c: 8fbe0030 lw r30,0x0030(r29) 001404a0: 8fb7002c lw r23,0x002c(r29) 001404a4: 8fb60028 lw r22,0x0028(r29) 001404a8: 8fb50024 lw r21,0x0024(r29) 001404ac: 8fb40020 lw r20,0x0020(r29) 001404b0: 8fb3001c lw r19,0x001c(r29) 001404b4: 8fb20018 lw r18,0x0018(r29) 001404b8: 8fb10014 lw r17,0x0014(r29) 001404bc: 8fb00010 lw r16,0x0010(r29) 001404c0: 27bd0038 addiu r29,r29,0x0038 001404c4: 03e00008 jr r31 001404c8: 00000000 nop