Commit Graph

341 Commits

Author SHA1 Message Date
Jake.Stine f293c2983b A couple dozen user interface refinements; notables:
* 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
2010-01-04 11:51:09 +00:00
Jake.Stine de637fc921 Bugfix for assertion breaks not working in Devbuilds.
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
2009-12-25 18:00:51 +00:00
Jake.Stine c2aa78f2b5 Undo VPU renaming, Vif was better for this originally. >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2391 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-23 22:14:51 +00:00
Jake.Stine b27b89b162 newVif: I'm a terrible person. What started out at an optimization turned into this.
* 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
2009-12-23 13:22:30 +00:00
Jake.Stine a3edb9798c Added preliminary screensaver disable feature. Cleaned up Vista/Win7 DWM code a bit. Consolidated various win32 specific code into MSWstuff.cpp
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2370 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 14:50:36 +00:00
cottonvibes 1a54ff0bb9 newVif: non functional minor changes...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2365 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-20 02:13:42 +00:00
cottonvibes a5272f8dc9 Wrote a vif 'unpack' packet recompiler.
Compatibility is probably the same as the newVif interpreter code, but its faster.

Speedwise its similar to the old-vif unpack code (the one currently enabled by default in pcsx2).
Its about 0~2% slower on my machine from my limited testing, but I assume people with SSE4.1 cpus might have a lot better results since I added a lot of sse4.1 optimizations...
The SSE4.1 optimizations were also ported to the newVif interpreter code.

Also the "filling mode" should be fast compared to the old-vif unpack code since its sse optimized, but most games don't use this mode so it hasn't been tested much...

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2358 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-19 10:00:40 +00:00
Jake.Stine f34f3ac0c4 * Significant optimizations to the VIFunpack interpreter (employs templated maskmode and cyclesize constants).
* Minor optimizations to newVifUnpackSSE, and more optimization notes.


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2352 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-17 13:59:01 +00:00
Jake.Stine 747de4ebde Resolves Issue 502 : FFXII vid hangs in release mode builds due to PCH being enabled on IPU.cpp.
This is actually the second time around on this.  Same problem happened in the Playground days, with the same fix. ;)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2350 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-16 14:22:40 +00:00
cottonvibes 79ee87a90f experimental new vif unpack rewrite... (currently disabled and slow)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2345 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-15 08:21:58 +00:00
Jake.Stine c17455c702 User Interface code cleanups and bugfixes. some highlights:
* 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
2009-12-14 12:18:55 +00:00
Jake.Stine ba473e0a7f * Redid console logging to use stdout instead of the buffered queue (probably less buggy).
* 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
2009-12-07 22:43:16 +00:00
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
cottonvibes 316e7ffccc microVU:
- Added microVU_Clamp.inl to the project file which holds all of mVU's clamping routines.
- Added tmmk's optimized clamping method for sse4 (preserve sign clamp mode only) <-- untested
- Not using regalloc for preserved-sign non-sse4 code anymore since it seems to be bugged (thanks to nneeve for pointing it out)
- Extra mode was using preserve-sign code before; but changed it now to never preserve nan sign...
- Fixed a bug in extra clamp modes where it was clamping all 4 vectors on SS SSE instructions, destroying upper 3 vectors...

After these changes the compatibility of extra / preserve sign clamp modes have gone up.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2315 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-06 01:49:40 +00:00
arcum42 cf21dbf992 Get rid of Tags.h.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2310 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-12-05 08:13:04 +00:00
Jake.Stine ee4d5075db project file fix for devel and release mode targets
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2276 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-30 03:03:04 +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 740777ec1e Maybe better console log behavior when dragging scrollbars; move some code out of ConsoleLogger.cpp into new files to reduce clutter and mammoth file size.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2271 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-28 17:16:10 +00:00
Jake.Stine 474a404dfd Turn an ugly snapshot button into a pretty one!
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2254 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-26 07:01: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
arcum42 68c0e16ac0 Hack Hw.h in half and do a bit more header cleanup. Remove a header that's unused.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2203 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-16 13:49:56 +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 ba37f31849 Trim and tweak a bunch of includes, and a few headers.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2197 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-14 12:02:56 +00:00
gigaherz ce31ac361c Implemented a feature which could potentially reduce the slight slowdowns present when running in windowed mode inside Aero.
Since it's late, I will leave it to the world to figure out of it really makes a difference.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2183 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-11 03:56:14 +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
cottonvibes 61b2ab7583 - Added microVU_Flags.inl to the project file (somewhere along the lines it went missing)
- Fixed sVU COP2 to compile correctly (when disabling mVU Macro)
- Fixed minor mVU debug/logging bugs
- Made mVU0 exit execution every ~768 cycles which fixes Rachet and Clank hanging (mVU0 already did this before when the m-bit was set, but now it does it all the time even when the m-bit isn't set; other games might be effected by this change...)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2158 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-08 03:13:31 +00:00
gigaherz f598fb8362 Replaced the old isofs code with a new simpler and cleaner isofs handler.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2152 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-07 23:03:03 +00:00
Jake.Stine b9e372ec75 Added drag&drop for the main window (supports isos and ELFs -- isos are automatically added to the Recent Iso menu), and fixed some minor bugs in managing/updating the recent iso menu.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2122 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-11-03 20:26:01 +00:00
Jake.Stine 4cb8e21f94 Much work on menus, gui features. Partially-working recent-isos menu list. Bugfix for some of the new console stuff that could have caused some funny bunny business, or crashes, in a few games. Why dat wascaly wabbit! >_<
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2100 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-31 10:03:07 +00:00
Jake.Stine 6d5690c772 Adds proper Shift-JIS decoding to the PS2 console output (conversion tables generated by gigaherz). If you have asian fonts installed, then Japanese characters will be displayed correctly in the console. :) [good test games are FFXII and Tales of the Abyss -- many others too probably but those are ones I have]
Known bug: sometimes the font won't get reset back to default immediately after japanese text is printed.  Not sure yet best way to handle that.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2094 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-30 14:32:15 +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 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 51999656ab aligned_stack: Implement full compliment of stack alignment options for the IOP (untested in gcc/linux yet); and fix a compiler error in MSVC.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2048 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-21 07:10:30 +00:00
Jake.Stine 6c631e009d Yet more thread sync fixes, mostly to do with rapid reset/resume/suspend/exit actions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2030 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-18 12:30:00 +00:00
Jake.Stine d69f6610e8 More threading improvements:
* Added TimedLock to MutexLock
 * Use MutexLock::TimedLock as a replacement for some sloppy semaphore use in SysCoreThread and PersistentThread.
 * Minor fixes to thread cleanup when exiting the App
 * Added some extra deadlock protection to the blocking Wait and Lock functions for Mutexes and Semaphores.
 * Moved MutexLock and Semaphore implementations into their own files.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2022 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-17 18:21:30 +00:00
gigaherz bdad3bfa97 It seems trying to second-guess win32api plays against you, so it's best to assume it worked when the functions say it did.
(Fixes the stdout redirection for me.)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2020 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-17 16:19:13 +00:00
Jake.Stine aa26ea5004 More cleanups and comments on top of gigaherz's work, and added a stdout pipe concatenation thingie due to Windows liking to send 1-character messages to begin every new message written to the redirection pipe.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2017 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-16 19:28:59 +00:00
gigaherz e75474f076 Cleaned up the redirection code a bit trying to figure out why does it refuse to accept the redirection for stdout, but not for stderr.
The error still happens but at least the code is a bit cleaner.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2016 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-16 17:46:58 +00:00
Jake.Stine 5c930fcb55 Win32: Attempt #1 at bugfixing the stdout/stderr redirection; Switched from CreateNamedPipe to CreatePipe.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2014 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-16 16:15:40 +00:00
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 5cf69e328d Minor cleanups -- removed unnecessary "using namespace std;" declares, etc.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1988 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-08 19:37:28 +00:00
Jake.Stine 46badcc0e8 Fixed a memory leak in the MutexLock object.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1984 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-08 18:30:40 +00:00
arcum42 88185fc276 Chop up VifDma into a few pieces.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1981 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-08 06:15:11 +00:00
Jake.Stine eda5d1d834 Savestates work! Not much else does yet (settings, etc), but at least this monkey's off my back. I can work on tying up more loose ends now. :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1975 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-07 19:20:11 +00:00
arcum42 8de443878a Don't believe we really need an xml parser in pcsx2. I've moved it to 3rd party, in case we want it at some point. Removed the xml loader code as well.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1971 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-06 10:22:52 +00:00
Jake.Stine ed444cb876 More MSVC/Win32 buildsystem fixes: Made is so you can now optionally unload all 3rdparty libs (after building at least once!) and still build the rest of PCSX2 and plugins without linker errors. This is useful for reducing the memory overhead of working in the MSVC IDE, and reduces the size of the .ncb file and the bugs that come with it.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1969 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-06 01:52:22 +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 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 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
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 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 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
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
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 e5da378d9a Added a GSopen2 call to the GS plugin API, which is used by PCSX2 to specify its own window handle.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1840 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-17 07:31:57 +00:00
Jake.Stine c9c924fe35 Yay, craploads of fixups for the new gui:
* Lots of crashfixes and threading rules compliance (like using wxYield instead of ProcessPendingEvents)
 * Killed off some memory corruption
 * Better error handling and reporting
 * Much speedier suspend/resume during emulation
 * Revamped entire savestate system to use a RIFF-style file format (untested, will work on it soon)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1832 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-16 17:23:02 +00:00
Jake.Stine 4fbc2c26aa Fixed a bug in BiosTools.cpp that caused Bios-Not-Found errors.
MemoryCard / Multitap Renovations:
 * Memorycards should now support multitap (somewhat untested)
 * Implemented a memorycard plugin interface, using the new API defined in PluginCallbacks.h (still prelim and hackish)
 * Memorycard settings are saved to ini!
 * Multitap is now controlled by PCSX2 instead of the pad plugin (which means no multitap until we implement the gui toggles to enable it)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1817 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-13 17:11:35 +00:00
cottonvibes 7437f72259 Did a cleanup and organized EmuCore's virtual folders.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1808 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-12 06:55:05 +00:00
Jake.Stine b638f52809 Re-ordered the MSVC folder structure to split PCSX2 into two definitive sections: [App]Host and [Emu]Core (the bracketed names indicate the "long" versions which are generally used in the code to differentiate the functions and classes). If the tentative layout is good then I'll sort the files on SVN to match that layout.
(note: Patch.cpp/Patch.h is still the odd child out in this commit, as it's destiny is to become a plugin)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1804 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-12 02:58:22 +00:00
Jake.Stine 76045a4722 Cleaned up Path namespace and moved it and wxDirName to /common/Utilities.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1803 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-12 01:03:44 +00:00
Jake.Stine ea37e06654 Added libjpeg (version 7!)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1791 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 22:26:26 +00:00
Jake.Stine 4b4422d2dc * Better icon! Transparency in Windows Taskbar icon is still bad, but I can't figure out how to fix it (documented in code)
* Cleaned up the code of the Gamefixes a bit.
 * More svn:native props -_-

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1788 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 16:39:37 +00:00
Jake.Stine 77da67100e Updated to the new icon! So sleek...
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1784 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-08 13:14:34 +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 50446e6930 * Added preliminary keyboard support back in (probably doesn't compile in linux)
* Fixed a deadlock in thread cancellation.
 * Muted some folder warnings when running pcsx2 for the first time.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1778 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-07 21:16:12 +00:00
cottonvibes 5148323b7c pcsx2:
Made mVU Macro ON by default again (got turned off by wx merge).
Added microVU speedhacks to GUI.
Deleted microVU_Alloc.h from project file.

Note: No speedhacks appear to be working yet during emulation.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1769 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-07 04:40:50 +00:00
Jake.Stine 1bc07c3555 wxgui: Updated to the new logo and about box pic (about box layout still sucks tho). Redid the built in resources so that they're automatically compiled from the original images, instead of having the bulky .h files on SVN (includes updates to bin2cpp tool).
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1760 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-06 19:48:57 +00:00
Jake.Stine c1a818386f wxgui: removed dependency on afxres.h, added resource/manifest versioning info to w32pthreads.v2.dll, and fixed a compile error.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1746 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-05 23:46:08 +00:00
Jake.Stine 9308d86ffc wxgui: Runs games. 'nuff said.
* Fixed some deadlock conditions by adding a message pump to semaphore waits ont he main/gui thread.
 * Many more config and init bugfixes.
 * Implemented most of the new Boot menu.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1745 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-05 23:07:23 +00:00
Jake.Stine f7a44a7af2 wxgui:
* Added /gui/AppRes.cpp : contains resource management code that used to be in /gui/App.cpp.
 * Redid disk/linux console logging to be both thread safe and crash-safe.
 * Cleaned up plugin init/open exception handlers
 * Was forced to implement a manual version of wxEventLoop because of a critical design flaw in wxWidgets' message loop exception handler.


git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1727 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-02 11:22:16 +00:00
Jake.Stine 25a31e3a03 wxgui: retooled exception handling, should eliminate warnings in GCC and remove previous initialization ambiguities. (ended up being a nice code cleanup too, yay)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1720 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-09-01 00:43:28 +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 4c39dd35a7 * Re-enabled PCH in release builds; fixes various mysterious crashes.
* Restored Run->Execute's old behavior when the emu is in a reset condition (plain jane bootup using CDVD plugin).
 * Fixed some CDVD init stuff on the Linux side of things.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1691 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-27 19:38:09 +00:00
Jake.Stine 670def4974 Linux only: Preliminary fixups for supporting the new improved commandline and g_Startup implementation.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1686 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-27 08:48:00 +00:00
Jake.Stine 62591d04d8 * Added the missing cd image types to the iso browser (img, bin, nrg, etc)
* Minor fix when using cdvdiso in browser mode (keeps the browser from being obscured by the GS window).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1685 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-27 03:09:38 +00:00
Jake.Stine d77ac4786d Major Fixes!
* Fixed like a gazillion bugs in the new CDVD system; memory corruption, memory leaks, failed resets, and who knows what else.
 * New commandline parameters!!  Added -skipbios/-nodisc/-usecdvd/-elf [file] options, intended replacements for the now obsolete -bootmode (bootmode should still work as it used to).
 * fixed a bug that kept -help from working, and updated -help to display all the new command lines.
 * -nogui command line now causes PCSX2 to close on escape, instead of escaping back to the GUI.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1684 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-27 02:00:25 +00:00
Jake.Stine c73375366f wxgui: Redid a bunch of the wxWidgets assertion handlers so that they're thread-safe, and fixed the wxLogError stuff to pipe through to the PCSX2 console (better than it spamming popup errors, and also makes it thread safe as well).
.. oh, and it successfully boots the BIOS now, suing the 'Boot Without Disc' menu option. :D

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1682 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-26 08:57:52 +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
cottonvibes a3f0ba5315 microVU:
- Started implementing VU macro mode (code off by default)
- Disabled Constant Propagation for Jump Addresses (this rarely was a speedup, and it slowed down recompilation time a lot in some games causing bad slowdowns (GoW))

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1675 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-24 02:48:50 +00:00
Jake.Stine e25db2a0ba wxgui: sync with trunk (boooring)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1660 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-20 16:19:33 +00:00
Jake.Stine 4b320294fc wxgui: Fixed most of the trivial bugs from the prev commit.
* Removed NoncopyableObject class and replaced it with a DeclareNoncopyableObject() macro -- which reports saner C++ compilation errors when the object copy is attempted.
 * Improved first run wizard and several configuration panels.
 * Moved the BIOS selector to its own menu item and dialog box, separate of the Settings panel.
 * Fixed various bugs preventing configuration changes from being saved.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1658 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-20 14:34:48 +00:00
cottonvibes 685ceb245c Disabled precompiled headers for release builds. This fixes the random crash introduced 2 revisions ago (caused by some crappy IPU code we need to eventually get rid of)
Since the IPU code randomly works/breaks with different changes to pcsx2, eventually we'll be able to re-enable PCH.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1656 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-20 04:02:39 +00:00
Jake.Stine 3c4b1afb49 wxgui: All kinds of mess, but still not up to running games yet.
* Borrowed wxScopedPtr from wxWidgets 2.9
 * Fixed up first-time startup procedures and folder selection
 * Implemented most of the rest of the missing configuration options, and cleaned up some ambiguities regarding bool types and bitfields.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1649 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-18 19:47:00 +00:00
gabest11 de2d3603a0 GSdx: corrected recording code.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1637 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-16 16:45:26 +00:00
Jake.Stine 49144a5331 wxgui:
* Removed some erroneous language error messages during first-time startup on non-english systems.
 * Cleaned up BIOS code a bit and moved all the scatterings from Memory.cpp, Misc.cpp, etc. into a single BiosTools.cpp file.
 * Implemented BIOS selector in the config dialog.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1634 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-16 06:26:40 +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
arcum42 5ce6df15bc Added some tag code in I was fiddling with. (Nothing uses it yet. I mainly wanted a backup of what I was working on.)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1622 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-14 10:24:23 +00:00
cottonvibes 18a12b10b0 microVU:
- Cleaned up microVU_Compile
- Added file microVU_Branch

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1621 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-13 05:04:04 +00:00
gabest11 e9277c36d7 missing project files
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1618 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-12 22:26:39 +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
gabest11 a41f80cfca memcpy on PcsxConfig made pcsx2 crash upon exiting, when the string members were deallocated, I guess they were added later.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1601 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-03 11:05:24 +00:00
gigaherz 4bb4bebd46 KiNGKiMO noticed a crash when specifying a iso filename in the cmdline, to make pcsx2 auto-boot that file. I fixed that, and while I was at it, change the bootmodes around.
The way it works now is:
 - Base mode: 0=normal (cdvd plugin), 1=load elf, 2=use iso loader, 3=emulate no disc
 - Bios flag: 65536+base = mode startup through bios boot process. Default is to skip bios.

So for example to load X.iso using the internal iso loader, and executing through the bios, you would now do: pcsx2.exe -bootmode 65538 X.iso

This needs implementing in linux side, and maybe changing it so it's nicer user-wise (for example, reading the number as HEX would make it 10002 instead of 65538).

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1593 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-08-01 14:25:19 +00:00
Jake.Stine 71490981bf wxgui: synced with trunk, and started work on an improved plugin initialization procedure. (branch currently does NOT compile, sorry)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/wxgui@1582 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-29 14:00:00 +00:00
arcum42 56a98ca922 Converted a few of the file paths to strings, and moved the generic file manipulation functions in IsoFileFormats to their own file.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1562 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-07-24 03:08:14 +00:00