Commit Graph
28 Commits
Author SHA1 Message Date
Matthew Duggan 53c1621408 DGDS: Finally really actually fix ADS exeuction order
The underlying issue was that we tracked used sequences for each ADS segment
using sequence pointers, but the 0x4000 and 0x4010 ADS opcodes re-arranged the
array of sequences.  Because arrays don't get re-allocated much this by chance
left the usage pointers valid but now pointing to the wrong sequence, so the
correct sequences were not started and stopped after a re-order operation.

Replaced the array of sequence objects and the used sequence tracker with
shared pointers so we can reorder the sequences without breaking the usage
pointers.

The tap and coat rendering in RotD now both work right and so does the
bar scroll in HoC.
2024-11-03 08:36:25 +11:00
Matthew Duggan fbfee0d0cc DGDS: Fix duplicate case statements. PVS-Studio V1037 2024-10-29 17:51:58 +11:00
Matthew Duggan d51aa872b6 DGDS: Integrate SCI midi player code
DGDS basically uses the same midi and patch code as SCI.  This change copies
the midi driver out of SCI.  It now mostly works, but there is still an
instrument mismatch to fix out with SFX.
2024-10-21 15:27:15 +11:00
Filippos Karapetis e782adb3fb DGDS: Add the "trigger" console command 2024-07-17 23:29:26 +03:00
Matthew Duggan e20d66ffed DGDS: Fix small issues identified by Coverity 2024-07-15 17:09:42 +10:00
BLooperZ df54c6be6c DGDS: Dump script from debug console 2024-07-14 21:46:08 +03:00
Filippos Karapetis 0a9a66111b DGDS: Add the "scene" command to the debugger 2024-07-10 00:44:13 +03:00
Filippos Karapetis 34b9afb6db DGDS: Add "global" command to console, to debug globals 2024-07-07 14:22:19 +03:00
Matthew Duggan b2fa3fea3b DGDS: Update to GPL3 to match the rest of ScummVM 2024-07-02 09:59:59 +10:00
Matthew Duggan bed15d2533 DGDS: Whitespace fixes 2024-06-30 22:49:18 +03:00
Matthew Duggan 15f8a90b31 DGDS: Refactor to split into smaller files
Split TTM and ADS logic into their own files, and separate palette management
from image loading.

Also refactor scene types a bit to be more objecty.
2024-06-30 22:49:18 +03:00
Matthew Duggan 87666a29ed DGDS: Add debug command to dump all frames of bmp 2024-06-30 22:49:18 +03:00
Matthew Duggan 48ce6e938b DGDS: Fix some drag-drop, dialog, and resource loading issues 2024-06-30 22:49:18 +03:00
Matthew Duggan 487586681f DGDS: Fix compile with new palette 2024-06-30 22:49:18 +03:00
Matthew Duggan dc4b2bce3f DGDS: Load all frames of an image at once
This allows us to be more accurate to the original and more efficient.
2024-06-30 22:49:18 +03:00
Matthew Duggan 247b1750f7 DGDS: More ADS improvements 2024-06-30 22:49:18 +03:00
Matthew Duggan b3e7422bc0 DGDS: Implement multi-palette management and fades 2024-06-30 22:49:18 +03:00
Matthew Duggan 650062dcc7 DGDS: Fix some compile warnings 2024-06-30 22:49:18 +03:00
Matthew Duggan 78f23ed1c8 DGDS: Use default mouse cursor from icons file 2024-06-30 22:49:18 +03:00
Matthew Duggan 7576860102 DGDS: Add debug command to dump bitmap frames 2024-06-30 22:49:18 +03:00
Matthew Duggan 3d54a567cf DGDS: Enhance filedump console command 2024-06-30 22:49:18 +03:00
Matthew Duggan 6f1df860d9 DGDS: Fix decompressor usage 2024-06-30 22:49:18 +03:00
Matthew Duggan b13a34d7a0 DGDS: Add REQ file parsing and refactor parsing a bit overall 2024-06-30 22:49:18 +03:00
Filippos Karapetis 9383f1f827 DGDS: Added a wrapper to read resource streams
This simplifies reading from resource files, and allows us to
encapsulate some of the resource file loading logic inside
the DgdsChunk class
2024-06-30 22:49:18 +03:00
Matthew Duggan ed1062d63e DGDS: Implement full SDS (Scene data) parsing
Still a lot of unnkown data being read, but at least we now have proper
dialogue parsing so a bunch of hacks can be removed.
2024-06-30 22:49:18 +03:00
Matthew Duggan b813fbd719 DGDS: Refactors and cleanups to remove globals. 2024-06-30 22:49:18 +03:00
Matthew Duggan 348c6aca5a DGDS: Update and rebase engine
* Added VQT image parsing for DOS games.
* Refactor slightly for better type and const correctness
* Re-enable sound for DOS games
2024-06-30 22:49:18 +03:00
Filippos Karapetis 3845931407 DGDS: Initial import
This is the initial import of the sources from vcosta's implementation.
Work has progressed on that base, so that it forms into an actual engine.
There has been heavy refactoring into classes, but there's still loads of
work to be done.

The status is almost the same the original vcosta's engine: it's possible
to play the intro Rise of the Dragon, and parts of the intro of Heart of
China and Willy Beamish. The DOS VQT images are still not decoded, so only
the Mac versions work for now - or the DOS versions with the Mac images
as patches
2024-06-30 22:49:18 +03:00