Commit Graph

55 Commits

Author SHA1 Message Date
LegendOfDragoon d656af4068 Implement Recompiler version of VNE 2015-10-02 13:05:24 -07:00
LegendOfDragoon 67b4420097 Implement Recompiler version of VEQ 2015-10-02 13:02:03 -07:00
LegendOfDragoon c95d1598e4 Implement Recompiler version of VGE 2015-10-02 12:52:14 -07:00
LegendOfDragoon 9834665716 Implement Recompiler version of VLT 2015-10-02 12:37:27 -07:00
zilmar 83cffca119 Merge pull request #632 from cxd4/bad
`if` is not a function.
2015-09-30 10:55:28 +10:00
unknown fe442fca6e `if` is not a function.
fixes #628
2015-09-25 17:26:27 -04:00
LegendOfDragoon 7ea0dd0311 Improve Compile_Vector_VRSQH
RSP_ACCUM needs to be written to before RSP_Vect. Also optimized the
code for writing to RSP_ACCUM.
2015-09-25 05:00:41 -07:00
LegendOfDragoon 0102762456 Improve Compile_Vector_VRCPH
The issue is that it was writing to RSP_Vect before writing to
accumulator. Also removed minor overhead, since Recp.UHW[0] always = 0.
2015-09-25 04:45:00 -07:00
LegendOfDragoon aebc9fa8b0 Implement VRCPL in RSP Recompiler 2015-09-25 04:26:42 -07:00
LegendOfDragoon 97857ee3cd Implement VRCP in RSP Recompiler 2015-09-25 04:11:49 -07:00
LegendOfDragoon 466c03e27d Ensure R0 cannot be written to in LHU 2015-09-24 15:33:07 -07:00
LegendOfDragoon 8bede83fd4 Ensure R0 cannot be written to in LBU 2015-09-24 15:31:45 -07:00
LegendOfDragoon fb8db802b3 Ensure R0 cannot be written to in LW 2015-09-24 15:30:34 -07:00
LegendOfDragoon b6721d1cdc Ensure R0 cannot be written to in LH 2015-09-24 15:29:32 -07:00
LegendOfDragoon 3a5569ce9d Ensure R0 cannot be written to in LB
This happens in Castlevania and OOT, although I'm not sure if the code
ever gets reached.
2015-09-24 15:13:21 -07:00
zilmar 6f2bb5cec6 Merge pull request #616 from LegendOfDragoon/master
Improve Compile_Cop0_MF
2015-09-24 09:50:34 +10:00
LegendOfDragoon aa70b43ffc Implement case 4 in Compile_Cop0_MF 2015-09-20 14:57:45 -07:00
LegendOfDragoon b6a8c54fde Implement case 7 in Compile_Cop0_MF 2015-09-20 13:21:26 -07:00
unknown c04f856b79 Attempt the POSIX `ssize_t` type for signed addr compares. 2015-09-17 19:58:49 -04:00
LegendOfDragoon 67d2fc95a3 Optimize LHU in RSP Recompiler 2015-09-07 15:10:19 -07:00
LegendOfDragoon e0bd5442e4 Implement RegConst in Compile_LBU 2015-09-07 15:05:26 -07:00
LegendOfDragoon 237b21a596 Optimize LW in RSP Recompiler 2015-09-07 14:36:42 -07:00
LegendOfDragoon 48baf1df7c Optimize LH in RSP Recompiler
Star Wars Battle For Naboo LLE graphics uses unaligned LH
2015-09-07 13:48:51 -07:00
LegendOfDragoon e9c1c23120 Implement RegConst in Compile_LB 2015-09-07 13:39:41 -07:00
LegendOfDragoon 48fcced3bc Optimize ADDIU in RSP Recompiler
The second part happens in Hydro Thunder LLE audio.
2015-09-07 12:18:28 -07:00
LegendOfDragoon 2ff2165bd9 Optimize ADDI in RSP Recompiler
No need to add 0 to a variable. I've seen
ADDI V0, V0, 0x0000 in Super Smash Bros audio microcode.
2015-09-07 11:49:37 -07:00
LegendOfDragoon 720d8c8dd7 Implement SLTIU in RSP Recompiler 2015-09-07 11:28:49 -07:00
LegendOfDragoon 19f34eed4e Implement SLTI in RSP Recompiler 2015-09-07 11:27:07 -07:00
unknown fcfad37360 [RSP] junk trailing whitespace cleanups 2015-06-19 13:09:24 -04:00
LegendOfDragoon 882b0f5841 Change CompilerWarning to DisplayError in Cop0_MF
In RSP interpreter, it is DisplayError and I feel like it's an important
message, so it should be DisplayError in RSP recompiler as well, in my
opinion.
2015-04-19 21:20:10 -07:00
LegendOfDragoon 603df8e167 Add 2 cases in Cop0_MF for RSP Recompiler
Case 0 and Case 1 was missing in RSP Recompiler. Jet Force Gemini LLE
GFX uses case 1.
2015-04-19 21:11:47 -07:00
Lioncash bdd7f0e48f RSP: Fix a typo in Compile_ADDI 2015-04-16 23:33:35 -04:00
LegendOfDragoon 7f5aa6b521 Implement MMX version of VABS in RSP Recompiler 2015-03-01 03:39:14 -08:00
LegendOfDragoon b4dbc570a5 Small optimization to VSUB 2015-03-01 03:33:17 -08:00
LegendOfDragoon 9706484850 Small optimization to VADD 2015-03-01 03:31:57 -08:00
LegendOfDragoon 9bb8ca9b3c Small optimization to VMUDH 2015-03-01 03:25:41 -08:00
LegendOfDragoon 9e4f3d2e0f Small optimization to VMUDL 2015-03-01 03:18:17 -08:00
LegendOfDragoon fa4fcc9d93 Small optimization to VMULF 2015-03-01 03:07:16 -08:00
LegendOfDragoon 3b208a79cd Implement recompiler version of Cop2_CT 2015-03-01 02:59:10 -08:00
LegendOfDragoon bdce1a41ef Implement recompiler version of Cop2_CF 2015-03-01 01:52:46 -08:00
zilmar 8e715efe44 Cleaned up some warnings in the rsp 2015-01-29 19:57:13 +11:00
unknown fd564c802a RSP recompiler cheating expects a RSP function address: p_func. 2015-01-24 16:21:39 -05:00
unknown 87aa0faf17 removed old explicit type casts (now calling strict func addr arrays) 2015-01-24 16:01:50 -05:00
Nicholas a43207f52b RSP: cheat for unaligned LH, LLE gfx in f-zero X and wave race 2015-01-23 23:10:20 +11:00
LegendOfDragoon 55fc2a6255 Correct 2 mistakes I made in SQV in RSP recompiler
It may be true that this SQV edge case only seems to happen when
isRegConst = true, I forgot to account for the possibility that GPR
Constant Analysis could be disabled.

I also just noticed that I goofed with the non-sse shuffling ;/ . The
registers weren't in order.
2015-01-22 14:53:16 -08:00
LegendOfDragoon 448b0ed6be Correct a mistake I made in LDV in RSP recompiler
I totally forgot that LDV handles elements differently than SDV. I added
a fallback to deal with unusual elements and added an alert to notify
that it exists in a particular game. I removed the & 0xF since that's
not needed. My previous change caused Stunt Racer 64 to have audio
issues. It should now be fixed.
2015-01-22 14:05:34 -08:00
LegendOfDragoon 479b201ddc Implement edge case for LDV, fix 2 typos as well.
For LDV, it's the same deal as SDV. In WDC, RSPOpC.del could = 12, which
would result in a negative number when doing 16 - RSPOpC,del - 8.
2015-01-14 01:48:47 -08:00
LegendOfDragoon 5df4a806b4 Optimized a few instructions
Optimized VOR for games like Perfect Dark
Implemented VNAND, VNOR, and VNXOR for recompiler
Minor change in SQV
2015-01-12 14:19:41 -08:00
LegendOfDragoon 1cb03b4120 Matched RSP interpreter more closely
I have only seen the edgecase for SQV happen when
IsRegConst(RSPOpC.base) == TRUE. Changing SQV fixed Telefoot / Mia Ham.

I optimized VAND, for games like Kirby64.
2015-01-12 11:43:07 -08:00
LegendOfDragoon 43c6017ddb Improve Accuracy
Fixing SW allows a lot more games to work. Fixing LW fixes games like
WDC and improves performance somehow. Fixing VMRG fixes certain bugs,
like Kirby 64's intro.
2015-01-11 19:35:43 -08:00