Commit graph

305 commits

Author SHA1 Message Date
Eugene Sandulenko
b34411bc23
ENGINES: [a-k]*: Switched Debug Channels from bitfield to sequential enum 2025-02-22 15:51:24 +01:00
sluicebox
faaf89389b AGI: Implement near.water opcode
Used by Black Cauldron AGIv1 when filling flask
2025-01-30 21:14:57 -08:00
sluicebox
980dfe72d6 AGI: Add KQ1-Early PC loader and detection 2025-01-23 03:18:14 -08:00
sluicebox
be53239eef AGI: Move AgiLoader definitions to loader.h 2025-01-23 03:18:14 -08:00
sluicebox
3bd221196a AGI: Add Pictures debug channel 2024-12-19 00:38:46 +02:00
sluicebox
ecfe4dd4de AGI: Move PictureMgr::unloadPicture() to AgiEngine 2024-12-13 09:31:01 -08:00
antoniou79
cbd2d79430 AGI: Make predictive input dialogue on mouse click optional
This affects only showing the predictive input dialogue on mouse left click into an input field or prompt line
2024-10-25 23:10:54 +03: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
Hubert Maier
c2c6befdf7 JANITORIAL: AGI: Fix typos 2024-09-11 10:58:43 +03:00
sluicebox
3b7a9e1663 AGI: Add setFlagOrVar() 2024-09-08 17:15:19 -07:00
sluicebox
6ed7bd1263 AGI: Add Apple II and CoCo3 sound-blocking behavior 2024-08-31 17:36:08 +03:00
sluicebox
2f2f3a59bd AGI: Apple II NIB and WOZ disk image support 2024-08-25 14:57:06 +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
e45022abc1 AGI: Add Apple II view support 2024-08-19 07:39:54 +03:00
sluicebox
fe12daf665 AGI: Add Apple II loader and detection 2024-08-19 07:39:54 +03:00
sluicebox
f6e38f6d52 AGI: New AGIv1 loader and detection
- Detection table now uses LOGDIR hash instead of disk image hash.
- Detection no longer requires hard-coded names for image files.
- Loader now parses INITDIR to locate files
- King's Quest II now loads resources. Promoted to Unstable.
- All AGIv1 game versions are now detected and can load resources.
2024-08-19 07:39:54 +03:00
sluicebox
65b606feb7 AGI: Cleanup AgiDir initialization 2024-08-17 17:56:39 -07:00
sluicebox
4bba0c332e AGI: Cleanup AgiLoader initialization 2024-08-17 17:56:39 -07:00
sluicebox
22dc206476 AGI: Remove AgiLoader::loadResource implementations
All three implementations were the same
2024-08-17 17:56:39 -07:00
sluicebox
fb35bc6aa9 AGI: Cleanup AgiLoader 2024-08-17 17:56:29 -07:00
sluicebox
6b50eadebf AGI: Remove "agi" prefix from AgiEngine method names 2024-08-17 17:56:29 -07:00
sluicebox
5761f2d768 AGI: Remove AgiLoader::unloadResource implementations
All three implementations were the same
2024-08-17 17:56:29 -07:00
sluicebox
ada17669dc AGI: Misc init cleanup 2024-04-15 18:23:47 -07:00
sluicebox
2a66a9d8a7 AGI: Add bounds checking to strings
Fan games are known to use out of bounds string numbers
2024-04-15 18:23:47 -07:00
sluicebox
c5995d64e7 AGI: Refactor away agiDetectGame 2024-03-21 07:37:27 -07:00
sluicebox
f4201eeda8 AGI: More misc cleanup 2024-03-10 17:20:54 -06:00
sluicebox
d6c220896e AGI: Misc cleaup 2024-03-09 09:07:59 -07:00
sluicebox
aabb7b4c30 AGI: Bool usage 2024-03-09 09:07:59 -07:00
sluicebox
c1248bb971 AGI: Remove unused StringData 2024-03-06 09:30:57 -07: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
Filippos Karapetis
671298f2d1 AGI: Remove superfluous AGI version setup for AGDS games 2024-01-27 04:28:47 +02:00
Filippos Karapetis
8dcd4e27f4 AGI: Get rid of the older game flags
These are leftovers from Sarien, and are no longer needed
2024-01-27 03:27:27 +02: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
663ea06fce AGI: Fix Mixed-Up Mother Goose Amiga emulated version
Fixes the wrong graphics in the opening credits and throughout
the game. Fixes using the mouse to walk to room edges.
2024-01-24 12:48:51 -08:00
sluicebox
c0433ab956 AGI: Remove unused unload code 2024-01-22 17:32:45 -07:00
sluicebox
6ef496532e AGI: Use parameter names in function declarations 2024-01-22 17:32:45 -07:00
sluicebox
a5656b43fe AGI: Detect V3 volume format in V2 games
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
2024-01-16 10:11:13 -07:00
sluicebox
560d09f314 AGI: Remove unused function declarations 2024-01-01 21:59:20 -08:00
Le Philousophe
3457d49fd5 AGI: Migrate engine to Path 2023-12-24 13:19:25 +01:00
Eugene Sandulenko
ec2dd2726b ENGINES: Added optional parameter to canSave/LoadGameStateCurrently() for indicating the reason 2023-12-08 12:21:16 +01:00
Eugene Sandulenko
edc170c63d
AGI: Reduce header dependency 2023-02-23 14:39:10 +01:00
Daniel Abramowitz
65aba03517 AGI: Write log() Function to File
Now the log() function writes to a file, as
the AGI engine did.

It appears that ScummVM doesn't have any "append" functionality.
As a result, I made this implementation create a new file each time
a message is logged. Note that the file is only created if the
log() function is called. The file name includes the game name
and the current time, ensuring that logs won't be overwritten.

The format is: agi.<gameid>.<currentime>.log and will be logged to
the working directory.

Last week I first implemented the log() function. In that commit
I just had it log to the console. In this commit we start
writing to a file.
2022-10-16 21:52:21 +02:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01: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
D G Turner
a0326ecd1c AGI: Modify Volume to use ScummVM GUI as maximum range for Script Volume
This change simplifies the AGI engine volume handling by using the music
and sound fx volumes set in the ScummVM GUI as the maximum levels which
can be set by the scripts. This avoids the complexity of synchronising
changes between these and the scripts (which only had a single 16 step
volume range which is inverted in meaning by quite a large number of
fangames).

This still allows the game scripts to adjust the volumes, but only within
the maximum range set in the Launcher / GMM.

This avoids issues such as https://bugs.scummvm.org/ticket/10732 where
users complained about extremely loud output in some cases.
2021-07-15 14:43:30 +02:00
Zvika Haramaty
5a93dc2275 AGI: Add Hebrew support 2021-03-14 18:52:36 +01:00
aryanrawlani28
a56dc094b9 ENGINES: ALL: Move detection_enums -> detection.h
- Cleans up headers quite a bit.
2020-10-03 14:56:36 +02:00