Rationale: Pseudonym did the necessary upgrades to the recompilers a couple months ago prepping us for a day when we would no longer need MMX/XMM register freezes. All regs are already being flushed on all memory operations, so I added proper flushing to COP0 and COP2 here, and removed XMM freeze/thaw code entirely.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3375 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fix for Issue 780 (missing uppercase iso extensions in the Open File Dialog).
* A few minor threading fixes for the GameDB loader to avoid crashes/hangs when closing the emulator immediately as it opens.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3350 96395faa-99c1-11dd-bbfe-3dabce05a288
I also re-implemented R5900 runtime exception handling for TLB Miss and such (devbuilds only, for now).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3335 96395faa-99c1-11dd-bbfe-3dabce05a288
Pretty big speedup in games with lots of GIF activity (Soul Calibur 3 goes from 40 to 48fps).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3314 96395faa-99c1-11dd-bbfe-3dabce05a288
Linux note: There's a chance as usual that this might break something in Linux because Linux and Windows STL headers have different dependencies. Namely <algorithm> might still be needed in on some of the PrecompiledHeaders. If so, just re-add it and commit, and make a note: // yes GCC really needs this one :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3295 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fix for random crashes when recording movies (F12). It still doesn't seem 100% stable, but it's a heckuva lot better than before.
* Log options dialog behavior bugfixes.
* Cleaned out some old hacks for handling hotkeys from the GS window, and implemented proper use of GSwindow-local hotkey mappings vs. global hotket mappings.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3292 96395faa-99c1-11dd-bbfe-3dabce05a288
* GameDB: Remove the game database from the Settings panel, since it's kinda slow still and it started to drive me nuts. I haven't added another menu option to open it up yet (it will be in its own dialog), but I will soon.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3290 96395faa-99c1-11dd-bbfe-3dabce05a288
* Print a fatal_error when users do not source the good CMakeLists file.
* Do not search system libraries if the user force the internal libraries
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3269 96395faa-99c1-11dd-bbfe-3dabce05a288
* Much header file cleanup and used forward declarations to remove a lot of excess includes; might help improve build times a wee bit.
* Preliminary hash-table implementation for the Game database.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3264 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fullscreen mode should be remembered/applied properly now.
* implemented --fullscreen and --windowed options
* Made the --help popup a lot prettier
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3249 96395faa-99c1-11dd-bbfe-3dabce05a288
* renamed PersistentThread to pxThread (shorter, sweeter, and the 'persistent' part is obsolete since its now a full blown thread manager since some while ago).
* Renamed a bunch of the PostMethodToMain stuff to Rpc_TryInvoke* (for remote procedure call). It's probably not a good use of the term, but I'm bummed I can't think of anything better/shorter.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3238 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added 3-state checkbox support to pxCheckBox.
* Fixed some buggy behavior when closing PCSX2 with either main window or console window minimized (window positions would get screwy)
DevNotes:
* Moved ImplementEnumOperators macro to Common headers and improved it a bit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3220 96395faa-99c1-11dd-bbfe-3dabce05a288
* Various configuration dialogs remember their positions now. :)
* AboutBox is fixed, and is now resizable.
* Fix for Issue 739 : usermode.ini hashes are now case-insensitive on Win32.
* Likely Fix for Issue 740 : missing text on Linux/GTK. (need confirmation)
DevNotes:
* Moved IniInterface.cpp/h to the Utilities lib. Linux makefiles will need to be updated. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3178 96395faa-99c1-11dd-bbfe-3dabce05a288
* Major bugfix to the startup/user path settings code (should fix issues some people were having when trying to run multiple copies of pcsx2 from different folders).
* Various bugfixes to panel appearances
* Win32: "stdio" console output now redirects to theVisual Studio Debug Output window, since Stdout is generally useless on windows.
Emulation:
* Removed the IOP SIF hack since it never did what I was hoping it would do anyway.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3176 96395faa-99c1-11dd-bbfe-3dabce05a288
Todo note: The plan is to make the Gamefixes dialog match the new way the speedhacks dialog is laid out, with the disable checkbox at the top (in case someone wants to try their hand at it!).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3171 96395faa-99c1-11dd-bbfe-3dabce05a288
* Various small cleanups to emitters and microVU's regalloc code (no functional changes)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3162 96395faa-99c1-11dd-bbfe-3dabce05a288
The panel is currently under "Emulation Settings", feel free to move it where-ever is appropriate.
If you have a game loaded the editor will automatically load the game's info, if not you can search for the game by typing the serial manually.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3152 96395faa-99c1-11dd-bbfe-3dabce05a288
* Console Log doesn't force itself into the focus anymore when it opens
* Suspend/Resume menu item updates more reliably.
* Changing plugin settings while suspended works nicer; less likely to crash/hang/etc (ironically, changing plugin settings while running was more reliable).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2976 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed some minor bugs when processing idle events.
* Plugin Load/Init/Shutdown/Unload are all called from the Main/UI thread again; this is important for plugins that issue popup warning/error messages.
DevNotes:
* Added ScopedPtrMT, a multithread-safe version of ScopedPtr.
* MTGS errors are still not handled as gracefully as they should be; namely the MTGS thread doesn't restart itself (it's on the TODO list).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2958 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed several obscure deadlock issues.
* Savestate actions block; such that only one load or save is permitted at a time.
* Savestates now work through temp files, so that the existing file is not corrupted in case errors occur.
* Exiting the emu while a savestate is saving will still save the state before completely quitting.
* Plugin init errors are handled more gracefully.
Developer Notes:
* Added some event diagnostic trace logging stuff.
* More preliminary work on memorycards -- moved them to their own dialog box and started implementing things, but still a lot of work to do before it's ready for use.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2936 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added versioning info to savestates! (along with some other bugfixes)
* Simplified the Boot and System menus -- removed the old Skip BIOS hack and replaced it with the new BOOT2 injection method (which is considered hack-free at this time).
* Removed lots of UI deadlock gotchas.
* Some new confirmation dialogs and better error handling.
* Implemented an exclusive SysExecutor thread, which serves the purpose of executing system/VM commands and events in uninterrupted order (including suspend, resume, savestates, etc.)
* ... and probably broke linux!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2911 96395faa-99c1-11dd-bbfe-3dabce05a288
Also
* Tons of small UI bugfixes and cosmetic improvements, mostly to startup, first-time running, and resetting options.
* Added a third startup option for specifying a custom "default location" for PCSX2 files, in addition to user docs and CWD.
Devs:
* Implemented some more += operators for adding wxWidgets objects to sizers (pxStretchSpacer mainly).
* Preliminary re-implementation of memory cards panels -- still non-functional, so it's disabled.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2671 96395faa-99c1-11dd-bbfe-3dabce05a288
* Hopeful fix for GSwindow getting stuck maximized when pcsx2 crashes when fullcreen.
* Altered RestoreDefaults behaior for EE/IOP and VU CPU panels.
* CDVD Verbose Reads toggle takes effect immediately now.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2506 96395faa-99c1-11dd-bbfe-3dabce05a288
* Implemented GS window hiding on suspend (option was there, but not tied in)
* Added Frameskipping options
* Added option for disabling all GS output, for benchmarking EEcore stuffs.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2409 96395faa-99c1-11dd-bbfe-3dabce05a288
newVif:
* Bugfix to HashBucket::find() cuts microprogram caches misses in half.
* Dynarec version now uses alternating XMM registers for unmasked unpacks (very minor speedup, ~1%).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2397 96395faa-99c1-11dd-bbfe-3dabce05a288
* Implemented TlsVariable, a nifty alternative to __threadlocal, suitable for archaic operating systems that don't have native TLS support (namely Mac OS/X).
* Added a forced reference to TLS in AppInit so that TLS is sure to be available to DLLs (otherwise windows doesn't init TLS by default).
* Disabled TLS support in the x86emitter by default, since it's looking increasingly like we won't find a use for multithreading PS2 sub-components (can be re-enabled later if spontaneous brilliance at a later date proves me wrong).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2396 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed a savestate loading bug, when loading states made with different sets/versions of plugins.
DevNote:
* Moved some old PS2E types to PS2Edefs, since the new v2 plugin API won't use them (freezeData, keyEvent).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2380 96395faa-99c1-11dd-bbfe-3dabce05a288
PCSX2: attempt at fixing what appears to be a belated thread affinity issue during the cpuspeed detect.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2363 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added feature to align call targets for EErec functions and blocks on P4's and AMDs, and pack them on Core2/i7's.
* Fixed some svn:native props.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2347 96395faa-99c1-11dd-bbfe-3dabce05a288
* Configuration panels are all modal-less now, so that you can open the config panel and leave it open while running games.
* Handful of thread sync improvements.
* Fixed on-the-fly interpreter/recompiler configuration.
* Fixed plugin hotswapping (mostly works, but still a little funny at times)
* All new assertion dialogs and popup message handlers.
* RecentIsoList defaults to 12 instead of 6
Dev Notes:
* I had to create a new set of assertion functions called pxAssume*. Originally I hoped to avoid that complexity, and just use a single one-assert-fits-all case, but turned out blanketly using __assume() for all assertion cases wasn't reliable.
* wxGuiTools: Replaced the operator, with operator& -- the latter has proper order of precedence, the former required () to scope correctly. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2339 96395faa-99c1-11dd-bbfe-3dabce05a288
* Removed some hacks from cpuDetectInit's use of cpuId.
* Improved assertion checking for thread affinity.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2327 96395faa-99c1-11dd-bbfe-3dabce05a288
* Better error handling for when sVU fails allocating memory at a specific location (should fail less).
* Partial support for detecting and handling non-SSE2 machines with some grace.
* Improved sVU's allocation chances with a second try at another randomish address (and removed alloc fail spam from the console -- only logs on complete fail now).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2321 96395faa-99c1-11dd-bbfe-3dabce05a288
* Aspect ratio and mouse cursor hiding features should be mostly functional.
* Mouse cursor by default hides after 1.75 seconds of inactivity, when in the area of the GS window. Can be forced to always hidden in the control panel. Unlike the liilypad hack, this one won't hide the mouse in the main window or title bars. (and it should work for Linux too!!)
* GS window position and size should be remembered between sessions.
Console Logger window z-order is now "bound" to the main window. When clicking either window to bring it to focus, the other window follows (implemented for Win32 only, since wxWidgets doesn't have a cross-platform implementation of the necessary SetWindowPos call).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2275 96395faa-99c1-11dd-bbfe-3dabce05a288
* ConsoleLogger Optimization: Improved performance considerably for when the log gets spammed by EEcore or MTGS threads.
DevNotes:
* Added a new pxYieldToMain() method (currently implemented in Win32 only). It provides a smart way to allow passive-task worker threads to yield time to the Main Thread when important messages are pending (keyboard or mouse clicks, primarily). It also replaces the wxGetApp().Ping() stuff, which never worked anyway due to wxCommandEvents having a higher priority than native system messages.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2253 96395faa-99c1-11dd-bbfe-3dabce05a288
Cleaned up the operator overloads some more, and added operator, (yes, comma) to solve some ambiguity problems when trying to apply multiple attributes to a single window.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2252 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added bold text to indicate default options on CPU settings panels.
* Hitting 'Restore Defaults' activates the Apply button.
* Fixed some missing confirmation dialog text.
* More conversions of interface code to use the new += and | operators.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2251 96395faa-99c1-11dd-bbfe-3dabce05a288
Dev notes:
* Renamed MtgsthreadObject to SysMtgsThread (matches naming pattern of other thread classes).
* Added accessors for GetMtgs() and GetCoreThread() [rationale for them documented in source comments]
* Removed wxHelpers namespace since we're using px name prefix instead for most stuff.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2238 96395faa-99c1-11dd-bbfe-3dabce05a288