Difference between revisions of "001a5ea4 - 001a600c"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m
Line 3: Line 3:
 
  001a5ea4: 27bdffd0 addiu r29,r29,0xffd0
 
  001a5ea4: 27bdffd0 addiu r29,r29,0xffd0
 
  001a5ea8: afb00028 sw r16,0x0028(r29)
 
  001a5ea8: afb00028 sw r16,0x0028(r29)
  001a5eac: 00a08021 addu r16,r5,r0
+
  001a5eac: 00a08021 addu r16,r5,r0 r5 is... I dunno. way outside the bounds of any known table - but also not a stack pointer?
 
  001a5eb0: afbf002c sw r31,0x002c(r29)
 
  001a5eb0: afbf002c sw r31,0x002c(r29)
 
  001a5eb4: 8e02000c lw r2,0x000c(r16)
 
  001a5eb4: 8e02000c lw r2,0x000c(r16)
Line 28: Line 28:
 
  001a5f08: 3c04801c lui r4,0x801c
 
  001a5f08: 3c04801c lui r4,0x801c
 
  001a5f0c: 24848a0c addiu r4,r4,0x8a0c
 
  001a5f0c: 24848a0c addiu r4,r4,0x8a0c
  001a5f10: 0c00744e jal 0x0001d138
+
  001a5f10: 0c00744e jal 0x0001d138 [[Store Translation Vectors to GTE]]
 
  001a5f14: 00000000 nop
 
  001a5f14: 00000000 nop
  001a5f18: 8e020018 lw r2,0x0018(r16)
+
  001a5f18: 8e020018 lw r2,0x0018(r16) load Vector X
  001a5f1c: 27a40010 addiu r4,r29,0x0010
+
  001a5f1c: 27a40010 addiu r4,r29,0x0010 pointer to vector x (0x10, half) y (0x12, half) and z (0x14, word)
 
  001a5f20: 000210c3 sra r2,r2,0x03
 
  001a5f20: 000210c3 sra r2,r2,0x03
  001a5f24: a7a20010 sh r2,0x0010(r29)
+
  001a5f24: a7a20010 sh r2,0x0010(r29) store vector X
  001a5f28: 8e02001c lw r2,0x001c(r16)
+
  001a5f28: 8e02001c lw r2,0x001c(r16) load Vector Y
  001a5f2c: 27a50018 addiu r5,r29,0x0018
+
  001a5f2c: 27a50018 addiu r5,r29,0x0018 return value pointer = sp + 0x18
  001a5f30: 000210c3 sra r2,r2,0x03
+
  001a5f30: 000210c3 sra r2,r2,0x03 vector Y / 8
  001a5f34: a7a20012 sh r2,0x0012(r29)
+
  001a5f34: a7a20012 sh r2,0x0012(r29) store vector Y
  001a5f38: 8e020020 lw r2,0x0020(r16)
+
  001a5f38: 8e020020 lw r2,0x0020(r16) load Vector Z (word)
  001a5f3c: 27a60024 addiu r6,r29,0x0024
+
  001a5f3c: 27a60024 addiu r6,r29,0x0024 return value pointer = sp + 0x24
  001a5f40: 000210c3 sra r2,r2,0x03
+
  001a5f40: 000210c3 sra r2,r2,0x03 Z / 8
  001a5f44: 0c00755e jal 0x0001d578
+
  001a5f44: 0c00755e jal 0x0001d578 [[Get vector*matrix from GTE]] fucking MATRIX MATH I want to die. it's not even clear what the matrix is that's being multiplied. kill me.
  001a5f48: a7a20014 sh r2,0x0014(r29)
+
  001a5f48: a7a20014 sh r2,0x0014(r29) store vector Z
  001a5f4c: 8fa4001c lw r4,0x001c(r29)
+
  001a5f4c: 8fa4001c lw r4,0x001c(r29) ΔY
  001a5f50: 8fa50018 lw r5,0x0018(r29)
+
  001a5f50: 8fa50018 lw r5,0x0018(r29) ΔX
  001a5f54: 0c00763a jal 0x0001d8e8
+
  001a5f54: 0c00763a jal 0x0001d8e8 [[Get Angle Value via ArcTan Table]] Atan(r4/r5)
 
  001a5f58: 00000000 nop
 
  001a5f58: 00000000 nop
  001a5f5c: 8e030054 lw r3,0x0054(r16)
+
  001a5f5c: 8e030054 lw r3,0x0054(r16) load effect parameter pointer
 
  001a5f60: 00000000 nop
 
  001a5f60: 00000000 nop
  001a5f64: a4620012 sh r2,0x0012(r3)
+
  001a5f64: a4620012 sh r2,0x0012(r3) store angle between units at 0x12
  001a5f68: 9602004e lhu r2,0x004e(r16)
+
  001a5f68: 9602004e lhu r2,0x004e(r16) stack thinky
 
  001a5f6c: 00000000 nop
 
  001a5f6c: 00000000 nop
  001a5f70: 30420040 andi r2,r2,0x0040
+
  001a5f70: 30420040 andi r2,r2,0x0040 check for 0x40 flag
  001a5f74: 1040001c beq r2,r0,0x001a5fe8
+
  001a5f74: 1040001c beq r2,r0,0x001a5fe8 branch if no 0x40 flag
 
  001a5f78: 34050080 ori r5,r0,0x0080
 
  001a5f78: 34050080 ori r5,r0,0x0080
 
  001a5f7c: 92030046 lbu r3,0x0046(r16)
 
  001a5f7c: 92030046 lbu r3,0x0046(r16)
Line 82: Line 82:
 
  001a5fe0: 080697fd j 0x001a5ff4
 
  001a5fe0: 080697fd j 0x001a5ff4
 
  001a5fe4: 00000000 nop
 
  001a5fe4: 00000000 nop
  001a5fe8: 8e040054 lw r4,0x0054(r16)
+
  001a5fe8: 8e040054 lw r4,0x0054(r16) load parameter data from r16
  001a5fec: 34060080 ori r6,r0,0x0080
+
  001a5fec: 34060080 ori r6,r0,0x0080 p3 = 0x80
  001a5ff0: 34070080 ori r7,r0,0x0080
+
  001a5ff0: 34070080 ori r7,r0,0x0080 p4 = 0x80
  001a5ff4: 0c06a87e jal 0x001aa1f8
+
  001a5ff4: 0c06a87e jal 0x001aa1f8 [[Composite frame loading for parameter sets]]
  001a5ff8: 00000000 nop
+
  001a5ff8: 00000000 nop b.. b... b-branch delay? c-compiler?! COMPILER?!
 
  001a5ffc: 8fbf002c lw r31,0x002c(r29)
 
  001a5ffc: 8fbf002c lw r31,0x002c(r29)
 
  001a6000: 8fb00028 lw r16,0x0028(r29)
 
  001a6000: 8fb00028 lw r16,0x0028(r29)

Revision as of 12:37, 19 March 2022

001a5ea4: 27bdffd0 addiu r29,r29,0xffd0
001a5ea8: afb00028 sw r16,0x0028(r29)
001a5eac: 00a08021 addu r16,r5,r0			r5 is... I dunno. way outside the bounds of any known table - but also not a stack pointer?
001a5eb0: afbf002c sw r31,0x002c(r29)
001a5eb4: 8e02000c lw r2,0x000c(r16)
001a5eb8: 8e030054 lw r3,0x0054(r16)
001a5ebc: 00021303 sra r2,r2,0x0c
001a5ec0: a462000c sh r2,0x000c(r3)
001a5ec4: 8e020010 lw r2,0x0010(r16)
001a5ec8: 8e030054 lw r3,0x0054(r16)
001a5ecc: 00021303 sra r2,r2,0x0c
001a5ed0: a462000e sh r2,0x000e(r3)
001a5ed4: 8e020014 lw r2,0x0014(r16)
001a5ed8: 8e030054 lw r3,0x0054(r16)
001a5edc: 00021303 sra r2,r2,0x0c
001a5ee0: a4620010 sh r2,0x0010(r3)
001a5ee4: 9602004c lhu r2,0x004c(r16)
001a5ee8: 00000000 nop
001a5eec: 30420002 andi r2,r2,0x0002
001a5ef0: 1040001d beq r2,r0,0x001a5f68
001a5ef4: 00000000 nop
001a5ef8: 3c04800a lui r4,0x800a
001a5efc: 24848a24 addiu r4,r4,0x8a24
001a5f00: 0c00742a jal 0x0001d0a8
001a5f04: 00000000 nop
001a5f08: 3c04801c lui r4,0x801c
001a5f0c: 24848a0c addiu r4,r4,0x8a0c
001a5f10: 0c00744e jal 0x0001d138			Store Translation Vectors to GTE
001a5f14: 00000000 nop
001a5f18: 8e020018 lw r2,0x0018(r16)			load Vector X
001a5f1c: 27a40010 addiu r4,r29,0x0010			pointer to vector x (0x10, half) y (0x12, half) and z (0x14, word)
001a5f20: 000210c3 sra r2,r2,0x03
001a5f24: a7a20010 sh r2,0x0010(r29)			store vector X
001a5f28: 8e02001c lw r2,0x001c(r16)			load Vector Y
001a5f2c: 27a50018 addiu r5,r29,0x0018			return value pointer = sp + 0x18
001a5f30: 000210c3 sra r2,r2,0x03			vector Y / 8
001a5f34: a7a20012 sh r2,0x0012(r29)			store vector Y
001a5f38: 8e020020 lw r2,0x0020(r16)			load Vector Z (word)
001a5f3c: 27a60024 addiu r6,r29,0x0024			return value pointer = sp + 0x24
001a5f40: 000210c3 sra r2,r2,0x03			Z / 8
001a5f44: 0c00755e jal 0x0001d578			Get vector*matrix from GTE	fucking MATRIX MATH I want to die. it's not even clear what the matrix is that's being multiplied. kill me.
001a5f48: a7a20014 sh r2,0x0014(r29)			store vector Z
001a5f4c: 8fa4001c lw r4,0x001c(r29)			ΔY
001a5f50: 8fa50018 lw r5,0x0018(r29)			ΔX
001a5f54: 0c00763a jal 0x0001d8e8			Get Angle Value via ArcTan Table Atan(r4/r5)
001a5f58: 00000000 nop
001a5f5c: 8e030054 lw r3,0x0054(r16)			load effect parameter pointer
001a5f60: 00000000 nop
001a5f64: a4620012 sh r2,0x0012(r3)			store angle between units at 0x12
001a5f68: 9602004e lhu r2,0x004e(r16)			stack thinky 
001a5f6c: 00000000 nop
001a5f70: 30420040 andi r2,r2,0x0040			check for 0x40 flag
001a5f74: 1040001c beq r2,r0,0x001a5fe8		branch if no 0x40 flag
001a5f78: 34050080 ori r5,r0,0x0080
001a5f7c: 92030046 lbu r3,0x0046(r16)
001a5f80: 8e040054 lw r4,0x0054(r16)
001a5f84: 3c07801c lui r7,0x801c
001a5f88: 8ce7bf7c lw r7,-0x4084(r7)
001a5f8c: 86080050 lh r8,0x0050(r16)
001a5f90: 00031080 sll r2,r3,0x02
001a5f94: 00431021 addu r2,r2,r3
001a5f98: 00021140 sll r2,r2,0x05
001a5f9c: 00471021 addu r2,r2,r7
001a5fa0: 00481021 addu r2,r2,r8
001a5fa4: 92030047 lbu r3,0x0047(r16)
001a5fa8: 90450004 lbu r5,0x0004(r2)
001a5fac: 00031080 sll r2,r3,0x02
001a5fb0: 00431021 addu r2,r2,r3
001a5fb4: 00021140 sll r2,r2,0x05
001a5fb8: 00471021 addu r2,r2,r7
001a5fbc: 00481021 addu r2,r2,r8
001a5fc0: 92030048 lbu r3,0x0048(r16)
001a5fc4: 90460004 lbu r6,0x0004(r2)
001a5fc8: 00031080 sll r2,r3,0x02
001a5fcc: 00431021 addu r2,r2,r3
001a5fd0: 00021140 sll r2,r2,0x05
001a5fd4: 00471021 addu r2,r2,r7
001a5fd8: 00481021 addu r2,r2,r8
001a5fdc: 90470004 lbu r7,0x0004(r2)
001a5fe0: 080697fd j 0x001a5ff4
001a5fe4: 00000000 nop
001a5fe8: 8e040054 lw r4,0x0054(r16)			load parameter data from r16
001a5fec: 34060080 ori r6,r0,0x0080			p3 = 0x80
001a5ff0: 34070080 ori r7,r0,0x0080			p4 = 0x80
001a5ff4: 0c06a87e jal 0x001aa1f8			Composite frame loading for parameter sets
001a5ff8: 00000000 nop					b.. b... b-branch delay? c-compiler?! COMPILER?!
001a5ffc: 8fbf002c lw r31,0x002c(r29)
001a6000: 8fb00028 lw r16,0x0028(r29)
001a6004: 27bd0030 addiu r29,r29,0x0030
001a6008: 03e00008 jr r31
001a600c: 00000000 nop