mirror of https://github.com/PCSX2/pcsx2.git
IOP: Seperate completing DMA8 to a seperate function
This commit is contained in:
parent
0806ca442a
commit
1f2d9ab4e5
|
@ -5,6 +5,8 @@
|
|||
#include "common/Path.h"
|
||||
#include "common/StringUtil.h"
|
||||
|
||||
#include "IopDma.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include "common/RedtapeWindows.h"
|
||||
#include <winioctl.h>
|
||||
|
@ -916,7 +918,10 @@ void DEV9readDMA8Mem(u32* pMem, int size)
|
|||
DevCon.WriteLn("DEV9: *DEV9readDMA8Mem: size %x", size);
|
||||
|
||||
if (dev9.dma_ctrl & SPD_DMA_TO_SMAP)
|
||||
{
|
||||
smap_readDMA8Mem(pMem, size);
|
||||
psxDMA8Interrupt();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dev9.xfr_ctrl & SPD_XFR_DMAEN &&
|
||||
|
@ -926,6 +931,7 @@ void DEV9readDMA8Mem(u32* pMem, int size)
|
|||
IOPReadFIFO(size);
|
||||
dev9.ata->ATAreadDMA8Mem((u8*)pMem, size);
|
||||
FIFOIntr();
|
||||
psxDMA8Interrupt();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -942,7 +948,10 @@ void DEV9writeDMA8Mem(u32* pMem, int size)
|
|||
DevCon.WriteLn("DEV9: *DEV9writeDMA8Mem: size %x", size);
|
||||
|
||||
if (dev9.dma_ctrl & SPD_DMA_TO_SMAP)
|
||||
{
|
||||
smap_writeDMA8Mem(pMem, size);
|
||||
psxDMA8Interrupt();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dev9.xfr_ctrl & SPD_XFR_DMAEN &&
|
||||
|
@ -952,6 +961,7 @@ void DEV9writeDMA8Mem(u32* pMem, int size)
|
|||
HDDReadFIFO();
|
||||
dev9.ata->ATAwriteDMA8Mem((u8*)pMem, size);
|
||||
FIFOIntr();
|
||||
psxDMA8Interrupt();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -188,9 +188,16 @@ void psxDma8(u32 madr, u32 bcr, u32 chcr)
|
|||
PSXDMA_LOG("*** DMA 8 - DEV9 unknown *** %lx addr = %lx size = %lx", chcr, madr, bcr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void psxDMA8Interrupt()
|
||||
{
|
||||
if (HW_DMA8_CHCR & 0x01000000)
|
||||
{
|
||||
HW_DMA8_CHCR &= ~0x01000000;
|
||||
psxDmaInterrupt2(1);
|
||||
}
|
||||
}
|
||||
|
||||
void psxDma9(u32 madr, u32 bcr, u32 chcr)
|
||||
{
|
||||
|
|
|
@ -18,6 +18,7 @@ extern void psxDma12(u32 madr, u32 bcr, u32 chcr);
|
|||
|
||||
extern int psxDma4Interrupt();
|
||||
extern int psxDma7Interrupt();
|
||||
extern void psxDMA8Interrupt();
|
||||
extern void psxDMA11Interrupt();
|
||||
extern void psxDMA12Interrupt();
|
||||
extern void dev9Interrupt();
|
||||
|
|
Loading…
Reference in New Issue