Commit Graph
321 Commits
Author SHA1 Message Date
athrxx 5cc9a5dd0a SCUMM: fix UBSan warning 2025-04-22 17:50:38 +02:00
Donovan Watteau bbb5519655 SCUMM: Fix UBSan warning in canLoadGameStateCurrently() (e.g. with indy3-mac) 2025-04-21 15:16:32 +02:00
athrxx 5f382329f1 SCUMM: fix bug no. 15874
Apart from the SegaCD fix, this generally improves loading
savegames that were created with different sound setting.
E. g. loading a MI1 savegame that was made with a CMS
setting used to crash the engine when loading with a MT-32
or AdLib setting.

This is still not a full compatibility patch, the sound will
often be broken after loading. It is just another step on
our way.

The downside is that I had to inject quite a bit of weird
code to calculate the sound data size for old saves.
2025-04-21 13:21:44 +02:00
Donovan Watteau b9fd88d0af JANITORIAL: SCUMM: Fix a misleading indentation
(and a small comment while there)
2025-03-24 14:44:29 +01:00
AndywinXp 9246adb906 SCUMM: COMI: Fix file being opened and not closed
This fixes #15633:
"SCUMM: COMI: Saving over an existing save loads that save instead"

...whoops.

This also raises the debug level of a related print which caused
noise on the debug log.
2024-12-28 12:13:12 +01:00
Filippos Karapetis 1c50d0abd6 SCUMM: Split the CD audio functionality into a separate sound class
This helps to cleanly separate the CD audio logic from the main digital
audio functionality
2024-12-23 02:36:06 +02:00
athrxx b3baa636ee SCUMM: whitespace 2024-11-23 23:11:51 +01:00
athrxx f06279c8b2 SCUMM: (IMS) - get rid of Mac sfx instrument type
(since it was an unnecessary hack)
2024-11-23 23:07:44 +01:00
athrxx ae86ea42e8 SCUMM: (IMS/Mac) - replace sound driver with more accurate version
The quality improvement seems to be rather subtle. But at least we now
have the quality slider and some fixed sound effects.
2024-11-23 23:07:25 +01:00
Torbjörn Andersson d30acbc619 SCUMM: Extend the fix for bug #15520 to cover all v5 Mac games
The previous change fixed the problem for me in MI1, but I would still
see it in MI2 and Fate of Atlantis.
2024-11-21 20:43:22 +01:00
Torbjörn Andersson aeacf0820f SCUMM: Save mouse position for Mac GUI games, still ignore it on load
In case someone saves the game with the Mac GUI enabled, then loads it
without. Also, don't add _macScreenDrawOffset since that causes the
cursor to jump when loading the game with the Mac GUI. Maybe we
shouldn't warp the cursor at all, but this way it shouldn't make any
difference, I guess.
2024-11-21 20:29:21 +01:00
Filippos Karapetis dc978759b0 SCUMM: Fix MI1 Mac cursor when loading certain saved games - bug #15520
We need to reset Mac cursors if the original GUI isn't enabled for games
which replace cursors that override the default cursor palette.
2024-11-21 19:49:10 +02:00
AndywinXp 8fc4c977a5 SCUMM: DOTT: Partial fix for hotspots being unclickable after load
Related to ticket #15404.
2024-11-18 22:00:01 +01:00
AndywinXp 71008e7ae1 SCUMM: COMI: Fix invalid read in savegame thumbnail
Fixes #15508.
2024-11-17 22:52:36 +01:00
Torbjörn Andersson f300e9f87e SCUMM: Initialize data to avoid Valgrind warnings on saving
This is enough to silence all the Valgrind warnings I got when saving in
The Dig.
2024-11-16 18:40:51 +02:00
athrxx ec9921c63a SCUMM: limit save/load sound driver warning to DOS versions
This came up for Mac versions whenever the sound quality setting was
changed. However, the savegames made with different quality settings
are 100% compatible, so that is not an appropriate use for this dialog.
2024-11-14 19:43:44 +01:00
AndywinXp 2194bcab96 SCUMM: MACGUI: Fix cursor handling when saving/loading 2024-10-28 08:24:59 +01:00
AndywinXp 2d12a2f5bd SCUMM: Add post-load fix comments 2024-10-28 08:24:59 +01:00
AndywinXp 9f319cdd86 SCUMM: Add Mac screen implementation for remaining LEC games
This adds optional EPX scaling and 640x480 resolution for
LucasArts Macintosh games other than Indy3 and Loom.

This includes:
* Monkey Island 1
* Monkey Island 2
* Indy4
* Day of the Tentacle
* Sam&Max
* Full Throttle
* The Dig

In doing this, I reverted the ugly code which previously offset
the game screen 20 pixels below (to create an internal 320x240
buffer, instead of 320x200). Instead of just offsetting mouse
coordinates and the final screen texture, I used to offset the
in-engine graphics elements. Ew.

This ensures flawless savegame compatibility between old and
new, without touching anything.
2024-10-28 08:24:59 +01:00
AndywinXp 31cd07e6ce SCUMM: Revert silently denying autosaving with original GUI 2024-09-19 08:09:25 +03:00
AndywinXp 0b7129347a SCUMM: Revert "Explicitly disable autosaving when original GUI is active"
This reinstates autosaving when original GUI is active,
now that it won't collide with saves made from the original menu.
2024-09-19 08:09:25 +03:00
AndywinXp 8b5ad52d88 SCUMM: HE: Add u32 code for Backyard Basketball 2024-09-16 13:01:49 +03:00
Hubert Maier 370064f93f JANITORIAL: SCUMM: Fix typos 2024-09-16 01:55:26 +03:00
AndywinXp 7520fed5ab SCUMM: MAC: Improve inconsistent sound card state detection 2024-09-02 23:10:47 +02:00
AndywinXp fd5e608612 SCUMM: MONKEY1 (Macintosh): Fix crash when loading 2.8.0 saves
This fixes #15353:
"SCUMM: MONKEY1 (Macintosh) Crash in saveLoadWithSerializer loading 2.8.0 saves on 2.9.0git"

I didn't take into account the fact that this version had 0xFFFF as VAR_SOUNDCARD,
at startup. I'm not disabling this soundcard detection thingy for the Mac versions for now,
because I'm not sure how different sound quality settings behave during saving/loading.
2024-09-02 22:57:56 +02:00
AndywinXp 51b34c33e4 SCUMM: Explicitly disable autosaving when original GUI is active
This addresses #15063:
"SCUMM: Autosave warnings still pop up when classic menus are used"

The implemented solution was proposed by antoniou79.
2024-08-11 20:04:59 +02:00
AndywinXp 4ca24fd8ce SCUMM: Fix illegal variable access 2024-08-11 18:59:37 +02:00
AndywinXp 7fa4d3daa7 SCUMM: Add warning msg for sound config mismatches on savegame loading 2024-08-11 18:26:12 +02:00
athrxx 158614fce6 SCUMM: some Coverity fixes 2024-05-07 19:26:06 +02:00
athrxx 55f1bbd47d SCUMM: (FM-Towns) - add menu option to force 640 x 480 mode
English versions usually run in a 320 x 240 resolution in ScummVM.
The original interpreter uses 640 x 480. It has a unique pause/restart
banner that we cannot display in 320 x 240. So that is really the only
reason for adding this option.
2024-05-01 16:06:11 +02:00
AndywinXp 4bcfff35bd SCUMM: HE: Bump save version 2024-04-26 23:21:29 +02:00
AndywinXp b19c4b772d SCUMM: HE: Overhaul more of the GFX system
* Overhaul sprites system
* Fix compression routines for 8-bit graphics
* More fixes and clean-up
2024-04-26 23:21:29 +02:00
AndywinXp d64a379d21 SCUMM: HE: Begin porting Wiz and other graphics code 2024-04-26 23:21:29 +02:00
AndywinXp 0a3b6c49b2 SCUMM: HE: Implement FloodFill operation 2024-04-26 23:21:29 +02:00
athrxx aedb74be6e SCUMM: (MI1/Amiga) - implement music restart after load 2024-04-14 23:21:47 +02:00
AndywinXp 1510131328 SCUMM: HE: Fix sounds not being stopped on saving 2024-04-06 12:22:44 +02:00
athrxx fd0a98a2d3 SCUMM: (IMS) - fix speed parameter for new system
For the newer system, the value is interpreted as having
a range from 0 - 127, with 64 the default. Can be tested in
Samnmax in the Tunnel of Love, after stuffing Max into
the fuse box. Now it is like DOSBox, before it was way too slow.
2024-03-16 23:49:14 +01:00
athrxx c5ab90d6e7 SCUMM: (IMS) - improve parameter faders
The volume and pitch faders should be fine, now.
I haven't fixed the speed fader, since the whole
handling of the speed setting would need to get
examined a bit closer. I think we're doing it wrong
(but maybe correctly for MI2/INDY4/DOTT?), but
this can be fixed separately...
2024-03-15 21:19:01 +01:00
athrxx 78433d5085 SCUMM: (MI1/Mac) - extend new sound player to support MI1 2024-03-07 22:30:18 +01:00
athrxx c5ef168572 SCUMM: (LOOM) - extend cursor postload fix to all versions
I have encountered the bug with the 0 width/height
cursor in the FM-Towns version, too.
2024-03-03 15:01:31 +01:00
athrxx aee2bf53bb SCUMM: (Loom/Mac) - add new sound player
This  should provide more accurate and feature complete
sound than the existing player (which is still there, just
disabled). I haven't implemented a proper quality selection
method yet.
2024-02-28 21:01:41 +01:00
athrxx 439b8dcbd2 SCUMM: (INDY3/MAC): save/load sound state 2024-01-31 19:34:43 +01:00
athrxx 938b703ba5 SCUMM: move VAR_SOUNDCARD reset to extra function
(also update it after loading a savegame)
2024-01-28 16:57:59 +01:00
Torbjörn Andersson fb2bd1166d SCUMM: Split up gfx_mac.cpp into new macgui directory
The Mac GUI code is getting unwieldy, and this is an attempt at breaking
it up into more manageable chunks.
2023-12-22 15:09:06 +01:00
Eugene Sandulenko 3d90caa894 SCUMM: Explain to HE games players that the save/loading is not supported from GMM 2023-12-08 12:21:16 +01:00
Eugene Sandulenko ec2dd2726b ENGINES: Added optional parameter to canSave/LoadGameStateCurrently() for indicating the reason 2023-12-08 12:21:16 +01:00
AndywinXp bd22763cdc SCUMM: MACGUI: Implement correct video size for Mac v3 games
This commit brings games to 640x480 (from 640x400).
All old savegames are compatible and are brought up to date in
real time.
2023-12-03 21:03:59 +01:00
AndywinXp d9d4c278e1 SCUMM: Attempt at fixing blocker #14614
We limit this piece of code to the one and only game having a
PC Engine port, which is Loom.
2023-11-30 23:09:35 +01:00
athrxx 165c8d14f2 SCUMM: add newly introduced var to saving/loading
(also do some minor cleanup to that new code)
2023-11-21 22:50:02 +01:00
Torbjörn Andersson ec1ab82283 SCUMM: Initial work on a common MacGui class that handles Mac menus etc.
This will be used for Last Crusade and Loom. Loom is currently the more
broken of the two, though.
2023-11-18 18:47:39 +01:00