cdrom: simplify getStatus
[pcsx_rearmed.git] / libpcsxcore / cdrom.c
index 99e8dcd..83f8c1c 100644 (file)
@@ -1132,6 +1132,8 @@ void cdrInterrupt(void) {
                                        cdr.Result[1] |= 0x80;
                        }
                        cdr.Result[0] |= (cdr.Result[1] >> 4) & 0x08;
+                       CDR_LOG_I("CdlID: %02x %02x %02x %02x\n", cdr.Result[0],
+                               cdr.Result[1], cdr.Result[2], cdr.Result[3]);
 
                        /* This adds the string "PCSX" in Playstation bios boot screen */
                        memcpy((char *)&cdr.Result[4], "PCSX", 4);
@@ -1694,7 +1696,13 @@ void cdrReset() {
        cdr.Reg2 = 0x1f;
        cdr.Stat = NoIntr;
        cdr.FifoOffset = DATA_SIZE; // fifo empty
-       if (CdromId[0] == '\0') {
+
+       CDR_getStatus(&stat);
+       if (stat.Status & STATUS_SHELLOPEN) {
+               cdr.DriveState = DRIVESTATE_LID_OPEN;
+               cdr.StatP = STATUS_SHELLOPEN;
+       }
+       else if (CdromId[0] == '\0') {
                cdr.DriveState = DRIVESTATE_STOPPED;
                cdr.StatP = 0;
        }