* Potential Bugfix: Core1's DMA IRQ trigger was being ignored in some instances; might fix some hangs.
* Major code cleanups, using C++ structure member methods and functions.
* Improved gui / plugin api / core emulation code separation -- hoping to switch to wxWidgets eventually.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1930 96395faa-99c1-11dd-bbfe-3dabce05a288
* Rewrote Savestate code, fixed lots of stuff in PersistentThread, and renamed most "Emu"s to "Sys".
* Removed wxScopedPtr and whipped up our own ScopedPtr that doesn't use boost's fail-style function names (and made it more thread-safe).
* Handling exceptions across threads: Added Clone() and Rethrow() methods to BaseException, and added a Rethrow() to PersistentThread.
* Go rid of AppInvoke macros (those were nasty!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1929 96395faa-99c1-11dd-bbfe-3dabce05a288
* Implemented a combination static link and dynamic link system; threads still benefit from DLL-level thread management, but speed-critical actions (semaphore and mutex locks) can now inline their "accelerated" interlocks properly. Should be a nice speedup.
* Implemented a highly optimized pthread_testcancel(), that typically performs its test in a single cycle. :)
* Disabled static mutexes. They aren't needed in C++ code, and reduce mutex locking overhead nicely.
* Use intrin.h for Interlocked functions, instead of pthreads' built in ones.
* Reverted my previous commit, since TLS isn't safe in DLLs. (oops!)
* Disabled pthread_spin API, it's not entirely cross-platform and shouldn't be used anyway (bad threading model for modern computing)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1925 96395faa-99c1-11dd-bbfe-3dabce05a288
Currently anything below deadzone is mapped to 0. deadzone and above are mapped as if the control's true zero is 0 and 1/sensitivity is fully down (As opposed to deadzone being zero). May change in the future.
Modified precompiled header to fix no-CRT build.
List of bindings noew automatically jumps to new bindings.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1914 96395faa-99c1-11dd-bbfe-3dabce05a288
Just changed the config dialog a bit to prevent performance seeking users from disabling timestretching (and then posting threads about bad sound :p ).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1909 96395faa-99c1-11dd-bbfe-3dabce05a288
Also added suggested interface for plugins for whenever the plugin apis are updated.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1907 96395faa-99c1-11dd-bbfe-3dabce05a288
PCSX2/Win32:
* Assigned names to the threads so that they show up nicely in the debugger.
* Added more error checking in the new stdout/stderr PipeRedirection code, hopefully fixing Issue 422 (but can't reproduce the error here to be sure).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1904 96395faa-99c1-11dd-bbfe-3dabce05a288
Dev Note: EmuConfig is now *const*, and can *only* be modified by a call to ApplySettings(), which itself cannot be called from its own thread. This protects against accidental thread-unsafe on-the-fly settings changes. Amazingly we had only one such settings change in the existing trunk. I fixed it ;)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1903 96395faa-99c1-11dd-bbfe-3dabce05a288
* handful of minor code cleanups, and some warning removals for ICC.
* replaced the dualshock.png with a dualshock.jpg (120k smaller!)
* Updated the About Box, and added Zeydlitz / ZZogl to the plugin author credits.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1902 96395faa-99c1-11dd-bbfe-3dabce05a288
New method of ensuring thread safety. Device update code should always run in GS thread, even if the emulator really doesn't want to let me (Basically ancient versions of Pcsx2...Or any 3rd party emulators with their own version of MTGS). Updates on PADpoll, PADkeyEvent, or PADupdate, if one is called in the right thread. Updates in thread's WndProc otherwise. Overkill, perhaps, but I prefer to keep things compatible.
Removed "Update in GS thread" option.
Windows Messaging/Raw Input keyboard event queuing should work a little better.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1896 96395faa-99c1-11dd-bbfe-3dabce05a288
Projects: Removed FrameworkVersion descriptor, don't think it matters for C++ code. Removed all translation files, since they're grossly out-dated and need to be remade anyway.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1894 96395faa-99c1-11dd-bbfe-3dabce05a288
They broke games still (so3, same stuff as arc the lad earlier).
With this simplified version all the problematic games found so far work.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1893 96395faa-99c1-11dd-bbfe-3dabce05a288
Also, just for kicks, made pausing while pressing "escape" check the pause button in the menu.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1891 96395faa-99c1-11dd-bbfe-3dabce05a288
Removed the keyboard disabled option, as using two different pad plugins is really just a bad idea. Also finally got sick of people saying "I have keyboard disabled, and the keys don't work! I urgently need help!"
Also will no longer let you enter config mode (And thus crash the program) when emulator is running.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1889 96395faa-99c1-11dd-bbfe-3dabce05a288
* used UPPERcase to denote the original hw register tag values from the "running sum" copies in GIFPath.
* Renamed PrepRegs to PrepPackedRegs, and optimized it so it's only run when needed (which is anytime new set of packed regs has come into play)
* Create a copy of NLOOP, so that we leave the original intact for possible later referencing.
* Simplified the XGKICKs use of sizes. They just pass 0x400 now.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1872 96395faa-99c1-11dd-bbfe-3dabce05a288