Difference between revisions of "Call Begin transfer data to SPU"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
m
m
Line 1: Line 1:
 
<font face='Courier New'>
 
<font face='Courier New'>
   
+
  p1 = ram address to read data from
 +
p2 = num bytes of data
 +
 
 
  00019dd8: 27bdffe8 addiu r29,r29,0xffe8
 
  00019dd8: 27bdffe8 addiu r29,r29,0xffe8
 
  00019ddc: afb00010 sw r16,0x0010(r29)
 
  00019ddc: afb00010 sw r16,0x0010(r29)
Line 6: Line 8:
 
  00019de4: 3c020007 lui r2,0x0007
 
  00019de4: 3c020007 lui r2,0x0007
 
  00019de8: 3442eff0 ori r2,r2,0xeff0
 
  00019de8: 3442eff0 ori r2,r2,0xeff0
  00019dec: 0050102b sltu r2,r2,r16
+
  00019dec: 0050102b sltu r2,r2,r16                  
  00019df0: 10400003 beq r2,r0,0x00019e00
+
  00019df0: 10400003 beq r2,r0,0x00019e00             if requested bytes are larger than 0x7eff0, read that many bytes
 
  00019df4: afbf0014 sw r31,0x0014(r29)
 
  00019df4: afbf0014 sw r31,0x0014(r29)
 
  00019df8: 3c100007 lui r16,0x0007
 
  00019df8: 3c100007 lui r16,0x0007
  00019dfc: 3610eff0 ori r16,r16,0xeff0
+
  00019dfc: 3610eff0 ori r16,r16,0xeff0               if requested bytes are smaller than 0x7eff0, read 0x0007eff0 bytes to SPU
  00019e00: 0c006457 jal 0x0001915c                  [[0001915c - 000191c0]]
+
  00019e00: 0c006457 jal 0x0001915c                  [[Begin transfer data to SPU]]
 
  00019e04: 02002821 addu r5,r16,r0
 
  00019e04: 02002821 addu r5,r16,r0
 
  00019e08: 3c028003 lui r2,0x8003
 
  00019e08: 3c028003 lui r2,0x8003
Line 17: Line 19:
 
  00019e10: 00000000 nop
 
  00019e10: 00000000 nop
 
  00019e14: 14400003 bne r2,r0,0x00019e24            branch if a callback function exists
 
  00019e14: 14400003 bne r2,r0,0x00019e24            branch if a callback function exists
  00019e18: 02001021 addu r2,r16,r0
+
  00019e18: 02001021 addu r2,r16,r0                   return number of bytes
 
  00019e1c: 3c018003 lui r1,0x8003
 
  00019e1c: 3c018003 lui r1,0x8003
 
  00019e20: ac20ad78 sw r0,-0x5288(r1)
 
  00019e20: ac20ad78 sw r0,-0x5288(r1)

Revision as of 04:18, 22 January 2025

p1 = ram address to read data from
p2 = num bytes of data
00019dd8: 27bdffe8 addiu r29,r29,0xffe8
00019ddc: afb00010 sw r16,0x0010(r29)
00019de0: 00a08021 addu r16,r5,r0
00019de4: 3c020007 lui r2,0x0007
00019de8: 3442eff0 ori r2,r2,0xeff0
00019dec: 0050102b sltu r2,r2,r16                   
00019df0: 10400003 beq r2,r0,0x00019e00             if requested bytes are larger than 0x7eff0, read that many bytes
00019df4: afbf0014 sw r31,0x0014(r29)
00019df8: 3c100007 lui r16,0x0007
00019dfc: 3610eff0 ori r16,r16,0xeff0               if requested bytes are smaller than 0x7eff0, read 0x0007eff0 bytes to SPU
00019e00: 0c006457 jal 0x0001915c                   Begin transfer data to SPU
00019e04: 02002821 addu r5,r16,r0
00019e08: 3c028003 lui r2,0x8003
00019e0c: 8c42ad7c lw r2,-0x5284(r2)                SPU callback function
00019e10: 00000000 nop
00019e14: 14400003 bne r2,r0,0x00019e24             branch if a callback function exists
00019e18: 02001021 addu r2,r16,r0                   return number of bytes
00019e1c: 3c018003 lui r1,0x8003
00019e20: ac20ad78 sw r0,-0x5288(r1)
00019e24: 8fbf0014 lw r31,0x0014(r29)
00019e28: 8fb00010 lw r16,0x0010(r29)
00019e2c: 27bd0018 addiu r29,r29,0x0018
00019e30: 03e00008 jr r31
00019e34: 00000000 nop