The bug relating to music being muted is because of the lost handle to FastQSP's jack backend. When you change location (“aka menu”) in the game, you're telling that backend to change because you have also run into the '$toplay loop' I mention below when changing locations. Because loading doesn't run that loop, you get no command to tell FastQSP to update the audio to play. You *must* recompile FastQSP to fix this bug by stopping all audio on any game-change/load. No way around that. This applies to any area of the game that plays music. The game can be loaded, but it doesn't automatically fetch a handle to the current media object. FastQSP must be extended to provide a reference so that *on load* it can give the game a variable specifying it was just loaded and the game loop needs to be updated to then parse that variable and then simply set $toplay to the appropriate value and start playing.
The bug relating to music during a race is because you have two code-blocks that don't compensate for one another, and I don't believe the one block is even needed.
Usually you set $toplay = '...' and let the game handle it via (line 74991):
Code:
if $music_now ! $music[$toplay]:
close $music_now
$music_now = $music[$toplay]
end
On line 42716 you do not handle $toplay and use:
Code:
if $music_now ! $music['ride']:
close $music_now
$music_now = $music['ride']
end
You need to just use (42716 block):
If it turns out you need that code block to start/stop the music during race because the game doesn't loop the 'outer' code block that plays music then set it instead to:
Code:
$toplay = 'ride'
if $music_now ! $music[$toplay]:
close $music_now
$music_now = $music[$toplay]
end
if sound_on = 1: play $music_now, music_volume
if ui_style = 2:
if sound_on = 1:
*p '<div id="sound_icon"><a href = "EXEC: sound_on = 0 & close all & gt curloc"><img src="content\pic\ui\grimdark\buttons\sound_on.png"></a></div>'
else
*p '<div id="sound_icon"><a href = "EXEC: sound_on = 1 & gt curloc"><img src="content\pic\ui\grimdark\buttons\sound_off.png"></a></div>'
end
else
if sound_on = 1:
*p '<div id="sound_icon"><a href = "EXEC: sound_on = 0 & close all & gt curloc"><img src="content\pic\buttons\sound_on.png"></a></div>'
else
*p '<div id="sound_icon"><a href = "EXEC: sound_on = 1 & gt curloc"><img src="content\pic\buttons\sound_off.png"></a></div>'
end
end
While I don't experience any audio crackling, FastQSP uses the QMediaPlayer backend to play audio. It is not the best. I don't want to try porting the audio backend (it isn't much in this case to actually do a lot, but I don't want to have to manage two builds). You might try grabbing a newer copy of the Qt libraries and replacing them and seeing if it will tolerate that behavior. There could be bug fixes or performance enhancements and a simple library swap might be possible without a recompilation.
The nature of QSP prevents forward-compatible saves without some hackish workarounds. It has the same issues as Unreal Engine in this department.
The game needs a CSS rewrite to implement based on a 100% font size and use RELATIVE sizes and not pixels. Otherwise, you're also screwed for hiDPI screens such as my one 4K monitor. I'm forced to move it to a second 1080p monitor to compensate because I don't like the way any OS currently 'compensates' for DPI issues such as by stretching, etc. This will also fix your minus sign issues along with a vast number of other small issues regarding alignment and stuff.
You also need to convert all content file and folder names to lowercase and remove spaces (underscore or dash). This will fix any Mac/*nix access issues.
Unusual bug encountered using a custom Isabela JSON:
If seed_gladiatrix is non-zero, then seed_dressage and seed_pet are not parsed (stay 0). Various combinations of seed_cowSK, seed_dressage, seed_gladiatrix, and seed_pet can bug one another and result in some being loaded, some not. Far too lazy to delve into the code to fix it.