* 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
Some more wxCore fixes.
Fixed also inter-project dependency warnings.
Also some other fixed to get devel/release compiling.
Oh and apparently my VCproject folder got messed up and detached itself from svn, so it wasn't commiting with the rest...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2849 96395faa-99c1-11dd-bbfe-3dabce05a288
The *null projects don't build, and neither do ZZOgl or ZeroSPU2.
Pcsx2 project has some issues with Resources' custom build steps not being run.
Only Debug target tested.
Needs work before it's usable.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2843 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
PCSX2: Added an optional PS2EsetEmuVersion callback for plugins, so that plugins (like GSdx) can alter behavior based on the version of emulator calling them.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2530 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
I made it so each part can be enabled separately, but atm they are missing some code so nothing will work if enabled.
Commit is mostly for backup/history purposes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2486 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
* Optimized codegen of the VPU recompiler using displaced memory offsets (1-2% speedup)
* Undid a lot of the inl stuff for more traditional cpp code layout (explained below)
* Removed some redundant code and turned some macros into functions.
* Renamed a few things to VPU (Vector Processing Unit, which is the specific name of the logic core that performs VIF Command Processing and Unpacking on the PS2)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2387 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
Fixed a couple UI bugs: FirstTime Wizard display bug and the "Configure..." button in the plugin control panel grays out when it should.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2361 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
DevNote: Moved jNO_DEFAULT from the Pcsx2Defs.h, since it's too dependent on the Common libraries. It's now in Assertions.h. Plugins can use __assume(0); directly instead or roll their own.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2326 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
* Botting NoDisc with "Skip BIOS" enabled should work now (untested).
* Renamed StaticText / StaticHeading helpers to simply Text and Heading.
* Made the iR5900 recompiler's stack alignment check a dynamic toggle instead of a dev/debug build preprocessor.
* Fix annoying linux linker errors.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2229 96395faa-99c1-11dd-bbfe-3dabce05a288
DevStuff:
* Added a handful of operator+= overloads for working with wxSizers -- moderately reduces code clutter. :)
* Commented some of the wxHelpers classes (pxStaticText, wxPanelWithHelpers, etc).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2221 96395faa-99c1-11dd-bbfe-3dabce05a288
* ... more WIP stuff on the Video options panel.
* Spent 12 hrs working on crap text wrapping and window sizing issues.
* Moved several UI classes to utilities (lots of project changes, breaks linux)
* Fixed stilly bug in SPU2-X that prevented it from working (at all).
* Lots of code cleanups, and 1 or 2 bugfixes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2212 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added support for indentation, as a replacement for using \t (options include methods SetIndent and Indent, and a ConsoleIndentScope class for scoped indentation of a block of WriteLns.)
* Use of Indent() as a modifier (the abstraction optionally allows use of indentation methods besides \t, if ever needed).
* Minor header file cleanups: wxWidgets standard headers are now always first in PrecompiledHeader.h files (is recommended due to cross platform setup code by wx).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2198 96395faa-99c1-11dd-bbfe-3dabce05a288
Dev note: kinda reached a point where I'd like to make some revamps of the wxHelper classes based on better understanding of wx-in-practice. So I'm going to work on a significant refactoring of most pcsx2 panel constructors starting now. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2171 96395faa-99c1-11dd-bbfe-3dabce05a288
* Minor cleanups to iFPU roundmode recompilation.
* Changed AsciiFile from wxFile (slow!) to wxFFile (fast!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2156 96395faa-99c1-11dd-bbfe-3dabce05a288
Explanation: EBP was being used by mVU macro-mode (COP2), which violated the new EErec aligned stack setup. ie, register/stack corruption resulted.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2123 96395faa-99c1-11dd-bbfe-3dabce05a288
* Fixed a bug in the Full-mode FPU recompiler.
* Added some better error handling to the BIOS Rom loader.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2117 96395faa-99c1-11dd-bbfe-3dabce05a288
Details:
* Intel's FXSAVE requires an aligned buffer (wasn't explicitly documented in the programmer's guide).
* I moved the wxMenu() objects in the wxApp constructor to OnInit(), which should be post-GTK initialization.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2115 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added SSE_MXCSR union/struct with bitfields and methods for doing common actions.
* Converted all existing MXCSR code to use the new union.
* Added a __pagesize macro for use in conjunction with __pagealigned and dynarec functions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2113 96395faa-99c1-11dd-bbfe-3dabce05a288
Renamed a bunch of functions/methods in the Threading namespace that have been bugging me for a while. (MutexLock is renamed to Mutex, Lock() is renamed to Aquire(), etc)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2102 96395faa-99c1-11dd-bbfe-3dabce05a288
Rationale: FromAscii should only be used on old-style DOS/ANSI character strings that use the upper 128 characters for drawing pictures or writing umlauts, which is pretty much nothing at all as far as PCSX2 is concerned. Chances are even the japanese console logs coming from the PS2 itself use UTF8.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2092 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added more colors!
* VM's EE/IOP logs (the ones that come from the emulated games themselves) are colored accordingly: EE are faint cyan, IOP are faint yellow. They're intentionally "hard to read" because 99% of the time they're meaningless trivia (but still cool since it's what the actual devs would have used for developing the games!).
Dev Notes:
* Removed Console.Status (specify blue/green colors manually if you want them).
* Renamed Console.Notice to Console.Warning.
* I changed the overloads so that both char* and wxChar* versions work like printf now (no need to use wxsFormat when working with unicode strings). I also removed wxString& versions of the overloads. This should (I hope) also be an easier port to wx2.9 or 3.0, when that time comes.
* Default log color is now black instead of gray; typically you'll want to manually specify Color_Gray when doing high volume logging (like the EErec's block tracking in debug builds).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2091 96395faa-99c1-11dd-bbfe-3dabce05a288
(also includes some header file prepwork for my next wxWidgets windows.h commit fix)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2069 96395faa-99c1-11dd-bbfe-3dabce05a288
* Removed some unused sealed class container mess that liked to cause compilation errors on GCC 4.2
* Added a macro for efficient invocation of static recompiled code buffers.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2065 96395faa-99c1-11dd-bbfe-3dabce05a288
* Exception/Signal handling now uses an EventSource, so that multiple handlers can be registered. This is in preparation for (eventual) more complete MIPS TLB support in the VTLB memory model.
* Improved code isolation, so that recompiler-specific code is primarily in iR5900-32.cpp (cleans up Counters.cpp and SysCoreThread.cpp)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2063 96395faa-99c1-11dd-bbfe-3dabce05a288
* Added -fno-strict-aliasing to the ever growing list of gcc optimizations that can potentially cause perfectly good C code to generate entirely broken results.
* Removed the preferred-stack=2, since this branch *should* run fine without it now.
* Have Release builds in Linux SIGKILL when encountering an unexpected SIGSEGV.
* Fixed some deadlock issues with the new console logger (it introduced cancel points, which is a good thing! unless you're the EE recompiler and you swallow up any attempt by GCC to cancel a thread)
* Compilation error fixes.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2049 96395faa-99c1-11dd-bbfe-3dabce05a288