People remembering the `*nix` name probably already know about
/dev/sequencer, so just use a simpler name. Moreover, /dev/sequencer
is only available on some Unix systems, but not all of them, nowadays.
registering the archive
Resource forks were closed when switching to a different movie.
Those resource forks need to stay available.
In this case for cursors for Star Trek: The Next Generation Interactive Technical Manual
This reverts commit 1b6e2335b3.
This was previously disabled implicitly by the missing define
symbols in the SampleRateConvertor module. This has now been enabled
to use the internal rate convertor code.
This was generating undefined macro warnings from GCC when -Wundef
was passed.
I noticed broken sound when starting DOTT with MT-32
setting, then returning to the launcher and then starting in
GM mode.
Turns out that there was a nasty static var in instrument.cpp
that was not always reset to the correct value.
Instead of just doing that I cleaned it up a bit and got rid of
the static var.
Guybrush can read the clock of Puerto Pollo, but this was only enabled
in the English, Italian and (fan-made) Russian releases, probably
because the result was poor for the other languages.
The German, French, Spanish, Brazilian Portuguese and CJK releases
disabled this feature, but the check was done in the interpreter, not in
the scripts. This replicates this original behavior.
Findings and ScummEngine_v7::actorTalk() change by AndywinXp.
Given an item list: "lorem,ipsum,dolor,sit,amet" and the lingo code:
`delete item 1 of list`.
The first item "lorem" was deleted but without the comma. Leaving an
empty first item.
In Star Trek: The Next Generation Interactive Technical Manual the
code repeatedly deleted the first item till it encountered an `@`.
The result was a loop in which it was stuck.
- Includes lingo test.
The original FM-TOWNS interpreter had a bug which made the verb font
much thinner than in the other releases (it was missing its "3D"
effect).
Some people may prefer seeing the original behavior, others prefer
having original game bugs fixed, so `_enableEnhancements` solves the
personal taste matter.
Was discussed here:
https://github.com/scummvm/scummvm/commit/4248e22cbfc54c36dcc17f4d3912a5fb30a5dbc2#commitcomment-80191288
("hanging MIDI notes")
The original interpreter resets the channels more often than we do
in the remap function. The assumption apparently was that the
loop at the very end of the function would catch everything. But
it does not catch the dontRemap channels if they are not within
the _driverFirstChannel/_driverLastChannel range.
If more bugs like this come up it might be necessary to add even
more resets, but I am very reluctant about unnecessary changes
to the remap function. And this code has been around for a long
time without any other bug reports of this sort. So I think we have
reason to be optimistic about it.
ScummEngine::actorTalk() doesn't crash anymore when the actor number
is 0. ScummVM behaves like the original nowadays, in that the invalid
line is just silently skipped, and so restoring the missing line is
just simpler than I thought during my previous change.
We still have to deal with actor 3 which is in a buggy status in some
releases, but again it was possible to deal with this in a simpler way
(especially since my usage of `return;` was wrong, here).