Attempt to fix keyboard input sometimes not working until window is unfocused/refocused. Happened to me once (And only once), when I was experimenting with disabling read input in GS thread. There are a number of potential causes of this, and I've added workarounds for several of them.
Slightly updated code to determine when to update pad state - added both a timer, so read state less when fast forwarding, and Multitap support (to that particular chunk of code).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@838 96395faa-99c1-11dd-bbfe-3dabce05a288
- Brought back a gamefix for Persona games. They still have missing geometry without it (VU clip flag problem)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@835 96395faa-99c1-11dd-bbfe-3dabce05a288
- more thorough blur detection
- makesnapshot delayed until the next vsync (so shift+f8 won't crash randomly)
xpad:
- fixed "Issue 38: Bad performance with Xpad"
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@834 96395faa-99c1-11dd-bbfe-3dabce05a288
A few changes to the full fpu mode, so it behaves as erratical as the ps2 fpu.
And a fix for a MMI opdcode.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@828 96395faa-99c1-11dd-bbfe-3dabce05a288
Since backwards compat of savestates got totally broken a few revisions ago anyway, I decided to take this opportunity to revamp the savestate system with some significant cleanups (yes it loses all backward compat once again). Improvements include:
* Reduced state size by removing some unneeded data (faster saves now too!)
* Added string tags to varios "sections" of the states to assist in troubleshooting and retaining savestate compat in future versions.
* Better error handling and fewer memory leaks.
* Removed some unused/obsolete data from psxRegs, Counters, and psxCounters structures.
* Removed all old savestate versioning code, since none of the old versions are supported anymore anyways.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@815 96395faa-99c1-11dd-bbfe-3dabce05a288
* The R3000 does not have a TLB, and has no valid addresses mapped above page 0x2000 in physical memory [lower 512M]. Thus all addresses can have the top 6 bits masked off and still retain full validity. For example, address 0xbfc0 is simply a mirror of physical address 0x1fc0. Technically speaking, a full emulation of the IOP memory model would raise bus error exceptions for accesses between 0x2000 to 0x8000 segments (instead of treating them as mirrors of the lower 0x2000 segment), but buss errors are generally fatal (unrecoverable) program errors that would never happen within the context of game emulation.
* The IOP's SIF register space is only 256 bytes, and then mirrored repeatedly through it's 64k page at 0x1d00.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@814 96395faa-99c1-11dd-bbfe-3dabce05a288
Reduced the BIOS rom warnings from gaudy red text and stars to simple yellow warnings (since they really don't matter).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@805 96395faa-99c1-11dd-bbfe-3dabce05a288
Fixed a condition in the INTC hack that could cause it to hang in rare occasions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@804 96395faa-99c1-11dd-bbfe-3dabce05a288
Added a new Threading class: ScopedLock. Used as an automatic unlocking mutex (safe for use with C++ exceptions, and cleaner/simpler code too). It works like C#'s "using" and "lock" directives, for those familiar with that.
Optimized the AtomicExchange implementations for MSVC.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@798 96395faa-99c1-11dd-bbfe-3dabce05a288
turns out there only needs to be 1 instance of it, so i had to fix all opcodes that use ACC.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@795 96395faa-99c1-11dd-bbfe-3dabce05a288
This broke Fatal Frame (yes, again..).
Thanks to Nneeve for finding and fixing it so fast :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@793 96395faa-99c1-11dd-bbfe-3dabce05a288