Commit Graph
626 Commits
Author SHA1 Message Date
athrxx 319e50fc35 SCUMM: (LOOM/VGA Talkie) - improve verb handling
- get rid of weird hackery in o5_verbOps
- make sure the verbs are properly restored after loading a savegame
2022-08-10 15:27:23 +02:00
AndywinXp 122ce598e8 SCUMM: Clean-up default value registration for original_gui 2022-08-06 23:33:10 +02:00
AndywinXp e7f2c71c66 SCUMM: Set a default value for original_gui in the Config Manager if absent 2022-08-06 20:24:11 +02:00
athrxx cf318372e7 SCUMM: (v5/6/EGA) - improve post-load fix
MI1 CD, MI2 and DOTT make script-based color adjustments to the verb interface, depending on the videomode var...

MI1 VGA Floppy, LOOM VGA, INDY4 and SAMNMAX don't do that. It seems to me that it only  applies to the games with the purple verbs interfaces. The fact alone that DOTT still checks the videomode for an EGA setting  and sets colors accordingly (the same ones as in MI2) shows that these scripts most likely were just brought over from MI2 to MI1 CD and DOTT.
2022-08-06 18:46:48 +02:00
AndywinXp a952852d8c SCUMM: Properly sync options between original and ScummVM GUIs
This also changes the talk delay to be the inverse value (which means the text speed),
like for the original games. This particular change has been tested to be working on all
SCUMM games in my possession, so we should not have any regressions and it accounts
for work already done for future original GUIs.
2022-08-06 13:33:56 +02:00
AndywinXp 1d6cfd62b8 SCUMM: COMI: Deactivate frame limiter on the menu
The original appears to do this in its own way; we do it in a simpler fashion.
As a bonus, the original menu controls do not feel like molasses.
2022-08-06 13:33:56 +02:00
AndywinXp 2c9d7fd2ee SCUMM: COMI: Change how blastObject rects are restored for v8
This fixes the last remaining graphical glitches pertaining the original GUI
2022-08-06 13:33:56 +02:00
AndywinXp a4fd38b894 SCUMM: v7: Amend checkExecVerbs() being called earlier
While that was the correct place to call the function as per the disasm, it currently
breaks the screenShake effect, so unless a good reason to do a proper refactor
comes along, let's just bring things the way they were before for v7.
2022-08-06 13:33:56 +02:00
AndywinXp ced78b19d5 SCUMM: COMI: Fix some more text/GUI rendering glitches 2022-08-06 13:33:56 +02:00
AndywinXp 6ee5f03ffa SCUMM: v7-8: Fix correct moment to call checkExecVerbs()
Also, remove 20 years old workarounds because of this
2022-08-06 13:33:56 +02:00
AndywinXp cb0e7cee16 SCUMM: Fix compilation without v7-8 enabled 2022-08-06 13:33:56 +02:00
AndywinXp f9010ca824 SCUMM: COMI: Fix original GUI glitches with blastTexts and blastObjects 2022-08-06 13:33:56 +02:00
AndywinXp 22f00bc16e SCUMM: Remove very old obsolete workaround 2022-08-06 13:33:56 +02:00
AndywinXp a14f897bc4 SCUMM: Move high-level GUI handling to gfx_gui.cpp 2022-08-06 13:33:56 +02:00
AndywinXp da69dec129 SCUMM: COMI: Fix original GUI savegames on ScummVM loading from launcher 2022-08-06 13:33:56 +02:00
AndywinXp bce4020ec1 SCUMM: COMI: Insert missing updatePalette() call 2022-08-06 13:33:56 +02:00
AndywinXp 36efab0a73 SCUMM: COMI (Demo): Fix banner height handling 2022-08-06 13:33:56 +02:00
AndywinXp fb2fcbf30e SCUMM: COMI: Implement savegame thumbnails 2022-08-06 13:33:56 +02:00
AndywinXp 52bb4dd739 SCUMM: Fix comment and private member names 2022-08-06 13:33:56 +02:00
AndywinXp e43d40e344 SCUMM: Add original GUI support for COMI Demo
Where "support" means "it shows most of the original banners and it doesn't crash" :-)
2022-08-06 13:33:56 +02:00
AndywinXp 51d0b8ef06 SCUMM: COMI: Implement iMUSE buffer toggle GUI banner 2022-08-06 13:33:56 +02:00
AndywinXp c4d0e3b80a SCUMM: COMI: Fix mishandling of cursor state in GUI 2022-08-06 13:33:56 +02:00
AndywinXp 811548dc05 SCUMM: COMI: Use _screenTop when marking rects as dirty 2022-08-06 13:33:56 +02:00
AndywinXp fabaeb4b83 SCUMM: COMI: Implement original GUI 2022-08-06 13:33:56 +02:00
AndywinXp 7e4d844969 SCUMM: DETECTION: Add an option for activating the original GUI 2022-08-06 13:33:56 +02:00
AndywinXp 1e9d51c28a SCUMM: COMI: Implement the original main menu
Every functionality has been implemented (audio options, text options, saving and loading).
The only thing currently missing from the menu is the thumbnail handling.
2022-08-06 13:33:56 +02:00
athrxx 85a191de2b SCUMM: (v6/EGA) - improved mouse cursor handling and some other fixes
The mouse cursors get dithered correctly now and due to earlier fixes SAMNMAX seems to be in as good a state as DOTT regarding EGA dithering mode, so I enable it. Also added a post-load fix for the palette and the mouse cursors.
2022-07-31 23:57:15 +02:00
Donovan Watteau 3927fd8ef1 SCUMM: Fix DISABLE_TOWNS_DUAL_LAYER_MODE builds 2022-07-30 13:47:07 +02:00
athrxx 9c3b176632 SCUMM: (MI1/FM-Towns) - clear text surface when restarting with F8
All other FM-Towns titles do this in initScreens(). I don't remember why I did it like this for MI1 , but now it doesn't glitch on restart any more...
2022-07-29 16:23:25 +02:00
athrxx 9ca9be789c SCUMM: implement EGA dithering mode
(for certain VGA titles)

I've included some titles that do not support this in the original, but e. g. DOTT will require some more fixes for glitches.
2022-07-29 16:23:24 +02:00
athrxx 4230a882b0 SCUMM: (V4/EGA/CGA) - improve post-load fixes
Also include room palette fixes for games that were saved with a different video mode. Unfortunately the scripts make changes to the room palette based on VAR_VIDEOMODE. The original interpreter does not fix that.
2022-07-23 23:17:46 +02:00
athrxx 33c2631290 SCUMM: (V2) - improve CGA and Hercules modes
Should be pixel-perfect now.
This change is only about SCUMM2 (ZAK/MM).
2022-07-15 15:40:16 +02:00
athrxx f28300f27f SCUMM: (V1) - add support for CGA black & white 2022-07-11 18:16:29 +02:00
athrxx 97fbe867cb SCUMM: (MMv1/ZAKv1) - add support for CGA, CGA Composite and Hercules modes
This does not improve anything about these modes for v2 and v3, except:
- brighter CGA colors
- v2 will also get the more accurate Hercules mouse cursor

I will do improve v2/v3 as separate tasks. v3 seems to be mostly fine, anyway, except for the actors (we dither them just like the backgrounds, but that looks different in DOSBox).
2022-07-10 01:04:38 +02:00
YYxsCnnPP 088115f468 SCUMM: Implement dedicated option for hifi audio 2022-06-28 19:13:51 +03:00
athrxx e63fcdf8fa SCUMM: fix formatting
(apparently broken by some auto-formatting)
2022-06-05 23:17:28 +02:00
athrxx d01fe831af SCUMM: (INDY3/4) - fix IQ points updating when loading from the launcher 2022-06-05 23:17:28 +02:00
athrxx 45cdc8ab07 SCUMM: (v1-3) - move load post processing to extra function 2022-06-05 23:17:28 +02:00
athrxx dfe6082a12 SCUMM: (v1-3) - fix sound recovery when loading savegames
Prevent "stuttering" from starting the music multiple times (which may now happen due to the improved savegame loading for v1-3).

Also add some more tweaks to minimize stuttering, like setting volume to 0 during loading.

The result now seems to match what I get when using an emulator.
2022-06-05 23:17:28 +02:00
athrxx ed8e1c4870 SCUMM: (v1-3) - imitate original style savegame loading
Similar to what has been added for Loom, this tries to emulate the original (script driven) loading behavior for the rest of the v1-3 games.

This fixes bugs like the music not being restarted properly when loading a game (happens in MM and ZAK).

https://bugs.scummvm.org/ticket/4494 will not be fixed, though, since I don't support Mac with this fix.

The Mac games work differently, they don't have a save/load room but these Mac style menus instead. Someone would have to do examine the save scripts for these...
2022-06-05 23:17:28 +02:00
AndywinXp 612f453f1b SCUMM: LOOM: Fix game and music timers for the Steam variant 2022-05-22 23:27:40 +02:00
AndywinXp 015e37a003 SCUMM: Fix VAR_TIMER and VAR_TIMER_NEXT assignment
Unless a slow host machine was used, the previous calculation always yielded 0.
Also, by disasms, those two timers should be assigned exactly in the same way as VAR_TMR_1, 2 and 3.
2022-05-22 22:08:44 +02:00
Torbjörn Andersson 09432c45d0 SCUMM: Initialize _lastWaitTime 2022-05-22 13:06:43 +02:00
Torbjörn Andersson 9c455472eb SCUMM: Fix regression in the replacement music timer
The replacement music timer operates on real time, and is adjusted for
the expected length of the Loom overture in order to accommodate for
different recordings of it. It's completely independent of the SCUMM
engine's timer frequency.
2022-05-22 12:07:21 +02:00
AndywinXp ebb3f2a842 SCUMM: Implement Amiga timings 2022-05-21 22:44:01 +03:00
Andrea Boscarino e42ad88690 SCUMM: Implement original CD Audio timing handling 2022-05-21 22:44:01 +03:00
Andrea Boscarino 6bc2df1709 SCUMM: Correctly notify the music timer of the current ticks 2022-05-21 22:44:01 +03:00
Andrea Boscarino 9cf60930b9 SCUMM: Fix the timings update for the script variable
This fixes music/game sync issues at the end of DOTT intro (before the main theme)
2022-05-21 22:44:01 +03:00
Andrea Boscarino caae9399f5 SCUMM: Add PIT behavior for ZAK v1 2022-05-21 22:44:01 +03:00
Andrea Boscarino 95894ae9fe SCUMM: Implement accurate PIT timings for DOS versions 2022-05-21 22:44:01 +03:00