mirror of
https://github.com/ARMSX2/ARMSX2.git
synced 2026-08-24 16:50:16 -07:00
SPU2: remove initial plugin references
This commit is contained in:
committed by
refractionpcsx2
parent
cf58a32583
commit
b8c3bd4fae
@@ -36,8 +36,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{2D6F0A62
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pcsx2", "pcsx2\windows\VCprojects\pcsx2.vcxproj", "{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Spu2-X", "plugins\spu2-x\src\Windows\Spu2-X.vcxproj", "{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSdx", "plugins\GSdx\GSdx.vcxproj", "{18E42F6F-3A62-41EE-B42F-79366C4F1E95}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SoundTouch", "3rdparty\soundtouch\SoundTouch.vcxproj", "{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}"
|
||||
@@ -116,26 +114,6 @@ Global
|
||||
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release|Win32.Build.0 = Release|Win32
|
||||
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release|x64.ActiveCfg = Release|x64
|
||||
{1CEFD830-2B76-4596-A4EE-BCD7280A60BD}.Release|x64.Build.0 = Release|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Debug|x64.Build.0 = Debug|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Devel|Win32.ActiveCfg = Devel|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Devel|Win32.Build.0 = Devel|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Devel|x64.Build.0 = Devel|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release AVX2|Win32.ActiveCfg = Release|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release AVX2|Win32.Build.0 = Release|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSE4|Win32.ActiveCfg = Release|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSE4|Win32.Build.0 = Release|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSE4|x64.ActiveCfg = Release|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release SSE4|x64.Build.0 = Release|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release|Win32.Build.0 = Release|Win32
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release|x64.ActiveCfg = Release|x64
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4}.Release|x64.Build.0 = Release|x64
|
||||
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{18E42F6F-3A62-41EE-B42F-79366C4F1E95}.Debug|x64.ActiveCfg = Debug|x64
|
||||
@@ -564,7 +542,6 @@ Global
|
||||
{E1828E40-2FBB-48FE-AE7F-5587755DCE0E} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
||||
{0FADC26C-0E9D-4DD7-84B1-BF4F7754E90C} = {88F517F9-CE1C-4005-9BDF-4481FEB55053}
|
||||
{62BF822E-6A12-49A8-BE8C-C55A9BCA24DA} = {0FADC26C-0E9D-4DD7-84B1-BF4F7754E90C}
|
||||
{5307BBB7-EBB9-4AA4-8CB6-A94EC473C8C4} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
||||
{18E42F6F-3A62-41EE-B42F-79366C4F1E95} = {703FD00B-D7A0-41E3-BD03-CEC86B385DAF}
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47} = {78EBE642-7A4D-4EA7-86BE-5639C6646C38}
|
||||
|
||||
@@ -178,35 +178,6 @@ else()
|
||||
endif()
|
||||
#---------------------------------------
|
||||
|
||||
#---------------------------------------
|
||||
# SPU2null
|
||||
#---------------------------------------
|
||||
if(GTKn_FOUND AND EXTRA_PLUGINS)
|
||||
set(SPU2null TRUE)
|
||||
endif()
|
||||
#---------------------------------------
|
||||
|
||||
#---------------------------------------
|
||||
# spu2-x
|
||||
#---------------------------------------
|
||||
# requires: -SoundTouch
|
||||
# -ALSA
|
||||
# -SDL
|
||||
# -common_libs
|
||||
#
|
||||
# optional: -Portaudio
|
||||
#---------------------------------------
|
||||
if((SOUNDTOUCH_FOUND AND SDLn_FOUND AND common_libs)
|
||||
AND ((Linux AND ALSA_FOUND) OR (UNIX AND NOT Linux)))
|
||||
set(spu2-x TRUE)
|
||||
elseif(NOT EXISTS "${CMAKE_SOURCE_DIR}/plugins/spu2-x")
|
||||
set(spu2-x FALSE)
|
||||
else()
|
||||
set(spu2-x FALSE)
|
||||
print_dep("Skip build of spu2-x: missing dependencies" "${msg_dep_spu2x}")
|
||||
endif()
|
||||
#---------------------------------------
|
||||
|
||||
#---------------------------------------
|
||||
# USBnull
|
||||
#---------------------------------------
|
||||
|
||||
@@ -74,14 +74,13 @@ typedef struct _keyEvent
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if defined(GSdefs) || defined(PADdefs) || defined(SIOdefs) || \
|
||||
defined(SPU2defs) || defined(DEV9defs) || defined(USBdefs)
|
||||
defined(DEV9defs) || defined(USBdefs)
|
||||
#define COMMONdefs
|
||||
#endif
|
||||
|
||||
// PS2EgetLibType returns (may be OR'd)
|
||||
#define PS2E_LT_GS 0x01
|
||||
#define PS2E_LT_PAD 0x02 // -=[ OBSOLETE ]=-
|
||||
#define PS2E_LT_SPU2 0x04
|
||||
#define PS2E_LT_DEV9 0x10
|
||||
#define PS2E_LT_USB 0x20
|
||||
#define PS2E_LT_SIO 0x80
|
||||
@@ -89,7 +88,6 @@ typedef struct _keyEvent
|
||||
// PS2EgetLibVersion2 (high 16 bits)
|
||||
#define PS2E_GS_VERSION 0x0006
|
||||
#define PS2E_PAD_VERSION 0x0002 // -=[ OBSOLETE ]=-
|
||||
#define PS2E_SPU2_VERSION 0x0005
|
||||
#define PS2E_DEV9_VERSION 0x0003
|
||||
#define PS2E_USB_VERSION 0x0003
|
||||
#define PS2E_SIO_VERSION 0x0001
|
||||
@@ -247,59 +245,6 @@ s32 CALLBACK PADtest();
|
||||
|
||||
#endif
|
||||
|
||||
/* SPU2 plugin API */
|
||||
|
||||
// if this file is included with this define
|
||||
// the next api will not be skipped by the compiler
|
||||
#if defined(SPU2defs) || defined(BUILTIN_SPU2_PLUGIN)
|
||||
|
||||
// basic funcs
|
||||
|
||||
s32 CALLBACK SPU2init();
|
||||
s32 CALLBACK SPU2open(void *pDsp);
|
||||
void CALLBACK SPU2close();
|
||||
void CALLBACK SPU2shutdown();
|
||||
void CALLBACK SPU2setSettingsDir(const char *dir);
|
||||
void CALLBACK SPU2setLogDir(const char *dir);
|
||||
|
||||
void CALLBACK SPU2reset();
|
||||
void CALLBACK SPU2ps1reset();
|
||||
void CALLBACK SPU2write(u32 mem, u16 value);
|
||||
u16 CALLBACK SPU2read(u32 mem);
|
||||
|
||||
void CALLBACK SPU2readDMA4Mem(u16 *pMem, int size);
|
||||
void CALLBACK SPU2writeDMA4Mem(u16 *pMem, int size);
|
||||
void CALLBACK SPU2interruptDMA4();
|
||||
void CALLBACK SPU2readDMA7Mem(u16 *pMem, int size);
|
||||
void CALLBACK SPU2writeDMA7Mem(u16 *pMem, int size);
|
||||
|
||||
// all addresses passed by dma will be pointers to the array starting at baseaddr
|
||||
// This function is necessary to successfully save and reload the spu2 state
|
||||
void CALLBACK SPU2setDMABaseAddr(uptr baseaddr);
|
||||
|
||||
void CALLBACK SPU2interruptDMA7();
|
||||
|
||||
u32 CALLBACK SPU2ReadMemAddr(int core);
|
||||
void CALLBACK SPU2WriteMemAddr(int core, u32 value);
|
||||
|
||||
void CALLBACK SPU2irqCallback(void (*SPU2callback)(), void (*DMA4callback)(), void (*DMA7callback)());
|
||||
|
||||
// extended funcs
|
||||
// if start is 1, starts recording spu2 data, else stops
|
||||
// returns a non zero value if successful
|
||||
// for now, pData is not used
|
||||
int CALLBACK SPU2setupRecording(int start, void *pData);
|
||||
|
||||
void CALLBACK SPU2setClockPtr(u32 *ptr);
|
||||
void CALLBACK SPU2setTimeStretcher(short int enable);
|
||||
|
||||
void CALLBACK SPU2async(u32 cycles);
|
||||
s32 CALLBACK SPU2freeze(int mode, freezeData *data);
|
||||
void CALLBACK SPU2configure();
|
||||
s32 CALLBACK SPU2test();
|
||||
|
||||
#endif
|
||||
|
||||
/* DEV9 plugin API */
|
||||
|
||||
// if this file is included with this define
|
||||
@@ -430,30 +375,6 @@ typedef s32(CALLBACK *_PADsetSlot)(u8 port, u8 slot);
|
||||
typedef s32(CALLBACK *_PADqueryMtap)(u8 port);
|
||||
typedef void(CALLBACK *_PADWriteEvent)(keyEvent &evt);
|
||||
|
||||
// SPU2
|
||||
typedef s32(CALLBACK *_SPU2open)(void *pDsp);
|
||||
typedef void(CALLBACK *_SPU2reset)();
|
||||
typedef void (CALLBACK *_SPU2ps1reset)();
|
||||
typedef void(CALLBACK *_SPU2write)(u32 mem, u16 value);
|
||||
typedef u16(CALLBACK *_SPU2read)(u32 mem);
|
||||
typedef void(CALLBACK *_SPU2readDMA4Mem)(u16 *pMem, int size);
|
||||
typedef void(CALLBACK *_SPU2writeDMA4Mem)(u16 *pMem, int size);
|
||||
typedef void(CALLBACK *_SPU2interruptDMA4)();
|
||||
typedef void(CALLBACK *_SPU2readDMA7Mem)(u16 *pMem, int size);
|
||||
typedef void(CALLBACK *_SPU2writeDMA7Mem)(u16 *pMem, int size);
|
||||
typedef void(CALLBACK *_SPU2setDMABaseAddr)(uptr baseaddr);
|
||||
typedef void(CALLBACK *_SPU2interruptDMA7)();
|
||||
typedef void(CALLBACK *_SPU2irqCallback)(void (*SPU2callback)(), void (*DMA4callback)(), void (*DMA7callback)());
|
||||
typedef u32(CALLBACK *_SPU2ReadMemAddr)(int core);
|
||||
typedef void(CALLBACK *_SPU2WriteMemAddr)(int core, u32 value);
|
||||
|
||||
typedef int(CALLBACK *_SPU2setupRecording)(int, std::wstring*);
|
||||
|
||||
typedef void(CALLBACK *_SPU2setClockPtr)(u32 *ptr);
|
||||
typedef void(CALLBACK *_SPU2setTimeStretcher)(short int enable);
|
||||
|
||||
typedef void(CALLBACK *_SPU2async)(u32 cycles);
|
||||
|
||||
// DEV9
|
||||
// NOTE: The read/write functions CANNOT use XMM/MMX regs
|
||||
// If you want to use them, need to save and restore current ones
|
||||
|
||||
@@ -177,7 +177,6 @@ extern "C" {
|
||||
enum PS2E_ComponentTypes {
|
||||
PS2E_TYPE_GS = 0,
|
||||
PS2E_TYPE_PAD,
|
||||
PS2E_TYPE_SPU2,
|
||||
PS2E_TYPE_DEV9,
|
||||
PS2E_TYPE_USB,
|
||||
PS2E_TYPE_SIO,
|
||||
@@ -187,7 +186,6 @@ enum PS2E_ComponentTypes {
|
||||
enum PluginLibVersion {
|
||||
PS2E_VER_GS = 0x1000,
|
||||
PS2E_VER_PAD = 0x1000,
|
||||
PS2E_VER_SPU2 = 0x1000,
|
||||
PS2E_VER_DEV9 = 0x1000,
|
||||
PS2E_VER_USB = 0x1000,
|
||||
PS2E_VER_SIO = 0x1000
|
||||
|
||||
@@ -726,9 +726,6 @@ endif()
|
||||
if(BUILTIN_PAD)
|
||||
set(pcsx2FinalLibs "${pcsx2FinalLibs} onepad-1.2.0")
|
||||
endif()
|
||||
if(BUILTIN_SPU2)
|
||||
set(pcsx2FinalLibs "${pcsx2FinalLibs} spu2x-2.0.0")
|
||||
endif()
|
||||
if(BUILTIN_USB)
|
||||
set(pcsx2FinalLibs "${pcsx2FinalLibs} USBnull-0.7.0")
|
||||
endif()
|
||||
|
||||
@@ -23,7 +23,6 @@ enum PluginsEnum_t
|
||||
{
|
||||
PluginId_GS = 0,
|
||||
PluginId_PAD,
|
||||
PluginId_SPU2,
|
||||
PluginId_USB,
|
||||
PluginId_DEV9,
|
||||
PluginId_Count,
|
||||
|
||||
@@ -81,7 +81,6 @@ const PluginInfo tbl_PluginInfo[] =
|
||||
{
|
||||
{ "GS", PluginId_GS, PS2E_LT_GS, PS2E_GS_VERSION },
|
||||
{ "PAD", PluginId_PAD, PS2E_LT_PAD, PS2E_PAD_VERSION },
|
||||
{ "SPU2", PluginId_SPU2, PS2E_LT_SPU2, PS2E_SPU2_VERSION },
|
||||
{ "USB", PluginId_USB, PS2E_LT_USB, PS2E_USB_VERSION },
|
||||
{ "DEV9", PluginId_DEV9, PS2E_LT_DEV9, PS2E_DEV9_VERSION },
|
||||
|
||||
@@ -274,32 +273,6 @@ _PADWriteEvent PADWriteEvent;
|
||||
|
||||
static void PAD_update( u32 padslot ) { }
|
||||
|
||||
// SPU2
|
||||
#ifndef BUILTIN_SPU2_PLUGIN
|
||||
_SPU2open SPU2open;
|
||||
_SPU2write SPU2write;
|
||||
_SPU2reset SPU2reset;
|
||||
_SPU2ps1reset SPU2ps1reset;
|
||||
_SPU2read SPU2read;
|
||||
|
||||
_SPU2readDMA4Mem SPU2readDMA4Mem;
|
||||
_SPU2writeDMA4Mem SPU2writeDMA4Mem;
|
||||
_SPU2interruptDMA4 SPU2interruptDMA4;
|
||||
_SPU2readDMA7Mem SPU2readDMA7Mem;
|
||||
_SPU2writeDMA7Mem SPU2writeDMA7Mem;
|
||||
_SPU2setDMABaseAddr SPU2setDMABaseAddr;
|
||||
_SPU2interruptDMA7 SPU2interruptDMA7;
|
||||
|
||||
_SPU2ReadMemAddr SPU2ReadMemAddr;
|
||||
_SPU2WriteMemAddr SPU2WriteMemAddr;
|
||||
_SPU2setupRecording SPU2setupRecording;
|
||||
_SPU2irqCallback SPU2irqCallback;
|
||||
|
||||
_SPU2setClockPtr SPU2setClockPtr;
|
||||
_SPU2async SPU2async;
|
||||
#endif
|
||||
|
||||
|
||||
// DEV9
|
||||
#ifndef BUILTIN_DEV9_PLUGIN
|
||||
_DEV9open DEV9open;
|
||||
@@ -437,47 +410,6 @@ static const LegacyApi_OptMethod s_MethMessOpt_PAD[] =
|
||||
{ NULL },
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// SPU2 Mess!
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
// manualized reset that writes core reset registers of the SPU2 plugin:
|
||||
static void CALLBACK SPU2_Reset()
|
||||
{
|
||||
SPU2write( 0x1f90019A, 1<<15 ); // core 0
|
||||
SPU2write( 0x1f90059A, 1<<15 ); // core 1
|
||||
}
|
||||
|
||||
static const LegacyApi_ReqMethod s_MethMessReq_SPU2[] =
|
||||
{
|
||||
{ "SPU2open", (vMeth**)&SPU2open, NULL },
|
||||
{ "SPU2reset", (vMeth**)&SPU2reset, SPU2_Reset },
|
||||
{ "SPU2ps1reset", (vMeth**)&SPU2ps1reset, SPU2ps1reset},
|
||||
{ "SPU2write", (vMeth**)&SPU2write, NULL },
|
||||
{ "SPU2read", (vMeth**)&SPU2read, NULL },
|
||||
{ "SPU2readDMA4Mem", (vMeth**)&SPU2readDMA4Mem, NULL },
|
||||
{ "SPU2readDMA7Mem", (vMeth**)&SPU2readDMA7Mem, NULL },
|
||||
{ "SPU2writeDMA4Mem", (vMeth**)&SPU2writeDMA4Mem, NULL },
|
||||
{ "SPU2writeDMA7Mem", (vMeth**)&SPU2writeDMA7Mem, NULL },
|
||||
{ "SPU2interruptDMA4", (vMeth**)&SPU2interruptDMA4,NULL },
|
||||
{ "SPU2interruptDMA7", (vMeth**)&SPU2interruptDMA7,NULL },
|
||||
{ "SPU2ReadMemAddr", (vMeth**)&SPU2ReadMemAddr, NULL },
|
||||
{ "SPU2irqCallback", (vMeth**)&SPU2irqCallback, NULL },
|
||||
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
static const LegacyApi_OptMethod s_MethMessOpt_SPU2[] =
|
||||
{
|
||||
{ "SPU2setClockPtr", (vMeth**)&SPU2setClockPtr },
|
||||
{ "SPU2async", (vMeth**)&SPU2async },
|
||||
{ "SPU2WriteMemAddr", (vMeth**)&SPU2WriteMemAddr },
|
||||
{ "SPU2setDMABaseAddr", (vMeth**)&SPU2setDMABaseAddr},
|
||||
{ "SPU2setupRecording", (vMeth**)&SPU2setupRecording},
|
||||
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// DEV9 Mess!
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -532,7 +464,6 @@ static const LegacyApi_ReqMethod* const s_MethMessReq[] =
|
||||
{
|
||||
s_MethMessReq_GS,
|
||||
s_MethMessReq_PAD,
|
||||
s_MethMessReq_SPU2,
|
||||
s_MethMessReq_USB,
|
||||
s_MethMessReq_DEV9
|
||||
};
|
||||
@@ -541,7 +472,6 @@ static const LegacyApi_OptMethod* const s_MethMessOpt[] =
|
||||
{
|
||||
s_MethMessOpt_GS,
|
||||
s_MethMessOpt_PAD,
|
||||
s_MethMessOpt_SPU2,
|
||||
s_MethMessOpt_USB,
|
||||
s_MethMessOpt_DEV9
|
||||
};
|
||||
@@ -706,9 +636,6 @@ void* StaticLibrary::GetSymbol(const wxString &name)
|
||||
#ifdef BUILTIN_PAD_PLUGIN
|
||||
RETURN_COMMON_SYMBOL(PAD);
|
||||
#endif
|
||||
#ifdef BUILTIN_SPU2_PLUGIN
|
||||
RETURN_COMMON_SYMBOL(SPU2);
|
||||
#endif
|
||||
#ifdef BUILTIN_DEV9_PLUGIN
|
||||
RETURN_COMMON_SYMBOL(DEV9);
|
||||
#endif
|
||||
@@ -770,9 +697,6 @@ SysCorePlugins::PluginStatus_t::PluginStatus_t( PluginsEnum_t _pid, const wxStri
|
||||
#ifdef BUILTIN_PAD_PLUGIN
|
||||
case PluginId_PAD:
|
||||
#endif
|
||||
#ifdef BUILTIN_SPU2_PLUGIN
|
||||
case PluginId_SPU2:
|
||||
#endif
|
||||
#ifdef BUILTIN_DEV9_PLUGIN
|
||||
case PluginId_DEV9:
|
||||
#endif
|
||||
@@ -1045,16 +969,6 @@ bool SysCorePlugins::OpenPlugin_PAD()
|
||||
return !PADopen( (void*)pDsp );
|
||||
}
|
||||
|
||||
bool SysCorePlugins::OpenPlugin_SPU2()
|
||||
{
|
||||
if( SPU2open((void*)pDsp) ) return false;
|
||||
|
||||
SPU2irqCallback( spu2Irq, spu2DMA4Irq, spu2DMA7Irq );
|
||||
if( SPU2setDMABaseAddr != NULL ) SPU2setDMABaseAddr((uptr)iopMem->Main);
|
||||
if( SPU2setClockPtr != NULL ) SPU2setClockPtr(&psxRegs.cycle);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool SysCorePlugins::OpenPlugin_DEV9()
|
||||
{
|
||||
dev9Handler = NULL;
|
||||
@@ -1103,7 +1017,6 @@ void SysCorePlugins::Open( PluginsEnum_t pid )
|
||||
{
|
||||
case PluginId_GS: result = OpenPlugin_GS(); break;
|
||||
case PluginId_PAD: result = OpenPlugin_PAD(); break;
|
||||
case PluginId_SPU2: result = OpenPlugin_SPU2(); break;
|
||||
case PluginId_USB: result = OpenPlugin_USB(); break;
|
||||
case PluginId_DEV9: result = OpenPlugin_DEV9(); break;
|
||||
|
||||
@@ -1177,11 +1090,6 @@ void SysCorePlugins::ClosePlugin_PAD()
|
||||
_generalclose( PluginId_PAD );
|
||||
}
|
||||
|
||||
void SysCorePlugins::ClosePlugin_SPU2()
|
||||
{
|
||||
_generalclose( PluginId_SPU2 );
|
||||
}
|
||||
|
||||
void SysCorePlugins::ClosePlugin_DEV9()
|
||||
{
|
||||
_generalclose( PluginId_DEV9 );
|
||||
@@ -1211,7 +1119,6 @@ void SysCorePlugins::Close( PluginsEnum_t pid )
|
||||
{
|
||||
case PluginId_GS: ClosePlugin_GS(); break;
|
||||
case PluginId_PAD: ClosePlugin_PAD(); break;
|
||||
case PluginId_SPU2: ClosePlugin_SPU2(); break;
|
||||
case PluginId_USB: ClosePlugin_USB(); break;
|
||||
case PluginId_DEV9: ClosePlugin_DEV9(); break;
|
||||
case PluginId_Mcd: ClosePlugin_Mcd(); break;
|
||||
|
||||
@@ -402,7 +402,6 @@ protected:
|
||||
|
||||
virtual bool OpenPlugin_GS();
|
||||
virtual bool OpenPlugin_PAD();
|
||||
virtual bool OpenPlugin_SPU2();
|
||||
virtual bool OpenPlugin_DEV9();
|
||||
virtual bool OpenPlugin_USB();
|
||||
virtual bool OpenPlugin_Mcd();
|
||||
@@ -411,7 +410,6 @@ protected:
|
||||
|
||||
virtual void ClosePlugin_GS();
|
||||
virtual void ClosePlugin_PAD();
|
||||
virtual void ClosePlugin_SPU2();
|
||||
virtual void ClosePlugin_DEV9();
|
||||
virtual void ClosePlugin_USB();
|
||||
virtual void ClosePlugin_Mcd();
|
||||
|
||||
@@ -291,6 +291,7 @@ void SysCoreThread::OnSuspendInThread()
|
||||
GetCorePlugins().Close();
|
||||
DoCDVDclose();
|
||||
FWclose();
|
||||
SPU2close();
|
||||
}
|
||||
|
||||
void SysCoreThread::OnResumeInThread( bool isSuspended )
|
||||
@@ -299,6 +300,7 @@ void SysCoreThread::OnResumeInThread( bool isSuspended )
|
||||
if (isSuspended || !g_GameStarted)
|
||||
DoCDVDopen();
|
||||
FWopen();
|
||||
SPU2open();
|
||||
}
|
||||
|
||||
|
||||
@@ -315,6 +317,7 @@ void SysCoreThread::OnCleanupInThread()
|
||||
vu1Thread.WaitVU();
|
||||
DoCDVDclose();
|
||||
FWclose();
|
||||
SPU2close();
|
||||
GetCorePlugins().Close();
|
||||
GetCorePlugins().Shutdown();
|
||||
|
||||
|
||||
@@ -431,7 +431,6 @@ void MainEmuFrame::CreateConfigMenu()
|
||||
m_menuConfig.AppendSeparator();
|
||||
|
||||
m_menuConfig.Append(MenuId_Config_GS, _("&Video (GS)"), m_PluginMenuPacks[PluginId_GS]);
|
||||
m_menuConfig.Append(MenuId_Config_SPU2, _("&Audio (SPU2)"), m_PluginMenuPacks[PluginId_SPU2]);
|
||||
m_menuConfig.Append(MenuId_Config_PAD, _("&Controllers (PAD)"),m_PluginMenuPacks[PluginId_PAD]);
|
||||
m_menuConfig.Append(MenuId_Config_DEV9, _("&Dev9"), m_PluginMenuPacks[PluginId_DEV9]);
|
||||
m_menuConfig.Append(MenuId_Config_USB, _("&USB"), m_PluginMenuPacks[PluginId_USB]);
|
||||
|
||||
@@ -263,7 +263,6 @@ static const std::unique_ptr<BaseSavestateEntry> SavestateEntries[] = {
|
||||
|
||||
std::unique_ptr<BaseSavestateEntry>(new PluginSavestateEntry( PluginId_GS )),
|
||||
std::unique_ptr<BaseSavestateEntry>(new PluginSavestateEntry( PluginId_PAD )),
|
||||
std::unique_ptr<BaseSavestateEntry>(new PluginSavestateEntry( PluginId_SPU2 )),
|
||||
std::unique_ptr<BaseSavestateEntry>(new PluginSavestateEntry( PluginId_USB )),
|
||||
std::unique_ptr<BaseSavestateEntry>(new PluginSavestateEntry( PluginId_DEV9 ))
|
||||
};
|
||||
|
||||
@@ -38,14 +38,6 @@ if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/PadNull" AND PadNull)
|
||||
add_subdirectory(PadNull)
|
||||
endif()
|
||||
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/SPU2null" AND SPU2null)
|
||||
add_subdirectory(SPU2null)
|
||||
endif()
|
||||
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/spu2-x" AND spu2-x)
|
||||
add_subdirectory(spu2-x/src)
|
||||
endif()
|
||||
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/plugins/USBnull" AND USBnull)
|
||||
add_subdirectory(USBnull)
|
||||
endif()
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
# Check that people use the good file
|
||||
if(NOT TOP_CMAKE_WAS_SOURCED)
|
||||
message(FATAL_ERROR "
|
||||
You did not 'cmake' the good CMakeLists.txt file. Use the one in the top dir.
|
||||
It is advice to delete all wrongly generated cmake stuff => CMakeFiles & CMakeCache.txt")
|
||||
endif()
|
||||
|
||||
|
||||
# plugin name
|
||||
set(Output SPU2null)
|
||||
|
||||
set(SPU2nullFinalFlags
|
||||
-fvisibility=hidden
|
||||
-Wall
|
||||
-Wno-parentheses
|
||||
)
|
||||
|
||||
# SPU2null sources
|
||||
set(SPU2nullSources
|
||||
SPU2.cpp)
|
||||
|
||||
# SPU2null headers
|
||||
set(SPU2nullHeaders
|
||||
SPU2.h)
|
||||
|
||||
# SPU2null Linux sources
|
||||
set(SPU2nullLinuxSources
|
||||
Linux/Config.cpp)
|
||||
|
||||
# SPU2null Linux headers
|
||||
set(SPU2nullLinuxHeaders
|
||||
Linux/Config.h)
|
||||
|
||||
# SPU2null Windows sources
|
||||
set(SPU2nullWindowsSources
|
||||
Windows/Config.cpp
|
||||
Windows/SPU2null.def
|
||||
Windows/SPU2null.rc
|
||||
Windows/Win32.cpp)
|
||||
|
||||
# SPU2null Windows headers
|
||||
set(SPU2nullWindowsHeaders
|
||||
Windows/resource.h)
|
||||
|
||||
set(SPU2nullFinalSources
|
||||
${SPU2nullSources}
|
||||
${SPU2nullHeaders}
|
||||
${SPU2nullLinuxSources}
|
||||
${SPU2nullLinuxHeaders}
|
||||
)
|
||||
|
||||
set(SPU2nullFinalLibs
|
||||
${GTK2_LIBRARIES}
|
||||
)
|
||||
|
||||
add_pcsx2_plugin(${Output} "${SPU2nullFinalSources}" "${SPU2nullFinalLibs}" "${SPU2nullFinalFlags}")
|
||||
target_compile_features(${Output} PRIVATE cxx_std_17)
|
||||
@@ -1,30 +0,0 @@
|
||||
[ Legend: ]
|
||||
[ + Added feature ]
|
||||
[ * Improved/changed feature ]
|
||||
[ - Bug fixed (we hope) ]
|
||||
[ ! Attention (Notes) ]
|
||||
|
||||
ChangeLog:
|
||||
|
||||
v0.5
|
||||
[+] Added Seperate IRQ Callbacks with AutoDMA check (refraction)
|
||||
[-] Updated Specs to 0.9 (refraction)
|
||||
|
||||
v0.4
|
||||
[+] added vsnet2005beta1 project files. 64bit dll should work fine now (not tested!!)
|
||||
|
||||
v0.2
|
||||
|
||||
15/06/03
|
||||
[*] clear some stuff,made code more readable (shadow)
|
||||
|
||||
|
||||
9/06/03
|
||||
[+] Added some work on CoRE1_ATTR to get bios work (linuzappz)
|
||||
|
||||
9/06/03
|
||||
|
||||
[+] Added new SPU2 functions to PS2Edefs.h 0.3.2 version
|
||||
[+] Added loggin system . IT can be enable in SPU2.H
|
||||
[*] Update Ps2edefs to 0.3.1 (shadow)
|
||||
|
||||
@@ -1,342 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
/* SPU2null
|
||||
* Copyright (C) 2002-2005 SPU2null Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include "Config.h"
|
||||
#include "SPU2.h"
|
||||
#include "null/config.inl"
|
||||
using namespace std;
|
||||
|
||||
extern string s_strIniPath;
|
||||
PluginConf Ini;
|
||||
|
||||
EXPORT_C_(void)
|
||||
SPU2configure()
|
||||
{
|
||||
LoadConfig();
|
||||
ConfigureLogging();
|
||||
SaveConfig();
|
||||
}
|
||||
|
||||
EXPORT_C_(void)
|
||||
SPU2about()
|
||||
{
|
||||
//SysMessage("%s %d.%d", libraryName, version, build);
|
||||
SysMessage("SPU2null: A simple null plugin.");
|
||||
}
|
||||
|
||||
void LoadConfig()
|
||||
{
|
||||
const std::string iniFile(s_strIniPath + "/Spu2null.ini");
|
||||
|
||||
if (!Ini.Open(iniFile, READ_FILE)) {
|
||||
g_plugin_log.WriteLn("failed to open %s", iniFile.c_str());
|
||||
SaveConfig(); //save and return
|
||||
return;
|
||||
}
|
||||
|
||||
conf.Log = Ini.ReadInt("logging", 0);
|
||||
Ini.Close();
|
||||
}
|
||||
|
||||
void SaveConfig()
|
||||
{
|
||||
const std::string iniFile(s_strIniPath + "/Spu2null.ini");
|
||||
|
||||
if (!Ini.Open(iniFile, WRITE_FILE)) {
|
||||
g_plugin_log.WriteLn("failed to open %s", iniFile.c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
Ini.WriteInt("logging", conf.Log);
|
||||
Ini.Close();
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
/* SPU2null
|
||||
* Copyright (C) 2002-2010 SPU2null Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string>
|
||||
using namespace std;
|
||||
|
||||
extern void SaveConf();
|
||||
extern void LoadConf();
|
||||
extern string s_strIniPath;
|
||||
@@ -1,39 +0,0 @@
|
||||
SPU2null v0.4
|
||||
-------------
|
||||
|
||||
This is an extension to use with play station2 emulators
|
||||
as PCSX2 (only one right now).
|
||||
The plugin is free open source code.
|
||||
|
||||
Usage:
|
||||
-----
|
||||
Place the file "SPU2null.dll" (Windows) or "libSPU2null.so" (Linux)
|
||||
at the Plugins directory of the Emulator to use it.
|
||||
|
||||
Changes:
|
||||
-------
|
||||
v0.5
|
||||
* added debug logging dialog + about dialog
|
||||
* linuz did some reg fixes
|
||||
* Added DEVC++ (4.9.9.2) project files for compiling with mingw32
|
||||
v0.4
|
||||
* added vsnet2005beta1 project files. 64bit dll should work fine now (not tested!)
|
||||
* Fixed one more bug in regs stuff
|
||||
|
||||
v0.21
|
||||
* more work on regs
|
||||
|
||||
v0.2:
|
||||
* New functions & regs
|
||||
|
||||
v0.1:
|
||||
* First Release
|
||||
* Tested with Pcsx2
|
||||
|
||||
Authors:
|
||||
-------
|
||||
|
||||
linuzappz <linuzappz@hotmail.com>
|
||||
shadow <shadowpcsx2@yahoo.gr>
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,294 +0,0 @@
|
||||
/* SPU2null
|
||||
* Copyright (C) 2002-2005 SPU2null Team
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef __SPU2_H__
|
||||
#define __SPU2_H__
|
||||
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
extern "C" {
|
||||
#define SPU2defs
|
||||
#include "PS2Edefs.h"
|
||||
}
|
||||
#include "PS2Eext.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <windows.h>
|
||||
#include <windowsx.h>
|
||||
#endif
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define EXPORT_C_(type) extern "C" __declspec(dllexport) type CALLBACK
|
||||
#else
|
||||
#define EXPORT_C_(type) extern "C" __attribute__((stdcall, externally_visible, visibility("default"))) type
|
||||
#endif
|
||||
|
||||
extern FILE *spu2Log;
|
||||
#define SPU2_LOG __Log //debug mode
|
||||
|
||||
extern const u8 version;
|
||||
extern const u8 revision;
|
||||
extern const u8 build;
|
||||
extern const u32 minor;
|
||||
extern const char *libraryName;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
s32 Log;
|
||||
} Config;
|
||||
|
||||
extern Config conf;
|
||||
|
||||
void __Log(const char *fmt, ...);
|
||||
void SaveConfig();
|
||||
void LoadConfig();
|
||||
void SysMessage(char *fmt, ...);
|
||||
|
||||
////////////////////
|
||||
// SPU2 Registers //
|
||||
////////////////////
|
||||
#define REG_VP_VOLL 0x0000
|
||||
#define REG_VP_VOLR 0x0002
|
||||
#define REG_VP_PITCH 0x0004
|
||||
#define REG_VP_ADSR1 0x0006
|
||||
#define REG_VP_ADSR2 0x0008
|
||||
#define REG_VP_ENVX 0x000A
|
||||
#define REG_VP_VOLXL 0x000C
|
||||
#define REG_VP_VOLXR 0x000E
|
||||
#define REG_C0_FMOD1 0x0180
|
||||
#define REG_C0_FMOD2 0x0182
|
||||
#define REG_C1_FMOD1 0x0580
|
||||
#define REG_C1_FMOD2 0x0582
|
||||
#define REG_S_NON 0x0184
|
||||
#define REG_S_VMIXL 0x0188
|
||||
#define REG_S_VMIXEL 0x018C
|
||||
#define REG_S_VMIXR 0x0190
|
||||
#define REG_S_VMIXER 0x0194
|
||||
#define REG_C0_MMIX 0x0198
|
||||
#define REG_C1_MMIX 0x0598
|
||||
#define REG_C0_CTRL 0x019A
|
||||
#define REG_C0_IRQA_HI 0x019C
|
||||
#define REG_C0_IRQA_LO 0x019D
|
||||
#define REG_C1_IRQA_HI 0x059C
|
||||
#define REG_C1_IRQA_LO 0x059D
|
||||
#define REG_C0_SPUON1 0x1A0
|
||||
#define REG_C0_SPUON2 0x1A2
|
||||
#define REG_C1_SPUON1 0x5A0
|
||||
#define REG_C1_SPUON2 0x5A2
|
||||
#define REG_C0_SPUOFF1 0x1A4
|
||||
#define REG_C0_SPUOFF2 0x1A6
|
||||
#define REG_C1_SPUOFF1 0x5A4
|
||||
#define REG_C1_SPUOFF2 0x5A6
|
||||
#define REG_C0_SPUADDR_HI 0x01A8
|
||||
#define REG_C0_SPUADDR_LO 0x01AA
|
||||
#define REG_C1_SPUADDR_HI 0x05A8
|
||||
#define REG_C1_SPUADDR_LO 0x05AA
|
||||
#define REG_C0_SPUDATA 0x01AC
|
||||
#define REG_C1_SPUDATA 0x05AC
|
||||
#define REG_C0_DMACTRL 0x01AE
|
||||
#define REG_C1_DMACTRL 0x05AE
|
||||
#define REG_C0_ADMAS 0x01B0
|
||||
#define REG_VA_SSA 0x01C0
|
||||
#define REG_VA_LSAX 0x01C4
|
||||
#define REG_VA_NAX 0x01C8
|
||||
#define REG_A_ESA 0x02E0
|
||||
#define REG_A_EEA 0x033C
|
||||
#define REG_C0_END1 0x0340
|
||||
#define REG_C0_END2 0x0342
|
||||
#define REG_C1_END1 0x0740
|
||||
#define REG_C1_END2 0x0742
|
||||
#define REG_C0_SPUSTAT 0x0344 //not sure!
|
||||
#define REG_C1_CTRL 0x059A
|
||||
#define REG_C1_ADMAS 0x05B0
|
||||
#define REG_C1_SPUSTAT 0x0744 //not sure!
|
||||
#define REG_P_MVOLL 0x0760
|
||||
#define REG_P_MVOLR 0x0762
|
||||
#define REG_P_EVOLL 0x0764
|
||||
#define REG_P_EVOLR 0x0766
|
||||
#define REG_P_AVOLL 0x0768
|
||||
#define REG_P_AVOLR 0x076A
|
||||
#define REG_P_BVOLL 0x076C
|
||||
#define REG_P_BVOLR 0x076E
|
||||
#define REG_P_MVOLXL 0x0770
|
||||
#define REG_P_MVOLXR 0x0772
|
||||
#define SPDIF_OUT 0x07C0
|
||||
#define REG_IRQINFO 0x07C2
|
||||
#define SPDIF_MODE 0x07C6
|
||||
#define SPDIF_MEDIA 0x07C8
|
||||
|
||||
#define spu2Rs16(mem) (*(s16 *)&spu2regs[(mem)&0xffff])
|
||||
#define spu2Ru16(mem) (*(u16 *)&spu2regs[(mem)&0xffff])
|
||||
//#define spu2Rs32(mem) (*(s32*)&spu2regs[(mem) & 0xffff])
|
||||
//#define spu2Ru32(mem) (*(u32*)&spu2regs[(mem) & 0xffff])
|
||||
|
||||
#define IRQINFO spu2Ru16(REG_IRQINFO)
|
||||
|
||||
#define SPU2_GET32BIT(lo, hi) (((u32)(spu2Ru16(hi) & 0x3f) << 16) | (u32)spu2Ru16(lo))
|
||||
#define SPU2_SET32BIT(value, lo, hi) \
|
||||
{ \
|
||||
spu2Ru16(hi) = ((value) >> 16) & 0x3f; \
|
||||
spu2Ru16(lo) = (value)&0xffff; \
|
||||
}
|
||||
|
||||
#define C0_IRQA SPU2_GET32BIT(REG_C0_IRQA_LO, REG_C0_IRQA_HI)
|
||||
#define C1_IRQA SPU2_GET32BIT(REG_C1_IRQA_LO, REG_C1_IRQA_HI)
|
||||
|
||||
#define C0_SPUADDR SPU2_GET32BIT(REG_C0_SPUADDR_LO, REG_C0_SPUADDR_HI)
|
||||
#define C1_SPUADDR SPU2_GET32BIT(REG_C1_SPUADDR_LO, REG_C1_SPUADDR_HI)
|
||||
|
||||
#define C0_SPUADDR_SET(value) SPU2_SET32BIT(value, REG_C0_IRQA_LO, REG_C0_IRQA_HI)
|
||||
#define C1_SPUADDR_SET(value) SPU2_SET32BIT(value, REG_C1_IRQA_LO, REG_C1_IRQA_HI)
|
||||
|
||||
#define SPU_NUMBER_VOICES 48
|
||||
|
||||
struct SPU_CONTROL_
|
||||
{
|
||||
u16 spuon : 1;
|
||||
u16 spuUnmute : 1;
|
||||
u16 noiseFreq : 6;
|
||||
u16 reverb : 1;
|
||||
u16 irq : 1;
|
||||
u16 dma : 2; // 1 - no dma, 2 - write, 3 - read
|
||||
u16 extr : 1; // external reverb
|
||||
u16 cdreverb : 1;
|
||||
u16 extAudio : 1;
|
||||
u16 extCd : 1;
|
||||
};
|
||||
|
||||
// the layout of each voice in wSpuRegs
|
||||
struct _SPU_VOICE
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
u16 Vol : 14;
|
||||
u16 Inverted : 1;
|
||||
u16 Sweep0 : 1;
|
||||
} vol;
|
||||
struct
|
||||
{
|
||||
u16 Vol : 7;
|
||||
u16 res1 : 5;
|
||||
u16 Inverted : 1;
|
||||
u16 Decrease : 1; // if 0, increase
|
||||
u16 ExpSlope : 1; // if 0, linear slope
|
||||
u16 Sweep1 : 1; // always one
|
||||
} sweep;
|
||||
u16 word;
|
||||
} left, right;
|
||||
|
||||
u16 pitch : 14; // 1000 - no pitch, 2000 - pitch + 1, etc
|
||||
u16 res0 : 2;
|
||||
|
||||
u16 SustainLvl : 4;
|
||||
u16 DecayRate : 4;
|
||||
u16 AttackRate : 7;
|
||||
u16 AttackExp : 1; // if 0, linear
|
||||
|
||||
u16 ReleaseRate : 5;
|
||||
u16 ReleaseExp : 1; // if 0, linear
|
||||
u16 SustainRate : 7;
|
||||
u16 res1 : 1;
|
||||
u16 SustainDec : 1; // if 0, inc
|
||||
u16 SustainExp : 1; // if 0, linear
|
||||
|
||||
u16 AdsrVol;
|
||||
u16 Address; // add / 8
|
||||
u16 RepeatAddr; // gets reset when sample starts
|
||||
};
|
||||
|
||||
// ADSR INFOS PER CHANNEL
|
||||
struct ADSRInfoEx
|
||||
{
|
||||
s32 State;
|
||||
s32 AttackModeExp;
|
||||
s32 AttackRate;
|
||||
s32 DecayRate;
|
||||
s32 SustainLevel;
|
||||
s32 SustainModeExp;
|
||||
s32 SustainIncrease;
|
||||
s32 SustainRate;
|
||||
s32 ReleaseModeExp;
|
||||
s32 ReleaseRate;
|
||||
s32 EnvelopeVol;
|
||||
s32 lVolume;
|
||||
};
|
||||
|
||||
#define NSSIZE 48 // ~ 1 ms of data
|
||||
#define NSFRAMES 16 // gather at least NSFRAMES of NSSIZE before submitting
|
||||
#define NSPACKETS 4
|
||||
#define SPU_VOICE_STATE_SIZE (sizeof(VOICE_PROCESSED) - 4 * sizeof(void *))
|
||||
|
||||
struct VOICE_PROCESSED
|
||||
{
|
||||
VOICE_PROCESSED()
|
||||
{
|
||||
memset(this, 0, sizeof(VOICE_PROCESSED));
|
||||
}
|
||||
~VOICE_PROCESSED()
|
||||
{
|
||||
}
|
||||
|
||||
void SetVolume(int right);
|
||||
void StartSound();
|
||||
void VoiceChangeFrequency();
|
||||
void FModChangeFrequency(int ns);
|
||||
void Stop();
|
||||
|
||||
SPU_CONTROL_ *GetCtrl();
|
||||
|
||||
// start save state
|
||||
|
||||
s32 iSBPos; // mixing stuff
|
||||
s32 spos;
|
||||
s32 sinc;
|
||||
|
||||
s32 iActFreq; // current psx pitch
|
||||
s32 iUsedFreq; // current pc pitch
|
||||
|
||||
s32 iStartAddr, iLoopAddr, iNextAddr;
|
||||
|
||||
ADSRInfoEx ADSRX; // next ADSR settings (will be moved to active on sample start)
|
||||
bool bIgnoreLoop, bNew, bNoise, bReverb, bOn, bStop, bVolChanged;
|
||||
s32 memoffset; // if first core, 0, if second, 0x400
|
||||
|
||||
// end save state
|
||||
|
||||
///////////////////
|
||||
// Sound Buffers //
|
||||
///////////////////
|
||||
u8 *pStart; // start and end addresses
|
||||
u8 *pLoop, *pCurr;
|
||||
|
||||
_SPU_VOICE *pvoice;
|
||||
};
|
||||
|
||||
struct ADMA
|
||||
{
|
||||
u16 *MemAddr;
|
||||
s32 IntPointer;
|
||||
s32 Index;
|
||||
s32 AmountLeft;
|
||||
s32 Enabled;
|
||||
};
|
||||
|
||||
#endif /* __SPU2_H__ */
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user