Editing Talk:PS2 Emulation

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1,406: Line 1,406:
This helps little bit with understanding some hooks (0x01 commands). Reason is probably optimization, and cached regs are written only when they need to. At least that how it looks like from analyzing recompiled code.
This helps little bit with understanding some hooks (0x01 commands). Reason is probably optimization, and cached regs are written only when they need to. At least that how it looks like from analyzing recompiled code.


  r0  = 0x200000000, used when recompiler load something directly from EE memory.
  r13 = unknown (cycles?), always preserved. // When recompiled code run, value is frequently compared to value from negmem F000 and event test is triggered depending on compare result.  
r13 = Cycles. When recompiled code run, value is frequently compared to value from negmem F000 and event test is triggered depending on compare result.  
  r14 = .MIPS_PC_REG
  r14 = r5900_current_pc
  r15 = r5900 pc >> 6, used for cache checks. r15 is also used as temp register when fallback to interpreter, etc.  
  r15 = r5900 pc >> 6, used for cache checks. r15 is also used as temp register when fallback to interpreter, etc.  
  r16 = r5900_v0_reg_lower64
  r16 = r5900_v0_reg_lower64_cached
  r17 = r5900_v1_reg_lower64
  r17 = r5900_v1_reg_lower64_cached
  r18 = r5900_a0_reg_lower64
  r18 = r5900_a0_reg_lower64_cached
  r19 = r5900_a1_reg_lower64
  r19 = r5900_a1_reg_lower64_cached
  r20 = r5900_a2_reg_lower64
  r20 = r5900_a2_reg_lower64_cached
  r21 = r5900_a3_reg_lower64
  r21 = r5900_a3_reg_lower64_cached
  r31 = r5900_ra_reg_lower64
  r31 = r5900_ra_reg_lower64_cached
   
   
  Additionally, Onimusha hooks expect r25 to be r5900 s0, and r28 to be r5900 s3. But i didn't found other parts of recompiler that expect the same. So, for now only values above are confirmed.
  Additionally, Onimusha hooks expect r25 to be r5900 s0, and r28 to be r5900 s3. But i didn't found other parts of recompiler that expect the same. So, for now only values above are confirmed.
Line 1,438: Line 1,437:
  v30 = f24, f25, f26, f27
  v30 = f24, f25, f26, f27
  v31 = f28, f29, f30, f31
  v31 = f28, f29, f30, f31
  Register that handle ACC is taken from different pool (same pool as all vfXX regs when in COP2 mode) with param 32 as reg nr (not real reg, probably part of one of vXX regs).
  Register that handle ACC is taken from different pool (same pool as all vfXX regs when in COP2 mode) with param 32 as reg nr (not real reg, probably part of one of vXX regs).
  Most likely those regs are flushed to memory when COP2 opcode is running, for sure they are flushed when VU0 microprogram is running.
  Most likely those regs are flushed to memory when COP2 opcode is running, for sure they are flushed when VU0 microprogram is running.
Please note that all contributions to PS3 Developer wiki are considered to be released under the GNU Free Documentation License 1.2 (see PS3 Developer wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following hCaptcha:

Cancel Editing help (opens in new window)