Jake.Stine
1f36e97927
Major overhaul of the savestate system!
...
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
2009-03-19 04:16:24 +00:00
Jake.Stine
a51b407cdb
More changes to the IOP's memory model. Some of these are experimental and might cause problems (needs testing). Quick rundown:
...
* 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
2009-03-19 03:59:25 +00:00
Jake.Stine
f2477537f9
Implemented more correct support for the IOP's "isc bit" (bit 16 on the COP0 status register), which in turn allowed me to simpify some of the IOP's memory access and paging logic.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@813 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-18 22:38:36 +00:00
Jake.Stine
1bbcf07a22
Added a BastTaskThread class to the threading tools.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@812 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-18 18:56:03 +00:00
cottonvibes
996f229cbf
pcsx2: got rid of the compile warning.
...
microVU: minor changes/cleanup.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@811 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-18 08:22:01 +00:00
Jake.Stine
d1ae92e203
Minor optimizations to vssprintf.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@809 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-18 06:39:55 +00:00
sudonim1
fa3288971f
Save a few bytes on const flushing using 5 byte eax movs for 0 and -1 instead of 10 byte immediate movs.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@808 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 20:58:59 +00:00
sudonim1
43c0d895ad
Removed unnecessary rs flushes for loads and stores
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@807 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 20:07:17 +00:00
Jake.Stine
6c13dcdb41
Fixed a bug in the vtlb constprop support (stores weren't using the right macro).
...
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
2009-03-17 18:15:02 +00:00
Jake.Stine
063703e28a
Improved CDVD seek timing; should speed up some games that had abnorally long load times -- hopefully without breaking other games. (testing needed)
...
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
2009-03-17 14:48:13 +00:00
gabest11
6982207440
xpad: repaired broken keyboard event forwarding to pcsx2
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@803 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 09:38:36 +00:00
mattmenke
e5f8c7dbe9
LilyPad: Minor GUI rearrangements and attempts to beautify. Relabeled "Hacks" that aren't really all that hackish. To be released as 0.9.11.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@802 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 05:37:09 +00:00
cottonvibes
2c0f8fe41e
more W.I.P. stuff..
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@801 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 03:34:26 +00:00
sudonim1
c2e3536818
Emitter: encode negative 8 bit immediates for some instructions and EAX forms for MOV
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@800 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-17 00:57:59 +00:00
gabest11
d2ef4099fc
LilyPad: fix0red the save state reload crash (memset overflow randomly null'ed the global dm variable and other things).
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@799 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-16 22:17:50 +00:00
Jake.Stine
7c00edfc07
Disabled global optimization properly, and enabled Incremental Link, on devel builds. Minor code changes compile fairly instantly now. ;) I'll make some property sheets for enabled/disabled LTCG/WPO in the future.
...
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
2009-03-16 18:32:18 +00:00
cottonvibes
2fa30cabf4
work in progress stuff...
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@797 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-16 08:19:46 +00:00
mattmenke
80abd88a67
LilyPad: Couple GUI fixes and cleanups, with intention of releasing soon. Added mysteriously missing check for binding same control on different pads, fixed rearranged pad type stuff.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@796 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-16 02:58:38 +00:00
cottonvibes
0deb44c70d
seems i had misunderstood ACC's pipeline rules.
...
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
2009-03-16 01:43:13 +00:00
mattmenke
0c95bbc9fd
LilyPad: Lots of new code that (ideally) makes absolutely no difference. And a fix for saving rumble settings in PADfreeze.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@794 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 15:00:22 +00:00
ramapcsx2
3f87ae7078
Looks like the new PCR/TIMR code wasn't called correctly in recMFC0.
...
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
2009-03-15 12:24:24 +00:00
cottonvibes
7a0e3dca12
implemented all vu lower instructions (second pass).
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@792 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 10:03:34 +00:00
mattmenke
0efde91a92
Save States: Added PADfreeze calls to PCSX2, though they're currently only implemented by LilyPad. Also fixed a bug where a save state would failed to load when the last plugin's freeze function actually saved something. Minor changes to new plugin API as well.
...
Because of a convenient bug in load state function, older save states with no saved pad info should still work. Don't blame me if they don't, though.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@791 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 09:30:31 +00:00
mattmenke
493ecaa206
LilyPad: Fixed some binding stuff that some incompetant person broke in his last release. PADfreeze fixed so should work when called twice (Once for pad 1, once for pad 2).
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@790 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 09:20:53 +00:00
arcum42
85a1c605fa
Plugin APIs: Added the changes in r788 to PluginCallbacks.h. Changed the config path function to be one of the general functions, not plugin specific, and it now passes the whole pcsx2 config, not just the ini path. I can see all sorts of uses for that...
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@789 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 05:57:16 +00:00
mattmenke
579a907edf
Plugin APIs: Now that I've figured out how multitaps work, fixed SIO API so it can theoretically actually work.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@788 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 03:18:31 +00:00
arcum42
fadeb5d86f
Linux: Bring the gamefixes dialog up to date.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@787 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 01:15:18 +00:00
mattmenke
bb47813a3c
LilyPad: Removed "Axis" binding buttons. Try to autodetect full axis bindings instead, also a dropdown in case that fails. Experimental, untested PADFreeze() implemented.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@786 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-15 00:00:02 +00:00
sudonim1
64a1b3fb45
Forgot this.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@785 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 19:13:24 +00:00
tmkkmac
9ad464377a
Removed a VU Clip gamefix.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@784 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 18:50:46 +00:00
tmkkmac
2b843ce49d
Fixed a problem around the VU clip code, introduced in r659. GoW and Persona (and more) now work without a gamefix.
...
I'll remove the gamefix if there is no problem.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@783 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 16:59:03 +00:00
sudonim1
c483f17331
Rewrite immediate jumps from the block manager instead of having dispatchers to do this at execution time.
...
Should be a tad faster.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@782 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 16:30:35 +00:00
arcum42
d793d84860
The joys of unrestrained find/replace. :(
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@781 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 02:43:40 +00:00
arcum42
ceaee3748e
Plugin APIs: Corrected a few things that got missed when I committed initially. Moved the ini path passing to a separate function. Restored a few functions I'd deleted, and depreciated them instead.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@780 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 02:39:40 +00:00
mattmenke
04b49b108e
Plugin APIs: Restored pDsp, renamed to pDisplay for clarity (Though arcum42's right and about needing documentation). Renamed PADinit for psx emulator compatibility. Played around a bit with SIO api, thinking for simplicity best to just use one plugin of each type (SIO PAD/MTAP, remote, and memcard. Could even be separate types, but no real need for it). Added PADFreeze() and its friend SIOFreeze().
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@779 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 02:12:17 +00:00
sudonim1
17298b7e6b
Made constant register saving more simple and certain. Grandia 2 is probably the only game that this would've fixed, but maybe there are others.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@778 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 02:06:18 +00:00
refraction
c8f3a36d66
Made a rough start to what will hopefully be helpful in the future with dma timing and control. So VIF1 (and MFIFO) now have a restructured layout, i have left old code in place for the moment just incase its all a waste of time :p
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@777 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 01:34:16 +00:00
sudonim1
1689b73c77
Realised that I probably broke MOVZ/N with my last commit and tried again.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@776 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 01:21:13 +00:00
sudonim1
e248cf8cf0
Grandia 2 is playable again. The old block manager was incorrectly clearing a block which didn't need clearing and thus masking this constprop bug.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@774 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-14 00:21:35 +00:00
refraction
762b022df5
Disabled whole program optimization for dev builds, it really isn't needed for development builds, all it does is slows us down :P
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@773 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 22:16:51 +00:00
refraction
81b038ed41
Fixed a slight error in my last commit, fixed a bug from another previous commit and put in rama's hack for FFX which was bugged from r604, i know why its happening, but how to solve it properly is the issue.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@772 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 22:15:31 +00:00
refraction
c8683cb350
Adjusted the backwards timing on GIF for intermediate transfers, this resolves issue101
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@771 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 21:14:33 +00:00
sudonim1
3aedd8acb2
Further work on the block manager.
...
Grandia 2 is still broken but this is a little faster, less clear happy and "impossible block clearing failures" shouldn't occur any more.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@770 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 18:23:28 +00:00
cottonvibes
2d0dd6b0b2
forgot to commit this...
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@768 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 07:57:23 +00:00
arcum42
551d02721a
Forgot two files.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@767 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 07:27:52 +00:00
arcum42
c15b3129d4
Preliminary work on a new version of the plugin api. Not hooked up, and very subject to change. Mainly committed both for backup, and for other devs to mess with...
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@766 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 07:25:00 +00:00
cottonvibes
43d7191927
cleanup: moved 'software emulate mul' to gamefixes section since it seems to only be needed by 1 game.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@765 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 07:20:04 +00:00
arcum42
e0347fd285
Some header work, get rid of some dead code, and rename PsxCommon.h.
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@762 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 04:49:23 +00:00
Jake.Stine
3821425442
Minor fixes to the IOP Interpeter and const prop regarding the SLTIU instruction.
...
Removed the rest of the references to the UseGui global boolean since it wasn't used anymore.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@761 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 04:21:50 +00:00
cottonvibes
cbe108e99d
implemented some more opcodes...
...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@760 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-13 02:03:18 +00:00