Skip to content

Commit dce6c4d

Browse files
committed
Fix interrupt standby condition when iso not mounted, and delayed logging issue
1 parent 77990fe commit dce6c4d

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

src/core/cdrom.cc

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,15 +1049,22 @@ class CDRomImpl : public PCSX::CDRom {
10491049
}
10501050

10511051
if (!no_busy_error) {
1052-
switch (m_driveState) {
1053-
case DRIVESTATE_LID_OPEN:
1054-
case DRIVESTATE_RESCAN_CD:
1055-
case DRIVESTATE_PREPARE_CD:
1056-
SetResultSize(2);
1057-
m_result[0] = m_statP | STATUS_ERROR;
1058-
m_result[1] = ERROR_NOTREADY;
1059-
m_stat = DiskError;
1060-
break;
1052+
if (!m_iso.isActive()) {
1053+
SetResultSize(2);
1054+
m_result[0] = m_statP | STATUS_ERROR;
1055+
m_result[1] = ERROR_NOTREADY;
1056+
m_stat = DiskError;
1057+
} else {
1058+
switch (m_driveState) {
1059+
case DRIVESTATE_LID_OPEN:
1060+
case DRIVESTATE_RESCAN_CD:
1061+
case DRIVESTATE_PREPARE_CD:
1062+
SetResultSize(2);
1063+
m_result[0] = m_statP | STATUS_ERROR;
1064+
m_result[1] = ERROR_NOTREADY;
1065+
m_stat = DiskError;
1066+
break;
1067+
}
10611068
}
10621069
}
10631070

@@ -1668,8 +1675,9 @@ class CDRomImpl : public PCSX::CDRom {
16681675
m_param[0]);
16691676
break;
16701677
default:
1671-
if (command > cdCmdEnumCount) {
1672-
PCSX::g_system->log(PCSX::LogClass::CDROM, "[CDROM]%s Command: CdlUnknown\n", delayedString);
1678+
if ((command & 0xff) > cdCmdEnumCount) {
1679+
PCSX::g_system->log(PCSX::LogClass::CDROM, "[CDROM]%s Command: CdlUnknown(0x%02X)\n", delayedString,
1680+
command & 0xff);
16731681
} else {
16741682
PCSX::g_system->log(PCSX::LogClass::CDROM, "[CDROM]%s Command: %s\n", delayedString,
16751683
magic_enum::enum_names<Commands>()[command & 0xff]);

0 commit comments

Comments
 (0)