summaryrefslogtreecommitdiff
path: root/libpcsxcore/mdec.c
diff options
context:
space:
mode:
authorSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-09-05 00:35:53 +0000
committerSND\shalma_cp <SND\shalma_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2010-09-05 00:35:53 +0000
commit78e935a3e7ec856d50849b3e2a6df7949f56a634 (patch)
treeda95662359a570325828c0f59419b034546f1026 /libpcsxcore/mdec.c
parentd492504ee69f77cf3111a7715ac228000b69a2de (diff)
Rebel Assault 2 needs longer DMA times (black screens in-game)
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@56821 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore/mdec.c')
-rw-r--r--libpcsxcore/mdec.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/libpcsxcore/mdec.c b/libpcsxcore/mdec.c
index f9b8d580..2ad12585 100644
--- a/libpcsxcore/mdec.c
+++ b/libpcsxcore/mdec.c
@@ -474,7 +474,10 @@ void psxDma0(u32 adr, u32 bcr, u32 chcr) {
case 0x3: // decode
mdec.rl = (u16 *)PSXM(adr);
mdec.rlsize = mdec.reg0 & MDEC0_SIZE_MASK;
- break;
+
+ MDECINDMA_INT( size / 4 );
+ return;
+
case 0x4: // quantization table upload
{
@@ -485,11 +488,15 @@ void psxDma0(u32 adr, u32 bcr, u32 chcr) {
iqtab_init(iq_y, p);
iqtab_init(iq_uv, p + 64);
}
- break;
+
+ MDECINDMA_INT( size / 4 );
+ return;
case 0x6: // cosine table
// printf("mdec cosine table\n");
- break;
+
+ MDECINDMA_INT( size / 4 );
+ return;
default:
// printf("mdec unknown command\n");
@@ -498,6 +505,12 @@ void psxDma0(u32 adr, u32 bcr, u32 chcr) {
HW_DMA0_CHCR &= SWAP32(~0x01000000);
DMA_INTERRUPT(0);
+}
+
+void mdec0Interrupt()
+{
+ HW_DMA0_CHCR &= SWAP32(~0x01000000);
+ DMA_INTERRUPT(0);
}
void psxDma1(u32 adr, u32 bcr, u32 chcr) {