Difference between revisions of "Set Jobs unlocked by others"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 00122488: 3c02801d lui r2,0x801d 0012248c: 9042d788 lbu r2,-0x2878(r2) 00122490: 27bdffd8 addiu r29,r29,0xffd8 00122494: afb1001c sw r17,0x001c...")
 
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
<font face='Courier New'>
 
<font face='Courier New'>
+
Set Jobs unlocked by others Set Jobs unlocked by others
 
  00122488: 3c02801d lui r2,0x801d
 
  00122488: 3c02801d lui r2,0x801d
  0012248c: 9042d788 lbu r2,-0x2878(r2)
+
  0012248c: 9042d788 lbu r2,-0x2878(r2) load number of party members
 
  00122490: 27bdffd8 addiu r29,r29,0xffd8
 
  00122490: 27bdffd8 addiu r29,r29,0xffd8
 
  00122494: afb1001c sw r17,0x001c(r29)
 
  00122494: afb1001c sw r17,0x001c(r29)
Line 8: Line 8:
 
  0012249c: afbf0024 sw r31,0x0024(r29)
 
  0012249c: afbf0024 sw r31,0x0024(r29)
 
  001224a0: afb20020 sw r18,0x0020(r29)
 
  001224a0: afb20020 sw r18,0x0020(r29)
  001224a4: 1840001b blez r2,0x00122514
+
  001224a4: 1840001b blez r2,0x00122514 branch if no party members found
 
  001224a8: afb00018 sw r16,0x0018(r29)
 
  001224a8: afb00018 sw r16,0x0018(r29)
  001224ac: 00041400 sll r2,r4,0x10
+
  001224ac: 00041400 sll r2,r4,0x10
  001224b0: 00029403 sra r18,r2,0x10
+
  001224b0: 00029403 sra r18,r2,0x10 r18 = job
 
  001224b4: 3c10801d lui r16,0x801d
 
  001224b4: 3c10801d lui r16,0x801d
  001224b8: 2610d5ec addiu r16,r16,0xd5ec
+
  001224b8: 2610d5ec addiu r16,r16,0xd5ec 801cd5ec - pointer to formation screen data
  001224bc: 8e020000 lw r2,0x0000(r16)
+
  001224bc: 8e020000 lw r2,0x0000(r16) load data of currently considered unit
 
  001224c0: 00000000 nop
 
  001224c0: 00000000 nop
  001224c4: 84440024 lh r4,0x0024(r2)
+
  001224c4: 84440024 lh r4,0x0024(r2) load current job
  001224c8: 0c0482e4 jal 0x00120b90
+
  001224c8: 0c0482e4 jal 0x00120b90 special monster check
 
  001224cc: 00000000 nop
 
  001224cc: 00000000 nop
  001224d0: 1440000a bne r2,r0,0x001224fc
+
  001224d0: 1440000a bne r2,r0,0x001224fc branch if special monster
  001224d4: 26310001 addiu r17,r17,0x0001
+
  001224d4: 26310001 addiu r17,r17,0x0001
  001224d8: 8e040000 lw r4,0x0000(r16)
+
  001224d8: 8e040000 lw r4,0x0000(r16)
  001224dc: 0c04ac74 jal 0x0012b1d0
+
  001224dc: 0c04ac74 jal 0x0012b1d0 store pointer and bit counter
  001224e0: 24840077 addiu r4,r4,0x0077
+
  001224e0: 24840077 addiu r4,r4,0x0077 r4 = unlocked jobs address
  001224e4: 0c04acd5 jal 0x0012b354
+
  001224e4: 0c04acd5 jal 0x0012b354 check all jobs up to job to actually check
  001224e8: 2644ffb6 addiu r4,r18,0xffb6
+
  001224e8: 2644ffb6 addiu r4,r18,0xffb6 job - 4a
  001224ec: 0c04acd5 jal 0x0012b354
+
  001224ec: 0c04acd5 jal 0x0012b354 check job considered job (r18)
 
  001224f0: 34040001 ori r4,r0,0x0001
 
  001224f0: 34040001 ori r4,r0,0x0001
  001224f4: 14400008 bne r2,r0,0x00122518
+
  001224f4: 14400008 bne r2,r0,0x00122518 if job  found go to end?
 
  001224f8: 00001021 addu r2,r0,r0
 
  001224f8: 00001021 addu r2,r0,r0
 
  001224fc: 3c02801d lui r2,0x801d
 
  001224fc: 3c02801d lui r2,0x801d
  00122500: 9042d788 lbu r2,-0x2878(r2)
+
  00122500: 9042d788 lbu r2,-0x2878(r2) load counter
 
  00122504: 00000000 nop
 
  00122504: 00000000 nop
  00122508: 0222102a slt r2,r17,r2
+
  00122508: 0222102a slt r2,r17,r2 set if < number of units
 
  0012250c: 1440ffeb bne r2,r0,0x001224bc
 
  0012250c: 1440ffeb bne r2,r0,0x001224bc
 
  00122510: 26100004 addiu r16,r16,0x0004
 
  00122510: 26100004 addiu r16,r16,0x0004
Line 43: Line 43:
 
  00122528: 27bd0028 addiu r29,r29,0x0028
 
  00122528: 27bd0028 addiu r29,r29,0x0028
 
  0012252c: 03e00008 jr r31
 
  0012252c: 03e00008 jr r31
  00122530: 00000000 nop
+
  00122530: 00000000 nop</font>
</font>
 

Latest revision as of 18:31, 17 March 2019

Set Jobs unlocked by others Set Jobs unlocked by others

00122488: 3c02801d lui r2,0x801d
0012248c: 9042d788 lbu r2,-0x2878(r2)			load number of party members
00122490: 27bdffd8 addiu r29,r29,0xffd8
00122494: afb1001c sw r17,0x001c(r29)
00122498: 00008821 addu r17,r0,r0
0012249c: afbf0024 sw r31,0x0024(r29)
001224a0: afb20020 sw r18,0x0020(r29)
001224a4: 1840001b blez r2,0x00122514			branch if no party members found
001224a8: afb00018 sw r16,0x0018(r29)
001224ac: 00041400 sll r2,r4,0x10			
001224b0: 00029403 sra r18,r2,0x10				r18 = job
001224b4: 3c10801d lui r16,0x801d
001224b8: 2610d5ec addiu r16,r16,0xd5ec			801cd5ec - pointer to formation screen data
001224bc: 8e020000 lw r2,0x0000(r16)			load data of currently considered unit
001224c0: 00000000 nop
001224c4: 84440024 lh r4,0x0024(r2)				load current job
001224c8: 0c0482e4 jal 0x00120b90				special monster check
001224cc: 00000000 nop
001224d0: 1440000a bne r2,r0,0x001224fc			branch if special monster
001224d4: 26310001 addiu r17,r17,0x0001			
001224d8: 8e040000 lw r4,0x0000(r16)			
001224dc: 0c04ac74 jal 0x0012b1d0				store pointer and bit counter
001224e0: 24840077 addiu r4,r4,0x0077			r4 = unlocked jobs address
001224e4: 0c04acd5 jal 0x0012b354				check all jobs up to job to actually check
001224e8: 2644ffb6 addiu r4,r18,0xffb6			job - 4a
001224ec: 0c04acd5 jal 0x0012b354				check job considered job (r18)
001224f0: 34040001 ori r4,r0,0x0001
001224f4: 14400008 bne r2,r0,0x00122518			if job  found go to end?
001224f8: 00001021 addu r2,r0,r0
001224fc: 3c02801d lui r2,0x801d
00122500: 9042d788 lbu r2,-0x2878(r2)			load counter
00122504: 00000000 nop
00122508: 0222102a slt r2,r17,r2				set if < number of units
0012250c: 1440ffeb bne r2,r0,0x001224bc
00122510: 26100004 addiu r16,r16,0x0004
00122514: 34020001 ori r2,r0,0x0001
00122518: 8fbf0024 lw r31,0x0024(r29)
0012251c: 8fb20020 lw r18,0x0020(r29)
00122520: 8fb1001c lw r17,0x001c(r29)
00122524: 8fb00018 lw r16,0x0018(r29)
00122528: 27bd0028 addiu r29,r29,0x0028
0012252c: 03e00008 jr r31
00122530: 00000000 nop