summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
authorSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-02-13 19:16:42 +0000
committerSND\edgbla_cp <SND\edgbla_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-02-13 19:16:42 +0000
commit12b5ee6c45ff4e24650cc96f1a4a1f50f4f4ac6b (patch)
tree624b2ae139ff1e78019b24d0edb7a103bdd92dbb /libpcsxcore
parent6fd2ccec503041427dbd03388e67da70a4d5502e (diff)
downloadpcsxr-12b5ee6c45ff4e24650cc96f1a4a1f50f4f4ac6b.tar.gz
* Revert old DmaExec;
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82871 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'libpcsxcore')
-rwxr-xr-xlibpcsxcore/psxhw.c11
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) {