Commit Graph

1737 Commits

Author SHA1 Message Date
arcum42 06d3e01efe One last pass on the register freezing code for now, and remove the remnants of the iVif workaround code.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2060 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-22 13:00:59 +00:00
Jake.Stine 1a09a7792f Compilation errors fix: MSVC needs 'extern' qualifiers on functions declared as __forceinline, otherwise it assumes static/local scope when it compiles them.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2059 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-22 11:07:21 +00:00
ramapcsx2 6a2cca9795 GSdx:
- The Xenosaga fix was wrong, this is better.
- Disabled the pitch conversion code, it's too broken to be used :/

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2058 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-22 01:52:41 +00:00
arcum42 537801e466 Just cleaning up the changes in r2056 a bit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2057 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-22 01:35:58 +00:00
arcum42 8e493ad2d2 Revamp the FreezeRegs functions.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2056 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-22 01:20:22 +00:00
ramapcsx2 fb2169f64d GSdx:
Added a somewhat more accurate upscale option via GSdx.ini. Not tested much! :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2055 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-21 22:57:20 +00:00
Jake.Stine e4330ee0ee Reintegrated 'aligned_stack' branch. General summary [interesting to Devs only, really]:
* EEcore recompiler aligns the stack on entry for all platforms.
 * IOP recompiler aligns stack for GCC/Mac by default (can be force-enabled for all platforms via compiler define)
 * Added setjmp/longjmp to the EEcore recompiler, used by GCC to exit the recompiler in efficient form (Win32 platforms use SEH).
 * aR3000a.S and aR5900.S removed and replaced with x86Emitter generated dispatchers.
 * All C functions called from recompiled code use __fastcall (simple, fast, retains stack alignment in neat fashion)


git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2054 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-21 21:16:07 +00:00
Jake.Stine d0ffa6bbc0 aligned_stack: sync with trunk, preping for merge.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2053 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-21 19:38:22 +00:00
Jake.Stine 1cb9a908e8 Why didn't I think of this sooner? Added a pre-alpha announce when starting PCSX2 0.9.7 for the first time.
Also: Minor fixes to the console logger (Win7 report of corrupted cursor)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2052 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-21 19:19:12 +00:00
Jake.Stine 5b279e629d GSdx: Fixed a memory leak in m_weavebob when changing interlacing modes (same thing that caused the m_merge leak -- I chose to delete instead of recycle since I doubt the texture would be useful for anything besides the 1-time interlacing setup, so no point cluttering the pool with it).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2051 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-21 13:06:41 +00:00
ramapcsx2 81bdda2d27 GSdx:
Fix Xenosaga 2 and 3 fog effect, not sure it's handled correctly but at least it's handled.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2050 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-21 12:36:32 +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 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 54f8f33257 aligned_stack: Linux has never worked so well!
* made a workaround for some obscure GCC templating bug
 * Fixes the assert from PersistentThread when starting the emu

git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2047 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-21 02:23:42 +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 3e1c1f939c aligned_stack: Finished conversion of all CALLFunc and _callFunctionArg1 functions to aligned-stack safe __fastcall invocations; only IOP's psxExecute and dispatchers remain to be done. (rev is fully functional in this state tho, on win32 at least)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2045 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-20 20:02:07 +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
Jake.Stine f8783a77ab superVU bugfix: Disable x86 regalloc since disabling EBP allocation causes some kind of problem with it (fixes God of War2, and is probably a speedup also -- not that it matters since sVU is mainly there as reference for solving NAN/INF problems). Also, removed a bunch of code that's no longer needed thanks to EBP being removed from regalloc.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2043 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-20 19:25:14 +00:00
Jake.Stine 0f77c1a885 GSdx: Possible fix for DX10 leaking memory.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2042 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-20 11:44:43 +00:00
Jake.Stine 27174c3f5b * Improved the framelimiter sleep mode more (less cpu used and more responsive to fps fluctuation near the 60fps line at the same time)
* Added timeBeginPeriod() to improve the Win32 kernel scheduler resolution (improves sleep accuracy and thread responsiveness)
 * hackfixed some code that made exiting pcsx2 "slow" sometimes.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2041 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-19 23:13:22 +00:00
Jake.Stine 7bf94f9db9 Cleaned up the comments in the EE Memory Map :)
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2040 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-19 15:56:18 +00:00
Jake.Stine 4047e0ee9f wxWidgets/Win32: Cure wxWidgets of some over-joyous re-allocation of formatted strings which was (presumably) added because of limited memory constraints on portable devices (which doesn't apply to PCSX2).
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2039 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-19 15:18:32 +00:00
Jake.Stine 2cb8e571cd Second half of __unused removal -- comment out (remove) names on unused parameters as per the guidelines of some C guideline that all compilers adhere to (this suppresses the same warnings __unused used to suppress).
Minor cleanups to Counters/Gif.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2038 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-19 11:53:18 +00:00
arcum42 cf4719019d A few changes to Sif, SPR, and Gif I've had sitting around.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2037 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-19 11:45:37 +00:00
arcum42 29e8fe94e9 Change a few project options and get rid of _unused.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2036 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-19 10:42:36 +00:00
Jake.Stine e3a5229076 aligned_stack branch progress!
* Implemented setjmp/longjmp method of escaping recompiled code, circumventing the deadly pitfalls of the g++ exception mess.
 * Use longjmp to jump to a "safe" location (outside recompiled code) for suspending and canceling the SysCoreThread (see StateThreadCheck_LongJmp)
 * I'm the stack daddy mack.  That's right.  Uh huh.  Uh huh.
 * Test for m_detached in PersistentThread::IsSelf, since Linux likes to recycle thread handles in a hurry (like, as in, consecutively)
 * Fix a deadlock in the Consoole Log (seems to be GTK+ specific, and in fact I'm pretty sure wxApp->Yield() isn't thread safe and thinks it's recursive even when it's not)

git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2035 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-19 01:50:52 +00:00
Jake.Stine 047726a60c aligned_stack: no real progress... just reached a point where I need to move dev over to my windows so I can have real debugging/disasm/memory dumping ability. (this is the most horrible job I've ever undertaken, btw)
git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2034 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-18 19:26:07 +00:00
Jake.Stine 54f1409090 Gave the frame limiter some smarts so it can sleep the EEcore a bit if there's nothing to do for a while.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2033 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-18 17:12:02 +00:00
Jake.Stine b1fb7f80ae aligned_stack: sync with trunk; some bugfixes to the stack prep on entry; and re-enabled the esp/ebp integrity assertions.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2032 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-18 14:56:48 +00:00
Jake.Stine 950c99f886 wxWidgets/Win32: Bugfixed wxLog getting perma-suspended when calling YieldIfNeeded
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2031 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-18 12:30:54 +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 877f59a255 More thread sync fixes (these mostly only showed up on linux, because of threads starting a lot slower); fixed by including a startup signal to let the creating thread know when the worker has aquired its persistent locks.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2029 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-18 03:01:10 +00:00
Jake.Stine 6b0c9cfdfe Added some missing semaphore/mutex resets, and bugfixed the emitter when using a certain type of complex indirect sddressing ( ie, ptr32[addr + (eax*4)] )
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2026 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-17 23:30:16 +00:00
Jake.Stine 9a1f3ae9f1 aligned_stack: fix attempt #1 for RecExit. Changed the jump to a call, which (I think!) should give GCC the stackframe setup it expects to see when trying to throw an exception.
git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2025 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-17 22:30:50 +00:00
Jake.Stine 87cbaaf5ca aligned_stack branch: Preliminary work for having the recompilers align the stack to 16 bytes, to appease the expectations of GCC and Mac OSX.
Done:
 * EEcore aligns stack on entry and performs routine checks of ESP and EBP integrity.
 * Dispatchers are recoded using the PCSX2 Emitter.

Todo:
 * Convert all C-code function calls from the recompiler to use the new aligned stack setup.
 * Implement stack-alignment checks and emitter-based dispatchers for the IOP.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/aligned_stack@2024 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-17 20:48:03 +00:00
Jake.Stine 0880cadf64 Linux: Minor fixes for prev commit.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2023 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-17 18:51:17 +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
ramapcsx2 c3cbdaf016 SPU2-X:
New default values for soundtouch, fix the sound quality somewhat.
Also got rid of a small configuration dialog glitch.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2021 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-17 17:49:33 +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
ramapcsx2 1ae5d07a3f Quick fix for GSdx10 crashing when entering/leaving fullscreen on pcsx/wx.
Ideally this should be reverted one time, it really made a difference in fps for some DX calls heavy games.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2019 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-17 15:11:21 +00:00
ramapcsx2 733e3daa18 Tested the cycle changes extensively on legacy_gui, they are fine.
So bringing them over to pcsx2/wx now.
They're tagged with "voodoocycles" in the source, to easily test for regressions (or improvements!) :p

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2018 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-17 14:15:33 +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 04b3657ca1 Bugfixed some of the ini creation code on startup.
Bugfixed a memory leak when running blockdumps.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2015 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-16 16:59:48 +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 66e9e8c085 Quick fix for duplicate keystrokes coming in from LilyPad when using keyboard input Raw or DInput modes.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2013 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-16 12:39:40 +00:00
ramapcsx2 d87cc4d250 Hack in a frame limit toggle on F4 and TAB using a global int. :p
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2012 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-16 10:45:47 +00:00
Jake.Stine d2767da7b3 Fix release mode build compilation errors from the prev rev.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2011 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-16 04:23:56 +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 adf4b7ae50 Recompilers:
* Removed EBP push/pop stuff from the recExecute of the R5900 and R3000A both (not needed anymore since we disabled EBP in iCore).
 * Moved the legacy j8ptr and j32ptr buffers to iCore, since they'll go obsolete at the same time iCore does; and nothing outside PCSX2 references them.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@2009 96395faa-99c1-11dd-bbfe-3dabce05a288
2009-10-16 03:46:19 +00:00