Commit graph

187 commits

Author SHA1 Message Date
Jake.Stine
1f2daa6459 User Interface:
* 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
2009-10-16 03:58:29 +00:00
Jake.Stine
e8e61a5cf8 Settings work again!
* Switched the SysCoreThread to a static (fully persistent) thread.
 * Added some listeners for when the CoreThread status changes
 * fixed some slowness in savestates, and the emu will now stall until savestates complete, if you try to exit too quick (avoids savestate corruption)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1993 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-09 15:17:53 +00:00
Jake.Stine
6412271470 Renamed PCSX2_ALIGNED to __aligned and removed the need for excess parenthesis and oddball qualifiers. Left the old macros in Pcsx2defs.h for now, just in case. Redid some of the storage organization of microVU and iFPU consts and temporaries while I was at it, using structs instead of naked vars -- should improve cpu cache behavior a wee bit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1959 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-05 02:15:49 +00:00
Jake.Stine
653d09e821 Lots of new code maintenance stuffs:
* 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
2009-10-04 08:27:27 +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
d2fbb22076 Upgraded PCSX2 core and utilities to GPLv3.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1783 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 12:08:10 +00:00
Jake.Stine
3b10771c36 Got rid of that old 'params' mess on console logs. Not needed anymore since wxwidgets has nicer built in formatting options (never liked it anyway)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1782 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 05:37:40 +00:00
Jake.Stine
976d5ec539 * Implemented Skip Bios (settings still not saved tho)
* Fixed a bug in how I was (not) handling pthreads return codes.  It's errno you need to check, *not* the function's return value. ;)
 * Changed MTGS over to use the pthread_cleanup api.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1779 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 03:44:35 +00:00
Jake.Stine
980afabc30 wxgui:
* Moved some files around in an attempt to improve CoreEmu and UI separation.
 * Major upgrade to the UI's handling of savestates
 * Maintenance work to the C++ exception handling
 * Some improved error handling and message popups here or there

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1714 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-31 03:47:05 +00:00
Jake.Stine
396783957e wxgui:
* synched with trunk to pick up all new cdvdiso fixes.
 * configuration wizard now starts if pcsx2.ini is missing/deleted.
 * changed GetWindowChild (MSW specific?) to FindWindow.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1696 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-28 13:06:06 +00:00
Jake.Stine
9303bc5bf2 wxgui: Prepped the R5900 recompiler for the new wxWidgets-enhanced dedicated emulation thread design, and removed the old boolean-based re-entrant event checking mess.
Note: Nearly have a successfully booting branch! (bios crashes when it reaches CDVD api callbacks, should be a simple fix but it'll have to wait until later >_<)

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1680 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-25 15:38:48 +00:00
arcum42
be6c314e27 Various changes that were accumulating. Broke off Gif.h from GS.h. Changed some defines to enums. A few other minor things.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1676 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-25 09:19:45 +00:00
Jake.Stine
c415d8d694 wxgui:
* Major cleanups and improvements to the Threading namespace.
 * Created CoreEmuThread class framework, which currently runs the EEcore, IOP, and VUs with threadsafe suspension, reset, and resume features.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1624 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-15 06:17:43 +00:00
Jake.Stine
4836aac1f5 wxgui: separated core emulation options from user interface options (mostly! some interdependencies remain), and stripped out some of the old framelimiting toggle/cycle code, which will be replaced with a better framelimiter system soon.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1602 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-04 08:21:10 +00:00
Jake.Stine
3751c928d3 wxgui: synced with trunk (to acquire new CDVD/ISO api)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1558 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-23 14:58:17 +00:00
ramapcsx2
0fb4e89fe2 Removed the wait cycles hack, and made it effectively always on.
The magic values for this setting were made for the old, sometimes failing system.
It should not be needed anymore, and testing confirmed that.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1485 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-11 15:43:28 +00:00
Jake.Stine
5d36fe3839 wxGui branch: Holy crap! I converted it to unicode! This was an absolutely maddening experience. [also: Merged with /trunk]
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1069 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-27 02:04:31 +00:00
sudonim1
d7341d5b69 Protect manual pages again after running code in them for a while, should speed up some games and probably not significantly slow down any.
Related new speed hack, fast-forward a block starting at 0x81FC0 which some games (FFX) run a lot.  This block is also excluded from the previous feature.
Rearrange configuration file and speed hack dialog.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1040 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-21 23:30:06 +00:00
ramapcsx2
f4e9178c06 backing up some changes
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@926 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-04-08 17:15:51 +00:00
ramapcsx2
149f84b00d A few tweaks to more often called functions = general speedup :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@874 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-31 15:06:27 +00:00
arcum42
4ea9d9292f Replaced more SysPrintf's with Console:: functions then I want to think about. A few minor changes in passing, mainly format-related.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@843 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-27 01:42:51 +00:00
arcum42
78520b9a24 Get rid of some duplicated code in cpuException...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@823 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-20 01:26:38 +00:00
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
5d93b6bbe9 Minor PERF fixups -- moved the diagnostic msg to a less spamming-like area (on PCCR assignment, rather than on PCR update).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@748 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-11 19:08:08 +00:00
Jake.Stine
dc3d9f4bfc Fixed the bug in r740 that broke speedhacks; and improved the PERF support a bit more using bitfields and more correct mode tests.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@745 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-11 07:40:23 +00:00
Jake.Stine
15901551b4 Improved PCR/TIMR support -- fixed a case where games would try and read from the PCR multiple times in the same recompiled block, reuslting in bogus values, and fixed some sign extension errors on the interpreted version of MFC0.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@738 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-10 19:21:54 +00:00
Jake.Stine
cc930f86c5 Major GUI API Cleanups. Most likely buggy as all hell.
* Moved most of the shared code between the two GUIs into platform independent source modules (System.cpp, Saveslots.cpp, and RecoverySystem.cpp)
 * Created two new namespaces which house functions that need to be implemented by OS/platforms: HostGui and HostSys.  HostGui is useful -- HostSys I'm not sure I'll keep around in the long run.
 * Moved keyEvent struct from PS2Edefs.h to PS2Etypes.h
 * Many improvements to the logic flow of the GUI (should be a little less fallible).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@675 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-04 11:33:45 +00:00
arcum42
7d4a7d3c10 Fix up the last revision for Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@655 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 22:12:19 +00:00
Jake.Stine
f270064b41 Committing the beginnings of a new PS2 Exception Handler! This is very much a work in progress, but it shouldn't really break (or fix) anything in its current state.
EE Interpreters: Fixed some signed/unsigned mistakes in some instructions, namely DIVU, DIVU1, unsigned Traps, and a couple unsigned right shifts.  (all of these were already emulated correctly in the recs)

Also: Removed the ThreadPriority stuff from Pcsx2, since it was a throwback to the days of Win95's unstable multitasker. If you really really feel like you need to change the thread priority of Pcsx2, use the Windows Task Manager or a third party util.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@654 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-03-01 21:49:17 +00:00
Jake.Stine
5b09d81f36 Fixed a bug in the savestate system that caused memcards to eject when they shouldn't have (had uint instead of u64 >_<).
Developers: Changed the way PCSX2_ALIGNED16 macros work, so that they're more friendly to MSVC and Visual Assist X intellisense (more more red squigglies on vars like cpuRegs!)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@618 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-27 01:43:43 +00:00
Jake.Stine
fe6f45e45e Updated the Copyright to reflect the passing of another year. :)
Updated the pcsx2_suite_2008.sln; changed SPU2ghz to SPU2-X.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@502 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-15 23:23:46 +00:00
arcum42
fd4f5bab0b Various minor cleanup. Get rid of those annoying extra newlines in Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@474 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-11 13:25:17 +00:00
refraction
2247e97f20 Removed VSync INTC timing hack, could possibly sort others too
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@464 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-09 22:13:22 +00:00
Jake.Stine
6ebfae8ef1 Re-Added eol-style:native properties to the repository. The settings got lost when we merged from Playground to Official.
Added interface.cpp (plugin/pcsx2 interface) and savestate.cpp to SPU2ghz, to help clean up SPU2.cpp.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@463 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-09 21:15:56 +00:00
refraction
d2ef18113c Removed my VIF tests, put some other means of protection in place that seems to work. Should fix Issue 22 which was introduced in r454. Also fixed a vif mfifo bug which has been there god knows how long..
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@462 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-09 20:45:14 +00:00
refraction
fbff495952 Fixes for Fatal Frame VIF errors and FF7 DoC grey screens. Experimental VIF timings included
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@454 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-08 09:10:09 +00:00
refraction
aa94c30dc3 Should be the last of the trunk, gotta finish the branches/tags, but thats the main bulk transferred.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@426 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-02-06 20:04:37 +00:00