summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorBonta-kun <40473493+Bonta0@users.noreply.github.com>2021-04-30 04:55:13 +0200
committerVicki Pfau <vi@endrift.com>2021-05-23 20:30:07 -0700
commitbb1dd31f53d7ca4e0e807bbb26d079f0c4ba2ab6 (patch)
tree1eb8baabf65c470305d7559317d24ecb066a10d6 /Source
parente70193195c45de2ec5cbeabdf106da6d6ea0c17f (diff)
SI: Fix COMERR update
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/HW/SI/SI.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/Source/Core/Core/HW/SI/SI.cpp b/Source/Core/Core/HW/SI/SI.cpp
index 1f2e95f1ed..7b17a213c1 100644
--- a/Source/Core/Core/HW/SI/SI.cpp
+++ b/Source/Core/Core/HW/SI/SI.cpp
@@ -240,7 +240,6 @@ static void SetNoResponse(u32 channel)
s_status_reg.NOREP3 = 1;
break;
}
- s_com_csr.COMERR = 1;
}
static void ChangeDeviceCallback(u64 user_data, s64 cycles_late)
@@ -331,6 +330,7 @@ static void RunSIBuffer(u64 user_data, s64 cycles_late)
if (actual_response_length != 0)
{
s_com_csr.TSTART = 0;
+ s_com_csr.COMERR = actual_response_length < 0;
if (actual_response_length < 0)
SetNoResponse(s_com_csr.CHANNEL);
GenerateSIInterrupt(INT_TCINT);
@@ -503,8 +503,6 @@ void RegisterMMIO(MMIO::Mapping* mmio, u32 base)
s_com_csr.RDSTINTMSK = tmp_com_csr.RDSTINTMSK;
s_com_csr.TCINTMSK = tmp_com_csr.TCINTMSK;
- s_com_csr.COMERR = 0;
-
if (tmp_com_csr.RDSTINT)
s_com_csr.RDSTINT = 0;
if (tmp_com_csr.TCINT)