X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=libpcsxcore%2Fcdrom.c;h=bcf83e71f8baa272047acbc1ec0233597df02f66;hb=6320e9bf2cb2e02dabae682385d5fa9410114c9d;hp=c96eac76f0306c3ce6c0b6908159dfa739f575d6;hpb=cd0c9f5b179b2fac3397cb4aa1de1509247a27d0;p=pcsx_rearmed.git diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index c96eac76..bcf83e71 100644 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -298,13 +298,14 @@ static void Check_Shell( int Irq ) { // Vib Ribbon: pre-CD swap StopCdda(); + StopReading(); // GameShark Lite: Death if DiskError happens // // Vib Ribbon: Needs DiskError for CD swap - if (Irq != CdlNop) + //if (Irq != CdlNop) { cdr.Stat = DiskError; @@ -852,11 +853,6 @@ void cdrInterrupt() { break; case CdlGetTN: - // 5-Star Racing: don't stop CDDA - // - // Vib Ribbon: CD swap - StopReading(); - cdr.CmdProcess = 0; SetResultSize(3); cdr.StatP |= STATUS_ROTATING; @@ -946,9 +942,9 @@ void cdrInterrupt() { cdr.Result[2] = 0; cdr.Result[3] = 0; - // 0x10 - audio | 0x80 - unlicensed - if (CDR_getStatus(&stat) == -1) { - cdr.Result[1] = 0x80; // 0x80 leads to the menu in the bios, else loads CD + // 0x10 - audio | 0x40 - disk missing | 0x80 - unlicensed + if (CDR_getStatus(&stat) == -1 || stat.Type == 0 || stat.Type == 0xff) { + cdr.Result[1] = 0xc0; } else { if (stat.Type == 2) @@ -1630,6 +1626,8 @@ void cdrReset() { cdr.CurTrack = 1; cdr.File = 1; cdr.Channel = 1; + cdr.Reg2 = 0x1f; + cdr.Stat = NoIntr; pTransfer = cdr.Transfer; // BIOS player - default values