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
* Fixed and added better Emulation/System menu updating. Suspend/Resume is more consistent, and Reset grays itself out after being used.
* Entering plugin configurations auto-suspends the emulator.
* Changing plugins in the Configuration PAnel takes effect now without a restart.
* Added preliminary support for an ExtensibleConfirmation Dialog box (contains a sizer you can add content to, and also has an optional "[x] Do not show this again" checkbox).
Bugfixes:
* Added some mutex protection to cdvdNewDiskCB; "just in case."
* Resolved several recursion and deadlock scenarios when (very!) rapidly suspending, resuming, and resetting the emu.
Developments / Code Cleanups:
* Renamed SysCoreThread ExecutionModes: Suspend/Resume are now Opened/Closed (which more accurately reflects the fact they opena nd close the plugins, and helps avoid ambiguity with the "Paused" state).
* Added Exception::ThreadTimedOut, which is now thrown from Semaphore::Wait when recursive wxApp::Yield() calls are detected, and a deadlock occurs (basically cancels the current action which, most of the time, allows for full recovery).
* Major Threading namespace cleanups, documentations, etc.
* Removed wxScopedArray (scopedarray.h) and replaced it with a better implemeneted ScopedArray class.
* Removed toUTF8 class, which I only added a couple weeks ago because I didn't realize wxCharBuffer had an implicit typecast to (char*).
* Implemented more Source/Listener events for Pcsx2App. CoreThread events are sourced properly now, and added SettingsApplied and SettingsLoadSave Sources.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2010 96395faa-99c1-11dd-bbfe-3dabce05a288
Fixed: More savestate slowness, and less savestate memory hogging.
SPU2-X: Fixed crash bug on using savestates while suspended.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1994 96395faa-99c1-11dd-bbfe-3dabce05a288
* Completely new assertion macros: pxAssert, pxAssertMsg, and pxFail, pxAssertDev (both which default to using a message). These replace *all* wxASSERT, DevAssert, and jASSUME varieties of macros. New macros borrow the best of all assertion worlds: MSVCRT, wxASSERT, and AtlAssume. :)
* Rewrote the Console namespace as a structure called IConsoleWriter, and created several varieties of ConsoleWriters for handling different states of log and console availability (should help reduce overhead of console logging nicely).
* More improvements to the PersistentThread model, using safely interlocked "Do*" style callbacks for starting and cleaning up threads.
* Fixed console logs so that they're readable in Win32 notepad again (the log writer adds CRs to naked LFs).
* Added AppInit.cpp -- contains constructor, destructor, OnInit, and command line parsing mess.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1950 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
* Lots of crashfixes and threading rules compliance (like using wxYield instead of ProcessPendingEvents)
* Killed off some memory corruption
* Better error handling and reporting
* Much speedier suspend/resume during emulation
* Revamped entire savestate system to use a RIFF-style file format (untested, will work on it soon)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1832 96395faa-99c1-11dd-bbfe-3dabce05a288
MemoryCard / Multitap Renovations:
* Memorycards should now support multitap (somewhat untested)
* Implemented a memorycard plugin interface, using the new API defined in PluginCallbacks.h (still prelim and hackish)
* Memorycard settings are saved to ini!
* Multitap is now controlled by PCSX2 instead of the pad plugin (which means no multitap until we implement the gui toggles to enable it)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1817 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed a deadlock in thread cancellation.
* Muted some folder warnings when running pcsx2 for the first time.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1778 96395faa-99c1-11dd-bbfe-3dabce05a288
* Borrowed wxScopedPtr from wxWidgets 2.9
* Fixed up first-time startup procedures and folder selection
* Implemented most of the rest of the missing configuration options, and cleaned up some ambiguities regarding bool types and bitfields.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1649 96395faa-99c1-11dd-bbfe-3dabce05a288
* finished most of the new plugin system (branch is buildable and runnable again, but no significant functionality has been added yet).
* Removed STGS code from the branch since I planned to kill it off anyway and it was more work to code proper support for it in wx than to remove it.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1595 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added some icons for use in the new configuration panel.
* Added bin2cpp project, located under a new /utilities folder (it's used to generate wx Embedded Images)
* Renamed NewGUI folder to gui
* Relocated Resources folder to gui/Resources
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1477 96395faa-99c1-11dd-bbfe-3dabce05a288
* Moved the x86 emitter to /common, so that plugins can link against it if they wish.
* Created a new "utility" class in /common which houses string utils, fast memcpy, common exception classes, and other handy dandies.
* Removed old-style linux automake files from the pcsx2 dir since they were hopelessly out of date (and their multi-file-per-line format makes svn merging impossible >_<)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1454 96395faa-99c1-11dd-bbfe-3dabce05a288
* installer automatically includes all three SSE build targets for GSdx (each built target needs to be built manually prior to building the installer).
* Fixed some typos and abbreviated install paths from "PCSX2 Team/PCSX2" to just "PCSX2".
* Added an "SSEtype" user define to GSdx's property sheets, which is used to generate the SSE postfix on the DLLs automatically. (ie, GSdx-SSE2.dll, etc).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1397 96395faa-99c1-11dd-bbfe-3dabce05a288
* Changed w32pthreads library into a DLL so that it can be used from plugins correctly. (NOTE: you will need to make sure to build and copy w32pthreads.dll into your pcsx2 folder).
* Switched pcsx2 from static CRT to shared CRT linking (needed to ensure correct exception handling behavior in multithreaded DLL environments).
* Switched all standard plugins in the Suite to the shared CRT, to match pcsx2's new style. :)
* Renamed _DEBUG (depreciated) to PCSX2_DEBUG (excluding Gabest projects since the ATL still uses it).
* Added intrin.h to Pcsx2Defs.h (so that it is included universally), and added intrin_x86.h for GCC compatibility.
Notes:
* Current plugin version compatibility status should be unaffected. The new shared-CRT plugins work fine with older versions of Pcsx2, and the older plugins should work fine with the new shared-CRT version of pcsx2; so long as the necessary CRT DLLs are available on the user's system.
* All future packagings of pcsx2 will include w32pthreads.dll and the Common Runtimes (CRTs).
* Existing users who do not have MSVC installed can obtain the CRTs by downloading the Microsoft Visual C++ 2008 Redistributable Package (anyone with msvc installed should already have all they need).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1388 96395faa-99c1-11dd-bbfe-3dabce05a288
WinGUI: Disabled arguments menu in release build, for sure :p
Buildsystem: Made pcsx2 dependent on zlib, and changed post-build script a bit
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@591 96395faa-99c1-11dd-bbfe-3dabce05a288
I'll put up a wiki soon which covers new compilation features and stuff, like how to re-enable revision tagging, and how you can direct compiled exe/dlls to be copied to any destination of your choice (yay!) -- plus many other compiling tips (if I can remember them all! >_<)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@581 96395faa-99c1-11dd-bbfe-3dabce05a288
Upgraded GSdx's use of svnrev to match other plugins in the pcsx2 repository; so that it no longer requires TortoiseSVN, and will also compile correctly from folders with spaces (ala '/program files/username/my documents/projects').
Removed the /3rdparty and /common folders since they aren't used anymore, and it was potentially confusing or misleading to leave them in since they were out-of-date (they were once referenced by svn:externals, and we opted out of using those here due to slowness).
SPU2-X: Fixed a minor overflow in the reverb that would cause infrequent crackles in a select few games.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@503 96395faa-99c1-11dd-bbfe-3dabce05a288
Fixed COP0's recompiled branch instructions (BC0F, BC0T, etc) -- the conditional was not implemented correctly (thanks to Refraction for spotting that one).
Used a better method of clearing the errorlevel during the Pre/Post Build steps. Should be a little less error-prone (pun?)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@447 96395faa-99c1-11dd-bbfe-3dabce05a288