dolphin/Source/Core/Common/Src
skidau a60a0825a3 Merged 'FifoBusy' branch. Thanks
to marcosvitali.

Added an external exception check when the CPU writes to the FIFO.  This allows
the CPU time to service FIFO overflows.  Fixes random hangs caused by FIFO
overflows and desyncs like in "The Last Story" and "Battalion Wars 2".  Thanks
to marcosvitali for the research.

Added some code to unlink invalidated blocks so that the recompiled block can be
linked (speed-up).

This release still fixed the hangs produced by fifo overflow without sacrifice
performance. For example you can test Tutorial moves at the beginning of The last history now
is fluid 30/60.

Fixed possibles random hangs in DC mode.
Fixed hangs in DC mode in (Simpsons, Monkey Island, Pokemon XD, etc)
Implemented accurate management of Pixel Engine Interrupts.  Now the GPU loop
is stopped when a PE Interrupt needs to be managed and resumed when Pixel Engine
finish.

Fixed Metroid Prime 3 and 2 desync. And other games with desync because of
FIFO Reset. That happens because  FIFO_RW_DISTANCE_HI must be written first, for checking
fifo.CPReadWriteDistance == 0, so some fifo resets was not managed in the right
way.

Fixed Super Monkey Ball in some cases when the game write the
WriteReadDistance need to be safe like the SafeCPRead.

Improved the CheckException for the GatherPipe writes in JIT, now only the
External Exceptions are processed.

Fixed definitely Pokemon XD in dual core mode. This game is doing something
not allowed. It attach to CPU the same fifo attached to the GPU in multibuffer
mode. I added a check to prevent overwrite the GPU FIFO with the CPU FIFO. If
the game do that on breakpoint the solution can fail.

Fixed ReadWriteDistance calc when CPRead > CPWrite.

Added Token and Finish cause to GP Jit checking.

Additional cleanup in CommandProcessor.



Fixes issue 5209
Fixes issue 5055
Fixes issue 4889
Fixes issue 4061
Fixes issue 4010
Fixes issue 3902
2012-03-20 19:37:25 +11:00
..
Crypto Some more work on CMake on Windows: 2011-01-09 16:36:19 +00:00
ABI.cpp fix for stack corruption caused by certain DSP LLE JIT ABI calls. 2012-01-07 20:46:41 -08:00
ABI.h Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
Atomic.h NoGUI: general cleanup, add initialization stuff added in r5064, fixed the cocoa event loop not shutting down when not booting a game on OSX. 2010-02-19 17:05:26 +00:00
Atomic_GCC.h Core/DSPCore: Improve Interpreter address register add/sub, convert to 2010-12-27 15:05:18 +00:00
Atomic_Win32.h fixed xfb bumping introduced by my last commit. 2010-04-14 13:57:16 +00:00
BreakPoints.cpp Linux build fix 2012-03-18 23:37:38 +11:00
BreakPoints.h Sped up the Dolphin debugger in JIT mode by splitting a block only while stepping or when it contains a breakpoint. The block is invalidated when a breakpoint is set or cleared. 2012-03-15 21:48:19 +11:00
CDUtils.cpp The data from strdup must be deallocated with free, not delete. I got rid of that ugly strdup and replaced the A though Z cdrom drive letter searching with Windows API stuffs. 2011-03-12 06:50:20 +00:00
CDUtils.h Switches to GCC's internal swaps for swap32 and swap64 in OSX. Changes CDIO from using char*** to std::vector<std::string>, which fixes a memory leak I was noticing and also makes it look cleaner. This is not tested much in Windows/Linux, please see if it compiles and doesn't fail out in some mysterious way 2010-02-16 08:46:21 +00:00
ChunkFile.h add wstring name(s)/description to the cachefile, use when available in gamelist and properties window 2011-12-18 22:01:46 -08:00
ColorUtil.cpp Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
ColorUtil.h Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
Common.h Rearranged the SSE detection. Patch by lordlyhobo. 2012-02-06 20:51:24 +11:00
CommonFuncs.h Allow modifying main ram size at compile time by changing Memory::REALRAM_SIZE. 2011-11-27 19:52:05 -08:00
CommonPaths.h Updated the Gecko code handler to the latest version from Gecko OS 1.9.3.1. 2012-01-03 01:24:17 -05:00
CommonTypes.h Some work on changing comments, log messages, and variable and function names to reflect that the plugins are not plugins anymore. 2011-02-14 02:18:03 +00:00
ConsoleListener.cpp Fixed some memory leaks. Only one was mine ;P 2011-03-22 07:27:23 +00:00
ConsoleListener.h Use mutexes in LogManager to make it threadsafe, as suggested by beistin's patch. Change some LogManager function names to be consistent with Dolphin's naming conventions. 2011-04-01 07:43:02 +00:00
CPUDetect.cpp Fix a crash at startup with Dolphin on Linux compiled in debug mode 2012-01-02 00:59:37 +01:00
CPUDetect.h * Changed the Projection Hack option in game properties to "Custom Projection Hack" 2011-01-29 21:13:56 +00:00
DebugInterface.h Move MemCheck functionality into the virtual DebugInterface class from the more general MemView class. 2010-02-18 12:06:13 +00:00
ExtendedTrace.cpp dolphinwx and debuggerwx can now be compiled with unicode 2009-07-30 07:09:26 +00:00
ExtendedTrace.h dolphinwx and debuggerwx can now be compiled with unicode 2009-07-30 07:09:26 +00:00
FifoQueue.h New Wiimote Plugin: Added a "Hybrid Wiimote" input source type. This allows a real wiimote to be used with an emulated extension.(and in the future, real wiimote with emulated motion plus) If the emulated extension is set to "None", a real extension can be used. Real/Emulated buttons are combined. Real acceleration data is used. Currently, emulated IR data is used.(might change this to allow both) Switching between an emulated and a real extension in-game is a bit testy right now, but if you switch the emu-extension to "None" before connecting a real extension, it usually works. 2010-08-10 04:12:32 +00:00
FileSearch.cpp Add a hack to match the *.* wildcard in a file search on non windows platforms. This fixes Metroid Other M on linux, and probably other games. Fixes issue 3966. 2011-01-22 18:19:42 +00:00
FileSearch.h Random fixes and cleanups 2010-04-08 16:59:35 +00:00
FileUtil.cpp Windows: Sets the cwd to the folder that dolphin.exe resides in. 2011-06-11 20:45:09 +00:00
FileUtil.h Windows: Sets the cwd to the folder that dolphin.exe resides in. 2011-06-11 20:45:09 +00:00
FixedSizeQueue.h Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
Hash.cpp Improvement to revision b8bef29bcc .. :P 2012-02-25 10:59:00 +01:00
Hash.h Changes to hi-res textures. Textures now load correctly when loading/saving a savestate, and can be toggled on and off in game. 2011-02-05 10:08:06 +00:00
IniFile.cpp Add comment here so people know what's up. 2012-02-28 00:27:16 -06:00
IniFile.h Add per-game "configuration profiles" for video backend configuration: 2011-02-13 22:36:12 +00:00
LinearDiskCache.h PixelShaderGen: Fix a bug introduced in revision 9adc119e3c. 2012-02-21 12:51:41 +01:00
Log.h Revert back to LogTypes. Fixes issue 3668. 2010-12-14 17:52:01 +00:00
LogManager.cpp added an option to log to the attached Windows debugger (so e.g. NOTICE_LOG messages can show up in Visual Studio's output window) 2012-01-07 23:04:18 -08:00
LogManager.h added an option to log to the attached Windows debugger (so e.g. NOTICE_LOG messages can show up in Visual Studio's output window) 2012-01-07 23:04:18 -08:00
MathUtil.cpp some code cleanup i have left in my folder :) 2011-05-25 18:14:29 +00:00
MathUtil.h some code cleanup i have left in my folder :) 2011-05-25 18:14:29 +00:00
MemArena.cpp Allocate low executable memory on OS X as on Windows and Linux. 2011-01-09 14:09:27 +00:00
MemArena.h Allocate low executable memory on OS X as on Windows and Linux. 2011-01-09 14:09:27 +00:00
MemoryUtil.cpp Avoid virtual memory range collision between JIT and emulated RAM. 2011-11-30 00:37:57 +01:00
MemoryUtil.h added the possibility to allocate aligned memory, an use it to allocate the buffer utilized in texture decoding, this will make a little easy to use aligned writes when possible in sse2/3 optimized algorithms. 2011-02-25 20:35:05 +00:00
Misc.cpp Hack Misc.cpp into building on OS X. 2011-03-16 22:58:24 +00:00
MsgHandler.cpp Improve the shader UID debugging stuff and merge it to VideoCommon, effectively enabling it in D3D9 and D3D11 as well. 2011-09-09 00:32:04 +02:00
MsgHandler.h Oops. Forgot to add the CriticalAlert definitions for windows. 2011-07-15 16:50:54 +00:00
NandPaths.cpp NAND:Consolidate Wad/Directory loading in CNANDContentLoader to one function 2011-05-09 05:47:29 +00:00
NandPaths.h NAND:Consolidate Wad/Directory loading in CNANDContentLoader to one function 2011-05-09 05:47:29 +00:00
SDCardUtil.cpp Convert GetUserPath to return a std::string instead of a const char *. This simplifies its usage in most cases. 2011-02-28 20:40:15 +00:00
SDCardUtil.h Convert GetUserPath to return a std::string instead of a const char *. This simplifies its usage in most cases. 2011-02-28 20:40:15 +00:00
Setup.h Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
stdafx.cpp Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
stdafx.h Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
StdConditionVariable.h problem: TryAcquireSRWLockExclusive requires Windows 7 :/. solution kinda: use std::recursive_mutex (CriticalSection on windows) where try_lock is used. Dolphin should work on Vista x64 again. 2011-03-07 00:16:38 +00:00
StdMutex.h pthread_mutexattr_t's must be initialized before the type can be set. 2011-03-14 15:06:06 +00:00
StdThread.h enable c++11 compilation in cmakelists 2012-02-24 14:19:24 -06:00
StringUtil.cpp Reset errno to zero before testing it after the strtoul call. Fixes issue 5078. 2011-12-29 12:05:36 +11:00
StringUtil.h Added an option for opening up the wiki entry in the compatibility list. The option is in the right click menu of the games list. The game entries in the wiki are currently manually added by the administrator. 2011-02-25 23:33:11 +00:00
SymbolDB.cpp Cast size_t to unsigned long for printf to deal with (32-bit) 2010-12-05 18:22:41 +00:00
SymbolDB.h Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
SysConf.cpp Fix some minor bugs pointed out by PVS Studio (thanks!) 2012-03-03 20:07:20 +01:00
SysConf.h sysconf SetArayData use the minimum of the buffersize or the dataLength 2012-02-01 00:04:18 -08:00
Thread.cpp Replaced Common::CriticalSection with a std::mutex implementation. 64bit Windows builds now use SRWLocks and ConditionVariables(requires Vista/7, x64 builds will no longer work on Windows XP x64). Tell me if you hate that. Removed Common::EventEx. Common::Event now uses a std::condition_variable impl.(using ConditionVariables on Windows x64, Events on x86, or posix condition variables elsewhere). I experience slight speed improvements with these changes. 2011-03-05 06:11:26 +00:00
Thread.h fixed an issue where the CPU sometimes single-steps an extra time after pausing 2012-01-04 01:33:38 -08:00
Thunk.cpp keep a few separate thunkmanagers so they don't all share the same register backup area. seems to fix the single-core-paired-single-x64 issue in mario kart wii, please test the other games that were problematic. 2010-02-14 22:37:46 +00:00
Thunk.h keep a few separate thunkmanagers so they don't all share the same register backup area. seems to fix the single-core-paired-single-x64 issue in mario kart wii, please test the other games that were problematic. 2010-02-14 22:37:46 +00:00
Timer.cpp Layout should not be called until after a sizer is inserted into its parent. This fixes the "gtk_widget_size_allocate(): attempt to allocate widget with width -5 and height 17" type console warnings that are annoying on linux. If there are issues with this on other platforms let me know, but there shouldn't be. 2010-11-22 15:25:59 +00:00
Timer.h (Minor timer library code cleanup) 2010-01-21 19:55:01 +00:00
Version.cpp fix build issue with intel compiler and fix some unsafe string usages, patch by FilthyMonkey 2011-10-01 21:31:43 -05:00
VideoBackendBase.cpp * GUI Video-Settings changes: 2011-03-21 19:57:31 +00:00
VideoBackendBase.h This release still fixed the hangs produced by fifo overflow without sacrifice performance. 2012-03-05 02:40:10 -03:00
x64Analyzer.cpp Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
x64Analyzer.h Now ALL copyright dates are fixed to the legally correct year: The year in which the project began. Now we don't have to change it every year :) 2009-07-28 21:32:10 +00:00
x64Emitter.cpp Added SHRD/SHLD x86 emitters, further optimized srawx 2012-01-09 00:10:13 -05:00
x64Emitter.h Added SHRD/SHLD x86 emitters, further optimized srawx 2012-01-09 00:10:13 -05:00