* Loading/saving states from the File menu should work as expected most of the time now (bugfix, yay!)
* Ini file now versions itself and issues a one-time warning to users when ini settings have changed (which can sometimes lead to odd behavior usually fixed by deleting ini files).
* Added a new ssprintf function which is a std::string based replacement for snprintf, without the hackish truncating behavior.
* Converted a lot of code over to use std::string (eliminates chances of buffer overruns and truncations, and serves as a general code cleanup)
* Added several new functions to the PathUtils.cpp, and encased them in the Path:: namespace.
* Added a Msgbox:: namespace and moved Alert into it. May add one or two additional dialog types in the future, if needed.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@555 a6443dda-0b58-4228-96e9-037be469359c
I also made the iVUzerorec clear reg allocation info after VU recompilation/execution to prevent bad data being used in other parts of pcsx2.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@553 a6443dda-0b58-4228-96e9-037be469359c
Improved the responsiveness and efficiency of the EE's INTC handler by having it raise exceptions immediately in response to interrupt handlers (the old method delayed the exception until the next branch test, which meant that a lot of common interrupts like vsync, GS, GIF/VIF, etc resulted in two consecutive branch tests when they should have needed only one).
Moved the gsIrq() in Counters.c from the vsyncStart() to the vsyncEnd(). The gsIrq() supposedly happens on the falling edge of the vsync, so this *should* be more correct. (but more correct doesn't always mean better)
Added iopIntcTest() functions to the IOP's synchronization tools, so the IOP should now "correctly" raise exceptions when it re-enables pending IRQs.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@547 a6443dda-0b58-4228-96e9-037be469359c
Moved the PS2Edefs.h and PS2Etypes.h files into /common. All plugins and Pcsx2 now reference the same copies of these files at all times.
Removed SubWCRev from the repository, and linked the /common/ folder to the /plugins folder (allows for people to checkout the plugins folder alone and still be able to compile without pre-build step failures).
Tweaked the MTGS throttler. Might work a wee bit more efficiently in certain high load situations.
Fixed a rare bug in the COP2 (i think!) introduced during one of the earlier VU code cleanings.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@540 a6443dda-0b58-4228-96e9-037be469359c
Added a new namespace for PS2 memory size descriptors: Ps2MemSize, and modified the code to use them instead of hardcoded values. And I found a handful of VM-Alloc discrepancies in the process. Some instances of ROM1 sizes were set to 0x80000 while others were set to 0x40000. 0x40000 appears to be the more correct size of ROM1, so I used that.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@522 a6443dda-0b58-4228-96e9-037be469359c
Applied patch from Issue 96 in the hope it'll make the core count display more accurate (it's not important to emulation functioning but it's fun if it works anyway ;)
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@520 a6443dda-0b58-4228-96e9-037be469359c
Improved CDVD handler! The CDVD now handles the following commands with more appropriate zeal: Break, Standby, and Stop. Fixed a bug in the seeking code that was causing a lot of FMVs to suffer audio desyncing. Fixed another bug that was causing some general emulation slowness.
New Savestate version! Savestates now record vsync timing info (PAL/NTSC), which solves an age-old bug where-by PAL games would be highly unstable if you loaded the savestate before the video mode got set properly.
Removed the AtomicExchange "optimization" for single-core CPUs since it was never used in Pcsx2 anyway.
Developers: Fixed a typo in LnxThreads.cpp that caused linker errors.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@519 a6443dda-0b58-4228-96e9-037be469359c
Improved cycle timings a bit, and fixed a problem where Co-processor instructions weren't being counted as cpu cycles. Fixed a couple bugs in memory savestate recovery.
Compiling: Enabled PCH on non-dev builds, and removed the buffer security check from the Release vm (dev)(Dev) builds. That was an oops on my part -- I turned it on to do some additional bug checking and forgot to turn it off.
git-svn-id: http://pcsx2-playground.googlecode.com/svn/trunk@516 a6443dda-0b58-4228-96e9-037be469359c