summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authorSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-09-20 15:23:55 +0000
committerSND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2009-09-20 15:23:55 +0000
commitc22fec7e40b7519db5bda08f3992dbc4f08453ae (patch)
tree73848563fda68f3d95a54c5c1c002183af6bcceb /libpcsxcore
parent1cee0e9b3ec6781f21b1b44cb072b3f56a1436aa (diff)
downloadpcsxr-c22fec7e40b7519db5bda08f3992dbc4f08453ae.tar.gz
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@30155 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore')
-rw-r--r--libpcsxcore/cdrom.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c
index 8ab80e12..31446ef4 100644
--- a/libpcsxcore/cdrom.c
+++ b/libpcsxcore/cdrom.c
@@ -156,8 +156,8 @@ void AddIrqQueue(unsigned char irq, unsigned long ecycle) {
} else {
CDR_INT(ecycle);
}
-}
-
+}
+
void cdrInterrupt() {
int i;
unsigned char Irq = cdr.Irq;
@@ -190,14 +190,19 @@ void cdrInterrupt() {
cdr.Result[0] |= 0x11;
cdr.Result[0] &= ~0x02;
}
- else if (i & 0x10) {
+ else if (i & 0x10) {
+ extern void *hCDRDriver;
cdr.StatP |= 0x2;
- cdr.Result[0] |= 0x2;
+ cdr.Result[0] |= 0x2;
+ if (hCDRDriver != NULL) {
+ CDR_close();
+ CDR_open();
+ }
CheckCdrom();
}
}
break;
-
+
case CdlSetloc:
cdr.CmdProcess = 0;
SetResultSize(1);