Commit Graph
34 Commits
Author SHA1 Message Date
Filippos Karapetis 3f1323de73 DGDS: Simplify usage of strcmp() 2025-03-10 18:53:23 +02:00
Filippos Karapetis d8eb52a2cb DGDS: Clean up includes 2025-03-10 18:53:20 +02:00
Matthew Duggan d4948067e6 DGDS: Use Willy Beamish FDD MT32 patches in CD version
Unfortunately, the CD version never offically supported MT-32 for SFX and music
because the voice acting needed a Sound Blaster.  This means it was shipped
with corrupted MT-32 patches for the SFX.

The GOG version of the game comes with both CD and FDD data together, so add
the ability to load MT-32 patch information out of the FDD version if it's also
present.
2025-03-02 16:08:34 +11:00
Matthew Duggan 36d75b8abe DGDS: Also report patch resources as available
Local files can be opened by the resource manager, so we can say they are
available so various checks will pass.
2024-12-24 14:08:42 +11:00
Matthew Duggan 1a374b66aa DGDS: Start to implement Willy Beamish CD version heads
Still quite broken but making some progress.
2024-12-16 18:23:29 +11:00
Matthew Duggan ff57bb851b DGDS: Add CDS:TT3 data to packed data list 2024-11-22 21:13:06 +11:00
Filippos Karapetis 94403bd3a9 DGDS: Raise debuglevel of all debug statements to at least 1
This reduces the chatty debug output, which isn't of any use to
regular users
2024-11-16 18:44:46 +02:00
Matthew Duggan c36e77d6a3 DGDS: EGA and HCG data should be treated as compressed
This makes no difference to gameplay becasue we do not directly load from the
SDS.OVL file that contains these blocks, but adding for correctness and to help
with debugging.
2024-11-10 12:56:09 +11:00
Matthew Duggan f55d37d353 DGDS: Initialize all members of object. PVS-Studio V730 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
Matthew Duggan cf9bde35b6 DGDS: Better message for 'missing' beamish sound data 2024-10-04 17:02:15 +10:00
Matthew Duggan eeecc8dc5b DGDS: Add various heart of china features
Most dialogs now render correctly and the game is partly playable.  Still a
bunch of work to do for inventory and menus to render correctly.

Added loading for TDS (talking head) data structures too, but they are not yet
used.
2024-07-07 16:15:30 +10:00
Matthew Duggan b2fa3fea3b DGDS: Update to GPL3 to match the rest of ScummVM 2024-07-02 09:59:59 +10:00
Matthew Duggan bff438cbe9 DGDS: Small fixes for beamish CD version
Now plays most of the intro with some issues.
2024-07-02 09:39:41 +10:00
Matthew Duggan 5f63c5b1af DGDS: Fix parsing for Willy Beamish
The game now starts to play the intro.  Still a few new unknown values in the
various structures.
2024-06-30 22:49:18 +03:00
Matthew Duggan bed15d2533 DGDS: Whitespace fixes 2024-06-30 22:49:18 +03:00
Matthew Duggan 04f97efdcd DGDS: Avoid crashing on Dragon EGA 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 dddb5097cf DGDS: Add sq5 demo detection 2024-06-30 22:49:18 +03:00
Filippos Karapetis 925290ff9e DGDS: Silence some noisy debug console output
This helps to read the running script output a bit better
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 7576860102 DGDS: Add debug command to dump bitmap frames 2024-06-30 22:49:18 +03:00
Filippos Karapetis da940c29ae DGDS: Refactored the last parts of the file parser
- Moved scene loading in the GDSScene and SDSScene classes
- Removed all the parseFile() functions
- Removed the Amiga file handlers, as they were very early guesswork
- Kept some semi-implemented file handlers as a reference, for now
- Removed the file dump code - we got debugger functions for that use
- Removed isFlatFile() - it's no longer used
2024-06-30 22:49:18 +03:00
Matthew Duggan 1c281ed585 DGDS: Fix Request and Gadget object parsing
REQ files are now correctly parsed (although Gadget names are skipped)
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 6d1af43454 DGDS: Remove unused functions 2024-06-30 22:49:18 +03:00
Filippos Karapetis 79e6981671 DGDS: Split Amiga chunk handling into a separate function 2024-06-30 22:49:18 +03:00
Filippos Karapetis 2d922448fb DGDS: Encapsulate compression logic inside the Decompressor class 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