clear Index0 data FIFO flag (#241)
authorgameblabla <gameblabla@users.noreply.github.com>
Mon, 7 Feb 2022 19:17:34 +0000 (19:17 +0000)
committernotaz <notasas@gmail.com>
Mon, 7 Feb 2022 21:56:02 +0000 (23:56 +0200)
Merge PCSX Redux fix.
This is what he had to say about it :
"So, this commit works around/fixes two issues with loading unirom.
There's a fix for logging invalid commands which should be pretty straight forward. The other change is around the FIFO flag.
Not really experienced with debugging/verifying this sort of thing so not feeling really confident the change is "right", though every game I've tried so far still seem to work as expected.
There's still something going on with not having an iso mounted that I haven't quite nailed down. Even having the iso mounted with "lid open" gives a bootable result. Feel like I'm going in circles a bit for something that might be an easy fix. Unirom is technically usable via ISO, but the unirom exe freezes if no iso is loaded"

Co-authored-by: johnbaumann <76951440+johnbaumann@users.noreply.github.com>
libpcsxcore/cdrom.c

index 1646d0e..e6692e9 100644 (file)
@@ -1279,8 +1279,8 @@ unsigned char cdrRead0(void) {
 
        if (cdr.OCUP)
                cdr.Ctrl |= 0x40;
-//  else
-//             cdr.Ctrl &= ~0x40;
+       else
+               cdr.Ctrl &= ~0x40;
 
        // What means the 0x10 and the 0x08 bits? I only saw it used by the bios
        cdr.Ctrl |= 0x18;
@@ -1375,6 +1375,7 @@ unsigned char cdrRead2(void) {
        unsigned char ret;
 
        if (cdr.Readed == 0) {
+               cdr.OCUP = 0;
                ret = 0;
        } else {
                ret = *pTransfer++;