Commit Graph
802 Commits
Author SHA1 Message Date
D G Turner 381fc1fc44 SCUMM: Fix Duplicate Branches GCC Compiler Warning 2024-11-06 19:32:01 +00:00
AndywinXp 252ff4c831 SCUMM: INDY4: Admit more executable names
These are executables found on LucasFilm Games
support page.
2024-10-28 08:24:59 +01:00
athrxx ec135b3f14 SCUMM: (MI1/Mac) - finish menu option for sound enabling/disabling 2024-10-28 08:24:59 +01:00
AndywinXp 6b28d2c814 SCUMM: Assign Mac smoothing to config entry & implement Speech menu 2024-10-28 08:24:59 +01:00
AndywinXp 2e03c25bb1 SCUMM: Fix nullptr usage 2024-10-28 08:24:59 +01:00
AndywinXp 705d6ded4b SCUMM: Add preliminary support for Mac GUI for remaining v5 games 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 67b0440ad0 SCUMM: MI1 (Mac): Implement EPX scaling and a stub for the menu 2024-10-28 08:24:59 +01:00
Martin Gerhardy bf6bd39f69 ENGINES: moved scumm enhancements system into shared engine code 2024-10-21 03:15:13 +03:00
athrxx f9941771fb SCUMM: fix pauseEngineIntern
There was a mismatch of sound pause and
unpause counts. In particular, there was more
pausing than unpausing. So the mixer could
get stuck permanently.

I noticed this when loading from the GMM
and getting the sound driver incompatibility
warning dialog.
2024-10-14 22:48:01 +02:00
AndywinXp 107133c89f SCUMM: v7-8: Fix setCameraAt() behavior when executed from checkExecVerbs()
Checking all the necessary disasms, the camera._last update
(and the sound as well...) should be executed before checkExecVerbs().
This successfully fixes #15398:
"SCUMM: DIG: Fast room skipping in first two screens produces glitches"
2024-10-11 23:04:21 +02:00
athrxx e2d7ce9005 SCUMM: some Coverity fixes 2024-09-27 23:16:08 +02:00
sluicebox c3f2565543 SCUMM: Fix memory leaks on restart 2024-09-21 13:53:09 +03:00
AndywinXp 55832ef885 SCUMM: Relabel v2 object states
This has been bugging me for a while...
Note that ifNotStateCommon and ifStateCommon have
been semantically inverted until now. I also fixed their
naming now to reflect what they are actually doing.
2024-09-20 23:08:51 +02:00
AndywinXp 3f4bc1241f SCUMM: HE: Move "enable_competitive_mods" check at startup
This greatly reduces lag in Backyard Basketball, as
those calls to ConfMan.getBool were done in very
frequently called arithmetics opcodes.
2024-09-19 21:33:13 +02:00
AndywinXp 0b704202e1 SCUMM: Never show autosaves on original GUI
...so users can't overwrite them.

This commit includes a small self-correction routine,
which moves all savegames down a slot, if the savestate
at slot 0 is non-empty and is not an autosave.

Now we instate a convention: on the original menus we
don't show the autosaves, ever. If an user wants to
use an autosave they will have to use the GMM.

Why? Because games with script based menus (v0-3, v8)
already exhibit this behavior, and I want consistency across
all SCUMM versions.

Naturally this commit excludes all HE games, since they
can't use anything other than the GMM, to save and load.
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 5a77aa1aa7 SCUMM: MONKEY1 (CD): Improve palette fix for room 36
Saving and loading now handle the palette change correctly
2024-09-07 21:45:17 +02:00
Robert Megone b381f3aadd SCUMM: MANIAC: Add valid targets for demo checkbox and ensure that feature GF_DEMO is set if checkbox was toggled on. 2024-09-04 15:53:56 +02:00
AndywinXp d8f9aa886f SCUMM: MI1 (AMIGA): Fix EGA renderer setting being discarded
This was most definitely done on purpose to limit the range
of "damage" :-) an user could do when selecting non-trivial
render modes for non-trivial versions of the games.

But there is an actual use for the EGA renderer setting on MI1 Amiga,
as there were two versions of the executable back in the day:
- One which had the EGA palette for actors (believe me, it exists,
  I have seen it with my own eyes on an actual Amiga 500 :-) )
- One which had a more pale palette, which is the most known
  version.

This fixes and closes #7455:
"MI1 Amiga: choose actor palette"
2024-09-01 18:13:51 +02:00
AndywinXp 8d5aa3a14b SCUMM: GUI: Improve quit dialog override consistency
No more cases of SCUMM quit dialogs followed by frontend
quit dialogs, and no more cases of versions not having an
override quitting without confirmation (ignoring the frontend
setting).
2024-09-01 12:34:54 +02:00
AndywinXp 996938b891 SCUMM: ZAK (FM-Towns): Insert workaround for intro timing
This fixes and closes #9591:
"SCUMM: ZAK (FM-Towns): Intro animation runs faster than intro music"

Also, make sure that the timer frequency is always used by calling
getTimerFrequency()...
2024-08-19 15:45:40 +02:00
Torbjörn Andersson 060d8b97ba SCUMM: Whitespace fixes 2024-08-12 18:35:25 +02:00
AndywinXp ec0944b04c SCUMM: FT (Demo): Use v6 main loop structure
This fixes minor glitches in the verb interface. After all, this
demo is meant to use some hybrid between v6 and v7...
2024-08-11 19:11:04 +02:00
AndywinXp 0f87863c7b SCUMM: MANIAC/ZAK (C64): Make screen layout pixel-perfect
This closes and fixes #11971:
"SCUMM: MANIAC/ZAK C64: GUI & dialog text are incorrectly
positioned on screen, and cursor is improperly layered"

The ticket also mentions improperly layered cursor:
"the pointer cursors pass *behind* the various character sprites
on screen", but there's really nothing we can do about it,
our cursor handling is way too different to function like the original
(and anyway, it looks like a severe C64 hardware limitation quirk...)
2024-08-11 00:09:33 +02:00
AndywinXp 1df23b8fcc SCUMM: MANIAC (NES): Fix game speed being too slow 2024-08-10 13:16:07 +02:00
AndywinXp 27e6b811d5 SCUMM: DIG: Fix #15047
This fixes and closes #15047:
"SCUMM: DIG: "Holding an object"-state gets cancelled by cutscene override"

Once again this is one of those cases in which v7-v8 shuffled
elements around the main loop.

Fixing this also forced me to remove an hack for v7 which attempted
to fix timing for e.g. the screen shake + breakHere() combination.
This is also properly fixed now.
2024-08-09 16:12:47 +02:00
Robert Megone 145398c222 SCUMM: MM - Add option to boot into demo/kiosk mode to the GUI bug #14501 2024-08-09 13:15:20 +02:00
Donovan Watteau c282769fae SCUMM: Allow using the Amiga render for Indy3 EGA (Trac#15227)
It makes sense to allow using the Amiga render option for Indy3 EGA, as it's
already quite popular to do so for Maniac Mansion and Zak in order to avoid
the so-called "sunburnt effect", and also for personal palette preferences.

Then, the question is also open for Loom EGA and Monkey1 EGA, maybe?

See similar commit 4586d2fc9d for V2 games.
2024-08-02 18:53:08 +02:00
AndywinXp 2f9a4409c8 SCUMM: LOOM: Fix crash when loading game
Should fix ticket #15281:
"SCUMM: Loom: Crash when loading savegame from launcher"
2024-07-24 14:42:11 +02:00
athrxx 8d88e7b4d5 SCUMM: (V1/2) - fix bug no. 15273
(Walking animation when turning not correct)

Also match v1/2 walk code more to the orginal behavior
in general, to eliminate accuracy glitches.

Also, get rid of memory leaks in resetScumm().
2024-07-20 00:38:58 +02:00
athrxx c4da976543 SCUMM: temporary fix for bug no. 15281
It should be checked if line 3206 (_currentScript = 0xFF) is
actually needed.
2024-07-19 19:39:06 +02:00
athrxx 84a0bff281 SCUMM: fix Coverity warnings 2024-05-20 15:32:19 +02:00
Little Cat 4d3f6b7064 SCUMM HE: Fix compiling with HE v71+ disabled. 2024-05-12 15:08:27 +02:00
Little Cat 289e181de0 SCUMM HE: Use new map generator dialog. 2024-05-12 15:08:27 +02:00
Little Cat 31dc92fc4a SCUMM HE: Start working on random maps for Moonbase. 2024-05-12 15:08:27 +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 8fe0f93630 SCUMM: Rename CHARSET_1() to displayDialog()
We are now using a name which respects the coding
guidelines and also reflects how the actual function was
named.
2024-04-28 19:59:30 +02:00
AndywinXp 1f493dec1a SCUMM: HE: Add new HE variant (99.5) as game feature flag 2024-04-26 23:21:29 +02:00
AndywinXp 5ac8ea75a0 SCUMM: HE: Fix sub HE95 games not starting 2024-04-26 23:21:29 +02:00
AndywinXp 9d1ebb0cba SCUMM: HE: Fix TRLE AKOS cels not being erased 2024-04-26 23:21:29 +02:00
AndywinXp 9dd2ea4e43 SCUMM: HE: Re-implement WIZ text and Aux images 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 a64d977fdb SCUMM: HE: Add some basic WIZ primitives 2024-04-26 23:21:29 +02:00
AndywinXp f17fe7413c SCUMM: HE: Begin WIZ and graphics rewrite 2024-04-26 23:21:29 +02:00
athrxx ac23a92e30 SCUMM: (MI1/Amiga/Hercules/CGA) - fix bug 4535 (Voodoo lady palette glitches)
MI1 Amiga does set up the shadow palette at the beginning
and also updates it from o5_roomOps()[SO_ROOM_PALETTE].
But it never actually applies any use of the shadow palette when
doing screen palette adjustments. I've also confirmed that the
shadow is ignored in DOS CGA and Hercules mode.
2024-04-14 23:21:42 +02:00
athrxx 28d8e43675 SCUMM: (IMS/MI2/FOA) - implement old style channel management
(fix bug #14618: Inaccurate fades in INDY4,  "Test 1")

This part of the bug ticket is not about fades. The reason
for the glitch is that the driver has no unused channels left
and the newer allocation mechanism is not able to free up
some of the used channels here.
2024-03-22 22:55:48 +01:00
athrxx 9c90080474 SCUMM: (v3/v5/Mac) - minor cleanup 2024-03-16 15:51:20 +01:00