From dcc46e2d3011f7de48d6c16144088d1f3d4ed2db Mon Sep 17 00:00:00 2001 From: "SND\\shalma_cp" Date: Sun, 5 Sep 2010 01:11:09 +0000 Subject: 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 --- libpcsxcore/cdrom.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'libpcsxcore/cdrom.c') 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(); } } -- cgit v1.2.3