Age | Commit message (Collapse) | Author |
|
AGI: Reduce audio header dependencies
|
|
|
|
Was a regression caused by commit
e1c36a52b561463217e22687605d2f4f1dc33be6
(upscaling + hercules font support)
Thanks to salty-horse for reporting this issue
|
|
|
|
We set vtEntries to SCREENOBJECTS_MAX, thus, the loop
for (i = vtEntries; i < SCREENOBJECTS_MAX; i++) is a no-op.
|
|
Recently we started to use this as new semantics, although in the past
we used simly <engine>_H. Now these guard defines are consistent with
rest of the files which are used in the engines.
|
|
|
|
|
|
|
|
|
|
Trigger rect is the rect, that the user needs to click to
trigger the predictive dialog.
Previously cursor char got drawn, rect started right afterwards
In case cursor char is enabled, the rect will get adjusted
accordingly now.
|
|
gameid -> gameId
guioptions -> guiOptions
|
|
_singleid -> _singleId
_gameids -> _gameIds
_guioptions -> _guiOptions
|
|
|
|
Shows a prompt window and pauses the game (just like original AGI
did, but original AGI only did it in Hercules rendering mode).
|
|
|
|
Original AGI Hercules rendering was restricted by the Hercules
resolution, which is why they had to remove the AGI prompt and
replace it with a prompt window like the one used in SCI.
We are not and even when we support that prompt window, we
will still support the original AGI prompt even for Hercules
rendering.
Maybe some games had special graphic code, when Hercules rendering
is active. This needs to get checked.
We are now telling the scripts that we are running on EGA,
so that they don't put text at different coordinates.
Hercules rendering also used a different grid for putting text
for example Space Quest 2 right at the start.
This change avoids problems with such placement. We don't really
want to restrict ourselves by implementing that different
text grid resolution.
Also added comments on game feature flags.
|
|
It seems Sierra basically put a low res font in there, so
it's useless. We should rather directly use the PC BIOS font
in those cases. The code could be useful at some point in case
we add support for the AGI3 Hercules rendering, although I think
it looks worse, because graphics are basically "compressed".
|
|
|
|
- User option to force Hercules hires font for any rendering mode
- Also change mouse cursor hotspots from 1,1 to 0,0
- Fix inaccuracy in mouse controlled game menu
- Change render_Block(), drawBox(), drawDisplayRect() to use
upper Y instead of lower Y. Original AGI uses lower Y, but
upper Y makes upscaling way easier.
|
|
|
|
|
|
Plenty of fan games set volume to mute, because they thought 15
would be loudest. It's in fact "mute" in AGI. Those games were
made primarily for PC AGI, which did not use the volume setting.
We do, so such games would get muted audio. We try to detect
such games. Hopefully fully fixes bug #7035.
Too many games to try them all out.
|
|
Also removed old comments about testing needed for IIgs
Also removed warning when game speed is overwritten for IIgs,
b/c all games were tested and should run properly now.
|
|
Gold Rush, Stagecoach path, after solving steep hill
|
|
Fixes one message box in Gold Rush during Stagecoach path,
that wasn't wrapped correctly.
|
|
|
|
Now also detects the text, that is shown when following your
mule in Gold Rush!
|
|
|
|
Detects when end.of.loop + motions are used on the same screen
object at the same time, which would have resulted in flag
corruption in the original interpreter. We detect this
situation now, show a warning and disable the cycler in case
cycler was activated first.
This solves a new issue in kq1, when grabbing the eagle in room
22, that was previously hidden just like in the original AGI.
Fixes bug #7046
|
|
loop_flag was previously vt.parm1, which was shared for multiple
uses. Was split up during graphics rewrite in commit
8a595e7771aa89d06876e13d7ab6751e26da8982
Is indirectly part of bug #7046. Saving, restarting ScummVM and
restoring right after grabbing the eagle resulted in the glitch
not happening (which was of course an inaccuracy anyway). This
was caused by AGI currently not saving/restoring the loop_flag.
Needs to get further figured out what's exactly happening
internally and if this issue was just hidden by the shared
vt.parm1 in previous versions. If triggered, it would have
just set another pseudo-random flag on end-of-loop.
|
|
|
|
+ Disable hide.mouse for MH1 Apple IIgs
|
|
|
|
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
|
|
|
|
For KQ3 the calls are currently blocked b/c interpreter version
For SQ2 they aren't, which causes a few priority issues at the end
|
|
Helps creating various saved games for Mixed Up Mother Goose
|
|
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).
|
|
- small fix (forgot to reset the hit counter)
- rename methods
- added more information about PQ1 in comment
|
|
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.
|
|
set.simple gets called when killing the witch + planting beans
Right after bowing to the king, ego faces away from him. This
issue was already present in 1.7.0. Could probably get solved
later via script patcher.
|
|
Available also in 2.425, then removed until 2.936, yada yada.
priorityToY-Glitch is definitely present in 2.425 as well.
|
|
Was available only in 2.425 and in 2.936+.
Fixing comment accordingly. Also allowing the command for 2.425.
|
|
|
|
- Fix saving/loading priority bands table. Now saving the actual raw
data
- Now also saving the flag, that defines if the priority table got
modified by scripts
- For older saved games it will try to figure out the state of that
flag
- Blocking set.pri.base for AGI below 2.936
- set.pri.base was actually introduced in 2.936 and not AGI3
- The set.pri.base bug was present in 2.936 as well
- Saved games created between the graphics rewrite and this
commit may have priority issues for games, that used AGI2.936+
|
|
Comment only
SQ1, right at the end of the asteroids
|
|
|
|
Useful to properly detect the most recent saved game
(that's done by the original save/restore dialogs)
|
|
|