summaryrefslogtreecommitdiff
path: root/libpcsxcore
diff options
context:
space:
mode:
Diffstat (limited to 'libpcsxcore')
-rwxr-xr-xlibpcsxcore/gpu.c3
-rwxr-xr-xlibpcsxcore/psxhw.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/libpcsxcore/gpu.c b/libpcsxcore/gpu.c
index 2b1e5b22..992eb536 100755
--- a/libpcsxcore/gpu.c
+++ b/libpcsxcore/gpu.c
@@ -152,9 +152,10 @@ void psxDma2(u32 madr, u32 bcr, u32 chcr) { // GPU
#endif
return;
+ case 0x0401: // Vampire Hunter D: title screen linked list update
case 0x01000401: // dma chain
#ifdef PSXDMA_LOG
- PSXDMA_LOG("*** DMA 2 - GPU dma chain *** %lx addr = %lx size = %lx\n", chcr, madr, bcr);
+ PSXDMA_LOG("*** DMA 2 - GPU dma chain *** %8.8lx addr = %lx size = %lx\n", chcr, madr, bcr);
#endif
size = gpuDmaChainSize(madr);
diff --git a/libpcsxcore/psxhw.c b/libpcsxcore/psxhw.c
index 6fc705b0..2e7241d0 100755
--- a/libpcsxcore/psxhw.c
+++ b/libpcsxcore/psxhw.c
@@ -503,7 +503,9 @@ 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))) { \
+ 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)); \
} \
}