Commit Graph
133 Commits
Author SHA1 Message Date
sluicebox 43a90ba922 AGI: Fix KQ3 mice conversation not occurring
Fixes bug #15130

Thanks to @ArthurWalden for reporting
Thanks to @OneShortEye for KQ3 expertise and helping reproduce
2024-11-11 16:07:17 -08:00
sluicebox fdaf660bbc AGI: Update Gold Rush clock workaround for all versions
- Fixes game clock speed in Apple II, Apple IIgs
- Fixes save games from before the original fix

See: 77deb41c25
2024-09-16 20:28:38 -07:00
sluicebox 22a4111c57 AGI: Add Apple II speed controls, implement set.speed 2024-09-16 20:27:39 -07:00
sluicebox 20b5faf9a3 AGI: Move Apple IIgs timing workarounds into functions 2024-09-16 20:27:39 -07:00
Torbjörn Andersson a6f4762bfb AGI: Make Gold Rush copy protection optional
It was bypassed in the Software Farm re-release, which was made by the
original authors of the game. As a side effect, it's now possible to
enable the copy protection in that version.
2024-09-03 22:23:46 +03:00
sluicebox 1faf8628d0 AGI: Fix init error handling
Initialization errors were ignored, causing the launcher to behave as
if the engine ended normally.
2024-08-24 13:41:28 -07:00
sluicebox feaad5cc2c AGI: Set Apple II game variables 2024-08-23 12:23:00 -07:00
sluicebox ab669cbb6b AGI: Cleanup warning messages 2024-08-17 17:56:39 -07:00
sluicebox 6b50eadebf AGI: Remove "agi" prefix from AgiEngine method names 2024-08-17 17:56:29 -07:00
sluicebox 77deb41c25 AGI: Fix Gold Rush clock time at Fast and Fastest speeds
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.
2024-03-11 10:06:11 -07:00
sluicebox 1c273ecfb1 AGI: Reduce g_system usage 2024-03-11 09:48:53 -07:00
sluicebox f4201eeda8 AGI: More misc cleanup 2024-03-10 17:20:54 -06:00
sluicebox ee5a70598e AGI: Fix LSL1 shoplifting bug
Fixes bug #13137
2024-03-07 16:12:55 -07:00
sluicebox 80f428b930 AGI: Remove AGIMOUSE polling code
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"
2024-03-05 02:00:33 +02:00
sluicebox 44373c95a4 AGI: Reset AGIMOUSE button state when changing rooms
Fixes infinite loop in "DG: The AGIMouse Adventure", bug #10737
2024-03-05 02:00:33 +02:00
sluicebox 126c19855a AGI: Restrict AGIMOUSE feature to AGIMOUSE games
Fixes bug #12747 where fan game Phil's Quest immediately ends, but this
also affects early KQ2 and other games.
2024-03-02 13:22:38 -07:00
sluicebox 15819e0686 AGI: Use correct Amiga platform value
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.
2024-01-26 13:34:53 -08:00
sluicebox 8f2127e418 AGI: Cleanup graphics code 2024-01-22 17:32:46 -07:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh f1f4657b10 AGI: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Thunderforge 35c3668275 COMMON: Fixing misspellings "occured" -> "occurred"
Fixing this misspelled word across multiple parts of the codebase.
2021-09-25 21:36:42 +03:00
sluicebox 93eeffc84d JANITORIAL: Update old bug tracker numbers 2021-03-03 02:15:05 +02:00
Zvika Haramaty 61cd56009d AGI: Apple2GS: Make Speed menu configurable 2020-07-25 00:36:43 +02:00
Zvika Haramaty 1c36be4d8a AGI: Apple2GS: Add Speed menu and commands 2020-07-25 00:36:43 +02:00
Paul Gilbert 128bd50051 AGI: Remove autosave code 2020-02-16 15:44:28 -08:00
Filippos Karapetis 5b7f11ded7 AGI: Cleanup game flags 2020-01-12 23:12:15 +02:00
D G Turner 95c0afa2c3 AGI: Fix Missing Default Switch Cases
These are flagged by GCC if -Wswitch-default is enabled.
2019-10-14 03:54:10 +01:00
Martin Kiewitz eeaddfb20a AGI: Make MH1 nightclub arcade sequence slower for AppleIIgs
Thanks waltervn for pointing this issue out
AppleIIgs adjustment tables had to be extended, because the first
3 arcade sequences were running way too fast, while the last one
ran fine and all of those are part of one single room.
2017-02-10 19:43:16 +01:00
Martin Kiewitz 32ca051485 AGI: Make TIME_DELAY 0 to set the game to 40 fps
Original AGI TIME_DELAY 0 made the game run as fast
as possible. We didn't go that far, but it still seems to run
too fast. This should hopefully fix that.
See bug #9607
2016-10-12 21:48:35 +02:00
Eugene Sandulenko dead4aa014 JANITORIAL: Remove trailing spaces 2016-10-09 14:59:58 +02:00
Martin Kiewitz 0caef5d8d0 AGI: Set monitor VM var to EGA for Hercules rendering
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.
2016-02-28 14:06:22 +01:00
Martin Kiewitz 4ad1bbf108 AGI: Add detection for fan games with broken volume bug #7035
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.
2016-02-20 14:53:17 +01:00
Martin Kiewitz 29456da421 AGI: Added comments about Black Cauldron+KQ2, removed warning
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.
2016-02-20 13:17:16 +01:00
Martin Kiewitz 4d85aa193c AGI: Apple IIgs time delay override KQ4 completed 2016-02-18 02:01:51 +01:00
Martin Kiewitz 7b75936f56 AGI: Add heuristic to detect delay loops within scripts
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.
2016-02-14 22:43:52 +01:00
Martin Kiewitz 82c3bdc142 AGI: Apple IIgs time delay override SQ2 data added 2016-02-13 04:07:17 +01:00
Martin Kiewitz af90283552 AGI: Add time delay overwrite for AppleIIgs
Should somewhat fix bug #7026
Needs testing (although AGI games need to get tested for 1.8.0 anyway)
2016-02-13 00:10:43 +01:00
Martin Kiewitz dbea55b36b AGI: Rename nonBlockingText -> artificialDelay
Also add a table for Apple IIgs games for music issues like in PQ1
intro, where the developers thought that loading a new room would
take X amount of time and they started loading before the music was
done. In our AGI music may get cut off because of this.

It of course also happens, when using the original interpreter,
as soon as you emulate a faster processor. Which means this
is also a workaround.

See bug #7026
2016-02-11 17:26:25 +01:00
Martin Kiewitz 78905e0ab6 AGI: Only set VAR_KEY,when no controller/direction
Fixes Mixed Up Mother Goose Apple IIgs save/restore prompt
2016-02-09 19:41:59 +01:00
Martin Kiewitz d836a52557 AGI: Do not set TIME_DELAY at all on restart
Original AGI did not do it and it would ruin the game speed of
at least Larry on Apple IIgs after dying.
2016-02-07 01:10:38 +01:00
Martin Kiewitz e019323f07 AGI: Add Apple IIgs system UI buttons
For Restart/Quit/Pause dialog
2016-02-04 12:51:35 +01:00
Martin Kiewitz 3eebf2eb41 AGI: Increase time delay for Apple IIgs
It seems that either Apple IIgs ran very slowly or that its
AGI interpreter didn't do the delays as on all the other platforms.
Further investigation needed
Fixes all sorts of games running now way too fast.
2016-02-03 03:49:37 +01:00
Martin Kiewitz cc55cb13d3 AGI: Remove _game.state, not needed anymore 2016-02-03 03:07:50 +01:00
Martin Kiewitz 34117170f2 AGI: Change cycle delay handling, seems to fix GR
Removed pollTimer()
Renamed pause() to wait()
Doing 10 msec delays instead of at least 50 msec per EventProcess
Seems to fix weird Gold Rush ingame timer issue?! bug #4147
2016-02-03 02:40:01 +01:00
Martin Kiewitz 778c1ddb69 AGI: Cycle event processing changed
processEvents() renamed to processScummVMEvents()
mainCycle() renamed to processAGIEvents()
have.key now sets up an inner loop and calls processAGIEvents()
to avoid any further cycle work processing
2016-02-03 02:21:07 +01:00
Martin Kiewitz 702b66a49d AGI: Make inner loop handlers consistent 2016-02-03 01:41:32 +01:00
Martin Kiewitz 8271058a45 AGI: Implement messageBox() as inner loop
Also remove _game.keypress, _game.msgBoxTicks
2016-02-03 01:32:57 +01:00
Martin Kiewitz 563d890991 AGI: Fix regression of have.key changes
original commit 8269a94bcd
Now hopefully properly implemented.
Adjusted a few more inaccuracies
(we set v19 to 0, where we shouldn't have)
2016-02-03 00:26:35 +01:00
Martin Kiewitz 5f41a09701 AGI: Remove inputMode, not needed anyore 2016-02-02 23:02:50 +01:00
Martin Kiewitz 8269a94bcd AGI: Use inner loop functionality for have.key
Also do it like the original interpreter did it
2016-02-02 22:26:39 +01:00