Fixes bugs #4147, #13910
The Apple IIgs version is unaffected and will require a separate fix.
That version only had one speed, so it does not contain the script that
synchronizes clock speed with game speed. We add this feature, and will
also need to implement this synchronization.
The AGIMOUSE protocol is for three mouse variables to be set by the
interpreter in response to opcode 171. This code updated two of the
three variables when processing events, causing the variables to
unexpectedly change in the middle of a game cycle, such as when
displaying a message box.
Fixes phantom clicks in "DG: The AGIMouse Adventure"
This fixes bug #15000 "V Demo does not recognize valid word ammunition"
Our code was actually not parsing correctly many (all?) words starting with "a" in this particular game.
CoCo3 games use V3 volumes, and most use V3 compression, even though
they are V2 games with V2 directory files. Only KQ3 uses V2 volumes.
LSL1 CoCo3 now starts, along with the many CoCo3 fan ports.
Big thanks to @MusicallyInspired, @EpicPotatoFiend, and the
SQHistorian discord for teaching me Tandy!
- Fixes Manhunter 1 Amiga / Atari ST not starting
- Fixes Manhunter 2 Amiga not starting
- Fixes Gold Rush Atari ST
- Fixes King's Quest IV Apple IIGS
- Fixes Black Cauldron Apple IIGS
- Uses original opcode name: get.mse.posn (from GR Amiga)
The correct value for variable 20 on Amiga interpreters is always 5.
Confirmed in the Amiga scripts for SQ1, MH1, and MH2. These games all
expect variable 20 to have a value of 5, just like all Amiga games.
Fixes Amiga menus and help text not appearing, and other details.
Note that this fix exposes another bug which now prevents the Amiga
Manhunter games from starting: the opcode table is wrong for these
versions. This also prevents the Atari ST version of MH1 from starting.
Fixed in next commit.
Most of these changes resolve inconsistencies between the three loaders.
Formatting, error handling, logging, etc.
V2 and V3 parsers no longer assume that directory files are multiples
of three. Some Mac games have padding. This caused uninitialized memory
to be parsed and stored in the directory table.
Cherry picked and adapted from be698249f1
Fixes the CoCo3 version of Xmas Card 86 crashing on startup.
The sound format isn't supported yet but the return value from
AgiSound::createFromRawResource wasn't tested.
The CoCo3 version of Xmas Card 86 has a volume file with a V3 format.
The V2 loader now detects this and ignores the extra header bytes.
Fixes bug #14699
The left side of each picture was cut off, and padded with white at the
right side instead. This regression was introduced somewhere between
1.7.0 and 1.8.0 as part of a "graphics rewrite + cleanup".