I just tried to recompile broken version SBEMU-UserBuild_2024.02.06_02-04 with reverted changes only in au_base.c and it seems its enough to fix playback speed but it may break somewhere else.
Then I tried to put some debug output in au_base.c in mixer_speed_lq()
int total = sourcesample/channels;
printf("samplerate=%d, srcsample=%d, newrate=%d, chans=%d, total=%d\n", samplerate, sourcesample, newrate, channels, total);
and launched doom. It hanged within a moment as printing from ISR is not good idea, sure...
But something can be seen. I wonder why the first call prints
"samplerare=11025" - the expectable number
and all later calls prints
"samplerare=11111" - the weird number
newrate and channels seems as expected, I use /k44100 option (but speed up effect happen regardless to it).
EDIT: it's expected, first call in main.c goes with parameter of emulated sample rate (SB_Rate) while further calls use some recalculated value...
// the actual sample rate is derived from current count of samples in direct output buffer
samples = mixer_speed_lq(MAIN_PCM, MAIN_PCM_SAMPLESIZE, MAIN_PCMResample, samples, 1, (samples * aui.freq_card) / aui.card_samples_per_int, aui.freq_card);
Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 8GB DDR3, 128GB SSD, GTX970(GF7900GT), SB Audigy + YMF724F + DreamBlaster combo + LPC2ISA