Commit Graph
58 Commits
Author SHA1 Message Date
Matthew Duggan a4b114a79b DGDS: Improve debug message on invalid image frame
This may help with debugging #15859.
2025-04-12 10:38:06 +10:00
Filippos Karapetis 169cdf4458 DGDS: Add missing default cases to switch statements 2025-03-10 18:53:22 +02:00
Filippos Karapetis d8eb52a2cb DGDS: Clean up includes 2025-03-10 18:53:20 +02:00
Matthew Duggan e26387ce5f DGDS: Improve Willy Beamish CD head animation 2025-03-02 08:02:31 +11:00
Matthew Duggan 4798df4598 DGDS: Small willy beamish sound fixes 2025-03-02 08:02:31 +11:00
Matthew Duggan 3d9ad76fd7 DGDS: Add starting point for loading Amiga images
Not working yet.
2025-03-02 08:02:31 +11:00
Filippos Karapetis 02011e8e0d DGDS: Fix warnings 2025-03-01 22:12:34 +02:00
Matthew Duggan e9f7727bda DGDS: Avoid drawing scroll bmp out of bounds
Fixes small glitches in Willy Beamish intro
2025-01-05 14:50:46 +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 ef64a5c814 DGDS: Implement HoC train mini game 2024-12-14 12:05:30 +11:00
Matthew Duggan 5a532801df DGDS: Ensure scroll image drawn correctly
For TTM op 0xA704, make sure we draw enough tiles and add assertions for array
access.  This shouldn't change any actual usage of the op in games but adds
some checks to be sure.
2024-11-23 14:14:25 +11:00
Donovan Watteau b16a773509 DGDS: Fix VQT image decoding on big-endian systems (Trac#15506)
GFX rendering issue on MorphOS reported by BeWorld2018, big-endian VQT
investigation of mine, and proper _doVqtDecode() fix from BLooperZ, thanks!
2024-11-19 09:43:27 +01: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 689adf855e DGDS: Add some safeguards on reading compressed data
We assumed that SCR data was always the same size as the screen resolution.
Probably true, but corrupted or unexpected data could easily overrun the
buffer.

Also check the return value from decompression and print a warning if the read
size was not as expected.
2024-11-10 10:54:11 +11:00
Filippos Karapetis 6552ec1bfb DGDS: Add support for Johnny Castaway's hires screen resolution
This does not affect existing lowres titles
2024-11-07 23:31:33 +02:00
Filippos Karapetis 65239032a5 DGDS: Replace numeric screen width/height values with defines 2024-11-07 22:13:52 +02:00
Matthew Duggan 6c85f2e091 DGDS: Check malloc return val. PVS-Studio V575 2024-10-29 17:51:58 +11:00
Matthew Duggan 53b24ac793 DGDS: Implement Willy Beamish scroll
Still not totally rendering correctly, but partly works (eg, scroll in
Principal's office at start of game)
2024-07-28 14:14:35 +10:00
Matthew Duggan c3d4e88406 DGDS: Fix image parsing slightly
Fixes issues in images from Heart of China and Willy Beamish
2024-07-03 18:53:19 +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 b486e15a61 DGDS: Support vertical flip properly on sprite draw
This fixes the Dynamix star in HoC and Beamish intros
2024-07-01 07:42:52 +10:00
Matthew Duggan a80ea4c525 DGDS: Implement more required features for Willy Beamish
Added ttm 'gosub' instruction and scaled blit support.
2024-06-30 22:49:18 +03:00
Matthew Duggan bed15d2533 DGDS: Whitespace fixes 2024-06-30 22:49:18 +03:00
Matthew Duggan 11c3480ffe DGDS: Fix a few small game interaction bugs 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 bbfd955b0e DGDS: Fix dropping wire clips on electrical board 2024-06-30 22:49:18 +03:00
Matthew Duggan 9c06c52e4f DGDS: Load/save background image name 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 0516a3e3ac DGDS: Mostly fix save/load of games 2024-06-30 22:49:18 +03:00
Matthew Duggan affe5bf0b8 DGDS: Add initial load/save code 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 272827e9d4 DGDS: support for multi-ads, inventory now sorta works 2024-06-30 22:49:18 +03:00
Matthew Duggan 01525c55b5 DGDS: Add code to draw game clock
Always on for now, but can be easily changed to turn on and off.
2024-06-30 22:49:18 +03:00
Matthew Duggan 9b7f8d9bf3 DGDS: Fix scene rendering a bit
The front and back buffers should only be combined after all scripts have
executed.
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 24ff433799 DGDS: Small tweaks to drawing ops 2024-06-30 22:49:18 +03:00
Matthew Duggan f0a45e2bd2 DGDS: Implement even more TT3 and ADS opcodes 2024-06-30 22:49:18 +03:00
Matthew Duggan 302331f071 DGDS: Implement some more ADS and TTM opcodes 2024-06-30 22:49:18 +03:00
Matthew Duggan be29343c7c DGDS: Add sfx as a separate thing from music 2024-06-30 22:49:18 +03:00
Matthew Duggan bbe68b84d7 DGDS: Fix ADS and TTM interpreters even more
The first part of the intro now runs again!  And now it's all running in the
way it's supposed to - script states are being controlled by scene ops as
designed, rather than just running through them in order.
2024-06-30 22:49:18 +03:00
Matthew Duggan 1c9ea68069 DGDS: More ADS fixes, now mostly working
ADS files now seem to basically execute correctly!  Now to move on to fixing
TTMs - currently screen updates are broken.
2024-06-30 22:49:18 +03:00
Matthew Duggan c72cca34e3 DGDS: ADS and TTM implementation
* Rename TTM objects to match original ideas of environment and sequence
* Implement more ADS stuff in line with original - states etc
* Implement sceneop 4 which changes ADS states

Currently this breaks everything (no scenes execute) but the implementation is
far closer to the original, so it's a necessary step to get to a correct
reimplementation.
2024-06-30 22:49:18 +03:00
Matthew Duggan 8ea13cb86c DGDS: Fix fades a bit - still not quite right. 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 8523a24e4b DGDS: Add loading of game icons (mouse cursors etc) 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 10debcef1e DGDS: Implement most of menu drawing 2024-06-30 22:49:18 +03:00
Matthew Duggan bf9f08824a DGDS: Add SCN format image parsing 2024-06-30 22:49:18 +03:00
Matthew Duggan af8e6da0b2 DGDS: Add detection for beamish FDD data
This comes inside the GOG CD edition but should work on its own as the CD seems
to be this plus extra voice data.

Also:
* Add a better error message when it inevitably crashes
* spaces->tabs in detection table
2024-06-30 22:49:18 +03:00
Matthew Duggan 6f1df860d9 DGDS: Fix decompressor usage 2024-06-30 22:49:18 +03:00