Difference between revisions of "Poach/Morbol Transformation"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 0008346c: 27bdffe8 addiu r29,r29,0xffe8 00083470: afb00010 sw r16,0x0010(r29) 00083474: 00808021 addu r16,r4,r0 00083478: afbf0014 sw r31,0x001...")
 
Line 1: Line 1:
<font face='Courier New'>
 
 
   
 
   
 
  0008346c: 27bdffe8 addiu r29,r29,0xffe8
 
  0008346c: 27bdffe8 addiu r29,r29,0xffe8
 
  00083470: afb00010 sw r16,0x0010(r29)
 
  00083470: afb00010 sw r16,0x0010(r29)
  00083474: 00808021 addu r16,r4,r0
+
  00083474: 00808021 addu r16,r4,r0                     #Transfer r4 to r16 (Misc unit data pointer?)
  00083478: afbf0014 sw r31,0x0014(r29)
+
  00083478: afbf0014 sw r31,0x0014(r29)                 #
  0008347c: 8e030144 lw r3,0x0144(r16)
+
  0008347c: 8e030144 lw r3,0x0144(r16)                  #Load status flag 5 (and 6? it's a LW..)
  00083480: 00000000 nop
+
  00083480: 00000000 nop                                 #
  00083484: 30620180 andi r2,r3,0x0180
+
  00083484: 30620180 andi r2,r3,0x0180                   #Check for Poached/Morbol virus'd
  00083488: 10400034 beq r2,r0,0x0008355c branch if not ??
+
  00083488: 10400034 beq r2,r0,0x0008355c               #Branch if not Poached/Morbol virus'd
  0008348c: 30620080 andi r2,r3,0x0080
+
  0008348c: 30620080 andi r2,r3,0x0080                       #Check if only Poached
  00083490: 10400007 beq r2,r0,0x000834b0
+
  00083490: 10400007 beq r2,r0,0x000834b0                   #Branch if not Poached
  00083494: 2402ff7f addiu r2,r0,0xff7f
+
  00083494: 2402ff7f addiu r2,r0,0xff7f                         #Remove Poached flag?
  00083498: 92040004 lbu r4,0x0004(r16)
+
  00083498: 92040004 lbu r4,0x0004(r16)                         #Load Unit Misc ID
  0008349c: 00621024 and r2,r3,r2
+
  0008349c: 00621024 and r2,r3,r2                               #
  000834a0: 0c02254a jal 0x00089528
+
  000834a0: 0c02254a jal 0x00089528                             #[[00089528 - 00089550]]
  000834a4: ae020144 sw r2,0x0144(r16)
+
  000834a4: ae020144 sw r2,0x0144(r16)                          #Save new status flag 5 (and 6?)
  000834a8: 08020d57 j 0x0008355c
+
  000834a8: 08020d57 j 0x0008355c                               #Jump to END
  000834ac: 00000000 nop
+
  000834ac: 00000000 nop                                         #
  000834b0: 30620100 andi r2,r3,0x0100
+
  000834b0: 30620100 andi r2,r3,0x0100                       #Check if only Morbol virus'd
  000834b4: 10400029 beq r2,r0,0x0008355c
+
  000834b4: 10400029 beq r2,r0,0x0008355c                   #Branch to END if not Morbol virus'd (redundant?)
  000834b8: 34040092 ori r4,r0,0x0092
+
  000834b8: 34040092 ori r4,r0,0x0092                           #r4 = 0x92
  000834bc: 2402feff addiu r2,r0,0xfeff
+
  000834bc: 2402feff addiu r2,r0,0xfeff                         #Remove Morbol virus flag?
  000834c0: 00621024 and r2,r3,r2
+
  000834c0: 00621024 and r2,r3,r2                               #
  000834c4: ae020144 sw r2,0x0144(r16)
+
  000834c4: ae020144 sw r2,0x0144(r16)                          #Save new status flag 5 (and 6?)
  000834c8: 34020092 ori r2,r0,0x0092
+
  000834c8: 34020092 ori r2,r0,0x0092                           #r2 = 0x92
  000834cc: a600007a sh r0,0x007a(r16)
+
  000834cc: a600007a sh r0,0x007a(r16)                           #Clear "chicken/frog/crystal/treasure graphic Y offset"?
  000834d0: 0c020718 jal 0x00081c60
+
  000834d0: 0c020718 jal 0x00081c60                             #[[00081c60 - 00081d50]] (Spritesheet VRAM slot related?)
  000834d4: a2020006 sb r2,0x0006(r16)
+
  000834d4: a2020006 sb r2,0x0006(r16)                          #Save Spritesheet ID = 0x92 (Malboro)
  000834d8: 34040092 ori r4,r0,0x0092
+
  000834d8: 34040092 ori r4,r0,0x0092                           #r4 = 0x92
  000834dc: 0c02066a jal 0x000819a8
+
  000834dc: 0c02066a jal 0x000819a8                             #[[Get some Spritesheet data address]]
  000834e0: a2020005 sb r2,0x0005(r16)
+
  000834e0: a2020005 sb r2,0x0005(r16)                           #Save result of previous jal as Spritesheet VRAM slot
  000834e4: 34040092 ori r4,r0,0x0092
+
  000834e4: 34040092 ori r4,r0,0x0092                           #r4 = 0x92
  000834e8: 0c020682 jal 0x00081a08
+
  000834e8: 0c020682 jal 0x00081a08                             #[[00081a08 - 00081a54]]
  000834ec: ae0201f4 sw r2,0x01f4(r16)
+
  000834ec: ae0201f4 sw r2,0x01f4(r16)                           #Set new SHP Data Pointer
  000834f0: 9204007c lbu r4,0x007c(r16)
+
  000834f0: 9204007c lbu r4,0x007c(r16)                         #r4 = Unit's X Coordinate
  000834f4: 9205007d lbu r5,0x007d(r16)
+
  000834f4: 9205007d lbu r5,0x007d(r16)                         #r5 = Unit's Y Coordinate
  000834f8: 9206007e lbu r6,0x007e(r16)
+
  000834f8: 9206007e lbu r6,0x007e(r16)                         #r6 = Unit's Map Level
  000834fc: 92030005 lbu r3,0x0005(r16)
+
  000834fc: 92030005 lbu r3,0x0005(r16)                          #r3 = Spritesheet VRAM slot (just overwritten?)
  00083500: ae0201f8 sw r2,0x01f8(r16)
+
  00083500: ae0201f8 sw r2,0x01f8(r16)                           #Save result of previous jal as SEQ Data Pointer
  00083504: a2000007 sb r0,0x0007(r16)
+
  00083504: a2000007 sb r0,0x0007(r16)                           #Clear Stored Palette?
  00083508: 24630014 addiu r3,r3,0x0014
+
  00083508: 24630014 addiu r3,r3,0x0014                         #r3 = Spritesheet VRAM slot + 0x14
  0008350c: 0c060fed jal 0x00183fb4 get tile data pointer
+
  0008350c: 0c060fed jal 0x00183fb4                             #[[Get Tile Data Pointer]]
  00083510: a603000e sh r3,0x000e(r16)
+
  00083510: a603000e sh r3,0x000e(r16)                           #Save adjusted r3 into VRAM Spritesheet ID?
  00083514: 02002021 addu r4,r16,r0
+
  00083514: 02002021 addu r4,r16,r0                             #Transfer r16 to r4 (Misc unit data pointer)
  00083518: 90450006 lbu r5,0x0006(r2) load selectability?
+
  00083518: 90450006 lbu r5,0x0006(r2)                           #Load tile Selectability and other data?
  0008351c: 34060001 ori r6,r0,0x0001
+
  0008351c: 34060001 ori r6,r0,0x0001                           #r6 = 0x01
  00083520: 00052882 srl r5,r5,0x02
+
  00083520: 00052882 srl r5,r5,0x02                             #Remove "Cannot stop on" and Shadow tile data?
  00083524: 0c02091a jal 0x00082468 ???
+
  00083524: 0c02091a jal 0x00082468                             #[[00082300 - 000829e4]]
  00083528: 30a50003 andi r5,r5,0x0003
+
  00083528: 30a50003 andi r5,r5,0x0003                           #Isolate Selectability data
  0008352c: 34040003 ori r4,r0,0x0003
+
  0008352c: 34040003 ori r4,r0,0x0003                           #r4 = 0x03
  00083530: 86050070 lh r5,0x0070(r16)
+
  00083530: 86050070 lh r5,0x0070(r16)                           #r5 = Current Facing
  00083534: 0c020662 jal 0x00081988
+
  00083534: 0c020662 jal 0x00081988                             #[[Store unit animation/facing/someothervalue]]
  00083538: 02003021 addu r6,r16,r0
+
  00083538: 02003021 addu r6,r16,r0                             #r6 = Misc unit data pointer
  0008353c: 8e040134 lw r4,0x0134(r16) load stats
+
  0008353c: 8e040134 lw r4,0x0134(r16)                           #r4 = Pointer to Unit's Data
  00083540: 0c0631d6 jal 0x0018c758 mount stuff?
+
  00083540: 0c0631d6 jal 0x0018c758                             #[[Some kind of ENTD/Unit manipulation]] (mount stuff?)
  00083544: 00000000 nop
+
  00083544: 00000000 nop                                         #
  00083548: 8e020134 lw r2,0x0134(r16)
+
  00083548: 8e020134 lw r2,0x0134(r16)                           #r2 = Pointer to Unit's Data
  0008354c: 00000000 nop
+
  0008354c: 00000000 nop                                         #
  00083550: 9044018a lbu r4,0x018a(r2) load ENTD
+
  00083550: 9044018a lbu r4,0x018a(r2)                           #Unit ID (without "Unit Exists" check)
  00083554: 0c0667b2 jal 0x00199ec8 AI
+
  00083554: 0c0667b2 jal 0x00199ec8                             #[[Usable Ability Setting/ENTD AI Calculations]]
  00083558: 00000000 nop
+
  00083558: 00000000 nop                                         #
 +
 +
End:
 
  0008355c: 8fbf0014 lw r31,0x0014(r29)
 
  0008355c: 8fbf0014 lw r31,0x0014(r29)
 
  00083560: 8fb00010 lw r16,0x0010(r29)
 
  00083560: 8fb00010 lw r16,0x0010(r29)
Line 66: Line 67:
 
  00083568: 03e00008 jr r31
 
  00083568: 03e00008 jr r31
 
  0008356c: 00000000 nop
 
  0008356c: 00000000 nop
</font>
 

Revision as of 00:47, 11 February 2024

0008346c: 27bdffe8 addiu r29,r29,0xffe8
00083470: afb00010 sw r16,0x0010(r29)
00083474: 00808021 addu r16,r4,r0                      #Transfer r4 to r16 (Misc unit data pointer?)
00083478: afbf0014 sw r31,0x0014(r29)                  #
0008347c: 8e030144 lw r3,0x0144(r16)                   #Load status flag 5 (and 6? it's a LW..)
00083480: 00000000 nop                                 #
00083484: 30620180 andi r2,r3,0x0180                   #Check for Poached/Morbol virus'd
00083488: 10400034 beq r2,r0,0x0008355c                #Branch if not Poached/Morbol virus'd
0008348c: 30620080 andi r2,r3,0x0080                       #Check if only Poached
00083490: 10400007 beq r2,r0,0x000834b0                    #Branch if not Poached
00083494: 2402ff7f addiu r2,r0,0xff7f                          #Remove Poached flag?
00083498: 92040004 lbu r4,0x0004(r16)                          #Load Unit Misc ID
0008349c: 00621024 and r2,r3,r2                                #
000834a0: 0c02254a jal 0x00089528                              #00089528 - 00089550
000834a4: ae020144 sw r2,0x0144(r16)                           #Save new status flag 5 (and 6?)
000834a8: 08020d57 j 0x0008355c                                #Jump to END
000834ac: 00000000 nop                                         #
000834b0: 30620100 andi r2,r3,0x0100                       #Check if only Morbol virus'd
000834b4: 10400029 beq r2,r0,0x0008355c                    #Branch to END if not Morbol virus'd (redundant?)
000834b8: 34040092 ori r4,r0,0x0092                            #r4 = 0x92
000834bc: 2402feff addiu r2,r0,0xfeff                          #Remove Morbol virus flag?
000834c0: 00621024 and r2,r3,r2                                #
000834c4: ae020144 sw r2,0x0144(r16)                           #Save new status flag 5 (and 6?)
000834c8: 34020092 ori r2,r0,0x0092                            #r2 = 0x92
000834cc: a600007a sh r0,0x007a(r16)                           #Clear "chicken/frog/crystal/treasure graphic Y offset"?
000834d0: 0c020718 jal 0x00081c60                              #00081c60 - 00081d50 (Spritesheet VRAM slot related?)
000834d4: a2020006 sb r2,0x0006(r16)                           #Save Spritesheet ID = 0x92 (Malboro)
000834d8: 34040092 ori r4,r0,0x0092                            #r4 = 0x92
000834dc: 0c02066a jal 0x000819a8                              #Get some Spritesheet data address
000834e0: a2020005 sb r2,0x0005(r16)                           #Save result of previous jal as Spritesheet VRAM slot
000834e4: 34040092 ori r4,r0,0x0092                            #r4 = 0x92
000834e8: 0c020682 jal 0x00081a08                              #00081a08 - 00081a54
000834ec: ae0201f4 sw r2,0x01f4(r16)                           #Set new SHP Data Pointer
000834f0: 9204007c lbu r4,0x007c(r16)                          #r4 = Unit's X Coordinate
000834f4: 9205007d lbu r5,0x007d(r16)                          #r5 = Unit's Y Coordinate
000834f8: 9206007e lbu r6,0x007e(r16)                          #r6 = Unit's Map Level
000834fc: 92030005 lbu r3,0x0005(r16)                          #r3 = Spritesheet VRAM slot (just overwritten?)
00083500: ae0201f8 sw r2,0x01f8(r16)                           #Save result of previous jal as SEQ Data Pointer
00083504: a2000007 sb r0,0x0007(r16)                           #Clear Stored Palette?
00083508: 24630014 addiu r3,r3,0x0014                          #r3 = Spritesheet VRAM slot + 0x14
0008350c: 0c060fed jal 0x00183fb4                              #Get Tile Data Pointer
00083510: a603000e sh r3,0x000e(r16)                           #Save adjusted r3 into VRAM Spritesheet ID?
00083514: 02002021 addu r4,r16,r0                              #Transfer r16 to r4 (Misc unit data pointer)
00083518: 90450006 lbu r5,0x0006(r2)                           #Load tile Selectability and other data?
0008351c: 34060001 ori r6,r0,0x0001                            #r6 = 0x01
00083520: 00052882 srl r5,r5,0x02                              #Remove "Cannot stop on" and Shadow tile data?
00083524: 0c02091a jal 0x00082468                              #00082300 - 000829e4
00083528: 30a50003 andi r5,r5,0x0003                           #Isolate Selectability data
0008352c: 34040003 ori r4,r0,0x0003                            #r4 = 0x03
00083530: 86050070 lh r5,0x0070(r16)                           #r5 = Current Facing
00083534: 0c020662 jal 0x00081988                              #Store unit animation/facing/someothervalue
00083538: 02003021 addu r6,r16,r0                              #r6 = Misc unit data pointer
0008353c: 8e040134 lw r4,0x0134(r16)                           #r4 = Pointer to Unit's Data
00083540: 0c0631d6 jal 0x0018c758                              #Some kind of ENTD/Unit manipulation (mount stuff?)
00083544: 00000000 nop                                         #
00083548: 8e020134 lw r2,0x0134(r16)                           #r2 = Pointer to Unit's Data
0008354c: 00000000 nop                                         #
00083550: 9044018a lbu r4,0x018a(r2)                           #Unit ID (without "Unit Exists" check)
00083554: 0c0667b2 jal 0x00199ec8                              #Usable Ability Setting/ENTD AI Calculations
00083558: 00000000 nop                                         #

End:
0008355c: 8fbf0014 lw r31,0x0014(r29)
00083560: 8fb00010 lw r16,0x0010(r29)
00083564: 27bd0018 addiu r29,r29,0x0018
00083568: 03e00008 jr r31
0008356c: 00000000 nop