Commit Graph

105 Commits

Author SHA1 Message Date
Jake.Stine f52faead0c Re-did the VUmicro's "Cpu Provider" structs into classes, and split sVU and mVU into independent classes.
* 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
2009-12-07 14:00:39 +00:00
arcum42 3092808d04 Let's try that again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2300 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-04 01:00:24 +00:00
arcum42 1dc47d5215 Compilation fixes for Linux.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2299 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-04 00:25:07 +00:00
Jake.Stine 620c93cad7 Minor fixes for new framelimiter; add proper w32pthreads/gsdx dependencies to the MSVC solution.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2297 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-03 23:10:23 +00:00
Jake.Stine 1e431fb69a wtf? A working framelimiter? Turbo and slowmo hotkeys? Frameskipping?! Why it's all here! Rejoice! And then find lots of bugs, too, I'm sure. Note: Frameskipping has no gui stuff yet... I'll do that soon.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2294 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-03 15:51:39 +00:00
Jake.Stine 64c12f5a7a Video/GS Window and Panel Options (partly!) implemented:
* 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
2009-11-29 22:50:55 +00:00
Jake.Stine 03449cf682 * Improve GUI responsiveness while doing things like enumerating/loading plugins.
* 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
2009-11-26 03:37:10 +00:00
Jake.Stine 35c78ae660 Added a "Screenshot" button to the Settings window; it saves a screenshot of the settings to png file. :) It's just preliminary for now. I'll replace it with an artsy icon later, hopefully. :)
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
2009-11-25 15:38:24 +00:00
Jake.Stine cf05172691 User Interfacing:
* 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
2009-11-25 03:54:57 +00:00
Jake.Stine b288e82b95 Couple more MTGS sync fixes, and some final optimizations.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2247 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-24 20:11:43 +00:00
Jake.Stine 48ca426be4 Added AtomicBitTestAndReset() to thread tools and added a Normalize helper to 'Path' namespace.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2242 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-24 08:32:39 +00:00
Jake.Stine 4828beb3c3 * Added toggles for game log output: EE StdOut, EE Deci2, and IOP StdOut. Toggles are provided via a menu in the Console Log.
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
2009-11-23 06:54:24 +00:00
Jake.Stine 87b443a873 Some preliminary work for improving multithread recoverability and deadlock handling. (not really doing much useful yet)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2234 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-22 09:47:52 +00:00
Jake.Stine ae1dcb7ac6 * Fixed some bugs in the SYSTEM.CNF loader (most notably it will not crash on files over 512 bytes -- some PS2 images pad their system.cnf to 32k)
* 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
2009-11-21 07:44:11 +00:00
Jake.Stine 799b89ab65 Fix broken dialog box labels from last night's commit.
Add a note to the Video Panel that it DOES NOT WORK YET. ;)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2228 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-20 11:25:48 +00:00
Jake.Stine d6f9462ffa Added some more convenience operators for wx interface construction. These are intended as a substitute for wxSizerFlags(), like so:
*target += control | wxSizerFlags().Expand().Centre()
// becomes:
*target += control | pxExpand | pxCentre;

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2227 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-20 03:26:10 +00:00
Jake.Stine 08f67ebdee thought 'inline' would be unnecessary with the removal of 'static' on the main template prototypes. I was wrong. But hey, what do you expect from the C++ standards committee, who's "issues" forum is a single huge 1mb html file.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2226 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-19 14:21:26 +00:00
Jake.Stine 4aa0ebe892 Apply proper qualifier use for operator+= templates and their specializations.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2225 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-19 13:44:44 +00:00
arcum42 b11dab02ef Slap a patch on things so Linux and Windows work till it can be looked at.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2224 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-19 12:45:11 +00:00
arcum42 0aae87e8fd Various minor fixes. Corrected a few misspellings, fixed a console message or two, and got Linux to compile again.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2222 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-19 05:55:54 +00:00
Jake.Stine 4ba3fd07dc * Speedhacks master toggle saves now.
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
2009-11-19 05:08:24 +00:00
Jake.Stine 4f9cd96e50 * Added a 'master' toggle to the Speedhacks panel.
* ... 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
2009-11-18 07:53:02 +00:00
Jake.Stine af7bb73948 Fixed the Recent Iso List, which got broken a few revs back... and many more wee bug fixes, most are too unimportant to list here!!
Code Cleanups:
 * cpuDetect: Split Win32/Linux code portions into separate modules. (probably breaks linux)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2205 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-16 13:54:32 +00:00
Jake.Stine 0068ec9cd0 Removed NULL-able DoWrite/DoWriteLn in IConsoleWriter (threaded logging crashed when changing writers on the fly).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2200 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-16 03:23:59 +00:00
Jake.Stine dd0b49e80d Lots of wee bugfixes to user interface stuffs
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2199 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-16 00:40:09 +00:00
Jake.Stine a4baab103f Mode console logging updates and additions;
* 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
2009-11-15 06:26:55 +00:00
arcum42 7c0d91ce86 Fix up Linux, as well as make a few minor changes to onepad.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2196 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-14 09:02:10 +00:00
Jake.Stine 848269fc22 Added pxRadioPanel, a nifty all-thrills container for radio button groups. Removed AddRadioButton. Moved SizerFlags and other wxHelpers to Utilities class (optionally accessible by plugins).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2195 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-14 08:36:57 +00:00
arcum42 4f6fab781b Expand the color list a bit, muck with the Linux color console code, and change a few ifs to a case statement.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2192 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-12 14:52:29 +00:00
Jake.Stine 622f89577d Partial re-implementation of emulation Trace Logging. Still a work in progress. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2178 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-10 17:53:22 +00:00
Jake.Stine d92f756cdf Patch parsing code cleanups, using some parser helper classes and properly const-qualified wxString parameters; also improved error handling slightly.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2163 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-08 17:18:34 +00:00
Jake.Stine 115d2b6f05 * Added word wrapping to tooltips! (Windows only)
* 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
2009-11-08 01:56:24 +00:00
Jake.Stine 04c86ea6d3 Console logging performance tweaks, disable the unused GIFtag register log (it's been tested enough and documented), and add extra calls to GSchangeSaveState (affects zerogs/zzogl only).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2134 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-05 19:32:27 +00:00
Jake.Stine 0591686c67 Misc bugfixes to plugin management and error handling.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2128 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-04 09:30:22 +00:00
Jake.Stine 94222f4aaf Rewrote internal handling of SSE roundmodes and DAZ/FTZ (fixes major crash bugs of the prev revision).
* 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
2009-11-02 07:00:59 +00:00
Jake.Stine 376a2c94b1 Added some hourglass cursors for various things; renamed more Semaphore and Mutex APIs (I'm too indecisive >_<)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2109 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-01 09:27:16 +00:00
Jake.Stine e92e3fb4bb I speal gewd. (Aquire -> Acquire)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2103 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-31 19:25:46 +00:00
Jake.Stine bc2aa38aa1 Implemented ELF loading! :D
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
2009-10-31 19:18:29 +00:00
Jake.Stine 0a4745863c Changed most instances of wxString::FromAscii to fromUTF8, which is generally more correct (may fix Issue 460, please confirm).
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
2009-10-29 13:51:49 +00:00
Jake.Stine 7d458d583c Revamped some console log stuff.
* 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
2009-10-29 13:32:40 +00:00
Jake.Stine eea8ff9767 Fix some 'o dat Linux thang!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2080 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-25 23:21:46 +00:00
Jake.Stine 581e8a30a7 Small bugfixes to settings handling at startup, fixed a memleak when opening multiple dialog boxes, and some other minor interface code cleanups.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2079 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-25 22:33:23 +00:00
arcum42 f62172410f Blind commit. Should fix my last commit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2075 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-25 10:51:38 +00:00
Jake.Stine 984e79ae03 Attempt for the GCC 4.3 compilation errors introduced in r2063/2064, by selectively disabling __fastcall for the functions being used as listeners... hope it works. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2071 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-24 22:32:25 +00:00
Jake.Stine 66d92503aa Attempted fix for GCC compilation errors in previous revision. Also:
* 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
2009-10-24 16:28:48 +00:00
Jake.Stine aa2e053366 Fix the usual myriad of Linux compilation errors.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2064 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-23 21:05:32 +00:00
Jake.Stine efc35405f8 Reorganized the exception/signal handlers, setjmp/longjmp, and SysCoreThread stuff:
* 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
2009-10-23 20:24:59 +00:00
Jake.Stine f172829737 aligned_stack:
* 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
2009-10-21 08:57:05 +00:00
Jake.Stine 00461fdac6 aligned_stack: synced with trunk, to bring in the new console code for additional testing under a (properly working!) linux.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2046 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-21 01:25:55 +00:00
Jake.Stine 43bac9c6a9 Brand new approach to console logging, should be a lot more efficient, and is relatively deadlock-free. Also fixes most of the scrolling issues from prev versions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2044 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-20 19:34:57 +00:00