I'm keeping the Options, General, Emulation speed set to 100%.
Just after every Machine Reset, looking at the % in lower right corner, I saw it vary from 2500 to 2900% randomly in the first 7-15 seconds, then linearly slow down to 100% in the next 7 s.
This is visible also from blinking cursor that is really too fast at the start, and games (if you are luckly and can manage to load something).
I used 1.5.7 on Debian 10
Then I tried to compile myself the 1.6.0 with paired libspectrum 1.5, but same effect.
To compile I used:
- download libspectrum:
https://sourceforge.net/projects/fuse-emulator/files/libspectrum/1.5.0/libspectrum-1.5.0.tar.gz/download
$ tar xvaf libspectrum-1.5.0.tar.gz
$ libspectrum-1.5.0/
$ configure --prefix=/opt/fuse1.6
$ make
$ sudo make install
- download FUSE:
https://sourceforge.net/projects/fuse-emulator/files/fuse/1.6.0/
$ tar xvaf fuse-1.6.0.tar.gz
$ cd fuse-1.6.0/
$ export PKG_CONFIG_PATH=/opt/fuse1.6/lib/pkgconfig/
$ configure --prefix=/opt/fuse1.6
$ make
$ sudo make install
after a PC restart, does not happen anymore. For me it is not reproducible now.
Take note that before restart the PC was up for 1 month and many updates was installed from Debian repo, maybe one of them that require restart generate that.
I also have encountered with the same speed emulation issue. I have "Emulation speed: 100%" in "General options" and
<speed>100</speed>
in ~/.fuserc. But sometimes after startup emulation speed jumps to extremely hight value, up to about 5000%. Sometimes it backs to normal speed by itself, often after opening UI menu, sometimes not. When i change "Emulation speed" to 72% (i found this value by bisecting) it works at 72% normally but when i change it to 73% emulation speed jumps to incorrect high value again.Fuse version 1.6.0 in Arch Linux.
UPD: pausing/unpausing machine also likely triggers emulation speed to go crazy.
Last edit: Dmytro Bagrii 2022-09-18
The bug is not reproduced when run with
--no-sound
.Also the bug is not reproduced if
fuse
is configured with--with-audio-driver=pulseaudio
but slight latency in audio is noticeable .Last edit: Dmytro Bagrii 2022-09-21
I enabled verbose output in
sound/alsasound.c
bystatic int verb = 1;
. When emulation speed becomes "unlimited" there are log messagesALSA: *buffer underrun*!
. Seems like alsa output doesn't work correctly on systems with pulseaudio.Hi,
message means: fuse cannot pump enough sound sample to the ALSA buffer in time
Uhum... pulseaudio is an another layer over ALSA, with additional buffer, so the road of a sample is longer than without -> more audio lag
The speed% anomaly is timer problem, may connected to the sound buffer...
Which ui did you use (GTK2/3 or SDL)?
GTK3.
I suspect
snd_pcm_writei()
behavior is quircky with ALSA emulation under pulseaudio. Probably it doesn't respect hardware timings and cannot be used as a timer base.GTK me too.