dolphin/Source/Core/DolphinWX
EmptyChaos c1922783f8 Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer)
Fix Frame Advance and FifoPlayer pause/unpause/stop.

CPU::EnableStepping is not atomic but is called from multiple threads
which races and leaves the system in a random state; also instruction
stepping was unstable, m_StepEvent had an almost random value because
of the dual purpose it served which could cause races where CPU::Run
would SingleStep when it was supposed to be sleeping.

FifoPlayer never FinishStateMove()d which was causing it to deadlock.
Rather than partially reimplementing CPU::Run, just use CPUCoreBase
and then call CPU::Run(). More DRY and less likely to have weird bugs
specific to the player (i.e the previous freezing on pause/stop).

Refactor PowerPC::state into CPU since it manages the state of the
CPU Thread which is controlled by CPU, not PowerPC. This simplifies
the architecture somewhat and eliminates races that can be caused by
calling PowerPC state functions directly instead of using CPU's
(because they bypassed the EnableStepping lock).
2016-05-13 09:23:44 +10:00
..
Cheats Added the ability to search on previous value in the Cheat Search. 2015-12-30 11:51:36 +11:00
Config [Config UI] add "normal speed" to speed limit 100% 2016-03-02 19:51:05 -06:00
Debugger Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer) 2016-05-13 09:23:44 +10:00
NetPlay Fix regression for .elf files in Netplay Game Selector 2016-05-06 19:41:40 -07:00
resources DolphinWX: Stop using XPM images 2016-01-05 19:11:58 +01:00
AboutDolphin.cpp SCM: Use std::string. 2016-05-05 00:22:49 +02:00
AboutDolphin.h
ARCodeAddEdit.cpp Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
ARCodeAddEdit.h
CMakeLists.txt Support a headless EGL option. 2016-01-27 15:04:14 -06:00
ControllerConfigDiag.cpp Use the English name for DK Bongos in the English version of Dolphin 2016-01-07 00:12:25 +01:00
ControllerConfigDiag.h Make the Wii U Gamecube adapter work with less magic. 2016-01-05 13:44:37 -06:00
DolphinWX.rc
DolphinWX.vcxproj Fix Windows build not copying certain files 2016-04-12 19:05:17 -04:00
DolphinWX.vcxproj.filters Make the Wii U Gamecube adapter work with less magic. 2016-01-05 13:44:37 -06:00
DolphinWX.vcxproj.user
FifoPlayerDlg.cpp DolphinWX: Remove FifoPlayerDlg::CreateIntegerLabel 2015-11-05 11:35:13 +01:00
FifoPlayerDlg.h DolphinWX: Remove FifoPlayerDlg::CreateIntegerLabel 2015-11-05 11:35:13 +01:00
Frame.cpp Merge pull request #3801 from Helios747/the_30_minute_blocker_fix 2016-05-08 17:24:40 -04:00
Frame.h [UI] Remove browse toolbar button and tweak empty gamelist message 2016-04-30 10:25:46 -05:00
FrameAui.cpp Fix warnings 2016-01-28 23:54:11 +00:00
FrameTools.cpp [UI] Remove browse toolbar button and tweak empty gamelist message 2016-04-30 10:25:46 -05:00
GameListCtrl.cpp Merge pull request #3801 from Helios747/the_30_minute_blocker_fix 2016-05-08 17:24:40 -04:00
GameListCtrl.h DolphinWX: Disable 'maker' column hiding 2016-04-17 10:19:25 +10:00
Globals.h [UI] Remove browse toolbar button and tweak empty gamelist message 2016-04-30 10:25:46 -05:00
Info.plist.in
InputConfigDiag.cpp InputConfig: Clean up controller management 2015-11-19 02:41:33 -05:00
InputConfigDiag.h InputConfig: Clean up controller management 2015-11-19 02:41:33 -05:00
InputConfigDiagBitmaps.cpp
ISOFile.cpp DolphinWX: Stop using XPM images 2016-01-05 19:11:58 +01:00
ISOFile.h Don't read from volume when reloading Wii banners 2015-12-03 17:29:59 +01:00
ISOProperties.cpp DriveReader: Fix View > Show Drives 2016-04-26 21:24:08 +10:00
ISOProperties.h ISOProperties: Replace the ConvergenceMinimum option by the Convergence option. 2015-12-22 23:16:27 +01:00
LogConfigWindow.cpp Fix warnings 2016-01-28 23:54:11 +00:00
LogConfigWindow.h Fix warnings 2016-01-28 23:54:11 +00:00
LogWindow.cpp Merge pull request #3126 from phire/remove-logging-lock 2015-12-03 13:32:07 +13:00
LogWindow.h
Main.cpp Rename Direct3D to Direct3D 11 2016-02-16 22:43:21 -05:00
Main.h DolphinWX: Remove the dolphin-emulator.com check. 2015-10-30 22:14:19 +01:00
MainNoGUI.cpp Core: Threadsafety Synchronization Fixes (Frame Advance / FifoPlayer) 2016-05-13 09:23:44 +10:00
MemcardManager.cpp Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
MemcardManager.h
PatchAddEdit.cpp
PatchAddEdit.h
PostProcessingConfigDiag.cpp
PostProcessingConfigDiag.h
resource.h
SoftwareVideoConfigDialog.cpp VideoBackendBase: Store video backends as unique_ptr 2016-02-20 19:07:40 -05:00
SoftwareVideoConfigDialog.h VideoBackendBase: Store video backends as unique_ptr 2016-02-20 19:07:40 -05:00
TASInputDlg.cpp HW: Remove unnecessary header inclusions 2016-01-13 02:47:32 -05:00
TASInputDlg.h DolphinWX: TAS fixes, take three 2015-09-11 19:51:31 -07:00
VideoConfigDiag.cpp VideoBackends: Do not use Anisotropy on Point filtered textures. 2016-03-24 13:43:29 +11:00
VideoConfigDiag.h VideoBackendBase: Store video backends as unique_ptr 2016-02-20 19:07:40 -05:00
WXInputBase.cpp
WXInputBase.h
WxUtils.cpp DolphinWX: Support 2x images for all resources 2016-01-20 00:46:10 +01:00
WxUtils.h DolphinWX: Support 2x images for all resources 2016-01-20 00:46:10 +01:00
X11Utils.cpp
X11Utils.h