Commit graph

248 commits

Author SHA1 Message Date
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
Johannes Schickel
3847465163 SCUMM: Make GPL headers consistent in themselves. 2014-02-18 02:39:38 +01:00
Torbjörn Andersson
1f9f08c935 SCUMM: Fix test before running VAR_SAVELOAD_SCRIPT2 (CID 1004135)
This doesn't really make any difference because either both
VAR_SAVELOAD_SCRIPT and VAR_SAVELOAD_SCRIPT2 exist, or neither
does. But it feels more correct this way.
2013-07-21 10:02:02 +02:00
Travis Howell
46b020d860 SCUMM: Add code to support different keys used for skipping cutscenes in early ports of Maniac Mansion and Zak McKracken. 2011-11-17 23:01:47 +11:00
Matthew Hoops
dbceb0a77d SCUMM: Add some HE72 differences to mouse click handling
Backyard Soccer at least requires this to have input during gameplay.
2011-08-08 21:15:28 -04:00
Johannes Schickel
3b7c91f2a7 COMMON: Move HerculesDimensions enum to SCUMM.
The enum is only used inside the SCUMM engine so it is rather pointless to
keep it in common/util.h right now. Also if we really want it in some common
place it should probably be better in graphics/ too.
2011-06-21 16:59:50 +02:00
Max Horn
477d6233c3 ENGINES: Change 2nd param of Engine::saveGameState to Common::String 2011-06-02 18:31:59 +02:00
Matthew Hoops
eea482fa43 ALL: behaviour -> behavior 2011-05-25 10:50:46 -04:00
Max Horn
b37463fe59 SCUMM: Move class ResourceManager to its own header 2011-05-13 11:47:08 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00