Merge pull request #953 from ssakash/SPU2-X_debug

SPU2-X: New INI variable for cycle delay
-Configurable for Higurashi no Naku Koro ni Matsuri Kakera Asobi (SPLM-66913)
This commit is contained in:
refractionpcsx2 2015-11-07 16:54:54 +00:00
commit 8ed56bd971
4 changed files with 9 additions and 2 deletions

View File

@ -63,6 +63,7 @@ float VolumeAdjustBR;
float VolumeAdjustSL; float VolumeAdjustSL;
float VolumeAdjustSR; float VolumeAdjustSR;
float VolumeAdjustLFE; float VolumeAdjustLFE;
int delayCycles;
bool postprocess_filter_enabled = true; bool postprocess_filter_enabled = true;
bool postprocess_filter_dealias = false; bool postprocess_filter_dealias = false;
@ -112,6 +113,7 @@ void ReadSettings()
VolumeAdjustSL = powf(10, VolumeAdjustSLdb / 10); VolumeAdjustSL = powf(10, VolumeAdjustSLdb / 10);
VolumeAdjustSR = powf(10, VolumeAdjustSRdb / 10); VolumeAdjustSR = powf(10, VolumeAdjustSRdb / 10);
VolumeAdjustLFE = powf(10, VolumeAdjustLFEdb / 10); VolumeAdjustLFE = powf(10, VolumeAdjustLFEdb / 10);
delayCycles = CfgReadInt(L"DEBUG", L"DelayCycles", 4);
wxString temp; wxString temp;
@ -180,6 +182,7 @@ void WriteSettings()
CfgWriteStr(L"OUTPUT",L"Output_Module", mods[OutputModule]->GetIdent() ); CfgWriteStr(L"OUTPUT",L"Output_Module", mods[OutputModule]->GetIdent() );
CfgWriteInt(L"OUTPUT",L"Latency", SndOutLatencyMS); CfgWriteInt(L"OUTPUT",L"Latency", SndOutLatencyMS);
CfgWriteInt(L"OUTPUT",L"Synch_Mode", SynchMode); CfgWriteInt(L"OUTPUT",L"Synch_Mode", SynchMode);
CfgWriteInt(L"DEBUG", L"DelayCycles", delayCycles);
PortaudioOut->WriteSettings(); PortaudioOut->WriteSettings();
SDLOut->WriteSettings(); SDLOut->WriteSettings();

View File

@ -45,6 +45,7 @@ extern float VolumeAdjustBR;
extern float VolumeAdjustSL; extern float VolumeAdjustSL;
extern float VolumeAdjustSR; extern float VolumeAdjustSR;
extern float VolumeAdjustLFE; extern float VolumeAdjustLFE;
extern int delayCycles;
struct Stereo51Out16DplII; struct Stereo51Out16DplII;
struct Stereo51Out32DplII; struct Stereo51Out32DplII;

View File

@ -58,6 +58,7 @@ float VolumeAdjustBR;
float VolumeAdjustSL; float VolumeAdjustSL;
float VolumeAdjustSR; float VolumeAdjustSR;
float VolumeAdjustLFE; float VolumeAdjustLFE;
int delayCycles;
bool postprocess_filter_enabled = 1; bool postprocess_filter_enabled = 1;
bool postprocess_filter_dealias = false; bool postprocess_filter_dealias = false;
@ -114,6 +115,7 @@ void ReadSettings()
VolumeAdjustSLdb = CfgReadFloat(L"MIXING", L"VolumeAdjustSL(dB)", 0); VolumeAdjustSLdb = CfgReadFloat(L"MIXING", L"VolumeAdjustSL(dB)", 0);
VolumeAdjustSRdb = CfgReadFloat(L"MIXING", L"VolumeAdjustSR(dB)", 0); VolumeAdjustSRdb = CfgReadFloat(L"MIXING", L"VolumeAdjustSR(dB)", 0);
VolumeAdjustLFEdb = CfgReadFloat(L"MIXING", L"VolumeAdjustLFE(dB)", 0); VolumeAdjustLFEdb = CfgReadFloat(L"MIXING", L"VolumeAdjustLFE(dB)", 0);
delayCycles = CfgReadInt(L"DEBUG", L"DelayCycles", 4);
VolumeAdjustC = powf(10, VolumeAdjustCdb / 10); VolumeAdjustC = powf(10, VolumeAdjustCdb / 10);
VolumeAdjustFL = powf(10, VolumeAdjustFLdb / 10); VolumeAdjustFL = powf(10, VolumeAdjustFLdb / 10);
VolumeAdjustFR = powf(10, VolumeAdjustFRdb / 10); VolumeAdjustFR = powf(10, VolumeAdjustFRdb / 10);
@ -198,6 +200,7 @@ void WriteSettings()
CfgWriteInt(L"OUTPUT",L"Synch_Mode", SynchMode); CfgWriteInt(L"OUTPUT",L"Synch_Mode", SynchMode);
CfgWriteInt(L"OUTPUT",L"SpeakerConfiguration", numSpeakers); CfgWriteInt(L"OUTPUT",L"SpeakerConfiguration", numSpeakers);
CfgWriteInt( L"OUTPUT", L"DplDecodingLevel", dplLevel); CfgWriteInt( L"OUTPUT", L"DplDecodingLevel", dplLevel);
CfgWriteInt(L"DEBUG", L"DelayCycles", delayCycles);
if( Config_WaveOut.Device.empty() ) Config_WaveOut.Device = L"default"; if( Config_WaveOut.Device.empty() ) Config_WaveOut.Device = L"default";
CfgWriteStr(L"WAVEOUT",L"Device",Config_WaveOut.Device); CfgWriteStr(L"WAVEOUT",L"Device",Config_WaveOut.Device);

View File

@ -306,7 +306,7 @@ void V_Core::UpdateEffectsBufferSize()
void V_Voice::QueueStart() void V_Voice::QueueStart()
{ {
if (Cycles - PlayCycle < 4) if (Cycles - PlayCycle < delayCycles)
{ {
// Required by The Legend of Spyro: The Eternal Night (probably the other two legend games too) // Required by The Legend of Spyro: The Eternal Night (probably the other two legend games too)
ConLog(" *** KeyOn after less than 4 T disregarded.\n"); ConLog(" *** KeyOn after less than 4 T disregarded.\n");
@ -317,7 +317,7 @@ void V_Voice::QueueStart()
bool V_Voice::Start() bool V_Voice::Start()
{ {
if((Cycles-PlayCycle)>=4) if((Cycles-PlayCycle)>= delayCycles)
{ {
if(StartA&7) if(StartA&7)
{ {