1272 Commits

Author SHA1 Message Date
Paul Gilbert
96227666df M4: RIDDLE: Finished room 301 parser 2024-07-24 21:59:36 -07:00
Paul Gilbert
67e81ce4b5 M4: RIDDLE: In progress room 301 parser 2024-07-24 21:59:36 -07:00
Paul Gilbert
ebbb8b79f9 M4: RIDDLE: Room 301 init code 2024-07-24 21:59:36 -07:00
sluicebox
c625237baf M4: Fix memory leaks
CID 1551734
CID 1551676
2024-07-19 23:33:20 -07: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
D G Turner
bc6d5c1cf6 M4: Fix Unused Variable GCC Compiler Warning 2024-05-26 18:38:58 +01:00
Paul Gilbert
42bdadaed6 M4: Endian fix for script interpreter. Demo now gets in-game on BE systems 2024-05-25 19:50:03 -07:00
Paul Gilbert
38cd2e1cc6 M4: Endian fix for cutscene palettes 2024-05-25 16:44:24 -07:00
Paul Gilbert
32f3bfea6c M4: More endian fixes 2024-05-25 12:17:39 -07:00
Paul Gilbert
2a5ffabb74 M4: Further endian fixes 2024-05-24 20:31:48 -07:00
Paul Gilbert
fa5bb0d589 M4: Further endian fixes 2024-05-23 21:59:04 -07:00
Paul Gilbert
2225f85548 M4: Fix endian issue in sprite loading 2024-05-23 20:54:05 -07:00
Paul Gilbert
9cf11cab19 M4: Fix endian issue in wscript cruncher 2024-05-23 20:38:06 -07:00
Cameron Cawley
07eb96f54d
M4: Mark engine as highres 2024-04-23 15:56:36 +01:00
Paul Gilbert
52949d9333 M4: Fix doubling of bork sounds on gizmo 2024-03-24 12:34:33 -07:00
Paul Gilbert
0caa1711db M4: Added syncSoundSettings method 2024-03-13 20:17:48 -07:00
Matthew Jimenez
5219c99400 GRAPHICS: Move PaletteManager definition to a separate header 2024-03-12 12:24:00 +02:00
Paul Gilbert
d51787e9e4 M4: Support intro & gallery for German demo 2024-03-06 08:03:20 -08:00
Paul Gilbert
e4cafb4eff M4: Fix Flumix talk animation incorrectly appearing in endgame sequence 2024-03-03 13:50:11 -08:00
antoniou79
bcaad3dc6b M4: ORIONBURGER: Magnet should vibrate while motor is running 2024-02-25 09:17:27 -08:00
D G Turner
431fe2047e M4: Fix Duplicate Declaration GCC Compiler Warning 2024-02-25 15:39:44 +00:00
Paul Gilbert
f36f388791 M4: Added console command to set boonsville time for triggering events 2024-02-24 12:05:22 -08:00
Paul Gilbert
41d87f2178 M4: Cleanup of dead machine code, deleting of dead machines between scenes 2024-02-24 12:05:22 -08:00
antoniou79
a6929c4882 M4: Attempt to workaround double free() issue
In some cases the engine may access unallocate space or do a double free_mem on an "machine" object

This can happen when a script "machine"'s step triggers a callback that can result to killing the machine itself (via terminateMachineAndNull()) and free its allocated space via a different pointer, but the code in the machine's step continues to try and access the machine's now unallocated space with its original pointer.

This can be observed by running valgrind with scummvm on Linux. Otherwise crashes may occur in Linux and mingw-w64 release mode builds.

An example case is when Wilbur runs on the hamster wheel on the bottom level of the gerbil case (room602).

The proposed solution here is a workaround, based on valgrind's output, and probably does a poor job of cleaning "machine" memory that's no longer used.
More knowledge on the engine's workings is required for a proper and more efficient fix.

The workaround skips full deallocation of a machine object (in the shutdownMachine()), until the ws_KillMachines() is called. The machID field value of 0xdeaddead is used to skip the machine (which remains in the chain). A more efficient fix could do a full deallocation of a machine object earlier (and remove it from the chain like the previous code did), thus avoiding cluttering of the machine's chain.
2024-02-24 12:05:22 -08:00
Paul Gilbert
b5e47c8237 M4: Fix crashes opening dialogs from original game dialog 2024-02-24 11:09:59 -08:00
Paul Gilbert
fa10facb6e M4: Add syncSoundSettings to engine initialization 2024-02-24 11:09:59 -08:00
Paul Gilbert
4f61f5af6d M4: Fix for barber conversation 2024-02-23 21:54:04 -08:00
antoniou79
9d589e2e8e M4: ORIONBURGER: DEMO: Cliking on teleporter icon leads to main menu
Testing with the original interactive Demo (via DosBox) verifies clicking on that icon leads to main menu
2024-02-23 20:54:27 -08:00
antoniou79
94a80f4a35 M4: ORIONBURGER: Fix chute navigation for test 2
When gerbils are asleep Wilbur should be able to use the chute in the top right of the middle floor to go up or down

Also the chute in the middle of floor of the middle floor should lead to Wilbur fallin from the ceiling of the bottom cage floor.
2024-02-23 20:51:43 -08:00
antoniou79
929e755078 M4: ORIONBURGER: Fix shooting the waterdish in room 603
The hole in the dish should persist and Wilbur should say "hmm" the first time, instead of "I've already zapped a hole in it".
2024-02-23 20:49:41 -08:00
antoniou79
636f688e1d M4: ORIONBURGER: Fix softlock when shooting the kibble in Room 602 2024-02-23 20:49:11 -08:00
antoniou79
34493ca7ec M4: ORIONBURGER: Fix shooting the door in room 602
This was resulting in segmentation fault (or animation repeating loop)
2024-02-23 20:46:49 -08:00
antoniou79
a9e9ee50a8 M4: ORIONBURGER: Fix door open misaligned in room 602
After the cage door opens with the alien hand controlled motor, revisiting the room 602 would show the door misaligned to the left.

Revisiting as in leave the room from the chute (go up one floor) and then return to the bottom floor.
2024-02-23 20:45:51 -08:00
antoniou79
a92d98d6f2 M4: ORIONBURGER: Keep Magnet vibrating when revisiting 602
If the wheel motor is running with the alien hand, then revisiting the 602 room should also show the magnet vibating

This could be an "original" bug / missed detail, since the magnet is not vibrating in this case in the demo.
2024-02-23 20:43:02 -08:00
antoniou79
6992ddc37b M4: ORIONBURGER: Fix sound for running motor wheel
The sound sound have a part of accelerating and then a looping part of running

Currently it kept repeating the first part.
2024-02-23 20:42:13 -08:00
Paul Gilbert
b15187d39c M4: Field rename in room 602 2024-02-23 20:42:13 -08:00
antoniou79
352de074e2 M4: ORIONBURGER: Stop Wilbur repeating his line when exiting
When finally exiting the cage, Wilbur currently would repeat his "I'm sorry it had to come to this..." cue.
2024-02-23 20:42:13 -08:00
antoniou79
054fda8f7b M4: ORIONBURGER: Fix Wilbur throwing Kibble at wood shavings
This would crash in the demo and also had some repeating animation issues

The fix includes:
- skipping Wilbur's quote which is missing in the demo (using a new play series "PLAY10Demo").
   I can only test in demo, but I'm assuming the spoken quote exists in the full version.
- fix repeating the animation of throwing the kibble (this seems to have been a typing / copy-paste error)
- Removing the kibble from Wilbur's inventory after he throws it (this is an "original" bug since it's not removed in the demo).
- Waking up the Gerbils, after Wilbur throws the kibble at the wood shavings (this is the behavior in the demo).
2024-02-23 20:42:13 -08:00
Paul Gilbert
5d93a675b1 M4: Fix opening save/load dialogs from original options dialog 2024-02-22 22:07:34 -08:00
Paul Gilbert
bf1b150ecd M4: Cleanup and animation fix for test 1 2024-02-22 21:34:07 -08:00
Paul Gilbert
4a2ed4fb17 M4: Added German demo detection entry 2024-02-22 20:23:47 -08:00
Paul Gilbert
d0f0866590 M4: Fixes for shooting woodchips in test 2 2024-02-22 20:13:17 -08:00
Paul Gilbert
06e9351bd2 M4: Failing test in demo immediately restarts it 2024-02-22 19:05:07 -08:00
Paul Gilbert
974f0d2319 M4: Cleanup of room 604 fields and constants 2024-02-21 21:44:54 -08:00
Paul Gilbert
87ec0e0b40 M4: Fix softlock for savegames done when satelitte dish moved 2024-02-21 19:31:25 -08:00
Paul Gilbert
0fb8f50759 M4: Fix softlock talking to Burl while he's eating 2024-02-21 18:35:40 -08:00
Paul Gilbert
4bd1803cdc M4: Fix chair shadow in room 171 2024-02-21 18:19:04 -08:00
Paul Gilbert
56bde4e5cf M4: Fix Main Menu button in classic options dialog 2024-02-20 22:03:28 -08:00