adjusting sound - better in slow CPU speeds

This commit is contained in:
tudnai 2022-02-17 03:06:29 +01:00
parent 9e8313f13d
commit 6a73e7b254
2 changed files with 15 additions and 6 deletions

View File

@ -1109,24 +1109,32 @@ class ViewController: NSViewController {
spkr_extra_buf = 0 // 26
switch freq {
case 0.25:
spkr_extra_buf = -65
break
case 0.5:
spkr_extra_buf = -140
break
case 1.5:
spkr_extra_buf = 256
spkr_extra_buf = 175
break
case 2.0:
// spkr_extra_buf = Int32( Double(spkr_extra_buf) * 2.961538461538462 ) // normally it should come up as 77, but this way it is calculated with FPS
// spkr_extra_buf = 20
spkr_extra_buf = -25 // 88
spkr_extra_buf = 195 // 88
break
case 2.8:
spkr_extra_buf = 185
spkr_extra_buf = 65 // 185
break
case 4.0:
// spkr_extra_buf = Int32( Double(spkr_extra_buf) * 1.346153846153846 ) // normally it should come up as 35, but this way it is calculated with FPS
// spkr_extra_buf = 45
spkr_extra_buf = 90 // 80 // 20
spkr_extra_buf = 25 // 90 // 80 // 20
break
default:

View File

@ -546,6 +546,7 @@ void spkr_toggle() {
double indexer = (double)spkr_sample_rate / MHZ(MHz_6502);
if ( MHz_6502 < default_MHz_6502 ) {
indexer = (double)spkr_sample_rate / MHZ(default_MHz_6502);
// indexer = (double)spkr_sample_rate / MHZ(default_MHz_6502) * MHz_6502;
}
spkr_sample_idx = round( (double)(spkr_clk + m6502.clkfrm) * indexer ) * SPKR_CHANNELS;
@ -682,10 +683,10 @@ void spkr_update() {
double multiplier = default_MHz_6502 / MHz_6502;
if (MHz_6502 < default_MHz_6502 ) {
multiplier = 1;
multiplier = MHz_6502;
}
alBufferData(spkr_buffers[freeBuffers], AL_FORMAT_STEREO16, spkr_samples, (spkr_buf_size + spkr_extra_buf) * sizeof(spkr_sample_t) * multiplier, spkr_sample_rate * multiplier);
alBufferData(spkr_buffers[freeBuffers], AL_FORMAT_STEREO16, spkr_samples, (spkr_buf_size * multiplier + spkr_extra_buf) * sizeof(spkr_sample_t), spkr_sample_rate * multiplier);
// alBufferData(spkr_buffers[freeBuffers], AL_FORMAT_STEREO16, spkr_samples, (spkr_buf_size + spkr_extra_buf) * sizeof(spkr_sample_t), spkr_sample_rate);
// alBufferData(spkr_buffers[freeBuffers], AL_FORMAT_STEREO16, spkr_samples, (spkr_sample_idx + spkr_extra_buf) * sizeof(spkr_sample_t), spkr_sample_rate);