Now that the renderer is loading resources without spinning CPU time
on decompression every frame, it becomes apparent that kFrameOut is
spammed constantly by the interpreter and needs to be throttled to
ensure that transitions and fades work properly.
A single picture in SCI32 is often larger than the 256KiB limit,
meaning that the cache is useless for these games -- which is bad,
because the renderer works directly off raw resource data so it
must be decompressed and in-cache for rendering performance to be
acceptable.
Solves the priority issues at the end, because the set.pri.base
call is now rejected by us. The IIgs interpreter seems to feature
177 kernel calls, but the last few are not what we expect them to
be. It seems set.pri.base was discard.sound for this interpreter.
It seems it was cleaned up for kq4. That one actually uses
dynamic priority bands and it's working properly.
Fixes bug #7034
Instead of directly converting play time to VM timer vars,
we only adjust VM timer vars according to play time seconds delta.
This is needed for at least Mixed Up Mother Goose. The game
sets the VM "second" variable to 0 and then uses it for syncing
the text to the songs. We even adjust second calculation, so
that the timing should always be the same and not depend on
basically luck (seconds may wrap right after setting it, because
internal cycles counter is not changed).
Hopefully all issues were caught
Also added a "wait for keypress" right after result of latest dart
throw is shown like in the original, so that dart results are
not immediately cleared.
Also added support for "1 point" instead of writing "1 points"
And in that case poll events, delay for a few milliseconds and
update screen.
This somewhat worked before the graphics rewrite because of
a timer hack.
This one tries to detect actual inner loops.
Happens in at least Police Quest 1 when playing poker.