Difference between revisions of "001404cc - 00140728"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with " 001404cc: 27BDFFD8 addiu r29,r29,-0x0028 001404d0: AFB10014 sw r17,0x0014(r29) 001404d4: 00008821 addu r17,r0,r0 001404d8: 3C058017 lui r5,0x8017 001404dc: 24A54060 addiu...")
 
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
  001404cc: 27BDFFD8 addiu r29,r29,-0x0028
 
  001404cc: 27BDFFD8 addiu r29,r29,-0x0028
 
  001404d0: AFB10014 sw r17,0x0014(r29)
 
  001404d0: AFB10014 sw r17,0x0014(r29)
  001404d4: 00008821 addu r17,r0,r0
+
  001404d4: 00008821 addu r17,r0,r0             setup menu index
 
  001404d8: 3C058017 lui r5,0x8017
 
  001404d8: 3C058017 lui r5,0x8017
  001404dc: 24A54060 addiu r5,r5,0x4060
+
  001404dc: 24A54060 addiu r5,r5,0x4060         Displayed skillset list
 
  001404e0: AFB3001C sw r19,0x001c(r29)
 
  001404e0: AFB3001C sw r19,0x001c(r29)
 
  001404e4: 3C138017 lui r19,0x8017
 
  001404e4: 3C138017 lui r19,0x8017
  001404e8: 2673403C addiu r19,r19,0x403c
+
  001404e8: 2673403C addiu r19,r19,0x403c       skillset determination list
 
  001404ec: 02603021 addu r6,r19,r0
 
  001404ec: 02603021 addu r6,r19,r0
 
  001404f0: 3C048015 lui r4,0x8015
 
  001404f0: 3C048015 lui r4,0x8015
  001404f4: 8484D08A lh r4,-0x2f76(r4)
+
  001404f4: 8484D08A lh r4,-0x2f76(r4)           acting Unit ID
 
  001404f8: 3C078017 lui r7,0x8017
 
  001404f8: 3C078017 lui r7,0x8017
  001404fc: 24E7404C addiu r7,r7,0x404c
+
  001404fc: 24E7404C addiu r7,r7,0x404c         action byte menu list
 
  00140500: AFBF0020 sw r31,0x0020(r29)
 
  00140500: AFBF0020 sw r31,0x0020(r29)
 
  00140504: AFB20018 sw r18,0x0018(r29)
 
  00140504: AFB20018 sw r18,0x0018(r29)
Line 17: Line 17:
 
  0014050c: 3C018015 lui r1,0x8015
 
  0014050c: 3C018015 lui r1,0x8015
 
  00140510: AC20D320 sw r0,-0x2ce0(r1)
 
  00140510: AC20D320 sw r0,-0x2ce0(r1)
  00140514: 0C0604F0 jal 0x001813c0
+
  00140514: 0C0604F0 jal 0x001813c0 [[Player Skill Set]]
 
  00140518: A0A00000 sb r0,0x0000(r5)
 
  00140518: A0A00000 sb r0,0x0000(r5)
 
  0014051c: 3C018017 lui r1,0x8017
 
  0014051c: 3C018017 lui r1,0x8017
  00140520: AC229840 sw r2,-0x67c0(r1)
+
  00140520: AC229840 sw r2,-0x67c0(r1)           1 if no legal skillsets
  00140524: 0C04CA09 jal 0x00132824
+
  00140524: 0C04CA09 jal 0x00132824 [[00132824 - 00132868 BATTLE]]
  00140528: 34045010 ori r4,r0,0x5010
+
  00140528: 34045010 ori r4,r0,0x5010           Get location of text entry 0x5010 (Battle menus Act menu)
  0014052c: 0C04B7D0 jal 0x0012df40
+
  0014052c: 0C04B7D0 jal 0x0012df40 [[0012df40 - 0012df64]]
 
  00140530: 00409021 addu r18,r2,r0
 
  00140530: 00409021 addu r18,r2,r0
  00140534: 0C0604C3 jal 0x0018130c
+
  00140534: 0C0604C3 jal 0x0018130c [[Weapon Guard Usability]]
 
  00140538: 00402021 addu r4,r2,r0
 
  00140538: 00402021 addu r4,r2,r0
 
  0014053c: 34030002 ori r3,r0,0x0002
 
  0014053c: 34030002 ori r3,r0,0x0002
  00140540: 14430011 bne r2,r3,0x00140588
+
  00140540: 14430011 bne r2,r3,0x00140588       branch if not underwater
  00140544: 340300FA ori r3,r0,0x00fa
+
  00140544: 340300FA ori r3,r0,0x00fa           {None} (0 width space)
 
  00140548: 00008021 addu r16,r0,r0
 
  00140548: 00008021 addu r16,r0,r0
 
  0014054c: 34040001 ori r4,r0,0x0001
 
  0014054c: 34040001 ori r4,r0,0x0001
 
  00140550: 3403000D ori r3,r0,0x000d
 
  00140550: 3403000D ori r3,r0,0x000d
  00140554: 02603021 addu r6,r19,r0
+
  00140554: 02603021 addu r6,r19,r0             skillset determination list
  00140558: A0C40000 sb r4,0x0000(r6)
+
  00140558: A0C40000 sb r4,0x0000(r6)           set skillset as unusable
 
  0014055c: 3C018017 lui r1,0x8017
 
  0014055c: 3C018017 lui r1,0x8017
 
  00140560: 00300821 addu r1,r1,r16
 
  00140560: 00300821 addu r1,r1,r16
  00140564: 9022404C lbu r2,0x404c(r1)
+
  00140564: 9022404C lbu r2,0x404c(r1)           action byte menu list
 
  00140568: 00000000 nop
 
  00140568: 00000000 nop
  0014056c: 14430002 bne r2,r3,0x00140578
+
  0014056c: 14430002 bne r2,r3,0x00140578       branch if action menu is not Unknown 1 (...?)
 
  00140570: 26100001 addiu r16,r16,0x0001
 
  00140570: 26100001 addiu r16,r16,0x0001
  00140574: A0C00000 sb r0,0x0000(r6)
+
  00140574: A0C00000 sb r0,0x0000(r6)            set skillset as usable (?)
 
  00140578: 2A020006 slti r2,r16,0x0006
 
  00140578: 2A020006 slti r2,r16,0x0006
  0014057c: 1440FFF6 bne r2,r0,0x00140558
+
  0014057c: 1440FFF6 bne r2,r0,0x00140558       check all skillsets
 
  00140580: 24C60001 addiu r6,r6,0x0001
 
  00140580: 24C60001 addiu r6,r6,0x0001
  00140584: 340300FA ori r3,r0,0x00fa
+
  00140584: 340300FA ori r3,r0,0x00fa           {None}
 +
 
 
  00140588: 34100005 ori r16,r0,0x0005
 
  00140588: 34100005 ori r16,r0,0x0005
  0014058c: 26420019 addiu r2,r18,0x0019
+
  0014058c: 26420019 addiu r2,r18,0x0019         Text ptr + 0x19
  00140590: A0430003 sb r3,0x0003(r2)
+
  00140590: A0430003 sb r3,0x0003(r2)           save {None} as buffer
 
  00140594: 2610FFFF addiu r16,r16,-0x0001
 
  00140594: 2610FFFF addiu r16,r16,-0x0001
  00140598: 0601FFFD bgez r16,0x00140590
+
  00140598: 0601FFFD bgez r16,0x00140590         loop while not yet set all rows to have {None}
 
  0014059c: 2442FFFB addiu r2,r2,-0x0005
 
  0014059c: 2442FFFB addiu r2,r2,-0x0005
  001405a0: 00008021 addu r16,r0,r0
+
  001405a0: 00008021 addu r16,r0,r0             Setup index 2
  001405a4: 340A00FA ori r10,r0,0x00fa
+
  001405a4: 340A00FA ori r10,r0,0x00fa           {None}
  001405a8: 340900FF ori r9,r0,0x00ff
+
  001405a8: 340900FF ori r9,r0,0x00ff           End List skillset
  001405ac: 34080004 ori r8,r0,0x0004
+
  001405ac: 34080004 ori r8,r0,0x0004           {...: Gray}
  001405b0: 3407B000 ori r7,r0,0xb000
+
  001405b0: 3407B000 ori r7,r0,0xb000           ... not sure yet. unusability message related?
 
  001405b4: 3C068017 lui r6,0x8017
 
  001405b4: 3C068017 lui r6,0x8017
  001405b8: 24C64060 addiu r6,r6,0x4060
+
  001405b8: 24C64060 addiu r6,r6,0x4060         Displayed skillset list
 
  001405bc: 3C058016 lui r5,0x8016
 
  001405bc: 3C058016 lui r5,0x8016
  001405c0: 24A56A40 addiu r5,r5,0x6a40
+
  001405c0: 24A56A40 addiu r5,r5,0x6a40         act menu select function list
 
  001405c4: 02402021 addu r4,r18,r0
 
  001405c4: 02402021 addu r4,r18,r0
 
  001405c8: 3C038016 lui r3,0x8016
 
  001405c8: 3C038016 lui r3,0x8016
  001405cc: 24635EF4 addiu r3,r3,0x5ef4
+
  001405cc: 24635EF4 addiu r3,r3,0x5ef4         calculator type ability ID?
  001405d0: 00111080 sll r2,r17,0x02
+
  001405d0: 00111080 sll r2,r17,0x02             setup Index * 4
 
  001405d4: 00431821 addu r3,r2,r3
 
  001405d4: 00431821 addu r3,r2,r3
  001405d8: A08A0003 sb r10,0x0003(r4)
+
  001405d8: A08A0003 sb r10,0x0003(r4)           Store {None}
 
  001405dc: 90C20000 lbu r2,0x0000(r6)
 
  001405dc: 90C20000 lbu r2,0x0000(r6)
 
  001405e0: 00000000 nop
 
  001405e0: 00000000 nop
  001405e4: 1049001F beq r2,r9,0x00140664
+
  001405e4: 1049001F beq r2,r9,0x00140664       branch if end of list
 
  001405e8: 00000000 nop
 
  001405e8: 00000000 nop
 
  001405ec: 3C018017 lui r1,0x8017
 
  001405ec: 3C018017 lui r1,0x8017
 
  001405f0: 00300821 addu r1,r1,r16
 
  001405f0: 00300821 addu r1,r1,r16
  001405f4: 9022403C lbu r2,0x403c(r1)
+
  001405f4: 9022403C lbu r2,0x403c(r1)           skillset determination
 
  001405f8: 00000000 nop
 
  001405f8: 00000000 nop
  001405fc: 10400003 beq r2,r0,0x0014060c
+
  001405fc: 10400003 beq r2,r0,0x0014060c       branch if usable
  00140600: 34021003 ori r2,r0,0x1003
+
  00140600: 34021003 ori r2,r0,0x1003           select function 0x1003 (bring up error message)
 
  00140604: 08050185 j 0x00140614
 
  00140604: 08050185 j 0x00140614
  00140608: A0880001 sb r8,0x0001(r4)
+
  00140608: A0880001 sb r8,0x0001(r4)           set text {Color: Gray}
  0014060c: 34020003 ori r2,r0,0x0003
+
 
 +
  0014060c: 34020003 ori r2,r0,0x0003           select function 0x0003 (bring up ability menu)
 
  00140610: A0800001 sb r0,0x0001(r4)
 
  00140610: A0800001 sb r0,0x0001(r4)
  00140614: A4A20000 sh r2,0x0000(r5)
+
  00140614: A4A20000 sh r2,0x0000(r5)           store select function
 
  00140618: 3C028017 lui r2,0x8017
 
  00140618: 3C028017 lui r2,0x8017
  0014061c: 8C429840 lw r2,-0x67c0(r2)
+
  0014061c: 8C429840 lw r2,-0x67c0(r2)           load if any legal skillsets
 
  00140620: 00000000 nop
 
  00140620: 00000000 nop
  00140624: 10400003 beq r2,r0,0x00140634
+
  00140624: 10400003 beq r2,r0,0x00140634       branch if so
 
  00140628: 00000000 nop
 
  00140628: 00000000 nop
 
  0014062c: 08050191 j 0x00140644
 
  0014062c: 08050191 j 0x00140644
  00140630: AC670000 sw r7,0x0000(r3)
+
  00140630: AC670000 sw r7,0x0000(r3)           store 0xb000 to calculator type ability ID?
 
  00140634: 90C20000 lbu r2,0x0000(r6)
 
  00140634: 90C20000 lbu r2,0x0000(r6)
 
  00140638: 00000000 nop
 
  00140638: 00000000 nop
 
  0014063c: 00471021 addu r2,r2,r7
 
  0014063c: 00471021 addu r2,r2,r7
  00140640: AC620000 sw r2,0x0000(r3)
+
  00140640: AC620000 sw r2,0x0000(r3)            otherwise store 0xb0## (## skillset ID)
 
  00140644: 24630004 addiu r3,r3,0x0004
 
  00140644: 24630004 addiu r3,r3,0x0004
 
  00140648: 26310001 addiu r17,r17,0x0001
 
  00140648: 26310001 addiu r17,r17,0x0001
Line 99: Line 101:
 
  00140654: 26100001 addiu r16,r16,0x0001
 
  00140654: 26100001 addiu r16,r16,0x0001
 
  00140658: 2A020006 slti r2,r16,0x0006
 
  00140658: 2A020006 slti r2,r16,0x0006
  0014065c: 1440FFDE bne r2,r0,0x001405d8
+
  0014065c: 1440FFDE bne r2,r0,0x001405d8       loop 6 skillsets
 
  00140660: 24840005 addiu r4,r4,0x0005
 
  00140660: 24840005 addiu r4,r4,0x0005
  00140664: 0C04ED64 jal 0x0013b590
+
  00140664: 0C04ED64 jal 0x0013b590 [[Get Script Variable]]
  00140668: 34040063 ori r4,r0,0x0063
+
  00140668: 34040063 ori r4,r0,0x0063           get script variable 0x63 ("Anything"
  0014066c: 10400019 beq r2,r0,0x001406d4
+
  0014066c: 10400019 beq r2,r0,0x001406d4       skip if 0
 
  00140670: 2A020006 slti r2,r16,0x0006
 
  00140670: 2A020006 slti r2,r16,0x0006
  00140674: 10400017 beq r2,r0,0x001406d4
+
  00140674: 10400017 beq r2,r0,0x001406d4       branch if unit does not have all 6 skillsets
 
  00140678: 00112080 sll r4,r17,0x02
 
  00140678: 00112080 sll r4,r17,0x02
  0014067c: 26310001 addiu r17,r17,0x0001
+
  0014067c: 26310001 addiu r17,r17,0x0001       if "Anything" is enabled, increase index properly for below.
  00140680: 00101080 sll r2,r16,0x02
+
  00140680: 00101080 sll r2,r16,0x02             index * 4
  00140684: 00501021 addu r2,r2,r16
+
  00140684: 00501021 addu r2,r2,r16             index * 5
  00140688: 00521021 addu r2,r2,r18
+
  00140688: 00521021 addu r2,r2,r18             + text
  0014068c: 00101840 sll r3,r16,0x01
+
  0014068c: 00101840 sll r3,r16,0x01             index half
  00140690: A0400001 sb r0,0x0001(r2)
+
  00140690: A0400001 sb r0,0x0001(r2)           clear colour
 
  00140694: 34020016 ori r2,r0,0x0016
 
  00140694: 34020016 ori r2,r0,0x0016
 
  00140698: 3C018016 lui r1,0x8016
 
  00140698: 3C018016 lui r1,0x8016
 
  0014069c: 00230821 addu r1,r1,r3
 
  0014069c: 00230821 addu r1,r1,r3
  001406a0: A4226A40 sh r2,0x6a40(r1)
+
  001406a0: A4226A40 sh r2,0x6a40(r1)           set "anything"
 
  001406a4: 340200BC ori r2,r0,0x00bc
 
  001406a4: 340200BC ori r2,r0,0x00bc
 
  001406a8: 3C018017 lui r1,0x8017
 
  001406a8: 3C018017 lui r1,0x8017
 
  001406ac: 00300821 addu r1,r1,r16
 
  001406ac: 00300821 addu r1,r1,r16
  001406b0: A0224060 sb r2,0x4060(r1)
+
  001406b0: A0224060 sb r2,0x4060(r1)           set skillset 0xbc display "anything"
 
  001406b4: 340200FF ori r2,r0,0x00ff
 
  001406b4: 340200FF ori r2,r0,0x00ff
 
  001406b8: 3C018017 lui r1,0x8017
 
  001406b8: 3C018017 lui r1,0x8017
 
  001406bc: 00300821 addu r1,r1,r16
 
  001406bc: 00300821 addu r1,r1,r16
  001406c0: A0224061 sb r2,0x4061(r1)
+
  001406c0: A0224061 sb r2,0x4061(r1)           set skillset 0xff display
 
  001406c4: 3402B0BC ori r2,r0,0xb0bc
 
  001406c4: 3402B0BC ori r2,r0,0xb0bc
 
  001406c8: 3C018016 lui r1,0x8016
 
  001406c8: 3C018016 lui r1,0x8016
 
  001406cc: 00240821 addu r1,r1,r4
 
  001406cc: 00240821 addu r1,r1,r4
  001406d0: AC225EF4 sw r2,0x5ef4(r1)
+
  001406d0: AC225EF4 sw r2,0x5ef4(r1)           store selection function 0xb0bc "anything"
  001406d4: 00112100 sll r4,r17,0x04
+
 
 +
  001406d4: 00112100 sll r4,r17,0x04            
 
  001406d8: 24840010 addiu r4,r4,0x0010
 
  001406d8: 24840010 addiu r4,r4,0x0010
 
  001406dc: 00111080 sll r2,r17,0x02
 
  001406dc: 00111080 sll r2,r17,0x02
Line 135: Line 138:
 
  001406e4: 00521021 addu r2,r2,r18
 
  001406e4: 00521021 addu r2,r2,r18
 
  001406e8: 340300FF ori r3,r0,0x00ff
 
  001406e8: 340300FF ori r3,r0,0x00ff
  001406ec: A043FFFE sb r3,-0x0002(r2)
+
  001406ec: A043FFFE sb r3,-0x0002(r2)           store end of list
 
  001406f0: 3C028017 lui r2,0x8017
 
  001406f0: 3C028017 lui r2,0x8017
  001406f4: 8C423CB8 lw r2,0x3cb8(r2)
+
  001406f4: 8C423CB8 lw r2,0x3cb8(r2)           menu data pointer
 
  001406f8: 2623FFFF addiu r3,r17,-0x0001
 
  001406f8: 2623FFFF addiu r3,r17,-0x0001
  001406fc: A443010E sh r3,0x010e(r2)
+
  001406fc: A443010E sh r3,0x010e(r2)           store text references and menu height based on number of skillsets.
 
  00140700: A4440106 sh r4,0x0106(r2)
 
  00140700: A4440106 sh r4,0x0106(r2)
 
  00140704: A44400FE sh r4,0x00fe(r2)
 
  00140704: A44400FE sh r4,0x00fe(r2)

Latest revision as of 12:32, 26 April 2024

001404cc: 27BDFFD8 addiu r29,r29,-0x0028
001404d0: AFB10014 sw r17,0x0014(r29)
001404d4: 00008821 addu r17,r0,r0              setup menu index
001404d8: 3C058017 lui r5,0x8017
001404dc: 24A54060 addiu r5,r5,0x4060          Displayed skillset list
001404e0: AFB3001C sw r19,0x001c(r29)
001404e4: 3C138017 lui r19,0x8017
001404e8: 2673403C addiu r19,r19,0x403c        skillset determination list
001404ec: 02603021 addu r6,r19,r0
001404f0: 3C048015 lui r4,0x8015
001404f4: 8484D08A lh r4,-0x2f76(r4)           acting Unit ID
001404f8: 3C078017 lui r7,0x8017
001404fc: 24E7404C addiu r7,r7,0x404c          action byte menu list
00140500: AFBF0020 sw r31,0x0020(r29)
00140504: AFB20018 sw r18,0x0018(r29)
00140508: AFB00010 sw r16,0x0010(r29)
0014050c: 3C018015 lui r1,0x8015
00140510: AC20D320 sw r0,-0x2ce0(r1)
00140514: 0C0604F0 jal 0x001813c0		Player Skill Set
00140518: A0A00000 sb r0,0x0000(r5)
0014051c: 3C018017 lui r1,0x8017
00140520: AC229840 sw r2,-0x67c0(r1)           1 if no legal skillsets
00140524: 0C04CA09 jal 0x00132824		00132824 - 00132868 BATTLE
00140528: 34045010 ori r4,r0,0x5010            Get location of text entry 0x5010 (Battle menus Act menu)
0014052c: 0C04B7D0 jal 0x0012df40		0012df40 - 0012df64
00140530: 00409021 addu r18,r2,r0
00140534: 0C0604C3 jal 0x0018130c		Weapon Guard Usability
00140538: 00402021 addu r4,r2,r0
0014053c: 34030002 ori r3,r0,0x0002
00140540: 14430011 bne r2,r3,0x00140588        branch if not underwater
00140544: 340300FA ori r3,r0,0x00fa            {None} (0 width space)
00140548: 00008021 addu r16,r0,r0
0014054c: 34040001 ori r4,r0,0x0001
00140550: 3403000D ori r3,r0,0x000d
00140554: 02603021 addu r6,r19,r0              skillset determination list
00140558: A0C40000 sb r4,0x0000(r6)            set skillset as unusable
0014055c: 3C018017 lui r1,0x8017
00140560: 00300821 addu r1,r1,r16
00140564: 9022404C lbu r2,0x404c(r1)           action byte menu list
00140568: 00000000 nop
0014056c: 14430002 bne r2,r3,0x00140578        branch if action menu is not Unknown 1 (...?)
00140570: 26100001 addiu r16,r16,0x0001
00140574: A0C00000 sb r0,0x0000(r6)            set skillset as usable (?)
00140578: 2A020006 slti r2,r16,0x0006
0014057c: 1440FFF6 bne r2,r0,0x00140558        check all skillsets
00140580: 24C60001 addiu r6,r6,0x0001
00140584: 340300FA ori r3,r0,0x00fa            {None}
00140588: 34100005 ori r16,r0,0x0005
0014058c: 26420019 addiu r2,r18,0x0019         Text ptr + 0x19
00140590: A0430003 sb r3,0x0003(r2)            save {None} as buffer
00140594: 2610FFFF addiu r16,r16,-0x0001
00140598: 0601FFFD bgez r16,0x00140590         loop while not yet set all rows to have {None}
0014059c: 2442FFFB addiu r2,r2,-0x0005
001405a0: 00008021 addu r16,r0,r0              Setup index 2
001405a4: 340A00FA ori r10,r0,0x00fa           {None}
001405a8: 340900FF ori r9,r0,0x00ff            End List skillset
001405ac: 34080004 ori r8,r0,0x0004            {...: Gray}
001405b0: 3407B000 ori r7,r0,0xb000            ... not sure yet. unusability message related?
001405b4: 3C068017 lui r6,0x8017
001405b8: 24C64060 addiu r6,r6,0x4060          Displayed skillset list
001405bc: 3C058016 lui r5,0x8016
001405c0: 24A56A40 addiu r5,r5,0x6a40          act menu select function list
001405c4: 02402021 addu r4,r18,r0
001405c8: 3C038016 lui r3,0x8016
001405cc: 24635EF4 addiu r3,r3,0x5ef4          calculator type ability ID?
001405d0: 00111080 sll r2,r17,0x02             setup Index * 4
001405d4: 00431821 addu r3,r2,r3
001405d8: A08A0003 sb r10,0x0003(r4)           Store {None}
001405dc: 90C20000 lbu r2,0x0000(r6)
001405e0: 00000000 nop
001405e4: 1049001F beq r2,r9,0x00140664        branch if end of list
001405e8: 00000000 nop
001405ec: 3C018017 lui r1,0x8017
001405f0: 00300821 addu r1,r1,r16
001405f4: 9022403C lbu r2,0x403c(r1)           skillset determination
001405f8: 00000000 nop
001405fc: 10400003 beq r2,r0,0x0014060c        branch if usable
00140600: 34021003 ori r2,r0,0x1003            select function 0x1003 (bring up error message)
00140604: 08050185 j 0x00140614
00140608: A0880001 sb r8,0x0001(r4)            set text {Color: Gray}
0014060c: 34020003 ori r2,r0,0x0003            select function 0x0003 (bring up ability menu)
00140610: A0800001 sb r0,0x0001(r4)
00140614: A4A20000 sh r2,0x0000(r5)            store select function
00140618: 3C028017 lui r2,0x8017
0014061c: 8C429840 lw r2,-0x67c0(r2)           load if any legal skillsets
00140620: 00000000 nop
00140624: 10400003 beq r2,r0,0x00140634        branch if so
00140628: 00000000 nop
0014062c: 08050191 j 0x00140644
00140630: AC670000 sw r7,0x0000(r3)            store 0xb000 to calculator type ability ID?
00140634: 90C20000 lbu r2,0x0000(r6)
00140638: 00000000 nop
0014063c: 00471021 addu r2,r2,r7
00140640: AC620000 sw r2,0x0000(r3)            otherwise store 0xb0## (## skillset ID)
00140644: 24630004 addiu r3,r3,0x0004
00140648: 26310001 addiu r17,r17,0x0001
0014064c: 24C60001 addiu r6,r6,0x0001
00140650: 24A50002 addiu r5,r5,0x0002
00140654: 26100001 addiu r16,r16,0x0001
00140658: 2A020006 slti r2,r16,0x0006
0014065c: 1440FFDE bne r2,r0,0x001405d8        loop 6 skillsets
00140660: 24840005 addiu r4,r4,0x0005
00140664: 0C04ED64 jal 0x0013b590		Get Script Variable
00140668: 34040063 ori r4,r0,0x0063            get script variable 0x63 ("Anything"
0014066c: 10400019 beq r2,r0,0x001406d4        skip if 0
00140670: 2A020006 slti r2,r16,0x0006
00140674: 10400017 beq r2,r0,0x001406d4        branch if unit does not have all 6 skillsets
00140678: 00112080 sll r4,r17,0x02
0014067c: 26310001 addiu r17,r17,0x0001        if "Anything" is enabled, increase index properly for below.
00140680: 00101080 sll r2,r16,0x02             index * 4
00140684: 00501021 addu r2,r2,r16              index * 5
00140688: 00521021 addu r2,r2,r18              + text
0014068c: 00101840 sll r3,r16,0x01             index half
00140690: A0400001 sb r0,0x0001(r2)            clear colour
00140694: 34020016 ori r2,r0,0x0016
00140698: 3C018016 lui r1,0x8016
0014069c: 00230821 addu r1,r1,r3
001406a0: A4226A40 sh r2,0x6a40(r1)            set "anything"
001406a4: 340200BC ori r2,r0,0x00bc
001406a8: 3C018017 lui r1,0x8017
001406ac: 00300821 addu r1,r1,r16
001406b0: A0224060 sb r2,0x4060(r1)            set skillset 0xbc display "anything"
001406b4: 340200FF ori r2,r0,0x00ff
001406b8: 3C018017 lui r1,0x8017
001406bc: 00300821 addu r1,r1,r16
001406c0: A0224061 sb r2,0x4061(r1)            set skillset 0xff display 
001406c4: 3402B0BC ori r2,r0,0xb0bc
001406c8: 3C018016 lui r1,0x8016
001406cc: 00240821 addu r1,r1,r4
001406d0: AC225EF4 sw r2,0x5ef4(r1)            store selection function 0xb0bc "anything"
001406d4: 00112100 sll r4,r17,0x04             
001406d8: 24840010 addiu r4,r4,0x0010
001406dc: 00111080 sll r2,r17,0x02
001406e0: 00511021 addu r2,r2,r17
001406e4: 00521021 addu r2,r2,r18
001406e8: 340300FF ori r3,r0,0x00ff
001406ec: A043FFFE sb r3,-0x0002(r2)           store end of list
001406f0: 3C028017 lui r2,0x8017
001406f4: 8C423CB8 lw r2,0x3cb8(r2)            menu data pointer
001406f8: 2623FFFF addiu r3,r17,-0x0001
001406fc: A443010E sh r3,0x010e(r2)            store text references and menu height based on number of skillsets.
00140700: A4440106 sh r4,0x0106(r2)
00140704: A44400FE sh r4,0x00fe(r2)
00140708: A44400F6 sh r4,0x00f6(r2)
0014070c: 8FBF0020 lw r31,0x0020(r29)
00140710: 8FB3001C lw r19,0x001c(r29)
00140714: 8FB20018 lw r18,0x0018(r29)
00140718: 8FB10014 lw r17,0x0014(r29)
0014071c: 8FB00010 lw r16,0x0010(r29)
00140720: 27BD0028 addiu r29,r29,0x0028
00140724: 03E00008 jr r31
00140728: 00000000 nop