From 5e261fbec369d28326b7ec7f0d557ab40b9e3fd8 Mon Sep 17 00:00:00 2001 From: "memberTwo.mb2" Date: Mon, 3 Nov 2008 09:01:14 +0000 Subject: [PATCH] GP fifo reset fix (ZWW reset in DC at least). revert r1051 for ppl who don't own quadcore :p git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1057 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Src/HW/CommandProcessor.cpp | 4 +++- Source/Core/VideoCommon/Src/Fifo.cpp | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/Core/Core/Src/HW/CommandProcessor.cpp b/Source/Core/Core/Src/HW/CommandProcessor.cpp index 503936172e..5113600192 100644 --- a/Source/Core/Core/Src/HW/CommandProcessor.cpp +++ b/Source/Core/Core/Src/HW/CommandProcessor.cpp @@ -446,10 +446,12 @@ void Write16(const u16 _Value, const u32 _Address) LOG(COMMANDPROCESSOR,"write to FIFO_BP_HI : %04x", _Value); break; - // ignored writes + // needed for CPReadWriteDistance reset only case FIFO_RW_DISTANCE_HI: case FIFO_RW_DISTANCE_LO: LOG(COMMANDPROCESSOR,"try to write to %s : %04x",((_Address & 0xFFF) == FIFO_RW_DISTANCE_HI) ? "FIFO_RW_DISTANCE_HI" : "FIFO_RW_DISTANCE_LO", _Value); + _dbg_assert_msg_(COMMANDPROCESSOR, _Value==0, "WTF? attempt to overwrite fifo CPReadWriteDistance with a value(%04x) != 0 ",_Value); + InterlockedExchange((LONG*)&fifo.CPReadWriteDistance, 0); break; } diff --git a/Source/Core/VideoCommon/Src/Fifo.cpp b/Source/Core/VideoCommon/Src/Fifo.cpp index feeefad2d6..3ba946b273 100644 --- a/Source/Core/VideoCommon/Src/Fifo.cpp +++ b/Source/Core/VideoCommon/Src/Fifo.cpp @@ -113,8 +113,7 @@ void Fifo_EnterLoop(const SVideoInitialize &video_initialize) #if defined(THREAD_VIDEO_WAKEUP_ONIDLE) && defined(_WIN32) continue; #else - //Common::SleepCurrentThread(1); - continue; + Common::SleepCurrentThread(1); #endif //etc...