diff options
| author | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-02-13 03:49:01 +0000 |
|---|---|---|
| committer | SND\weimingzhi_cp <SND\weimingzhi_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97> | 2010-02-13 03:49:01 +0000 |
| commit | 1ccb62ed8e2ba0ac2fe6d0f29eef3e4b69f10b74 (patch) | |
| tree | e4efd5339ac306a67c992c3a5456b3c71e1e6575 | |
| parent | 9ea4ad75fbdbd9d4e04db83f884006b20d547204 (diff) | |
| download | pcsxr-1ccb62ed8e2ba0ac2fe6d0f29eef3e4b69f10b74.tar.gz | |
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@41506 e17a0e51-4ae3-4d35-97c3-1a29b211df97
| -rw-r--r-- | ChangeLog | 8 | ||||
| -rw-r--r-- | libpcsxcore/cdrom.c | 3 | ||||
| -rw-r--r-- | libpcsxcore/psxhw.c | 13 | ||||
| -rw-r--r-- | libpcsxcore/r3000a.c | 2 |
4 files changed, 19 insertions, 7 deletions
@@ -1,3 +1,11 @@ +February 13, 2010 shalma + + * libpcsxcore/cdrom.c: Clear the 0x20 flag when stop reading, which fixes the + problem with Syphon Filter. + * libpcsxcore/psxhw.c: Always update HW_DMAx_CHCR in DmaExec(), which fixes + the problem with Harvest Moon. + (http://forums.ngemu.com/pcsx-discussion/116599-developers-wanted-pcsx-revival-2.html) + February 10, 2010 Tristin Celestin <cetris1@umbc.edu> * plugins/dfsound/pulseaudio.c: PulseAudio Normal API support is now working diff --git a/libpcsxcore/cdrom.c b/libpcsxcore/cdrom.c index b2384671..c6d44290 100644 --- a/libpcsxcore/cdrom.c +++ b/libpcsxcore/cdrom.c @@ -105,13 +105,14 @@ static struct SubQ *subq; cdr.FirstSector = 1; \ cdr.Readed = 0xff; \ AddIrqQueue(READ_ACK, 0x800); \ -} +} #define StopReading() { \ if (cdr.Reading) { \ cdr.Reading = 0; \ psxRegs.interrupt &= ~0x40000; \ } \ + cdr.StatP &= ~0x20; \ } #define StopCdda() { \ diff --git a/libpcsxcore/psxhw.c b/libpcsxcore/psxhw.c index 2e48469c..8e1e8667 100644 --- a/libpcsxcore/psxhw.c +++ b/libpcsxcore/psxhw.c @@ -194,9 +194,9 @@ u32 psxHwRead32(u32 add) { switch (add) { case 0x1f801040: hard = sioRead8(); - hard|= sioRead8() << 8; - hard|= sioRead8() << 16; - hard|= sioRead8() << 24; + hard |= sioRead8() << 8; + hard |= sioRead8() << 16; + hard |= sioRead8() << 24; #ifdef PAD_LOG PAD_LOG("sio read32 ;ret = %lx\n", hard); #endif @@ -480,9 +480,12 @@ void psxHwWrite16(u32 add, u16 value) { } #define DmaExec(n) { \ - if (SWAPu32(HW_DMA##n##_CHCR) & 0x01000000) return; \ + if (SWAPu32(HW_DMA##n##_CHCR) & 0x01000000) { \ + HW_DMA##n##_CHCR = SWAPu32(value); \ + return; \ + } \ 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)); \ } \ diff --git a/libpcsxcore/r3000a.c b/libpcsxcore/r3000a.c index 6a8a7051..c0b163bb 100644 --- a/libpcsxcore/r3000a.c +++ b/libpcsxcore/r3000a.c @@ -26,7 +26,7 @@ #include "cdrom.h" #include "mdec.h" #include "gte.h" -#include "cheat.h"
+#include "cheat.h" #include "ppf.h" psxRegisters psxRegs; |
