Commit Graph

808 Commits

Author SHA1 Message Date
refraction 9541e502c2 A few minor counter changes to prevent scenarios where branch targets could be missed on counter resets/target changes, also a situation where the vsync counter could cause repetative branch tests to be triggered in quick succession on cycle counter overflow
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1140 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-06 23:51:27 +00:00
Jake.Stine 2bf04882e3 Some code cleanups for the new vtlb optimization (no intentional functional changes -- just deleted unused code and converted all of vtlb to the new emitter syntax. Let's hope I didn't typo anything!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1138 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-06 12:37:37 +00:00
Jake.Stine 1cf028ccf5 Optimized vtlb direct path memory operations using some crafty asm code. Expect 2-3% speedups in most things, and perhaps more in some FMVs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1137 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-06 02:15:43 +00:00
cottonvibes 6a075aca03 pcsx2:
- PCSX2 would repetitively call CDVDopen if loading an elf file and your cdvd plugin didn't have an ISO already pre-loaded. Basically I had to switch to CDVDnull whenever I wanted to load an elf... well not anymore xD

microVU:
- Implemented the VI regs thing where if an opcode tried to access vi regs 16~31, the VU's should return vi0~15 (viReg & 0xf); technically it should never happen, but from my tests the BIOS seems to do this... so maybe some rare games do it too... 
- Our VIF code apparently uses VU cycles for some stuff, so I now update the cycles variable VIF relies on.
- Minor Optimizations

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1136 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-05 02:25:48 +00:00
Jake.Stine a7cbcae4be Small speedup for the EE/IOP recompilers, by removing the legacy limit on the number of recompiled blocks (was causing recompilers to reset the code buffers way more than necessary).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1135 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-05 01:26:18 +00:00
sudonim1 002b9af006 This is why a type safe emitter is important.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1134 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-04 20:14:37 +00:00
Jake.Stine 3647a635bc Apply recent Iop HwRegister handler changes to the EE's mapping [EE has direct access to IOP memory and registers through a special tlb mapping, intended for ps2dev debugging, and generally used by bios only during boot-up).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1133 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-04 19:04:21 +00:00
sudonim1 db41e52940 Apparently the MSB of integer register specifications in VU micro instructions is ignored, making the upper 16 registers mirror the lower 16. Changed all relevant instructions to reflect this.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1132 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-04 18:21:44 +00:00
Jake.Stine 8ab8adabf1 Improved handling of jNO_DEFAULT so that it performs a sanity check in Devel builds [currently applies to Pcsx2 only since we don't have a standard define macro for devbuild in the plugins].
Cleaned up and abbreviated logging for the new IOP HwRead/Write handlers.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1131 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-04 14:12:21 +00:00
arcum42 b02d6a19dd ZeroPad: Revert the changes to the Windows files in ZeroPad, and ifdef off the changes in the common areas, as the Windows version of ZeroPad is clearly only working by voodoo and bailing wire on Windows. (Note: unable to reproduce ZeroPad working properly in any revision [including playground days] on any version of Windows available. Likely because I don't have any poultry handy to sacrifice.)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1130 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-04 10:31:18 +00:00
Jake.Stine 66a8c03ded Fix bug from r1116 [essentially a misplaced jNO_DEFAULT directive].
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1129 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-04 02:06:35 +00:00
arcum42 3a7865ac3f ZeroPad: Patch to fix a bug introduced in r1125.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1128 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-03 19:30:38 +00:00
arcum42 ee3eca5b34 Zeropad: Clean up the code so that if I have to go back into it, it's easier to read.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1127 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-03 12:19:58 +00:00
arcum42 5f35cf1376 ZeroPad: Commit bolche's Analog control code, ifdeffed out, so I don't forget to add a gui for it and enable it some day.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1126 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-03 11:49:25 +00:00
arcum42 94c006efd2 ZeroPad: Apply the multiple key patch in issue 197 to ZeroPad. Currently Linux only.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1125 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-03 11:09:15 +00:00
arcum42 8504f4e9bd Atn Jake: Please review. Quick patch to counter problems reported with r1116.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1123 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-03 05:28:13 +00:00
arcum42 a65543399c Linux: Iron out a few issues with the configuration dialog in Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1122 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 14:36:46 +00:00
arcum42 74ebe985f6 Plugins: Fix the dialog boxes on FWnull & USBnull so the buttons work. Fix inconsistant version numbers. Delete a stray file.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1121 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 14:14:34 +00:00
arcum42 92ac589187 CDVDiso: Now uses automake, is C++, isn't split into two files, and doesn't change around the working directory on us.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1118 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 13:42:13 +00:00
arcum42 0250605329 Linux: Quickly hack the new files into the main makefile.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1117 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 11:03:32 +00:00
Jake.Stine 56545f0b7d *Experimental* Made new IopHwRead and IopHwWrite from scratch, in pre-preparation for a new lookup-based IOP memory manager. Could be some lingering bugs or typos. :/
Win32/vcproj: Re-structured the folder layout of the project.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1116 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 10:48:41 +00:00
arcum42 b560f325ae Finish removing VU Skip from Linux, and fix a few compiler warnings left over from the work on CDVD.cpp.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1115 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 09:31:14 +00:00
Jake.Stine a69cfcc464 Removed VU-Skip [helps simplify the frameskipper logic] -- Use the VU Cycle Stealer hack instead for better, faster, more stable speedups of the VU1 unit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1114 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 09:04:47 +00:00
cottonvibes f8f4c7f136 microVU: fixed some bugs in stall calculations.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1113 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 06:13:43 +00:00
arcum42 df31bfc51a Lets get the null plugins working in Windows again...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1112 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 05:27:35 +00:00
arcum42 465f35169f And that's dev9, which was about as barebones as CDVDnull.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1111 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 04:39:05 +00:00
arcum42 6cc85d6050 And that's CDVDnull. Given how barebones this plugin is, it's closer to making a null plugin then cleaning it up...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1110 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 04:12:29 +00:00
arcum42 456672168e And there goes SPU2null. This one deserves a lot more work, though. A real gui and backporting all the changes I made to ZeroSPU2, for starters. (And again, Windows may or may not compile for it. Looking at the Visual C++ file, I'm pretty sure it already wasn't compiling.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1109 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 03:41:03 +00:00
arcum42 48c235830b I don't even wan to know how these got deleted during the commit...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1108 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 02:45:13 +00:00
arcum42 6fb0070c33 That's USBnull down. (And yes, I'm aware the dialog boxes for USBnull & FWnull are incorrect. For now, I just told it to use the incorrect one that was already in the plugin.)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1107 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 02:29:48 +00:00
arcum42 f64723951e Helps if I have FW.cpp in there. :(
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1106 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 00:56:56 +00:00
arcum42 74e0e786b7 Begin work on renovating the Null plugins. (On the Linux side, anyways, though some of that will spill over to the Windows side.) Starting with FWnull.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1105 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-02 00:51:17 +00:00
Jake.Stine 45bb6f3d2f Bugfix for recent cleanups: SetResultSize was defined with different behaviors in two separate files, without being static. Depending on the whims of the wind, MSVC would sometimes pick the one from CDROM and link it into CDVD, overriding CDVD's version, and resulting in complete emulation failure.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1103 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-01 12:44:18 +00:00
arcum42 bc9e0b08ad Some work on CDVD.cpp. Slight change to the branch statements in Interpreter.cpp. Restore a change to Pcsx2Defs.h that got reverted.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1102 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-01 11:06:52 +00:00
cottonvibes b6ba2f050f minor microVU changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1101 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-01 10:12:44 +00:00
Jake.Stine 17caa515ac Rushed my prev commit. Here's some basic thing, only much less broken and crappy. (fixes double-spaced emuLog.txt file contents)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1099 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-01 02:53:09 +00:00
Jake.Stine e24851927a Fixed some 'too many newlines' bugs in the Console namespace.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1096 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-01 02:12:45 +00:00
arcum42 5edb195282 Committing various cleanups I'd put aside at one point or another...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1095 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-05-01 01:13:37 +00:00
Jake.Stine 1a1d51308c Fixed a typo in the SIO2 hardware read interface: SIO2_getSend1 and getSend2 had inverted switch cases (probably been there for years).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1094 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-30 21:28:54 +00:00
Jake.Stine d14259b8b4 *experimental* Added forced block splitting at 4k code boundaries in PS2 memory. This fixes issues with frequent recompilation of certain uncounted manual blocks, and also allows for us to greatly simplify the memory protection and recompiler block management code, but *may* have performance penalties under specific conditions. So I've added a verbose log message to Devel builds so that we can look for any problem games that might invoke more than their fair share of tiny block splits.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1093 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-30 08:33:51 +00:00
Jake.Stine 3af9acc01d Darned fungly header file dependencies, broke compilation in dev/release builds. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1092 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-30 01:32:39 +00:00
Jake.Stine 9513be5476 Reverted BTS due to unexpected complications, but retained a minor optimization we developed during the BTS experiment. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1091 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-30 01:16:25 +00:00
refraction 7dfc4c9ea2 Some unpack fixes/changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1090 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 21:50:48 +00:00
Jake.Stine a2fd88d952 Fixed bugs in BTS instruction emitters, and working on fixing bugs in BTS memory protection.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1089 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 20:55:13 +00:00
arcum42 d8617c1ee8 Get rid of duplicated code in PS2Etypes.h. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1088 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 11:47:05 +00:00
Jake.Stine e81fbc728d Fixed a bug in the cpu mhz detection introduced in the prev revision, and improved the algo to be much quicker and generally more accurate than before (and with luck AMDs will agree!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1087 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 11:13:17 +00:00
Jake.Stine 41079415fa Improved SSE detection:
* SSE3 detection via cpuid implemented.  [fixes Linux -- the force_sse3 option should no longer be needed!]

 * Instruction tests are now done for SSE3, SSE4, and SSE4.1 to confirm cpuid results (I doubt this is necessary, but the old code did it for SSE3, so I figured I'd keep it and log results anytime an inconsistency is detected).

 * SSE4.2 and SSE4a detection added.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1086 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 10:10:33 +00:00
Jake.Stine 6e82c77e92 Bugfix for r1083. [Don't ask me what I was thinking when I wrote >>10 instead of >>12]
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1085 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 08:30:33 +00:00
arcum42 ad7aa893e9 All right, now that's just silly... (Fix Linux compilation.)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1084 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 05:07:18 +00:00
Jake.Stine 31f0be6eb8 Merged drk||Raziel's "BTS Manual Protection" enhancement for the vtlb into /trunk, and combined it with Pseudonim's "Manual Block Clear" enhancement for an ideal two-phase protection system.
Most things should be a bit faster with this new system.  The system is more balanced than the previous one, in that it provides a better overall performance across most games, but some specific FMVs (like Disgaea 2's) will be a bit slower.  On the other hand, others like DQ8 and Kingdom Hearts 2 FMVs get a big speedup.  Almost all in-game stuff should be either the same or faster now.

Set a bunch of ignores for TortoiseSVN users, as suggested in Issue 166.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1083 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-29 04:24:46 +00:00