Commit Graph
157 Commits
Author SHA1 Message Date
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 555a519783 SCUMM: COMI: Improve accuracy for banner input handling 2022-08-06 13:33:56 +02:00
AndywinXp c9c4f8026b SCUMM: COMI: Improve handling of GUI during SMUSH videos
Also, remove prehistoric hack which is now apparently unneeded and
messed with the ability to pause audio during SMUSH cutscenes for the
demo.
2022-08-06 13:33:56 +02:00
AndywinXp b35bd37b0a SCUMM: Disable any GMM option key if the original GUI is in use 2022-08-06 13:33:56 +02:00
AndywinXp e1f0b5a25d SCUMM: COMI (non-demo): Disable + and - keys for original GUI 2022-08-06 13:33:56 +02:00
AndywinXp 1fc726787d SCUMM: COMI: Limit demo keys to demo only 2022-08-06 13:33:56 +02:00
AndywinXp dfa6a898cf SCUMM: COMI: Remove leftover from refactoring 2022-08-06 13:33:56 +02:00
AndywinXp a121b5773f SCUMM: COMI: Fix regression after processKeyboard() refactoring 2022-08-06 13:33:56 +02:00
AndywinXp f3702305ce SCUMM: COMI: Clean up input code 2022-08-06 13:33:56 +02:00
AndywinXp e78c671b45 SCUMM: Fix non-Windows compiling 2022-08-06 13:33:56 +02:00
AndywinXp 85d3c5f5ac SCUMM: COMI: Implement remaining banners for demo 2022-08-06 13:33:56 +02:00
AndywinXp b395a94beb SCUMM: COMI: Insert a workaround for mouse input in the main menu 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 6760cc1353 SCUMM: COMI: Implement banners for voiceMode toggle 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 fabaeb4b83 SCUMM: COMI: Implement 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 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 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
AndywinXp 0cd609395a SCUMM: Remove whitespace 2022-06-03 19:27:50 +02:00
Andrea Boscarino 38dd15c183 SCUMM: INPUT: Implement Enter and Tab substitution as Left and Right click
The original interpreters allowed the usage of the Enter key as a substitute for left mouse click, and the Tab key as a substitute for right click; while v7-8 games handle this substitution via scripts, we have to do this manually for the other games.
2022-05-26 23:02:51 +02:00
AndywinXp 691900c645 SCUMM: Enable snap scroll only for games which actually feature it
This also gets rid of a bug in which in MANIAC V1, the Edna trigger point at the beginning of the game can be totally bypassed, breaking the game.
In order to get rid of this whole class of bugs, we only enable snap scrolling only for the games which were designed for it.
2022-05-22 21:34:00 +02:00
Cameron Cawley c0dd681824 SCUMM: Fix fighting in Indy 3 when Num lock is off 2022-04-12 10:00:31 +03:00
Eugene Sandulenko abea37c9bb ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Orgad Shaneh ed5489929c SCUMM: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Orgad Shaneh ec3681a62c SCUMM: Extend Ctrl handling to all the games on versions 3-7
Tested with Loom and The Dig. It seems to be consistent.

Sam&Max seems to have different mapping for Ctrl. The DOS version
has the following actions:

Ctrl-I: Rotates the current action
Ctrl-J: Switches to Joystick Mode
Ctrl-K: Shows memory stats
Ctrl-C: Prompts to quit
Ctrl-M: Switches to Mouse Mode

Anyway, since it doesn't break anything, I did not add an exclusion for it.
2021-09-02 00:23:10 +03:00
Orgad Shaneh 390565727f SCUMM: Fix handling of Ctrl+Key in monkey1 and monkey2
There are several Ctrl+Key combinations that are accepted by the engine.
Most famous one is Ctrl+W, which is Instant Win on monkey1 (monkey2 uses
Alt+W, and has a similar hack for passing it correctly).

This used to work with ScummVM 1.9.0/SDL1, but broke with SDL2, and was
later broken further even for SDL1 in f5ed14e93d.

Fixes #10644.
2021-08-30 23:13:35 +02:00
Torbjörn Andersson 819cfb8383 SCUMM: Initial work on Mac Loom font renderer
The main purpose of this set of changes is to refactor the code to make
it easier to pass the name of the Macintosh resource file to other parts
of the engine (it used to be hard-coded in the music players), and to
scale-up the graphics by 2.

The actual font rendering is almost completely broken.
2021-05-17 18:44:29 +02:00
sluicebox 93eeffc84d JANITORIAL: Update old bug tracker numbers 2021-03-03 02:15:05 +02:00
athrxx 4f9ae442d5 SCUMM: (FM-TOWNS) - add smooth scrolling
This is mostly based on ZAK and MI2 disasm (and a bit LOOM). For MI1 and INDY4 I have at least checked with the FM-Towns UNZ emulator to ensure that they actually have the smooth scrolling.

The smooth scrolling is a bit tricky with regard to the timing. The scrolling tends to be a bit too slow for the engine, since it happens at a speed of 1 pixel per 60Hz tick, while the engine sometimes writes one or more new 8 pixel strips at the same time. So the scrolling often has to catch up to the engine. The original has a compensation mechanism which I tried to adapt. We'll see if it needs more fine tuning...

The Loom intro even glitches in the UNZ FM-Towns emulator due overflowing the scrolling surface (and causing a wraparound). But I made a fix for that.

Since we do have a bug report about the speed of the ZAK intro (and the new scrolling code does affect the timing) I have run the ZAK intro in ScummVM and in the FM-Towns UNZ emulator (with i80386DX, 16 MHz setting) side by side and they seem totally in sync. If I reduce the MHz setting in the emulator to 10 MHz on the emulator the intro will play slower, but still not play through the whole song. With 8 MHz I get close to finishing the song, but this seems to be almost to slow to run the game properly. So I'll leave that bug ticket open...
2021-02-11 20:01:24 +01:00
Andrea Boscarino 4cbe4c3403 SCUMM: FT: update cutscene fix to account for Version B 2020-12-30 01:43:19 +02:00
Andrea Boscarino 054c970598 SCUMM: FT: fix bug #12022 2020-12-25 23:12:42 +01:00
Paul Gilbert 45cda9db22 SCUMM: Refactor to use Engine debugger 2020-02-16 13:07:19 +02:00
D G Turner 59b639ed4d SCUMM: Fix Missing Default Switch Cases
These are flagged by GCC if -Wswitch-default is enabled.
2019-12-23 11:56:16 +00:00
Cameron Cawley f2b9f7bb76 BACKENDS: Remove the Windows CE port 2019-11-17 22:33:56 +01:00
Thierry Crozat 7cbf5a9289 SCUMM: Fix interrupting speech not working with AZERTY keyboard
On my AZERTY keyboard the period is obtained using SHIFT + ; and
the code checking the PERIOD keycode and no modifier was failing
on both account. The manual for my French DOTT mentions the period
key, but I have not actually checked how it worked with the original
executable and if using the semicolon key without shift or using the
colon key (which would be the period key on a English-US layout)
works.
2018-03-24 18:17:24 +00:00
Eugene Sandulenko 89a782466a SCUMM: Revert skipping of MM C64 demo original save screen display attempt
As per discussion in bug #10116.
2017-11-27 20:50:28 +01:00
Eugene Sandulenko 5183b2024c SCUMM: Do not do anything for real with original save screen in MM C64 demo 2017-11-26 05:15:42 +01:00
Eugene Sandulenko a7182e2a6a SCUMM: Do not try to show original save/load screen in C64 demo
Fixes bug #10116
2017-11-25 23:35:28 +01:00
Ori Avtalion 3ad6af92f2 SCUMM: Reduce audio header dependencies 2016-05-21 13:55:38 +03:00
Ori Avtalion 253e18c440 JANITORIAL: Reduce GUI header dependencies 2016-04-14 13:30:14 +03:00
Johannes Schickel 3b734082c4 SCUMM: Allow Alt-x to be used to quit SCUMM games.
This includes a TODO to check which SCUMM games actually exhibit this behavior
originally. cbd867329e added this behavior to our
backend code initially.
2016-01-29 23:10:36 +01:00
Thierry Crozat 5be63fdda6 SCUMM: Mark additional strings for translation
These were reported in bug #6887
2015-10-11 18:58:50 +01:00
Robert Crossfield 962c8b4524 SCUMM: Maniac V0 Demo: Allow F7 to restart, Add handler for opcode 0x6e (o_screenPrepare) 2014-12-08 19:12:27 +11:00
Johannes Schickel 94f504f22a SCUMM: Fix Ctrl+t key code combination to affect speech mode.
Formerly, the key code combination didn't unmute speech at all.
2014-07-23 02:39:51 +02:00