Commit Graph

1970 Commits

Author SHA1 Message Date
Jake.Stine 9473e69b7f Thread Local Storage Fixes:
* Implemented TlsVariable, a nifty alternative to __threadlocal, suitable for archaic operating systems that don't have native TLS support (namely Mac OS/X).
 * Added a forced reference to TLS in AppInit so that TLS is sure to be available to DLLs (otherwise windows doesn't init TLS by default).
 * Disabled TLS support in the x86emitter by default, since it's looking increasingly like we won't find a use for multithreading PS2 sub-components (can be re-enabled later if spontaneous brilliance at a later date proves me wrong).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2396 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-24 22:22:34 +00:00
Jake.Stine 3d9bb25505 Linux: Fix bugs in _aligned_realloc and newVif's inlined SSE HashBucket finder.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2395 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-24 10:04:03 +00:00
arcum42 4b0b270776 ZeroGS: Move most of the X11 window code to one file, to make it easier to switch from using an X11 window to a Gtk window.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2394 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-24 05:53:29 +00:00
Jake.Stine 2f38decdab Fixing some more bone-headed project file compilation errors (my fault, don't know what I was thinking when I did this w32pthreads lib change int he first place)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2393 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-24 02:36:58 +00:00
Jake.Stine af66887d0c newVif bug fixes (mostly related to the interpreted version), and switched it back off again. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2392 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-24 02:30:05 +00:00
Jake.Stine c2aa78f2b5 Undo VPU renaming, Vif was better for this originally. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2391 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-23 22:14:51 +00:00
arcum42 61d8406c09 Take care of Issue 512.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2390 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-23 20:38:56 +00:00
arcum42 d9321838fb Fix Linux compiling (with newVif disabled).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2389 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-23 20:25:08 +00:00
Jake.Stine 8328c8cd65 Forgot to disable newVif again (overall compatibility is still too low for enabling).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2388 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-23 13:30:47 +00:00
Jake.Stine b27b89b162 newVif: I'm a terrible person. What started out at an optimization turned into this.
* Optimized codegen of the VPU recompiler using displaced memory offsets (1-2% speedup)
 * Undid a lot of the inl stuff for more traditional cpp code layout (explained below)
 * Removed some redundant code and turned some macros into functions.
 * Renamed a few things to VPU (Vector Processing Unit, which is the specific name of the logic core that performs VIF Command Processing and Unpacking on the PS2)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2387 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-23 13:22:30 +00:00
Jake.Stine 5c8f4ded22 w32pthreads: bad project linker setting caused occasional link errors and possibly unstable behavior.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2386 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-23 04:39:23 +00:00
ramapcsx2 67b55648ae SPU2-X:
- Slight adjustment on the timestretcher, stops it from going to "emergency" mode too often (even on bigger buffers).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2385 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-22 17:05:40 +00:00
Jake.Stine c5b47530f9 newVif: minor optimizations.
* Improved hashing slightly by ignoring the garbage values in the 'mask' parameter when doMask is false.
 * Wrote an inlineable version of the hash compare function, using x86 intrinsics.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2384 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-22 14:21:21 +00:00
Jake.Stine 3c03e15dc1 SSSPSXPAD: Fix for a random crashing bug when doing suspend/resume type stuff (caused by multiple threads trying to initialize directinput at the same time)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2383 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-22 14:18:05 +00:00
cottonvibes 916cc034ff newVif: fixed some minor stuff...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2382 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-22 06:36:46 +00:00
Jake.Stine 171dc422be Add PADnull to the MSVC solution, and set eol-style:native props on PADnull and OnePad.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2381 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-22 03:17:35 +00:00
Jake.Stine 408dbd7256 * Call PADupdate from MTGS thread when using legacy GSopen -- Should fix Linux Pad instabilities.
* Fixed a savestate loading bug, when loading states made with different sets/versions of plugins.

DevNote:
 * Moved some old PS2E types to PS2Edefs, since the new v2 plugin API won't use them (freezeData, keyEvent).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2380 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-22 03:15:30 +00:00
Jake.Stine 203979c16b SSSPSX: Updated to v1.7, fixed savestate/freeze callback bug that caused the public version to crash in 0.9.6 betas.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2379 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-22 03:08:16 +00:00
Jake.Stine 74c73295f4 PadSSSPSX: Added to PCSX2 Suite, and updated to work with PCSX2 v0.9.7.
Changes: Implemented PADupdate and PADsetSettingsDir, added thread sync mutexes.

Note!  This is based on v1.6 of SSSPSX, since we don't currently have v1.7 in the repository.  I did just realize that 1.7 comes with sources online, so I'll upgrade the repository to 1.7 shortly.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2378 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-21 16:21:07 +00:00
Jake.Stine 0430e4dd9f Moved PADupdate() from MTGS thread to the GUI thread, and moved PADkeyEvent from EEcore thread to GUI thread.
Rationale: I realized finally the point and purpose of PADupdate was to give the PAD plugin a callback that's on the same thread as the GS window, and which is (mostly) updated in regular sync to the refresh rate (50/60hz).  So that's what it does now, finally.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2377 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-21 16:14:28 +00:00
Jake.Stine 500c1dbfeb Re-implemented Ping() into wxApp, this time using Idle events (for once I found a use for them!). This because the YieldToMain logic wasn't ever going to work right since wxWidgets lacks a way to poll the event loop for pending events. End result: More responsive GUI dialogs and junk. ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2376 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-21 11:52:14 +00:00
cottonvibes f071faa642 newVif: Implemented support for partial-vector unpack transfers.
Games that were having problems with newVif should hopefully be fixed by this...
Fixes Gradius 5, and I think Tekken 5?


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2375 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-21 05:06:28 +00:00
Jake.Stine 9ca90c747b Interface stuffs:
* Enable word wrapping on the console window (maybe could make it an option... hmm).
 * Slight bugfixes to main window/console focus linking (windows only)
 * Fix linux compilation error in ZeroGS.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2374 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-21 00:33:15 +00:00
Jake.Stine d7c1caecf1 w32pthreads: only half-fixed the cancellation counter before. This should full-like fix it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2373 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-21 00:30:08 +00:00
arcum42 6b930a9cff Fix Linux up again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2372 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 21:36:44 +00:00
Jake.Stine 6c75ee61e5 ZeroGS: Add support for GSsetSettingsDir.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2371 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 15:29:38 +00:00
Jake.Stine a3edb9798c Added preliminary screensaver disable feature. Cleaned up Vista/Win7 DWM code a bit. Consolidated various win32 specific code into MSWstuff.cpp
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2370 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 14:50:36 +00:00
arcum42 d36ba78392 Fix Linux compilation (and I suspect a crash). Fix up some of the null plugins so that they actually load in Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2369 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 13:45:26 +00:00
cottonvibes bc3b419272 newVif: minor change, brought the nVifstruct down from 32bytes to 16bytes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2368 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 06:33:37 +00:00
cottonvibes 7b2c66e549 newVif: created a custom memcmp for the vif dynarec block finder... its faster than memcmp, but not sure if it will be a noticeable speedup.
Should work in gcc Linux builds, but if not uncomment the memcmp() part in newVif_HashBucket.h's "find()"...


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2367 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 04:25:16 +00:00
ramapcsx2 c86fc2c9b9 GSdx:
- Added a macro that disables any upscale hacks.
- More work on the dx10 renderer upscale hacks.

PCSX2:
- Changed a warning so it reads more like a notice :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2366 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 02:50:34 +00:00
cottonvibes 1a54ff0bb9 newVif: non functional minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2365 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 02:13:42 +00:00
Jake.Stine b45b91bf07 More minor improvements to cpuSpeed calculations, since my experimental fix apparently works. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2364 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 01:28:23 +00:00
Jake.Stine 84c7436d34 w32pthreads: bugfix for minor race condition on exiting threads. Tech details: the testcancel flag was being incremented after the thread had already canceled, leaving the flag "dangling".
PCSX2: attempt at fixing what appears to be a belated thread affinity issue during the cpuspeed detect.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2363 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 00:00:07 +00:00
Jake.Stine bb319266fc Lilypad and PCSX2 ini/config bugfixes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2362 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-19 23:02:05 +00:00
Jake.Stine 9f41fc4793 (Most Plugins) Updated plugins to obey PCSX2's ini folder requests. This will fix problems with plugins failing to save settings on Vista/Win7 due to lack of Admin rights, and also ensures all the plugin inis show up where you would expect them to.
Fixed a couple UI bugs: FirstTime Wizard display bug and the "Configure..." button in the plugin control panel grays out when it should.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2361 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-19 18:30:56 +00:00
arcum42 53357b9efc static and extern do not mix.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2360 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-19 11:27:17 +00:00
arcum42 c0725db97a Update project file.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2359 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-19 11:01:04 +00:00
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