diff options
| author | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-11-05 01:22:48 +0000 |
|---|---|---|
| committer | SND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-11-05 01:22:48 +0000 |
| commit | 24936efb4e1d4be40867ed4d885fd6c6770d5870 (patch) | |
| tree | 66f606b4ef1ea9d5dbb1a13b34f5dc72b4dc7539 | |
| parent | df333a45edbccd632bb5d42993b1a0ef1b8fbd89 (diff) | |
| download | pcsxr-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.c | 12 |
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 |
