summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2020-02-01 13:40:52 -0800
committerPokechu22 <Pokechu022@gmail.com>2020-02-01 16:56:48 -0800
commitbb5e5fd8f2559ecb1be30d053761c9feeec91280 (patch)
treefde61aa8fbd567ad8841aae7848ae58d243db881 /Source
parent69ee15e5ef369d51681540e6714f02554e3bd8a6 (diff)
Fix assignment of DI interrupt mask ioctls
0x85 is actually DVDLowMaskCoverInterrupt, while 0x89 is DVDLowUnmaskCoverInterrupt. I'm also fairly sure that 0x87 is DVDLowUnmaskStatusInterrupts.
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/IOS/DI/DI.cpp12
-rw-r--r--Source/Core/Core/IOS/DI/DI.h6
2 files changed, 11 insertions, 7 deletions
diff --git a/Source/Core/Core/IOS/DI/DI.cpp b/Source/Core/Core/IOS/DI/DI.cpp
index f6d8c249c3..8a828ce8a0 100644
--- a/Source/Core/Core/IOS/DI/DI.cpp
+++ b/Source/Core/Core/IOS/DI/DI.cpp
@@ -240,21 +240,25 @@ std::optional<DI::DIResult> DI::StartIOCtl(const IOCtlRequest& request)
INFO_LOG(IOS_DI, "DVDLowGetImmBuf 0x%08x", diimmbuf);
return WriteIfFits(request, diimmbuf);
}
- case DIIoctl::DVDLowUnmaskCoverInterrupt:
- INFO_LOG(IOS_DI, "DVDLowUnmaskCoverInterrupt");
+ case DIIoctl::DVDLowMaskCoverInterrupt:
+ INFO_LOG(IOS_DI, "DVDLowMaskCoverInterrupt");
DVDInterface::SetInterruptEnabled(DVDInterface::DIInterruptType::CVRINT, false);
return DIResult::Success;
case DIIoctl::DVDLowClearCoverInterrupt:
DEBUG_LOG(IOS_DI, "DVDLowClearCoverInterrupt");
DVDInterface::ClearInterrupt(DVDInterface::DIInterruptType::CVRINT);
return DIResult::Success;
+ case DIIoctl::DVDLowUnmaskStatusInterrupts:
+ INFO_LOG(IOS_DI, "DVDLowUnmaskStatusInterrupts");
+ // Dummied out
+ return DIResult::Success;
case DIIoctl::DVDLowGetCoverStatus:
// TODO: handle resetting case
INFO_LOG(IOS_DI, "DVDLowGetCoverStatus: Disc %sInserted",
DVDInterface::IsDiscInside() ? "" : "Not ");
return WriteIfFits(request, DVDInterface::IsDiscInside() ? 2 : 1);
- case DIIoctl::DVDLowEnableCoverInterrupt:
- INFO_LOG(IOS_DI, "DVDLowEnableCoverInterrupt");
+ case DIIoctl::DVDLowUnmaskCoverInterrupt:
+ INFO_LOG(IOS_DI, "DVDLowUnmaskCoverInterrupt");
DVDInterface::SetInterruptEnabled(DVDInterface::DIInterruptType::CVRINT, true);
return DIResult::Success;
case DIIoctl::DVDLowReset:
diff --git a/Source/Core/Core/IOS/DI/DI.h b/Source/Core/Core/IOS/DI/DI.h
index 975b0adc51..4b8afe1def 100644
--- a/Source/Core/Core/IOS/DI/DI.h
+++ b/Source/Core/Core/IOS/DI/DI.h
@@ -60,11 +60,11 @@ public:
DVDLowReadDvdDiscKey = 0x82,
DVDLowGetLength = 0x83,
DVDLowGetImmBuf = 0x84, // Unconfirmed name
- DVDLowUnmaskCoverInterrupt = 0x85,
+ DVDLowMaskCoverInterrupt = 0x85,
DVDLowClearCoverInterrupt = 0x86,
- // 0x87 is a dummied out command
+ DVDLowUnmaskStatusInterrupts = 0x87, // Dummied out, ID is educated guess
DVDLowGetCoverStatus = 0x88,
- DVDLowEnableCoverInterrupt = 0x89, // Unconfirmed name
+ DVDLowUnmaskCoverInterrupt = 0x89,
DVDLowReset = 0x8a,
DVDLowOpenPartition = 0x8b, // ioctlv only
DVDLowClosePartition = 0x8c,