Commit Graph

2064 Commits

Author SHA1 Message Date
Jake.Stine 15d2824d1b (work in progress -- some of this stuff still doesn't quite work as it should)
* 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
2009-09-29 19:16:00 +00:00
Jake.Stine 893fcebf52 Implemented 64-bit writes for Counter registers -- Fixes uLaunchELF!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1928 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-29 17:15:34 +00:00
Jake.Stine abf0cbde47 More explicit C++ style type definition for PSXCLK, to ensure compilers avoid mathematical overflows. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1927 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-29 16:20:13 +00:00
Jake.Stine 44464b812a w32pthreads: add the missing project file. (thought for sure I added this >_<)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1926 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-29 14:33:56 +00:00
Jake.Stine a628c163d5 w32pthreads:
* 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
2009-09-29 14:21:12 +00:00
Jake.Stine 6c0afe7c48 w32pthreads: minor optimization using _declspec(thread) for internal thread handles, instead of TlsAlloc.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1924 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-29 05:04:55 +00:00
Jake.Stine 93d4f5a39c GSdx: Force the plugin to terminate via PostQuitMessage() when running GSReplay (fixes bug where GSdx would remain loaded in the background indefinitely).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1923 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-28 11:13:40 +00:00
arcum42 c97498d1f6 Assorted header cleanup.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1921 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-27 00:11:09 +00:00
mattmenke c252b0f4df LilyPad: Default deadzone increased. Note that will only apply to new bindings, or ones from inis made before I added deadzone support. Hope it's high enough for most cases, but not high enough to break anything...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1920 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-26 18:21:57 +00:00
mattmenke c82cb222d7 LilyPad: Less sensitive (Higher pre-set deadzone) for copying analog state to d-pad state when in digital mode.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1919 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-26 18:06:39 +00:00
mattmenke 2193e5aec6 LilyPad: Fix for non-pressure sensitive buttons with dead zone < 0.0625 or so.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1918 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-25 19:34:59 +00:00
mattmenke 8bc0ffaefb Workaround for bug in plugin loader with GS plugins that don't support GSopen2().
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1916 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-25 11:22:46 +00:00
mattmenke ff60b3b882 LilyPad: Give "credit" where credit is due...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1915 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-25 10:20:32 +00:00
mattmenke 3a0ad40159 LilyPad: Experimental deadzone code. Old pressure sensitive button bindings must be rebound (DS3 buttons, XInput triggers).
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
2009-09-25 08:36:42 +00:00
Jake.Stine 6b9ffd8132 Renamed memzero_obj to memzero. Been meaning to do that for a while. Also, Savestates *almost* work, but it's just not going to happen. See everyone in 5 days or so. -_-
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1913 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-23 12:53:32 +00:00
Jake.Stine 32550ef6a0 Removed two redundant/unneeded conditional checks from GIFpath processing.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1912 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-23 12:17:53 +00:00
arcum42 5ad7b00261 Fix compilation on Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1911 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-23 12:11:37 +00:00
Jake.Stine fd7e17b5df Fix compilation errors from my prev commit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1910 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-23 11:51:41 +00:00
ramapcsx2 4a1b52a22a SPU2-X:
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
2009-09-23 10:24:47 +00:00
Jake.Stine aaa3b773c6 Improved MTGS (added better suspend/resume support), and work on savestates a bit (still not working tho)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1908 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-23 09:53:21 +00:00
mattmenke 2046b8e7b4 wxWidgets: Added multitap toggles to config menu. Note that currently have to enable multitap both in Pcsx2 and LilyPad for extra pads to work.
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
2009-09-23 05:50:23 +00:00
mattmenke cd7f88aa73 LilyPad: Another pair of fixes for related bugs in the thread safety stuff. First could cause crashes when stopping/resuming/restarting emulation, second would cause devices to fail to restart properly (Or, more accurately, restart too early) when doing the same.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1906 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-23 05:19:17 +00:00
mattmenke cfaeb06c05 LilyPad: Quick fix to bug in the thread stuff from last update.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1905 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-23 04:37:15 +00:00
Jake.Stine 39bd850f72 win32pthreads: Changed from _beginthreadex to CreateThread, which is the preferred method of creating threads when using dynamic CRT linking.
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
2009-09-22 17:28:48 +00:00
Jake.Stine 0fe6bd16f3 Fixed a re-entry condition when trying to use the SysCoreThread::ApplySettings() directly; and fixed some threading issues in the resume code too.
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
2009-09-22 11:50:27 +00:00
Jake.Stine 6907b78640 Fixes Issue 419 by checking validity of StdHandle values. Also:
* 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
2009-09-22 04:37:11 +00:00
Jake.Stine 1c7719e0ec GSdx: Update delay load DLLs to match Aug2009 DirectX SDK (and yes you need the new SDK to build GSdx)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1901 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-22 00:49:02 +00:00
Jake.Stine f460985004 Same general cleanups (mostly to the VU interpreters), but on trunk this time. :) Also Fixes Issue 417 (I hope)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1900 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-21 14:19:49 +00:00
Jake.Stine fdbabaa11c Linux: Fix compilation errors and warnings. There's still a lot of new warnings in x86Emitter due to __forceinline being disabled in debug builds, but the proper fix for those will come later.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1898 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-21 09:48:31 +00:00
Jake.Stine 8d91458c95 Win32: Added stdout and stderr pipe support for the ConsoleLogger; such that plugins using printf or fprintf will have their messages show up in the new-style console log and in the emuLog.txt file.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1897 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-21 03:33:35 +00:00
mattmenke fc623d0719 LilyPad: Reverted keyboard messages back to windows messaging.
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
2009-09-21 00:24:04 +00:00
arcum42 17b8cd9fa3 int -> bool.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1895 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-20 21:24:00 +00:00
Jake.Stine 0f259e62d5 Implemented keyboard accelerator tables and a hashed global command table (should be ideal for eventual GUI extensions via plugin, and toolbars and other fanciness). Removed Pause menu and replaced it with a Suspend/Resume menu. Closing GS window behaves more nicely.
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
2009-09-20 20:54:45 +00:00
ramapcsx2 4e1e2b01ba Took out the optimizations in gifTransferDummy.
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
2009-09-20 13:59:13 +00:00
arcum42 48cdfb263b Some minor IPU changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1892 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-20 12:04:39 +00:00
mattmenke 705ca3d92a LilyPad: "WM Keyboard" now actually uses GetAsyncKeyState(). Just simplifies some dependencies on the window thread. Note that WM Mouse and raw input still have those dependencies, and they can't really be worked around, unfortunately.
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
2009-09-20 10:48:22 +00:00
cottonvibes 712e5e9229 fixed the arc the lad gif problem...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1890 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-20 07:32:47 +00:00
mattmenke 3cd9c4f2e2 LilyPad: Fixed not adding manifests in debug builds, removed them from CRTless build.
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
2009-09-20 04:14:40 +00:00
arcum42 8f4538ae0c Rbor, rbsr, and other such things.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1887 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-20 01:47:45 +00:00
cottonvibes 8234604dce MTGS:
- Optimization for gsTransferDummy to reduce idle loops.
- Added needed variables to _mtgsFreezeGIF().


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1886 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-20 00:37:31 +00:00
cottonvibes 8f0f5ba506 xgkick fix for main trunk
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1885 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-19 23:22:55 +00:00
Jake.Stine c963fd3d85 More GIFtag bugfixes; PATH1's VU1 memory wrapping was measuring the end of VU1 memory incorrectly.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1882 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-19 21:54:45 +00:00
Jake.Stine 4e03bb7c3a Disables MMX register allocation in the EErec; fixes instances of random TLB misses in games like SMT:Nocturne and FFXII (initial benchmarks show it to be same speed or faster anyway, heh)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1878 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-19 17:48:40 +00:00
Jake.Stine beb2fd34db ZeroGS: Remove compiler errors under DXSDK Aug 2009.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1874 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-19 13:15:14 +00:00
Jake.Stine 1ca7d5ac95 GSdx: Fixes GSReplay renderer selection, and adds support for using -1 as a renderer (uses the GSdx configured renderer, but only works if the current working directory is set properly, otherwise the ini file won't be found).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1873 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-19 11:20:31 +00:00
Jake.Stine 1a5ec046a6 A few more baby steps toward cleaning/fixing the GIFtag parser:
* 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
2009-09-19 09:45:26 +00:00
Jake.Stine ac88159fb3 Reintegrated GSopen2 branch. Rundown of new features:
* Implemented proper shader management, fixes several bugs where video would be lost or crash, and is a small speedup.
 * Retains GS state across open/close, same as every other PS2E plugin now.
 * Implemented GSopen2(), which is used by wx-pcsx2 to bind the GS output to a window handle of pcsx2's choosing.
 * Retained full backwards compat with the current legacy gui. :)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1871 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-19 08:51:11 +00:00
arcum42 2d6d370cf6 A few dmacReg & gifReg changes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1870 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-19 05:03:54 +00:00
cottonvibes ca8437dd0a fixed a bug from my last revision...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1869 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-19 04:25:17 +00:00
cottonvibes 32e8a8a260 After hours of frustration getting my gifDummyTranfser() function to work the way pcsx2 wants path2/path3 transfers to occur, I decided to just rewrite it again using the old gifDummyTransfer() as a base.
Fixes GT4 corrupt textures.
Again tell me if this version breaks anything...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1868 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-19 04:04:06 +00:00