Commit Graph

245 Commits

Author SHA1 Message Date
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 b188bdae3c forgot to recycle `del = EleSpec[RSPOpC.rs].B[el];` in VABS 2015-08-11 22:21:51 -04:00
Julio C. Rocha d617d0352a Used centralized config for VCXPROJ files.
TODO: Fix Installer. It's no longer being generated.
2015-07-15 03:37:49 -07:00
unknown 5ad04ed067 newline fixes -- These were my (or Notepad++'s?) fault somehow. 2015-06-23 18:35:21 -04:00
zilmar 16f4780f9a Merge pull request #521 from cxd4/PR_513_to_vectop
[RSP] installed op-code strings matrix to COP2::C2
2015-06-24 07:22:18 +10:00
zilmar 5121db34db Merge pull request #522 from cxd4/PR_513_to_SPECIAL
[RSP] installed op-codes string matrix to SPECIAL
2015-06-24 07:20:46 +10:00
zilmar 8b27c5fd44 Merge pull request #523 from cxd4/PR_513_to_COP2
[RSP] installed op-code strings matrix to COP2
2015-06-24 07:19:50 +10:00
unknown cfc1123378 [RSP] installed primary op-codes matrix 2015-06-23 15:46:02 -04:00
unknown 61ebf68196 [RSP] installed op-code strings matrix to COP2 2015-06-23 15:07:28 -04:00
unknown 4299e4a621 [RSP] installed op-codes string matrix to SPECIAL 2015-06-23 13:51:25 -04:00
unknown 6d215d4846 [RSP] installed op-code strings matrix to COP2::C2 2015-06-23 13:06:36 -04:00
zilmar 4b1ff1983f Merge pull request #513 from cxd4/in_ur_codez_disassembling_ur_ops
Document the RSP op-code matrices + static disassembler debugger code.
2015-06-23 14:34:54 +10:00
unknown ee13bf0c82 Merge branch 'master' into lool
Conflicts:
	Source/RSP/Interpreter Ops.c
2015-06-21 21:03:42 -04:00
unknown 84b099b3e9 Merge branch 'master' into loooool
Conflicts:
	Source/RSP/Interpreter CPU.c
2015-06-21 19:44:29 -04:00
unknown 021a49eeb2 condensed (uint32_t)(uint32_t) since everything is in one line 2015-06-21 19:03:00 -04:00
unknown de2bd58c13 VM?DL, VM?DM, VM?DN, VM?DH: keep multiply sources in single line 2015-06-21 18:39:12 -04:00
zilmar 13508d7fe3 Merge pull request #516 from cxd4/loooooool
centered standard MIPS PC-relative branch stuff to its own func
2015-06-22 07:15:13 +10:00
unknown a93fff0cc6 [RSP] SLT[I][U]: ternary for more static interpreter code 2015-06-21 16:12:18 -04:00
unknown 767756cfb4 centered standard MIPS PC-relative branch stuff to its own func 2015-06-21 15:52:30 -04:00
unknown 3d62b70b49 [RSP] installed SWC2 mnemonics matrix to the command stepper 2015-06-20 00:13:59 -04:00
unknown e503041f5d [RSP] installed LWC2 mnemonics matrix to the command stepper 2015-06-20 00:11:44 -04:00
unknown 56369a4214 [RSP] added, but not installed, vector unit mnemonics matrix 2015-06-20 00:07:19 -04:00
unknown 7cd2641d8b [RSP] added COP2 mnemonics matrix (have not installed yet) 2015-06-20 00:05:49 -04:00
unknown 3dca6c7f5f [RSP] installed COP0 mnemonics matrix to the command stepper 2015-06-20 00:03:22 -04:00
unknown 2335b7b0e7 [RSP] installed REGIMM mnemonics matrix to the command stepper 2015-06-19 23:59:36 -04:00
unknown 55b3edd6d1 [RSP] added SPECIAL mnemonics matrix 2015-06-19 23:47:18 -04:00
unknown 11e5ce1bb3 [RSP] Introduce op-codes string matrix for cleaner debugging code. 2015-06-19 23:45:17 -04:00
zilmar d39b58ae9a Merge pull request #508 from cxd4/looool
[RSP] Ternary, SHMERNARY!  Blasphemous.
2015-06-20 06:49:02 +10:00
unknown fcfad37360 [RSP] junk trailing whitespace cleanups 2015-06-19 13:09:24 -04:00
unknown 2d2b8d3c9d [RSP] Ternary, SHMERNARY! Blasphemous. 2015-06-19 12:44:12 -04:00
unknown 44d8f13f58 [RSP] Continue to use standard int types for multiply operands. 2015-06-19 12:14:03 -04:00
unknown 38c6993be7 [RSP] removed extra type-casting: (uint16_t)-32768 2015-06-19 11:46:59 -04:00
unknown fee77c1aae DRAM address range bounds checking was off by one byte. 2015-06-18 19:51:30 -04:00
zilmar bc78316504 Clean up some of the 64bit projects 2015-05-22 06:07:24 +10:00
zilmar 0c8d500328 Merge pull request #464 from AmbientMalice/patch-18
Change "segement" to "segment".
2015-05-16 11:05:35 +10:00
zilmar 13e62d7354 [64bit] Get nrage and rsp compiling as 64bit 2015-05-16 10:55:23 +10:00
AmbientMalice baf8d3907e Corrected "segment" typo. 2015-05-15 23:36:42 +10: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
LegendOfDragoon 82f614ff2d Fix / Optimize RSP Accumulator Analysis
the & 0xFFC was missing, which caused it to return true when it should
have returned false. This means that LLE audio should be more optimized
now.

I also made it do delay slot, incase the delay slot instruction writes
to accumulator. Minor optimization here.

As for JAL, I made it do break instead of return FALSE because in Battle
For Naboo, it actually does come back and continue an existing
calculation. I think it is only an issue if you do a separate analysis
for the Low Accumulator and Mid/High Accumulators. It's still better to
be safe, just incase I or someone else actually implement a separate
analysis for the Accumulators later down the road.
2015-04-19 20:56:36 -07:00
LegendOfDragoon f22e5125c5 Fix memory leak in RSP
Due to the newer spec design in PJ64 2.x, CloseDLL() doesn't get called
as often. So there are instances where it calls AllocateMemory()
multiple times without ever calling FreeMemory().
2015-04-19 19:16:10 -07:00
Lioncash bdd7f0e48f RSP: Fix a typo in Compile_ADDI 2015-04-16 23:33:35 -04:00
LegendOfDragoon eda19cfc5e Fix regression in GetInstructionInfo
I previously made a commit to fix a reordering issue, but did not
realize it needed that COPO_MF_Instruction flag for branching. This
should fix the Ogre Battle issue.
2015-04-14 22:07:45 -07:00
zilmar 11bb35f024 [RSP] 1.7.0.13 2015-03-29 17:38:30 +11:00
unknown b890afe78b [RSP] some scope and spacing formatting clean-ups 2015-03-18 00:50:48 -04:00
zilmar 080f7dfc17 Update version Number:
Glide64: 2.0.0.4
Project64: 2.2.0.2
RSP: 1.7.0.12
Nrage: 1.7.0.12
2015-03-10 18:36:58 +11:00
unknown cb9f9e2b56 keeping $0 overwrite prevention to just the CPU interpreter loop
Tried my best to make sure I didn't miss any op-codes.  (Ctrl+F searching for "!= 0" and "== 0" throught the file shows me that I didn't.)  If I did miss any op-codes, it's no bug, just remaining extra unnecessary checking for zero.
2015-03-08 20:20:05 -04:00
unknown 1772f1467c Prevent remaining possibilities of overwriting $zero in RSP.
In the RSP, MFC0, MFC2, and CFC2 were all susceptible to overwriting $zero.  Some of us have tried waiting for some games to use handcoded assembly in an attempt to purposely overwrite $zero in their microcode (to throw off emulators), but so far what few occurrences there have been of this have not included using those 3 opcodes.  Since it was decided to centralize the security of register $zero in the main R4300 CPU, it was decided to do so in the RSP as well.
2015-03-08 20:17:18 -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 f5e36d8356 Merge pull request #146 from cxd4/yo_dawg_i_herd_u_liek_stdint
Redo pull request #92
2015-02-26 16:20:33 +11:00
no 51c18b755b included LB to apply to the last commit 2015-02-26 00:15:26 -05:00
no 76da145c2a declare and initialize all in one line 2015-02-26 00:02:38 -05:00
unknown c323eda4bb (RSP) exact size types for scalar unit emulation and signedness matching 2015-02-25 22:57:19 -05:00
unknown 39865b8025 type size cleanups to RSP memory emulation 2015-02-25 22:45:33 -05:00
unknown 637b022f40 Introduce portable, standard integer types to RSP CPU. 2015-02-25 22:21:43 -05:00
zilmar e51ec31e65 Update versions
Project64: 2.2.0.1
Glide64: 2.0.0.3
RSP: 1.7.0.11
Nrage: 2.4.0.1
RDB: 2.2.2
2015-02-22 19:43:15 +11:00
Emmet Young 783f2d0668 Slight mistake in Version.h for DLL's, was setting VFT_APP instead of VFT_DLL 2015-02-22 00:45:00 +11:00
zilmar 662e3efa27 Update project settings for visual studio 2013 2015-02-20 20:09:05 +11:00
zilmar 436888dd6b Update version numbers and create a package zip 2015-02-19 19:03:33 +11:00
zilmar 6be9e796ee Merge pull request #100 from LegendOfDragoon/master
Fix mistakes in IsNextInstructionMmx() and UseRspFlags()
2015-02-19 14:24:27 +11:00
LegendOfDragoon 8aa40e4119 Add some missing instructions to UseRspFlags()
This change should get rid of some message box popups when enabling Show
Compiler Errors.
2015-02-18 18:34:32 -08:00
LegendOfDragoon 36e5d8d353 Fix problem with IsNextInstructionMmx()
It's supposed to check the next instruction, which is PC, rather than
the current instruction which is CompilePC. This mistake is what caused
graphical errors in RE2.
2015-02-18 18:18:27 -08:00
zilmar 8a6c2b2555 RSP.vcproj: Remove some of the unused files 2015-02-19 08:15:06 +11:00
zilmar 5a288052b8 fix version string include 2015-02-18 07:47:41 +11:00
Emmet Young 4a8986d416 Hopefully add correct files for Visual Studio 2008 2015-02-17 21:07:15 +11:00
Emmet Young e540a7fdac Old common version.cpp and version.h is no longer required, remove it. 2015-02-17 21:00:44 +11:00
Emmet Young 7a6a22b8ec RSP Use Version.h version info in resource file 2015-02-17 20:45:57 +11:00
zilmar 975ec2dce8 Merge pull request #93 from cxd4/so_i_herd_u_liek_TargetName_and_TargetPath
Fix linker warning MSB8012 in VS2013 for RSP module.
2015-02-17 08:24:22 +11:00
unknown 5975976d82 matched VS2013 RSP rel to RSP dbg, glide rel and glide dbg 2015-02-16 15:41:04 -05:00
unknown d0c7798e08 removed unnecessary MFC dependencies from RCs 2015-02-13 12:09:02 -05:00
unknown 6b55726e59 unified RSP compiler N/A operand specifiers to a single macro 2015-02-02 15:10:54 -05:00
zilmar b10487ee07 Merge branch 'master' of https://github.com/project64/project64 2015-02-02 17:12:09 +11:00
LegendOfDragoon 0f1010379f Implement a quick fix for Instruction Reordering
Instruction Reordering broke Mia Hamm and possibly other games too. The
easiest way to fix the problem was to simply disable reordering for
specific cases that were never accounted for.
2015-01-31 17:23:43 -08:00
zilmar e116c9e692 Merge branch 'master' of https://github.com/project64/project64 2015-02-01 06:30:53 +11:00
zilmar 9eceed0fef #pull request 42 2015-02-01 06:27:27 +11:00
LegendOfDragoon 1741623482 Fixed some mistakes in GetInstructionInfo
Not only were certain instructions missing, but also some were in the
wrong place or had the wrong attributes.

Also VSUB needed to be added to IsNextInstructionMmx.
2015-01-31 04:35:43 -08:00
project64 15e389cbe2 Merge pull request #26 from LegendOfDragoon/master
Improve Recompiler Analysis for Vector Destination and Accumulators
2015-01-31 18:10:04 +11:00
zilmar 8e715efe44 Cleaned up some warnings in the rsp 2015-01-29 19:57:13 +11:00
project64 abca1bd56f Merge pull request #30 from cxd4/master
fixed 17 compiler warnings about RSP "nameless struct/union" cases
2015-01-29 14:45:54 +11:00
Nicholas 862eb7c48b Add support for Visual Studio 2013 2015-01-27 16:07:44 +11:00
unknown 5877daf7b3 isolated, nameless union in struct SHUFFLE, named union SHUFFLE 2015-01-25 14:22:18 -05:00
unknown 22f13e1739 offset operates w/ base; immediate operates w/ rs (fixes nothing) 2015-01-25 14:07:48 -05:00
unknown 66850bf553 isolated, nameless union in struct OPCODE, named union OPCODE
There were no other members of struct `tagOPCODE` besides one nameless union, so, to fix some nameless union compiler warnings, I deleted struct tagOPCODE and named the nameless union, union tagOPCODE.  Since "OpCode.h" is #include'd 9 times across the RSP source, technically this commit fixes 9 warning messages, even though it's really just 1 warning.
2015-01-25 13:58:12 -05:00
LegendOfDragoon ab30871f57 Improve Vector Destination Analysis
Some functions weren't implemented and others were implemented
incorrectly. There are more potential optimizations to implement for the
analysis.
2015-01-24 18:33:34 -08:00
LegendOfDragoon e8ad2bbc5e Add more instructions to Accumulator analysis
Some of these typos confused me when I enabled Show Compiler Errors.
2015-01-24 15:39:54 -08:00
unknown 5f9605ec04 Merge branch 'master' of https://github.com/project64/project64 2015-01-24 16:23:10 -05:00
unknown fd564c802a RSP recompiler cheating expects a RSP function address: p_func. 2015-01-24 16:21:39 -05:00
Nicholas 1e1249903d Fix re order instructions for quake II with lle graphics 2015-01-25 08:07:38 +11:00
unknown 87aa0faf17 removed old explicit type casts (now calling strict func addr arrays) 2015-01-24 16:01:50 -05:00
unknown 587dbbb3ff func pointers stored in arrays of func pointers (fixes 720 warnings) 2015-01-24 15:39:18 -05:00
Nicholas cb9d25fc5a Deprecate `Indx` functional LUT on loop count in RSP interpreter by cxd4 2015-01-24 13:17:31 +11: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
Nicholas 2dd4e99ed6 Fix a couple games in RSP interpreter: CFC2 sign-extends $vcr by cxd4 2015-01-23 07:47:23 +11: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 02fe2e7241 More Fixes
The possibility of the RSP instruction at address 0xFFC being JR was
never accounted for. This fixes Wave Race and Star Wars - Shadow of the
Empire.

The accumulator analysis was wrong, which broke games like Mario No
Photopie.
2015-01-11 19:49:04 -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
zilmar 48d8925a80 Project64: Clean up external release to be beta release 2013-03-22 16:47:20 +11:00
zilmar 627f9de997 RSP: 1.7.0.9 2013-02-20 05:46:35 +11:00
zilmar fc908b7b7d RSP: Fix some delay slot warnings 2013-02-20 05:39:47 +11:00
zilmar c8394fb473 RSP: 1.7.0.8 2013-02-13 07:10:16 +11:00
zilmar 1ff9338e4c RSP: Fix clean up log files 2013-02-11 19:29:14 +11:00
zilmar f5290c7895 RSP: JumpTableSize and RomOpen 2013-02-11 19:28:49 +11:00
zilmar 14352768ae RSP: add RomOpen and JumpTableSize Setting 2013-02-11 19:27:49 +11:00
zilmar 663b784555 RSP: 1.7.0.7 2013-01-30 06:09:45 +11:00
zilmar ad22fe90fe RSP: Fix bug in RSP MF 2013-01-30 06:08:57 +11:00
zilmar 0838eef358 RSP: 1.7.0.6 2013-01-29 22:33:02 +11:00
zilmar 36def4094a RSP: Can exit after jump from MT/MF Cop 0 2013-01-29 22:29:50 +11:00
zilmar 38ec949a6e RSP: Fix & 0xFF debug warning 2013-01-29 22:27:58 +11:00
zilmar 8b41656bad RSP: Move logs to log folder 2013-01-29 22:27:13 +11:00
zilmar 2c78b14b47 RSP: Add delay slot done 2013-01-29 21:45:45 +11:00
zilmar a05ff4f3c2 RSP: For Analysis, add flag ops and MF CP 0 2013-01-29 21:44:59 +11:00
zilmar 6d39bb2246 RSP: Add Single step to Interpreter 2013-01-29 21:43:10 +11:00
zilmar c522a03901 RSP: 1.7.0.5 2013-01-26 09:36:47 +11:00
zilmar a5e2f43c17 RSP: Only use semaphore if not hle code 2013-01-26 05:25:03 +11:00
zilmar c12dc31a61 RSP: 1.7.0.4 2013-01-22 19:54:52 +11:00
zilmar 12893b747a RSP: write result in one operation 2013-01-22 16:17:34 +11:00
zilmar 008f02919c RSP: add an exit to RSP when read from MF status multiple times 2013-01-16 06:03:11 +11:00
zilmar 5bba8a011a RSP: implement SP_SEMAPHORE_REG 2013-01-12 08:18:19 +11:00
zilmar d23d06fa98 Renamed _int64 to __int64 2012-11-06 19:23:59 +11:00
zilmar 031575fd7a added an extra bracket to make sure RSP_SW_DMEM is correct 2012-09-29 18:11:30 +10:00
Emmet Young 917417eb0f RSP:
Set bitmasks for two calculations in RSP_SW_DMEM, to stop errors in Banjo Kazooie when in debug mode for RSP. (Was attempting to cast to a smaller data type, causing a loss of data)
2012-09-29 16:15:41 +10:00
zilmar fe0502a65b RSP now outputs to common plugin dir 2012-09-27 13:43:54 +10:00
zilmar 89bc4087ef updated zlib, Moved and cleaned up the project settings in to property sheets also cleaned up some warnings 2012-09-26 09:23:20 +10:00
zilmar 86397d912c commit the local changes I had on my hard disk 2012-09-22 15:53:39 +10:00
zilmar 49d660df78 git-svn-id: https://localhost/svn/Project64/trunk@46 111125ac-702d-7242-af9c-5ba8ae61c1ef 2010-10-29 03:20:25 +00:00
zilmar dae4e73c89 git-svn-id: https://localhost/svn/Project64/trunk@45 111125ac-702d-7242-af9c-5ba8ae61c1ef 2010-10-23 18:53:01 +00:00
zilmar 3e0e336a52 git-svn-id: https://localhost/svn/Project64/trunk@20 111125ac-702d-7242-af9c-5ba8ae61c1ef 2009-12-28 22:22:50 +00:00
zilmar e1f5d9a555 git-svn-id: https://localhost/svn/Project64/trunk@19 111125ac-702d-7242-af9c-5ba8ae61c1ef 2008-12-11 10:31:10 +00:00
zilmar 043a755f80 git-svn-id: https://localhost/svn/Project64/trunk@18 111125ac-702d-7242-af9c-5ba8ae61c1ef 2008-12-04 20:40:48 +00:00
zilmar dd6e2c2b82 git-svn-id: https://localhost/svn/Project64/trunk@17 111125ac-702d-7242-af9c-5ba8ae61c1ef 2008-12-04 19:15:55 +00:00
zilmar 5ff8e00c28 git-svn-id: https://localhost/svn/Project64/trunk@15 111125ac-702d-7242-af9c-5ba8ae61c1ef 2008-12-04 10:41:51 +00:00
zilmar 361bdcaa84 git-svn-id: https://localhost/svn/Project64/trunk@14 111125ac-702d-7242-af9c-5ba8ae61c1ef 2008-12-01 18:19:49 +00:00
zilmar c99c1d6a6f git-svn-id: https://localhost/svn/Project64/trunk@3 111125ac-702d-7242-af9c-5ba8ae61c1ef 2008-11-14 20:47:53 +00:00