Commit Graph

1535 Commits

Author SHA1 Message Date
Hubert Maier
cda135cff0 JANITORIAL: Fix intrument typo in sound_midi.cpp 2024-07-03 11:09:22 +03:00
Hubert Maier
89a1aafb75 JANITORIAL: Fix didnt typo in saveload.cpp 2024-07-03 11:09:22 +03:00
Hubert Maier
4906420455 JANITORIAL: Fix succeded and bizzare typos in op_cmd.cpp 2024-07-03 11:09:22 +03:00
Cameron Cawley
441b02d057 DETECTION: Use uint32 for ADGameFileDescription file size 2024-06-30 19:13:41 +02:00
Le Philousophe
7e0048b4a3 ENGINES: Add ADDynamicGameDescription class
This class manages a buffer where all data usually stored in detection
plugin will get copied before unloading the plugin and starting the
game.

This class expects that two functions are present in every
GameDescription: sizeBuffer which calculates how many bytes we will need
to store the entry in RAM and toBuffer which copies the data in the
buffer and fix the pointers in the class.
At the end, it is expected that an ADDynamicGameDescription doesn't
depend anymore on data stored in the detection plugin.

The AD_GAME_DESCRIPTION_HELPERS macro allow to implement these functions
in all GameDescription which don't have any pointer except those in
ADGameDescription.
2024-06-30 18:39:06 +02:00
Le Philousophe
b61bd3ff85 ENGINES: Create a type aware advanced meta engine 2024-06-30 18:39:06 +02:00
Le Philousophe
90b886097f ENGINES: Create a type aware advanced detector 2024-06-30 18:39:06 +02:00
Marco Borrini
2e27d4e958 AGI: Adds updated versions for "Enclosure" and "Voodoo Girl" 2024-05-23 20:27:30 -07:00
Torbjörn Andersson
c78780bca0 AGI: Clarified text delay comment at m-kiewitz's request 2024-05-14 20:25:48 +02:00
Torbjörn Andersson
da8e500bd7 AGI: Fix duration of timed text boxes
The messageBox() function assumed 20 cycles per second, but that was
changed to 40 cycles per second years ago. This made the King's Quest
III intro hard to read. There are probably other cases as well, but
that's the one that was asked about on the forum.
2024-05-13 18:43:35 +02:00
sluicebox
19165baa6b AGI: Fix view decoding regression
Another of my blunders from f4201eeda8

Thanks to m-kiewitz for spotting this
2024-05-13 09:04:07 -07:00
sluicebox
ada17669dc AGI: Misc init cleanup 2024-04-15 18:23:47 -07:00
sluicebox
b04f59b464 AGI: Add Flag Quest version check workaround
Fixes bug #15060
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
935b538bb7 AGI: Fix view decoding regression
Fixes bug #15059

Introduced during my refactor last month:
f4201eeda8
2024-04-10 15:20:00 -07:00
Filippos Karapetis
b9ea8f6d9b AGI: Remove obsolete info about game menus
The forced menus feature has been removed a long time ago
2024-04-01 09:30:31 +03:00
sluicebox
c5995d64e7 AGI: Refactor away agiDetectGame 2024-03-21 07:37:27 -07:00
sluicebox
9795144183 AGI: Implement motion/cycler overwrite behavior
- Fixes Black Cauldron witches not disappearing at end of game
- Properly fixes Donald Duck's Playground intro, bug #14170
- Continues to fix KQ1 eagle jump, bug #7046

Big thanks to @AGKorson for providing detailed information on this
interpreter behavior, script analysis, and maintaining excellent
AGI documentation in WinAGI.

See also:
8a595e7771
5484f0bc58
cc7cbfe626
2024-03-21 10:02:02 +02:00
catrplr
d83100c97e AGI: Review all the games in the website and Add new ones 2024-03-15 09:19:50 -07:00
Matthew Jimenez
5219c99400 GRAPHICS: Move PaletteManager definition to a separate header 2024-03-12 12:24:00 +02: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
942303bbc6 AGI: Fix KQ3 infinite falling
Fixes bug #13379
2024-03-09 09:07:59 -07:00
sluicebox
d6c220896e AGI: Misc cleaup 2024-03-09 09:07:59 -07:00
sluicebox
065d049008 AGI: op_cmd cleanup 2024-03-09 09:07:59 -07:00
sluicebox
aabb7b4c30 AGI: Bool usage 2024-03-09 09:07:59 -07:00
sluicebox
c3325f25bd AGI: Console cleanup 2024-03-09 09:07:59 -07:00
sluicebox
ee5a70598e AGI: Fix LSL1 shoplifting bug
Fixes bug #13137
2024-03-07 16:12:55 -07:00
sluicebox
3d2783c074 AGI: Fix KQ1 ego direction after bowing to king
Fixes bug #7045
2024-03-06 23:32:13 -07:00
sluicebox
198e28bdd9 AGI: Add WINNIE error checking when playing sound
Fixes crash that occurs when attempting to play the wind (sound 10)

Bug #14454
2024-03-06 14:24:10 -07:00
sluicebox
30bfbecc1f AGI: Fix KQ3 Rosella staircase bug
Fixes bug #11996
2024-03-06 11:21:46 -07:00
sluicebox
c1248bb971 AGI: Remove unused StringData 2024-03-06 09:30:57 -07:00
sluicebox
7e382256ac AGI: Fix uninitialized WagProperty pointer
Coverity CID 1435881
2024-03-06 09:29:08 -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
cc7cbfe626 AGI: Exclude DDP from motion/loop workaround
Fixes Donald Duck's Playground introduction, bug #14170
2024-03-04 16:13:40 -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
sluicebox
1fa0250e04 AGI: Fix Manhunter 2 detection entry 2024-03-01 00:56:13 -07:00
antoniou79
9828447be4 AGI: Fix missing words from our dictionary
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.
2024-02-29 19:29:11 -07:00
sluicebox
858be3a931 AGI: Update V1 opcode table 2024-02-17 15:44:09 -05:00
sluicebox
03e26a507a AGI: Update detection tables
- Mixed-Up Mother Goose (Mac)
- Police Quest 1 (PC 720k) 2.0E
- Manhunter NY (PC 3.5") 1.22 variant
- Clarifications, sorting
2024-02-17 15:44:09 -05:00
sluicebox
89723ae889 AGI: Move SQ2 Apple IIgs unknown opcode handling 2024-01-30 13:22:44 -08:00
sluicebox
a8145c5930 AGI: Cleanup op_cmd.cpp 2024-01-30 13:22:44 -08:00
sluicebox
96fa848264 AGI: Handle compressed V3 volumes in V2 games (CoCo3)
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!
2024-01-28 10:39:18 -08:00
sluicebox
76c894acdc AGI: Document CoCo3 games in detection table 2024-01-28 10:37:00 -08: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
0c06708053 AGI: Fix opcode table version detection
- 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)
2024-01-26 13:34:53 -08: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