SPU2: Clean up + add Gaussian value in comment

This commit is contained in:
RedDevilus 2021-04-15 19:32:21 +02:00 committed by lightningterror
parent be2bf9faca
commit 2195ac9051
9 changed files with 89 additions and 84 deletions

View File

@ -1,5 +1,5 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2020 PCSX2 Dev Team * Copyright (C) 2002-2021 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
@ -31,17 +31,18 @@ int AutoDMAPlayRate[2] = {0, 0};
// MIXING // MIXING
int Interpolation = 5; int Interpolation = 5;
/* values: /* values:
0: no interpolation (use nearest) 0: No interpolation (uses nearest)
1. linear interpolation 1. Linear interpolation
2. cubic interpolation 2. Cubic interpolation
3. hermite interpolation 3. Hermite interpolation
4. catmull-rom interpolation 4. Catmull-Rom interpolation
5. Gaussian interpolation
*/ */
bool EffectsDisabled = false; bool EffectsDisabled = false;
float FinalVolume; // global float FinalVolume; // global
bool AdvancedVolumeControl; bool AdvancedVolumeControl;
float VolumeAdjustFLdb; // decibels settings, cos audiophiles love that float VolumeAdjustFLdb; // Decibels settings, because audiophiles love that.
float VolumeAdjustCdb; float VolumeAdjustCdb;
float VolumeAdjustFRdb; float VolumeAdjustFRdb;
float VolumeAdjustBLdb; float VolumeAdjustBLdb;
@ -49,7 +50,7 @@ float VolumeAdjustBRdb;
float VolumeAdjustSLdb; float VolumeAdjustSLdb;
float VolumeAdjustSRdb; float VolumeAdjustSRdb;
float VolumeAdjustLFEdb; float VolumeAdjustLFEdb;
float VolumeAdjustFL; // linear coefs calculated from decibels, float VolumeAdjustFL; // Linear coefficients calculated from decibels,
float VolumeAdjustC; float VolumeAdjustC;
float VolumeAdjustFR; float VolumeAdjustFR;
float VolumeAdjustBL; float VolumeAdjustBL;
@ -60,12 +61,12 @@ float VolumeAdjustLFE;
bool postprocess_filter_enabled = true; bool postprocess_filter_enabled = true;
bool postprocess_filter_dealias = false; bool postprocess_filter_dealias = false;
bool _visual_debug_enabled = false; // windows only feature bool _visual_debug_enabled = false; // Windows-only feature
// OUTPUT // OUTPUT
u32 OutputModule = 0; u32 OutputModule = 0;
int SndOutLatencyMS = 100; int SndOutLatencyMS = 100;
int SynchMode = 0; // Time Stretch, Async or Disabled int SynchMode = 0; // Time Stretch, Async or Disabled.
#ifdef SPU2X_PORTAUDIO #ifdef SPU2X_PORTAUDIO
u32 OutputAPI = 0; u32 OutputAPI = 0;
#endif #endif
@ -80,7 +81,7 @@ bool temp_debug_state;
void ReadSettings() void ReadSettings()
{ {
// For some reason this can be called before we know what ini file we're writing to. // For some reason this can be called before we know what ini file we're writing to.
// Lets not try to read it if that happens. // Let's not try to read it if that happens.
if (!pathSet) if (!pathSet)
initIni(); initIni();
@ -116,9 +117,9 @@ void ReadSettings()
#else #else
CfgReadStr(L"OUTPUT", L"Output_Module", temp, PortaudioOut->GetIdent()); CfgReadStr(L"OUTPUT", L"Output_Module", temp, PortaudioOut->GetIdent());
#endif #endif
OutputModule = FindOutputModuleById(temp.c_str()); // find the driver index of this module OutputModule = FindOutputModuleById(temp.c_str()); // Find the driver index of this module...
// find current API // Find current API.
#ifdef SPU2X_PORTAUDIO #ifdef SPU2X_PORTAUDIO
#ifdef __linux__ #ifdef __linux__
CfgReadStr(L"PORTAUDIO", L"HostApi", temp, L"ALSA"); CfgReadStr(L"PORTAUDIO", L"HostApi", temp, L"ALSA");
@ -138,7 +139,7 @@ void ReadSettings()
CfgReadStr(L"SDL", L"HostApi", temp, L"pulseaudio"); CfgReadStr(L"SDL", L"HostApi", temp, L"pulseaudio");
SdlOutputAPI = 0; SdlOutputAPI = 0;
#if SDL_MAJOR_VERSION >= 2 #if SDL_MAJOR_VERSION >= 2
// YES It sucks ... // Yes, it sucks ...
for (int i = 0; i < SDL_GetNumAudioDrivers(); ++i) for (int i = 0; i < SDL_GetNumAudioDrivers(); ++i)
{ {
if (!temp.Cmp(wxString(SDL_GetAudioDriver(i), wxConvUTF8))) if (!temp.Cmp(wxString(SDL_GetAudioDriver(i), wxConvUTF8)))

View File

@ -1,5 +1,5 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2020 PCSX2 Dev Team * Copyright (C) 2002-2021 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
@ -158,7 +158,7 @@ static __forceinline s32 GetNextDataBuffered(V_Core& thiscore, uint voiceidx)
{ {
if (vc.PendingLoopStart) if (vc.PendingLoopStart)
{ {
if ((Cycles - vc.PlayCycle) >= 4 ) if ((Cycles - vc.PlayCycle) >= 4)
{ {
if (vc.LoopCycle < vc.PlayCycle) if (vc.LoopCycle < vc.PlayCycle)
{ {
@ -364,10 +364,10 @@ static __forceinline void CalculateADSR(V_Core& thiscore, uint voiceidx)
__forceinline static s32 GaussianInterpolate(s32 pv4, s32 pv3, s32 pv2, s32 pv1, s32 i) __forceinline static s32 GaussianInterpolate(s32 pv4, s32 pv3, s32 pv2, s32 pv1, s32 i)
{ {
s32 out = 0; s32 out = 0;
out = (interpTable[0x0FF-i] * pv4) >> 15; out = (interpTable[0x0FF - i] * pv4) >> 15;
out += (interpTable[0x1FF-i] * pv3) >> 15; out += (interpTable[0x1FF - i] * pv3) >> 15;
out += (interpTable[0x100+i] * pv2) >> 15; out += (interpTable[0x100 + i] * pv2) >> 15;
out += (interpTable[0x000+i] * pv1) >> 15; out += (interpTable[0x000 + i] * pv1) >> 15;
return out; return out;
} }
@ -937,7 +937,7 @@ __forceinline
SndBuffer::Write(Out); SndBuffer::Write(Out);
if(SampleRate == 96000) // Double up samples for 96khz (Port Audio Non-Exclusive) if (SampleRate == 96000) // Double up samples for 96khz (Port Audio Non-Exclusive)
SndBuffer::Write(Out); SndBuffer::Write(Out);
// Update AutoDMA output positioning // Update AutoDMA output positioning

View File

@ -1,5 +1,5 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2020 PCSX2 Dev Team * Copyright (C) 2002-2021 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
@ -324,7 +324,7 @@ public:
} }
if (err != paNoError) if (err != paNoError)
{ {
if(err == paInvalidSampleRate) if (err == paInvalidSampleRate)
Console.Warning("Failed to create Port Audio Device %dkhz, Please use Exclusive Mode", SampleRate / 1000); Console.Warning("Failed to create Port Audio Device %dkhz, Please use Exclusive Mode", SampleRate / 1000);
fprintf(stderr, "* SPU2: PortAudio error: %s\n", Pa_GetErrorText(err)); fprintf(stderr, "* SPU2: PortAudio error: %s\n", Pa_GetErrorText(err));
Pa_Terminate(); Pa_Terminate();

View File

@ -1,5 +1,5 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2020 PCSX2 Dev Team * Copyright (C) 2002-2021 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
@ -50,7 +50,7 @@ namespace
void callback_fillBuffer(void* userdata, Uint8* stream, int len) void callback_fillBuffer(void* userdata, Uint8* stream, int len)
{ {
StereoOut16 *out = (StereoOut16 *)stream; StereoOut16* out = (StereoOut16*)stream;
// Length should always be samples in bytes. // Length should always be samples in bytes.
assert(len / sizeof(StereoOut_SDL) == samples); assert(len / sizeof(StereoOut_SDL) == samples);

View File

@ -1,5 +1,5 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2020 PCSX2 Dev Team * Copyright (C) 2002-2021 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
@ -31,18 +31,19 @@ static const int LATENCY_MIN_TS = 15;
// MIXING // MIXING
int Interpolation = 5; int Interpolation = 5;
/* values: /* values:
0: no interpolation (use nearest) 0: No interpolation (uses nearest)
1. linear interpolation 1. Linear interpolation
2. cubic interpolation 2. Cubic interpolation
3. hermite interpolation 3. Hermite interpolation
4. catmull-rom interpolation 4. Catmull-Rom interpolation
5. Gaussian interpolation
*/ */
bool EffectsDisabled = false; bool EffectsDisabled = false;
float FinalVolume; // Global float FinalVolume; // Global
bool AdvancedVolumeControl; bool AdvancedVolumeControl;
float VolumeAdjustFLdb; // decibels settings, cos audiophiles love that float VolumeAdjustFLdb; // Decibels settings, because audiophiles love that.
float VolumeAdjustCdb; float VolumeAdjustCdb;
float VolumeAdjustFRdb; float VolumeAdjustFRdb;
float VolumeAdjustBLdb; float VolumeAdjustBLdb;
@ -50,7 +51,7 @@ float VolumeAdjustBRdb;
float VolumeAdjustSLdb; float VolumeAdjustSLdb;
float VolumeAdjustSRdb; float VolumeAdjustSRdb;
float VolumeAdjustLFEdb; float VolumeAdjustLFEdb;
float VolumeAdjustFL; // linear coefs calcualted from decibels, float VolumeAdjustFL; // Linear coefficients calculated from decibels,
float VolumeAdjustC; float VolumeAdjustC;
float VolumeAdjustFR; float VolumeAdjustFR;
float VolumeAdjustBL; float VolumeAdjustBL;
@ -64,7 +65,7 @@ bool postprocess_filter_dealias = false;
// OUTPUT // OUTPUT
int SndOutLatencyMS = 100; int SndOutLatencyMS = 100;
int SynchMode = 0; // Time Stretch, Async or Disabled int SynchMode = 0; // Time Stretch, Async or Disabled.
u32 OutputModule = 0; u32 OutputModule = 0;
@ -115,20 +116,20 @@ void ReadSettings()
dplLevel = CfgReadInt(L"OUTPUT", L"DplDecodingLevel", 0); dplLevel = CfgReadInt(L"OUTPUT", L"DplDecodingLevel", 0);
SndOutLatencyMS = CfgReadInt(L"OUTPUT", L"Latency", 100); SndOutLatencyMS = CfgReadInt(L"OUTPUT", L"Latency", 100);
if ((SynchMode == 0) && (SndOutLatencyMS < LATENCY_MIN_TS)) // can't use low-latency with timestretcher atm if ((SynchMode == 0) && (SndOutLatencyMS < LATENCY_MIN_TS)) // Can't use low-latency with timestretcher at the moment.
SndOutLatencyMS = LATENCY_MIN_TS; SndOutLatencyMS = LATENCY_MIN_TS;
else if (SndOutLatencyMS < LATENCY_MIN) else if (SndOutLatencyMS < LATENCY_MIN)
SndOutLatencyMS = LATENCY_MIN; SndOutLatencyMS = LATENCY_MIN;
wchar_t omodid[128]; wchar_t omodid[128];
// portaudio occasionally has issues selecting the proper default audio device. // Portaudio occasionally has issues selecting the proper default audio device.
// let's use xaudio2 until this is sorted (rama) // Let's use xaudio2 until this is sorted (rama).
// CfgReadStr(L"OUTPUT", L"Output_Module", omodid, 127, PortaudioOut->GetIdent()); // CfgReadStr(L"OUTPUT", L"Output_Module", omodid, 127, PortaudioOut->GetIdent());
CfgReadStr(L"OUTPUT", L"Output_Module", omodid, 127, XAudio2Out->GetIdent()); CfgReadStr(L"OUTPUT", L"Output_Module", omodid, 127, XAudio2Out->GetIdent());
// find the driver index of this module: // Find the driver index of this module:
OutputModule = FindOutputModuleById(omodid); OutputModule = FindOutputModuleById(omodid);
CfgReadStr(L"DSP PLUGIN", L"Filename", dspPlugin, 255, L""); CfgReadStr(L"DSP PLUGIN", L"Filename", dspPlugin, 255, L"");
@ -227,12 +228,12 @@ BOOL CALLBACK ConfigProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case WM_INITDIALOG: case WM_INITDIALOG:
{ {
SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_RESETCONTENT, 0, 0); SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_RESETCONTENT, 0, 0);
SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"0 - Nearest (Fastest/bad quality)"); SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"0 - Nearest (Fastest / worst quality)");
SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"1 - Linear (Simple/okay sound)"); SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"1 - Linear (Simple / okay sound)");
SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"2 - Cubic (Artificial highs)"); SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"2 - Cubic (Fake highs / okay sound)");
SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"3 - Hermite (Better highs)"); SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"3 - Hermite (Better highs / okay sound)");
SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"4 - Catmull-Rom (PS2-like/slow)"); SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"4 - Catmull-Rom (PS2-like / good sound)");
SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"5 - Gaussian (SPU native)"); SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_ADDSTRING, 0, (LPARAM)L"5 - Gaussian (PS2-like / great sound)");
SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_SETCURSEL, Interpolation, 0); SendDialogMsg(hWnd, IDC_INTERPOLATE, CB_SETCURSEL, Interpolation, 0);
SendDialogMsg(hWnd, IDC_SYNCHMODE, CB_RESETCONTENT, 0, 0); SendDialogMsg(hWnd, IDC_SYNCHMODE, CB_RESETCONTENT, 0, 0);

View File

@ -30,33 +30,33 @@ FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN BEGIN
PUSHBUTTON "OK",IDOK,101,238,50,14,NOT WS_TABSTOP PUSHBUTTON "OK",IDOK,101,238,50,14,NOT WS_TABSTOP
PUSHBUTTON "Cancel",IDCANCEL,157,238,50,14,NOT WS_TABSTOP PUSHBUTTON "Cancel",IDCANCEL,157,238,50,14,NOT WS_TABSTOP
GROUPBOX "Mixing Settings",IDC_STATIC,6,5,145,115 GROUPBOX "Mixing Settings",IDC_STATIC,3,5,154,115
LTEXT "Interpolation:",IDC_STATIC,12,16,61,10,NOT WS_GROUP LTEXT "Interpolation:",IDC_STATIC,9,16,61,10,NOT WS_GROUP
COMBOBOX IDC_INTERPOLATE,14,26,129,84,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_INTERPOLATE,9,26,145,84,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CHECKBOX "Disable Effects Processing",IDC_EFFECTS_DISABLE,14,47,126,10 CHECKBOX "Disable Effects Processing",IDC_EFFECTS_DISABLE,11,47,126,10
LTEXT "(speedup!) Skips reverb effects processing, but won't sound as good in most games.",IDC_STATIC,26,59,110,36 LTEXT "(speedup!) Skips reverb effects processing, but won't sound as good in most games.",IDC_STATIC,23,59,110,36
CONTROL "Use the de-alias filter",IDC_DEALIASFILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,92,126,10 CONTROL "Use the de-alias filter",IDC_DEALIASFILTER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,11,92,126,10
LTEXT "(overemphasizes the highs)",IDC_STATIC,26,104,114,12,NOT WS_GROUP LTEXT "(overemphasizes the highs)",IDC_STATIC,23,104,114,12,NOT WS_GROUP
GROUPBOX "",IDC_STATIC,6,123,145,45 GROUPBOX "",IDC_STATIC,3,124,154,45
CHECKBOX "Enable Debug Options",IDC_DEBUG_ENABLE,14,135,118,10,NOT WS_TABSTOP CHECKBOX "Enable Debug Options",IDC_DEBUG_ENABLE,11,135,118,10,NOT WS_TABSTOP
PUSHBUTTON "Configure...",IDC_OPEN_CONFIG_DEBUG,14,147,52,13 PUSHBUTTON "Configure...",IDC_OPEN_CONFIG_DEBUG,11,147,52,13
GROUPBOX "Output Settings",IDC_STATIC,157,5,145,225 GROUPBOX "Output Settings",IDC_STATIC,165,5,141,225
LTEXT "Module:",IDC_STATIC,163,16,50,9,NOT WS_GROUP LTEXT "Module:",IDC_STATIC,171,16,50,9,NOT WS_GROUP
COMBOBOX IDC_OUTPUT,165,26,129,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_OUTPUT,173,26,130,120,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Configure...",IDC_OUTCONF,165,42,52,13 PUSHBUTTON "Configure...",IDC_OUTCONF,173,42,52,13
LTEXT "Volume:",IDC_STATIC,192,61,27,8,NOT WS_GROUP LTEXT "Volume:",IDC_STATIC,200,61,27,8,NOT WS_GROUP
CTEXT "100%",IDC_VOLUME_LABEL,226,61,58,9 CTEXT "100%",IDC_VOLUME_LABEL,234,61,58,9
CONTROL "",IDC_VOLUME_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,165,72,129,10 CONTROL "",IDC_VOLUME_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,170,72,129,10
LTEXT "Latency:",IDC_STATIC,190,86,29,8,NOT WS_GROUP LTEXT "Latency:",IDC_STATIC,196,86,29,8,NOT WS_GROUP
CTEXT "100 ms (avg)",IDC_LATENCY_LABEL,227,86,58,9 CTEXT "100 ms (avg)",IDC_LATENCY_LABEL,233,86,58,9
CONTROL "Slider2",IDC_LATENCY_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,165,96,129,10 CONTROL "Slider2",IDC_LATENCY_SLIDER,"msctls_trackbar32",TBS_AUTOTICKS | WS_TABSTOP,173,96,129,10
CONTROL "Synchronizing Mode:",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,163,116,133,8 CONTROL "Synchronizing Mode:",IDC_STATIC,"Static",SS_LEFTNOWORDWRAP | WS_GROUP,171,116,133,8
COMBOBOX IDC_SYNCHMODE,165,126,129,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_SYNCHMODE,173,126,129,62,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Advanced...",IDC_OPEN_CONFIG_SOUNDTOUCH,165,142,52,13 PUSHBUTTON "Advanced...",IDC_OPEN_CONFIG_SOUNDTOUCH,172,142,52,13
LTEXT "Audio Expansion Mode:",IDC_SPEAKERS_TEXT,163,162,137,10,NOT WS_GROUP LTEXT "Audio Expansion Mode:",IDC_SPEAKERS_TEXT,170,162,137,10,NOT WS_GROUP
COMBOBOX IDC_SPEAKERS,165,172,129,84,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_SPEAKERS,172,172,129,84,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Use a Winamp DSP plugin",IDC_DSP_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,165,195,129,11 CONTROL "Use a Winamp DSP plugin",IDC_DSP_ENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,172,195,129,11
LTEXT "(currently requires manual configuration via the ini file)",IDC_STATIC,177,207,100,20 LTEXT "(currently requires manual configuration via the ini file)",IDC_STATIC,184,207,100,20
END END
IDD_DEBUG DIALOGEX 0, 0, 303, 473 IDD_DEBUG DIALOGEX 0, 0, 303, 473

View File

@ -1,5 +1,5 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2020 PCSX2 Dev Team * Copyright (C) 2002-2021 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
@ -94,7 +94,7 @@ void SPU2writeDMA4Mem(u16* pMem, u32 size) // size now in 16bit units
void SPU2interruptDMA4() void SPU2interruptDMA4()
{ {
FileLog("[%10d] SPU2 interruptDMA4\n", Cycles); FileLog("[%10d] SPU2 interruptDMA4\n", Cycles);
if(Cores[0].DmaMode) if (Cores[0].DmaMode)
Cores[0].Regs.STATX |= 0x80; Cores[0].Regs.STATX |= 0x80;
Cores[0].Regs.STATX &= ~0x400; Cores[0].Regs.STATX &= ~0x400;
Cores[0].TSA = Cores[0].ActiveTSA; Cores[0].TSA = Cores[0].ActiveTSA;
@ -451,6 +451,9 @@ void SPU2async(u32 cycles)
case 4: case 4:
printf(" - Catmull-Rom.\n"); printf(" - Catmull-Rom.\n");
break; break;
case 5:
printf(" - Gaussian.\n");
break;
default: default:
printf(" (unknown).\n"); printf(" (unknown).\n");
break; break;

View File

@ -1,5 +1,5 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2020 PCSX2 Dev Team * Copyright (C) 2002-2021 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
@ -30,12 +30,12 @@ MixerTab::MixerTab(wxWindow* parent)
top_box->Add(new wxStaticText(this, wxID_ANY, "Interpolation"), wxSizerFlags().Centre()); top_box->Add(new wxStaticText(this, wxID_ANY, "Interpolation"), wxSizerFlags().Centre());
wxArrayString interpolation_entries; wxArrayString interpolation_entries;
interpolation_entries.Add("Nearest (Fastest/bad quality)"); interpolation_entries.Add("Nearest (Fastest / worst quality)");
interpolation_entries.Add("Linear (Simple/okay sound)"); interpolation_entries.Add("Linear (Simple / okay sound)");
interpolation_entries.Add("Cubic (Artificial highs)"); interpolation_entries.Add("Cubic (Fake highs / okay sound)");
interpolation_entries.Add("Hermite (Better highs)"); interpolation_entries.Add("Hermite (Better highs / okay sound)");
interpolation_entries.Add("Catmull-Rom (PS2-like/slow)"); interpolation_entries.Add("Catmull-Rom (PS2-like / good sound)");
interpolation_entries.Add("Gaussian (SPU native)"); interpolation_entries.Add("Gaussian (PS2-like / great sound)");
m_inter_select = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, interpolation_entries); m_inter_select = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, interpolation_entries);
@ -393,7 +393,7 @@ Dialog::Dialog()
m_sdl_text = new wxStaticText(this, wxID_ANY, "SDL API"); m_sdl_text = new wxStaticText(this, wxID_ANY, "SDL API");
m_sdl_box->Add(m_sdl_text, wxSizerFlags().Centre()); m_sdl_box->Add(m_sdl_text, wxSizerFlags().Centre());
wxArrayString sdl_entries; wxArrayString sdl_entries;
for (int i = 0; i < SDL_GetNumAudioDrivers(); ++i) for (int i = 0; i < SDL_GetNumAudioDrivers(); ++i)
sdl_entries.Add(SDL_GetAudioDriver(i)); sdl_entries.Add(SDL_GetAudioDriver(i));

View File

@ -1,5 +1,5 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2020 PCSX2 Dev Team * Copyright (C) 2002-2021 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
@ -30,7 +30,7 @@
class MixerTab : public wxPanel class MixerTab : public wxPanel
{ {
public: public:
wxChoice* m_inter_select, *m_audio_select; wxChoice *m_inter_select, *m_audio_select;
wxCheckBox *effect_check, *dealias_check; wxCheckBox *effect_check, *dealias_check;
wxSlider *m_latency_slider, *m_volume_slider; wxSlider *m_latency_slider, *m_volume_slider;
wxStaticBoxSizer *m_volume_box, *m_latency_box; wxStaticBoxSizer *m_volume_box, *m_latency_box;
@ -47,7 +47,7 @@ class SyncTab : public wxPanel
{ {
public: public:
wxChoice* m_sync_select; wxChoice* m_sync_select;
wxButton* launch_adv_dialog, *reset_button; wxButton *launch_adv_dialog, *reset_button;
wxSpinCtrl *seq_spin, *seek_spin, *overlap_spin; wxSpinCtrl *seq_spin, *seek_spin, *overlap_spin;
SyncTab(wxWindow* parent); SyncTab(wxWindow* parent);