mirror of
https://github.com/dborth/snes9xgx.git
synced 2025-01-11 18:59:08 +01:00
Snes9x - Add the separate echo buffer option. (#836)
Snes9x - Add the separate echo buffer option.
This commit is contained in:
parent
246b28fcd5
commit
4e057ed7b4
@ -500,6 +500,7 @@ DefaultSettings ()
|
|||||||
Settings.SoundPlaybackRate = 48000;
|
Settings.SoundPlaybackRate = 48000;
|
||||||
Settings.SoundInputRate = 31920;
|
Settings.SoundInputRate = 31920;
|
||||||
Settings.DynamicRateControl = true;
|
Settings.DynamicRateControl = true;
|
||||||
|
Settings.SeparateEchoBuffer = false;
|
||||||
|
|
||||||
// Interpolation Method
|
// Interpolation Method
|
||||||
GCSettings.Interpolation = 0;
|
GCSettings.Interpolation = 0;
|
||||||
@ -524,7 +525,7 @@ DefaultSettings ()
|
|||||||
Settings.SuperFXSpeedPerLine = 5823405;
|
Settings.SuperFXSpeedPerLine = 5823405;
|
||||||
|
|
||||||
Settings.SuperFXClockMultiplier = 100;
|
Settings.SuperFXClockMultiplier = 100;
|
||||||
|
Settings.OverclockMode = 0;
|
||||||
Settings.OneClockCycle = 6;
|
Settings.OneClockCycle = 6;
|
||||||
Settings.OneSlowClockCycle = 8;
|
Settings.OneSlowClockCycle = 8;
|
||||||
Settings.TwoClockCycles = 12;
|
Settings.TwoClockCycles = 12;
|
||||||
|
@ -612,7 +612,7 @@ VOICE_CLOCK(V9_V6_V3) { voice_V9(v); voice_V6(v+1); voice_V3(v+2); }
|
|||||||
//// Echo
|
//// Echo
|
||||||
|
|
||||||
// Current echo buffer pointer for left/right channel
|
// Current echo buffer pointer for left/right channel
|
||||||
#define ECHO_PTR( ch ) (&m.ram [m.t_echo_ptr + ch * 2])
|
#define ECHO_PTR( ch ) ((Settings.SeparateEchoBuffer) ? (&m.separate_echo_buffer [m.t_echo_ptr + ch * 2]) : (&m.ram [m.t_echo_ptr + ch * 2]))
|
||||||
|
|
||||||
// Sample in echo history buffer, where 0 is the oldest
|
// Sample in echo history buffer, where 0 is the oldest
|
||||||
#define ECHO_FIR( i ) (m.echo_hist_pos [i])
|
#define ECHO_FIR( i ) (m.echo_hist_pos [i])
|
||||||
@ -881,6 +881,8 @@ void SPC_DSP::soft_reset_common()
|
|||||||
m.echo_offset = 0;
|
m.echo_offset = 0;
|
||||||
m.phase = 0;
|
m.phase = 0;
|
||||||
|
|
||||||
|
memset(m.separate_echo_buffer, 0, 0x10000);
|
||||||
|
|
||||||
init_counter();
|
init_counter();
|
||||||
|
|
||||||
for (int i = 0; i < voice_count; i++)
|
for (int i = 0; i < voice_count; i++)
|
||||||
|
@ -199,6 +199,8 @@ private:
|
|||||||
sample_t* out_end;
|
sample_t* out_end;
|
||||||
sample_t* out_begin;
|
sample_t* out_begin;
|
||||||
sample_t extra [extra_size];
|
sample_t extra [extra_size];
|
||||||
|
|
||||||
|
uint8_t separate_echo_buffer [0x10000];
|
||||||
};
|
};
|
||||||
state_t m;
|
state_t m;
|
||||||
|
|
||||||
|
@ -300,7 +300,9 @@ struct SSettings
|
|||||||
bool8 OpenGLEnable;
|
bool8 OpenGLEnable;
|
||||||
float SuperFXSpeedPerLine;
|
float SuperFXSpeedPerLine;
|
||||||
|
|
||||||
|
bool8 SeparateEchoBuffer;
|
||||||
uint32 SuperFXClockMultiplier;
|
uint32 SuperFXClockMultiplier;
|
||||||
|
int OverclockMode;
|
||||||
int OneClockCycle;
|
int OneClockCycle;
|
||||||
int OneSlowClockCycle;
|
int OneSlowClockCycle;
|
||||||
int TwoClockCycles;
|
int TwoClockCycles;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user