diff options
| author | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-02-13 19:16:42 +0000 |
|---|---|---|
| committer | SND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2013-02-13 19:16:42 +0000 |
| commit | 12b5ee6c45ff4e24650cc96f1a4a1f50f4f4ac6b (patch) | |
| tree | 624b2ae139ff1e78019b24d0edb7a103bdd92dbb | |
| parent | 6fd2ccec503041427dbd03388e67da70a4d5502e (diff) | |
| download | pcsxr-12b5ee6c45ff4e24650cc96f1a4a1f50f4f4ac6b.tar.gz | |
* Revert old DmaExec;
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82871 e17a0e51-4ae3-4d35-97c3-1a29b211df97
| -rwxr-xr-x | libpcsxcore/psxhw.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libpcsxcore/psxhw.c b/libpcsxcore/psxhw.c index 2e7241d0..f119d6fa 100755 --- a/libpcsxcore/psxhw.c +++ b/libpcsxcore/psxhw.c @@ -503,12 +503,23 @@ void psxHwWrite16(u32 add, u16 value) { #define DmaExec(n) { \ HW_DMA##n##_CHCR = SWAPu32(value); \ \ + if (SWAPu32(HW_DMA##n##_CHCR) & 0x01000000 && SWAPu32(HW_DMA_PCR) & (8 << (n * 4))) { \ + psxDma##n(SWAPu32(HW_DMA##n##_MADR), SWAPu32(HW_DMA##n##_BCR), SWAPu32(HW_DMA##n##_CHCR)); \ + } \ +} + +#if 0 +// Failed with: Lode Runner, Tales Of Phantasy. +#define DmaExec(n) { \ + HW_DMA##n##_CHCR = SWAPu32(value); \ +\ if ((SWAPu32(HW_DMA##n##_CHCR) & 0x01000000 || \ (n == 2 && SWAPu32(HW_DMA##n##_CHCR) == 0x0401)) /* Vampire Hunter D */ && \ SWAPu32(HW_DMA_PCR) & (8 << (n * 4))) { \ psxDma##n(SWAPu32(HW_DMA##n##_MADR), SWAPu32(HW_DMA##n##_BCR), SWAPu32(HW_DMA##n##_CHCR)); \ } \ } +#endif void psxHwWrite32(u32 add, u32 value) { switch (add) { |
