Commit Graph

2032 Commits

Author SHA1 Message Date
cottonvibes a5272f8dc9 Wrote a vif 'unpack' packet recompiler.
Compatibility is probably the same as the newVif interpreter code, but its faster.

Speedwise its similar to the old-vif unpack code (the one currently enabled by default in pcsx2).
Its about 0~2% slower on my machine from my limited testing, but I assume people with SSE4.1 cpus might have a lot better results since I added a lot of sse4.1 optimizations...
The SSE4.1 optimizations were also ported to the newVif interpreter code.

Also the "filling mode" should be fast compared to the old-vif unpack code since its sse optimized, but most games don't use this mode so it hasn't been tested much...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2358 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-19 10:00:40 +00:00
Jake.Stine 4c2a7ae39f Remove some assertion and log spams in devel builds.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2357 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-18 17:57:18 +00:00
Jake.Stine 79e07edc9f Minor optimizations to newVifUnpack.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2356 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-18 17:49:04 +00:00
ramapcsx2 89b2ecb4fa Bring the main gui on top when suspending emulation.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2355 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-18 16:33:09 +00:00
arcum42 7af22987b0 Various bizarreness to get Linux working again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2354 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-17 22:27:02 +00:00
Jake.Stine 820c9c10ee Bugfixed bad behavior when using BiosSkip and doing interface-ish things while the stub was running.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2353 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-17 14:04:09 +00:00
Jake.Stine f34f3ac0c4 * Significant optimizations to the VIFunpack interpreter (employs templated maskmode and cyclesize constants).
* Minor optimizations to newVifUnpackSSE, and more optimization notes.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2352 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-17 13:59:01 +00:00
cottonvibes 2b3b60511b newVif: some minor changes and cleanups...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2351 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-16 23:24:42 +00:00
Jake.Stine 747de4ebde Resolves Issue 502 : FFXII vid hangs in release mode builds due to PCH being enabled on IPU.cpp.
This is actually the second time around on this.  Same problem happened in the Playground days, with the same fix. ;)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2350 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-16 14:22:40 +00:00
cottonvibes e76e1c66db newVif: optimizations, cleanups, and bug fixes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2349 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-16 02:27:53 +00:00
ramapcsx2 1b4de736cc GSdx:
- Decrease upscale glitches in dx10 (dx9 later) by hacking the UV coordinate system in borderline cases.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2348 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-16 00:22:01 +00:00
Jake.Stine b3fead5dc9 * Disable newVifUnpack, which I left enabled in the prev commit (it's not ready yet!)
* Added feature to align call targets for EErec functions and blocks on P4's and AMDs, and pack them on Core2/i7's.
 * Fixed some svn:native props.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2347 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-15 20:46:30 +00:00
Jake.Stine b5f643950c Did some optimization and bugfixing on the new VIF unpacker. :) (it's still a bit slower than the current/old one though)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2346 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-15 17:14:57 +00:00
cottonvibes 79ee87a90f experimental new vif unpack rewrite... (currently disabled and slow)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2345 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-15 08:21:58 +00:00
Jake.Stine dbb6898cd6 Disable VU recompiler options for machines without SSE2.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2344 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-14 16:54:36 +00:00
Jake.Stine f60ed711cc Skip Bios hack works in EE interpreters now.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2343 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-14 14:36:13 +00:00
Jake.Stine 1fc2fd2736 w32pthreads: typo fix in pthread.h for CLEANUP_C mode (unused in PCSX2 since we rely on SEH builds exclusively)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2342 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-14 14:35:26 +00:00
arcum42 9a972ccc02 The usual Linux stuff.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2341 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-14 13:31:50 +00:00
Jake.Stine fa95c0f191 Fix bug in BIOS skip hack (which I always forget to test since I never use it personally ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2340 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-14 12:37:27 +00:00
Jake.Stine c17455c702 User Interface code cleanups and bugfixes. some highlights:
* Configuration panels are all modal-less now, so that you can open the config panel and leave it open while running games.
 * Handful of thread sync improvements.
 * Fixed on-the-fly interpreter/recompiler configuration.
 * Fixed plugin hotswapping (mostly works, but still a little funny at times)
 * All new assertion dialogs and popup message handlers.
 * RecentIsoList defaults to 12 instead of 6

Dev Notes:
 * I had to create a new set of assertion functions called pxAssume*.  Originally I hoped to avoid that complexity, and just use a single one-assert-fits-all case, but turned out blanketly using __assume() for all assertion cases wasn't reliable.
 * wxGuiTools: Replaced the operator, with operator& -- the latter has proper order of precedence, the former required () to scope correctly. >_<

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2339 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-14 12:18:55 +00:00
ramapcsx2 cc65a5cd02 Most likely unbreak Okami. I don't have this game, but I'm 99% sure it's this.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2338 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-12 22:47:37 +00:00
arcum42 d7c0cb64d3 Revised dmaGetAddr. Fixed a thread error message.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2337 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-11 04:15:50 +00:00
arcum42 6167067791 Change a few .ADDR's to _u32's, so the SPR field is included.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2336 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-10 14:43:54 +00:00
arcum42 f3a2c44112 Did some work on HwWrite. Updated my structures in GS.h. Fixed some podsafe object warnings I'd missed previously.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2335 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-10 06:33:14 +00:00
cottonvibes 09cec4a370 fix for the annoying msvc warnings
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2334 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-10 02:32:34 +00:00
ramapcsx2 86a75775f3 Stop VIF0, VIF1 and EE SIF1 from interrupting based on how much data was transfered.
In theory this would be the correct thing to do, but with our current DMAC and event test system it just causes problems.

Note: This commit *could* break/improve/fix games, please test :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2333 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-10 00:56:10 +00:00
ramapcsx2 f03cdbcdb3 GSdx:
- Fix the Dark Cloud 2 crash when inventing stuff.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2332 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-09 19:05:28 +00:00
ramapcsx2 514d78392c Don't do invalid GIFchain calls, fixes Dual Hearts part 2 of Issue 314.
This is part of PATH 3 masking mess, so it could fix other PATH 3 using games.
Added some debug lines as well, should there be problems.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2331 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-09 12:23:24 +00:00
ramapcsx2 1bb1b71544 GSdx:
- Crashfix for Dual Hearts, fixes part 1 of Issue 314.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2330 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-08 17:32:25 +00:00
arcum42 689e7843d4 Preliminary register structures for the GS CSR and IMR regs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2329 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-08 13:10:08 +00:00
Jake.Stine 3f80ba3525 cpuDetect: fix for some odd crash in MSVC/PGO builds (this one took hours to track down, though still not really sure what caused it).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2328 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-08 02:38:13 +00:00
Jake.Stine ba473e0a7f * Redid console logging to use stdout instead of the buffered queue (probably less buggy).
* Removed some hacks from cpuDetectInit's use of cpuId.
 * Improved assertion checking for thread affinity.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2327 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-07 22:43:16 +00:00
Jake.Stine 94cdfb6a8b Add debug versions of Null plugins (helps fix some stack tracing problems having a full set of debug-built DLLs, even if they aren't the source of the crashes).
DevNote: Moved jNO_DEFAULT from the Pcsx2Defs.h, since it's too dependent on the Common libraries.  It's now in Assertions.h.  Plugins can use __assume(0); directly instead or roll their own.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2326 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-07 22:39:52 +00:00
arcum42 ee6c721b51 More throwing things.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2325 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-07 21:07:59 +00:00
Nneeve 00f14b5760 Changed the fpu MUL hack for tales of destiny. (Doesn't break under most settings now).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2324 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-07 17:33:32 +00:00
Jake.Stine 611444b9d5 Oops, forgot a __fastcall. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2323 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-07 15:15:59 +00:00
Jake.Stine 949e5f8b60 Fix compilation errors (forgot to update cotton's recent changes before committing)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2322 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-07 15:01:25 +00:00
Jake.Stine f52faead0c Re-did the VUmicro's "Cpu Provider" structs into classes, and split sVU and mVU into independent classes.
* Better error handling for when sVU fails allocating memory at a specific location (should fail less).
 * Partial support for detecting and handling non-SSE2 machines with some grace.
 * Improved sVU's allocation chances with a second try at another randomish address (and removed alloc fail spam from the console -- only logs on complete fail now).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2321 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-07 14:00:39 +00:00
ramapcsx2 bb309c8d65 GSdx:
- Unbreak Ratchet and Clank by re-enabling the broken pitch conversion.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2320 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-07 09:46:33 +00:00
Jake.Stine 2baa81c997 w32pthreads/spu2-x/gsdx: add proper "debug" build of w32pthreads, instead of both debug and release overwriting the same dll.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2319 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-06 15:33:20 +00:00
Jake.Stine acbe1ed547 Cleanup for VsyncInThread, lots of source code comments. (it's fun reading! ...maybe)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2318 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-06 15:31:11 +00:00
cottonvibes 6b5e302f82 microVU: fixed 2 bugs in my preserve sign clamp code thanks to nneeve
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2317 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-06 09:13:57 +00:00
cottonvibes b866ff405e macroVU: Run vu0 on certain cases of recCTC2() like sVU's COP2 code does... this fixes Rachet and Clank's title screen's sps...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2316 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-06 06:13:01 +00:00
cottonvibes 316e7ffccc microVU:
- Added microVU_Clamp.inl to the project file which holds all of mVU's clamping routines.
- Added tmmk's optimized clamping method for sse4 (preserve sign clamp mode only) <-- untested
- Not using regalloc for preserved-sign non-sse4 code anymore since it seems to be bugged (thanks to nneeve for pointing it out)
- Extra mode was using preserve-sign code before; but changed it now to never preserve nan sign...
- Fixed a bug in extra clamp modes where it was clamping all 4 vectors on SS SSE instructions, destroying upper 3 vectors...

After these changes the compatibility of extra / preserve sign clamp modes have gone up.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2315 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-06 01:49:40 +00:00
arcum42 e01cfedd2b New dialog for internal hacks.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2314 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-05 09:40:32 +00:00
cottonvibes 3fcd2c9aee microVU: Implemented 'extra' clamp mode (it was doing the same as 'normal' before)
Note:
What extra clamp mode does is whenever an SSE ADD/SUB/MUL/DIV instruction is used in mVU, it will have its operands clamped.
Currently seems to cause sps in some games instead of fixing it...
There might be some reason for it that I'm not aware of yet, or it could be 'random' based on what a game is doing.

A quick explanation of what mVU's clamp modes do:
None   - Does no clamping (fast)
Normal - Clamp certain instructions which have proven to fix games
Extra  - Clamps every SSE instruction (slow)
Extra + Preserve Sign - Same as extra but preserves sign of the NaN (super slow)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2313 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-05 09:30:38 +00:00
cottonvibes cbc4ee26f6 microVU: added a flag to tell when its in COP2 mode.
macroVU: some clamping that may fix the ICO camera bug (not tested)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2312 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-05 09:04:20 +00:00
cottonvibes 7532c2969e microVU: Reorganized some clamping stuff...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2311 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-05 08:33:02 +00:00
arcum42 cf21dbf992 Get rid of Tags.h.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2310 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-05 08:13:04 +00:00
arcum42 1b42c82faf A continuation of what I was doing in r2305.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2309 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-05 08:01:00 +00:00