summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-11-05 01:22:48 +0000
committerSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-11-05 01:22:48 +0000
commit24936efb4e1d4be40867ed4d885fd6c6770d5870 (patch)
tree66f606b4ef1ea9d5dbb1a13b34f5dc72b4dc7539
parentdf333a45edbccd632bb5d42993b1a0ef1b8fbd89 (diff)
downloadpcsxr-24936efb4e1d4be40867ed4d885fd6c6770d5870.tar.gz
Ape Escape - cdrom.c
- detect 0 dma size transfers - fixes boot git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@59189 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rw-r--r--libpcsxcore/cdrom.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c
index cec02b57..d3b83b01 100644
--- a/libpcsxcore/cdrom.c
+++ b/libpcsxcore/cdrom.c
@@ -1824,6 +1824,18 @@ void psxDma3(u32 madr, u32 bcr, u32 chcr) {
cdsize = (bcr & 0xffff) * 4;
+ // Ape Escape: bcr = 0001 / 0000
+ // - fix boot
+ if( cdsize == 0 )
+ {
+ switch (cdr.Mode & 0x30) {
+ case 0x00: cdsize = 2048; break;
+ case 0x10: cdsize = 2328; break;
+ case 0x20: cdsize = 2340; break;
+ }
+ }
+
+
ptr = (u8 *)PSXM(madr);
if (ptr == NULL) {
#ifdef CPU_LOG