summaryrefslogtreecommitdiff
path: root/libpcsxcore/cdrom.c
diff options
context:
space:
mode:
authorSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-09-05 01:11:09 +0000
committerSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-09-05 01:11:09 +0000
commitdcc46e2d3011f7de48d6c16144088d1f3d4ed2db (patch)
tree668a6d8b7f9c86c47f367a1624088f8dbaee34d4 /libpcsxcore/cdrom.c
parent37edbb7d48a17b7321ebeb5bcf992c7d77fd2662 (diff)
downloadpcsxr-dcc46e2d3011f7de48d6c16144088d1f3d4ed2db.tar.gz
Chrono Cross interlace fix (ePSXe version)
GameShark Lite needs GPUSTATUS_READYFORVRAM off when not IDLE. Also fixes CDROM swapping. - Enable 'Fake GPU Busy States' to work - Perhaps we should fix PEOPS GPU to turn off READYFORVRAM instead of gpu.c (my temp solution) Please add gpu.c / gpu.h to your makefiles. git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@56824 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore/cdrom.c')
-rw-r--r--libpcsxcore/cdrom.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c
index 7ff2d68f..8ecb1d64 100644
--- a/libpcsxcore/cdrom.c
+++ b/libpcsxcore/cdrom.c
@@ -573,9 +573,14 @@ void cdrInterrupt() {
// case now open
if (stat.Status & 0x10) {
- cdr.Stat = DiskError;
+ if( Irq != CdlNop )
+ {
+ cdr.Stat = DiskError;
+ cdr.Result[0] |= 0x01;
+ }
- cdr.Result[0] |= 0x11;
+ // GameShark Lite: Wants -exactly- $10
+ cdr.Result[0] |= 0x10;
cdr.Result[0] &= ~0x02;
}
// case now closed
@@ -583,6 +588,9 @@ void cdrInterrupt() {
cdr.StatP &= ~0x11;
cdr.Result[0] |= 0x2;
+ // GameShark Lite: Wants -exactly- $42, then $02
+ cdr.Result[0] |= 0x40;
+
CheckCdrom();
}
}