SPU2: enable portaudio on linux and additional clang-format

This commit is contained in:
Gauvain 'GovanifY' Roussel-Tarbouriech 2020-09-26 13:36:00 +02:00 committed by refractionpcsx2
parent 3d3e4ec1ba
commit faae323d9d
2 changed files with 87 additions and 87 deletions

View File

@ -39,7 +39,7 @@ else()
set(pcsx2FinalFlags "")
endif()
set(pcsx2FinalFlags ${pcsx2FinalFlags} ${CommonFlags})
set(pcsx2FinalFlags ${pcsx2FinalFlags} "-DSPU2X_PORTAUDIO" ${CommonFlags})
if(XDG_STD)
set(pcsx2FinalFlags ${pcsx2FinalFlags} -DXDG_STD)
@ -224,53 +224,54 @@ set(pcsx2CDVDHeaders
# SPU2 sources
set(pcsx2SPU2Sources
SPU2/ADSR.cpp
SPU2/Debug.cpp
SPU2/DplIIdecoder.cpp
SPU2/Dma.cpp
SPU2/Lowpass.cpp
SPU2/Mixer.cpp
SPU2/spu2.cpp
SPU2/ReadInput.cpp
SPU2/RegLog.cpp
SPU2/RegTable.cpp
SPU2/Reverb.cpp
SPU2/SndOut.cpp
SPU2/SndOut_SDL.cpp
SPU2/spu2freeze.cpp
SPU2/spu2replay.cpp
SPU2/spu2sys.cpp
SPU2/Timestretcher.cpp
SPU2/Wavedump_wav.cpp
SPU2/WavFile.cpp
SPU2/Linux/Alsa.cpp
SPU2/Linux/CfgHelpers.cpp
SPU2/Linux/Config.cpp
SPU2/Linux/ConfigDebug.cpp
SPU2/Linux/ConfigSoundTouch.cpp
SPU2/Linux/Dialogs.cpp
SPU2/wx/wxConfig.cpp
SPU2/ADSR.cpp
SPU2/Debug.cpp
SPU2/DplIIdecoder.cpp
SPU2/Dma.cpp
SPU2/Lowpass.cpp
SPU2/Mixer.cpp
SPU2/spu2.cpp
SPU2/ReadInput.cpp
SPU2/RegLog.cpp
SPU2/RegTable.cpp
SPU2/Reverb.cpp
SPU2/SndOut.cpp
SPU2/SndOut_SDL.cpp
SPU2/SndOut_Portaudio.cpp
SPU2/spu2freeze.cpp
SPU2/spu2replay.cpp
SPU2/spu2sys.cpp
SPU2/Timestretcher.cpp
SPU2/Wavedump_wav.cpp
SPU2/WavFile.cpp
SPU2/Linux/Alsa.cpp
SPU2/Linux/CfgHelpers.cpp
SPU2/Linux/Config.cpp
SPU2/Linux/ConfigDebug.cpp
SPU2/Linux/ConfigSoundTouch.cpp
SPU2/Linux/Dialogs.cpp
SPU2/wx/wxConfig.cpp
)
# SPU2 headers
set(pcsx2SPU2Headers
SPU2/Config.h
SPU2/Debug.h
SPU2/defs.h
SPU2/Dma.h
SPU2/Global.h
SPU2/Lowpass.h
SPU2/Mixer.h
SPU2/spu2.h
SPU2/regs.h
SPU2/SndOut.h
SPU2/spdif.h
SPU2/spu2replay.h
SPU2/WavFile.h
SPU2/Linux/Alsa.h
SPU2/Linux/Config.h
SPU2/Linux/Dialogs.h
SPU2/wx/wxConfig.h
SPU2/Config.h
SPU2/Debug.h
SPU2/defs.h
SPU2/Dma.h
SPU2/Global.h
SPU2/Lowpass.h
SPU2/Mixer.h
SPU2/spu2.h
SPU2/regs.h
SPU2/SndOut.h
SPU2/spdif.h
SPU2/spu2replay.h
SPU2/WavFile.h
SPU2/Linux/Alsa.h
SPU2/Linux/Config.h
SPU2/Linux/Dialogs.h
SPU2/wx/wxConfig.h
)
# DebugTools sources
@ -702,8 +703,8 @@ set(Common
${pcsx2Headers}
${pcsx2CDVDSources}
${pcsx2CDVDHeaders}
${pcsx2SPU2Sources}
${pcsx2SPU2Headers}
${pcsx2SPU2Sources}
${pcsx2SPU2Headers}
${pcsx2DebugToolsSources}
${pcsx2GuiSources}
${pcsx2GuiResources}
@ -773,6 +774,7 @@ set(pcsx2FinalLibs
${ALSA_LIBRARIES}
${SOUNDTOUCH_LIBRARIES}
${SDL2_LIBRARIES}
${PORTAUDIO_LIBRARIES}
${Platform_Libs}
)

View File

@ -38,39 +38,39 @@ static void __fastcall psxDmaGeneric(u32 madr, u32 bcr, u32 chcr, u32 spuCore)
// Update the spu2 to the current cycle before initiating the DMA
SPU2async(psxRegs.cycle - psxCounters[6].sCycleT);
//Console.Status("cycles sent to SPU2 %x\n", psxRegs.cycle - psxCounters[6].sCycleT);
SPU2async(psxRegs.cycle - psxCounters[6].sCycleT);
//Console.Status("cycles sent to SPU2 %x\n", psxRegs.cycle - psxCounters[6].sCycleT);
psxCounters[6].sCycleT = psxRegs.cycle;
psxCounters[6].CycleT = size * 3;
psxCounters[6].sCycleT = psxRegs.cycle;
psxCounters[6].CycleT = size * 3;
psxNextCounter -= (psxRegs.cycle - psxNextsCounter);
psxNextsCounter = psxRegs.cycle;
if (psxCounters[6].CycleT < psxNextCounter)
psxNextCounter = psxCounters[6].CycleT;
psxNextCounter -= (psxRegs.cycle - psxNextsCounter);
psxNextsCounter = psxRegs.cycle;
if (psxCounters[6].CycleT < psxNextCounter)
psxNextCounter = psxCounters[6].CycleT;
if((g_iopNextEventCycle - psxNextsCounter) > (u32)psxNextCounter)
{
//DevCon.Warning("SPU2async Setting new counter branch, old %x new %x ((%x - %x = %x) > %x delta)", g_iopNextEventCycle, psxNextsCounter + psxNextCounter, g_iopNextEventCycle, psxNextsCounter, (g_iopNextEventCycle - psxNextsCounter), psxNextCounter);
g_iopNextEventCycle = psxNextsCounter + psxNextCounter;
}
if ((g_iopNextEventCycle - psxNextsCounter) > (u32)psxNextCounter)
{
//DevCon.Warning("SPU2async Setting new counter branch, old %x new %x ((%x - %x = %x) > %x delta)", g_iopNextEventCycle, psxNextsCounter + psxNextCounter, g_iopNextEventCycle, psxNextsCounter, (g_iopNextEventCycle - psxNextsCounter), psxNextCounter);
g_iopNextEventCycle = psxNextsCounter + psxNextCounter;
}
switch (chcr)
{
case 0x01000201: //cpu to spu2 transfer
PSXDMA_LOG("*** DMA %d - mem2spu *** %x addr = %x size = %x", dmaNum, chcr, madr, bcr);
if(dmaNum==7)
SPU2writeDMA7Mem((u16 *)iopPhysMem(madr), size*2);
else if(dmaNum==4)
SPU2writeDMA4Mem((u16 *)iopPhysMem(madr), size*2);
if (dmaNum == 7)
SPU2writeDMA7Mem((u16*)iopPhysMem(madr), size * 2);
else if (dmaNum == 4)
SPU2writeDMA4Mem((u16*)iopPhysMem(madr), size * 2);
break;
case 0x01000200: //spu2 to cpu transfer
PSXDMA_LOG("*** DMA %d - spu2mem *** %x addr = %x size = %x", dmaNum, chcr, madr, bcr);
if(dmaNum==7)
SPU2readDMA7Mem((u16 *)iopPhysMem(madr), size*2);
else if(dmaNum==4)
SPU2readDMA4Mem((u16 *)iopPhysMem(madr), size*2);
if (dmaNum == 7)
SPU2readDMA7Mem((u16*)iopPhysMem(madr), size * 2);
else if (dmaNum == 4)
SPU2readDMA4Mem((u16*)iopPhysMem(madr), size * 2);
psxCpu->Clear(spuCore ? HW_DMA7_MADR : HW_DMA4_MADR, size);
break;
@ -80,16 +80,16 @@ static void __fastcall psxDmaGeneric(u32 madr, u32 bcr, u32 chcr, u32 spuCore)
}
}
void psxDma4(u32 madr, u32 bcr, u32 chcr) // SPU2's Core 0
void psxDma4(u32 madr, u32 bcr, u32 chcr) // SPU2's Core 0
{
psxDmaGeneric(madr, bcr, chcr, 0);
}
int psxDma4Interrupt()
{
#ifdef SPU2IRQTEST
Console.Warning("psxDma4Interrupt()");
#endif
#ifdef SPU2IRQTEST
Console.Warning("psxDma4Interrupt()");
#endif
HW_DMA4_CHCR &= ~0x01000000;
psxDmaInterrupt(4);
iopIntcIrq(9);
@ -98,42 +98,41 @@ int psxDma4Interrupt()
void spu2DMA4Irq()
{
#ifdef SPU2IRQTEST
Console.Warning("spu2DMA4Irq()");
#endif
#ifdef SPU2IRQTEST
Console.Warning("spu2DMA4Irq()");
#endif
SPU2interruptDMA4();
HW_DMA4_CHCR &= ~0x01000000;
psxDmaInterrupt(4);
}
void psxDma7(u32 madr, u32 bcr, u32 chcr) // SPU2's Core 1
void psxDma7(u32 madr, u32 bcr, u32 chcr) // SPU2's Core 1
{
psxDmaGeneric(madr, bcr, chcr, 1);
}
int psxDma7Interrupt()
{
#ifdef SPU2IRQTEST
Console.Warning("psxDma7Interrupt()");
#endif
#ifdef SPU2IRQTEST
Console.Warning("psxDma7Interrupt()");
#endif
HW_DMA7_CHCR &= ~0x01000000;
psxDmaInterrupt2(0);
return 1;
}
void spu2DMA7Irq()
{
#ifdef SPU2IRQTEST
Console.Warning("spu2DMA7Irq()");
#endif
#ifdef SPU2IRQTEST
Console.Warning("spu2DMA7Irq()");
#endif
SPU2interruptDMA7();
HW_DMA7_CHCR &= ~0x01000000;
psxDmaInterrupt2(0);
}
#ifndef DISABLE_PSX_GPU_DMAS
void psxDma2(u32 madr, u32 bcr, u32 chcr) // GPU
void psxDma2(u32 madr, u32 bcr, u32 chcr) // GPU
{
//DevCon.Warning("SIF2 IOP CHCR = %x MADR = %x BCR = %x first 16bits %x", chcr, madr, bcr, iopMemRead16(madr));
sif2.iop.busy = true;
@ -142,12 +141,11 @@ void psxDma2(u32 madr, u32 bcr, u32 chcr) // GPU
// todo: psxmode: dmaSIF2 appears to interface with PGPU but everything is already handled without it.
// it slows down psxmode if it's run.
//dmaSIF2();
}
void psxDma6(u32 madr, u32 bcr, u32 chcr)
{
u32 *mem = (u32 *)iopPhysMem(madr);
u32* mem = (u32*)iopPhysMem(madr);
PSXDMA_LOG("*** DMA 6 - OT *** %lx addr = %lx size = %lx", chcr, madr, bcr);
@ -197,7 +195,7 @@ void psxDma8(u32 madr, u32 bcr, u32 chcr)
void psxDma9(u32 madr, u32 bcr, u32 chcr)
{
SIF_LOG("IOP: dmaSIF0 chcr = %lx, madr = %lx, bcr = %lx, tadr = %lx", chcr, madr, bcr, HW_DMA9_TADR);
SIF_LOG("IOP: dmaSIF0 chcr = %lx, madr = %lx, bcr = %lx, tadr = %lx", chcr, madr, bcr, HW_DMA9_TADR);
sif0.iop.busy = true;
sif0.iop.end = false;
@ -207,7 +205,7 @@ void psxDma9(u32 madr, u32 bcr, u32 chcr)
void psxDma10(u32 madr, u32 bcr, u32 chcr)
{
SIF_LOG("IOP: dmaSIF1 chcr = %lx, madr = %lx, bcr = %lx", chcr, madr, bcr);
SIF_LOG("IOP: dmaSIF1 chcr = %lx, madr = %lx, bcr = %lx", chcr, madr, bcr);
sif1.iop.busy = true;
sif1.iop.end = false;