Commit Graph

161762 Commits

Author SHA1 Message Date
elasota 57603482fc COMMON: Add support for loading Gentee Installer embedded PAKs 2025-04-26 17:51:27 +03:00
elasota 6b21ef7463 COMMON: Fix Gentee Installer loader interpreting EOF as size
This is necessary to extract PAKs embedded in the setup executable, which start at a non-zero position
2025-04-26 17:51:27 +03:00
Filippos Karapetis f36491f8cb SCUMM: Whitespace fixes 2025-04-26 17:47:49 +03:00
Filippos Karapetis e91116d59c GLK: Whitespace fixes 2025-04-26 17:47:49 +03:00
ShivangNagta f6439f8b10 SCUMM: Add detection table dumping 2025-04-26 17:47:49 +03:00
ShivangNagta a1d59be125 GLK: Add detection table dumping 2025-04-26 17:47:49 +03:00
Eugene Sandulenko 4095eff93f GRAPHICS: MACGUI: Fix crash on Unicode font fallback
It is a regression from the recent Unicode font caching.
Do not store fonts that were not loaded (nullptr). Otherwise,
nullptr will be returned on a subsequent call.
2025-04-26 15:02:39 +02:00
Eugene Sandulenko 1cc5b7ea24 JANITORIAL: Formatting fixes 2025-04-26 15:02:39 +02:00
Walter Agazzi 622ca33e08 AGS: Update Crimson Diamond / Rosewater
Fix #15900
2025-04-26 14:36:50 +02:00
athrxx b92ed30b5c KYRA: fix previous commit
(for BE systems)
2025-04-26 14:04:20 +02:00
athrxx 13c182379a KYRA: fix bug no. 15901
(KYRA: SoundTownsPC98_v2::playTrack() heap
buffer-overflow (ASan))
2025-04-26 13:58:26 +02:00
Weblate 7de01bc1fc I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2025-04-26 11:38:07 +00:00
Weblate 91811f8911 I18N: Update translations templates 2025-04-26 11:37:52 +00:00
Malhar 2a664ec3aa DIRECTOR: Disable Movie Events while Alert is being shown
Alerts and Message are shown on the screen by ScummVM using GUI dialog
boxes. They may have clickable buttons on them.
In Director, it may happen that the event of clicking or pressing the
button on the GUI dialog box (mouseUp, keyUp) get recorded as a movie
event, which may cause unpredictable change in the lingo script.

Prevent this by disabling all event processing in the Director movie
using a flag _inGuiMessageBox, which is set by the function that calls
the alert or dialog box and cleared once the dialog box dissappears
In this case that is the `b_alert()` function
2025-04-26 19:37:47 +08:00
Malhar 1fa0f00bef DIRECTOR: XTRA: Set origin for the QTVR decoder in QTVR Xtra
Please refer to the pull request
https://github.com/scummvm/scummvm/pull/6548

Set the corner origin point in the QTVR decoder from
QTVR Xtra in order to make sure during the swing transition
the QTVR video decoder sets the image at the correct position
2025-04-26 19:36:46 +08:00
Malhar 2af98018a9 VIDEO: QTVR: Memory Optimization for Upscaled Panorama
Previous approach used two Surface Objects to store the 1D and 2D
upscaled panorama used while projecting the panorama in higher
quailty respectively causing higher memory usage

Instead use only one Surface object to store the upscaled panorama
which stores both 1D and 2D upscaled panorama as and if needed.

Minor fixes and formatting
2025-04-26 19:36:15 +08:00
Malhar 8615695c7c VIDEO: QTVR: Minor Fixes and Formatting
Fix a minor logical error in swing transition function
Remove Unnecessary whitespace and formatting
2025-04-26 19:36:15 +08:00
Malhar 770feb4a23 VIDEO: QTVR: Implement the Swing Transition functionality
Add the swing Transition functionality using the transitionMode
variable as described in the original QTVR Xtra documentation
provided by Apple.

In the swing transition mode, make the video decoder internally
handle the animation of "swinging" panorama video from the
current position (described by _fov, _tiltAngle, _panAngle)
to the new position while taking the shortest path
2025-04-26 19:36:15 +08:00
Malhar a6f3c04218 VIDEO: QTVR: Fix distortion bug while zooming out
There is a minor bug in QTVR decoder when zooming out when
Tilt Angle != 0, in warp mode 2, it causes distorion of the
panorama, in warp mode 1 and 0, it causes panorama image to
go out of bounds and the upper/lower (depending on whether
tilt angle is positive or negative) part of the image is
invalid

Check for out of bound values of tilt angle and pan angle
when setFOV() function is called during zooming in or out
which fixes the bug
2025-04-26 19:36:15 +08:00
Malhar 28257c7ae5 VIDEO: QTVR: Implement the higher quality modes
Add the quality mode stubbed functionality using the
as described in the original QTVR Xtra documentation
provided by Apple.

Add two new functions:
upscalePanorama(): Upscales the original panorama movie
to 2x width or 2x width and 2x height, these upscaled
panorama are named (_1D/_2D)UpscaledConstructedPano and
used for projecting in quality mode 2.0f and 4.0f

boxAverage(): The panorama is rendered with 2x or 3x the
target size and then averaged to target size by averaging
in 2x2 or 3x3 box to apply anti-aliasing

Set three quality modes in the QTVR decoder
- Mode 1.0f: No quality upscaling, already present,
  low quality

- Mode 2.0f: 1 dimensional upscaling and 2 times scaled
  rendering followed by 2x2 box average, medium quality

- Mode 4.0f: 2 dimensinoal upscaling and 3 times scaled
  rendering followed by 3x3 box average, high quality

- Mode 0: Dynamic quality mode, change between low
  quality and high quality based on whether the user is
  actively interacting with the panorama
2025-04-26 19:36:15 +08:00
Malhar b6df3118b9 VIDEO: QTVR: Implement the warping functionality
Add the warping functionality using the warpMode variable
as described in the original QTVR Xtra documentation
provided by Apple.

Set three modes of warping in the qtvr decoder
- Mode 2: Already there, applies both planar projection as
  well as perspective correction for perspectively correct
  image

- Mode 1: Only apply planar projection, image becomes more
  distorted as we move up or down from the midpoint

- Mode 0: No projection, blit the image as it is, exact
  copy of the original QTVR movie
2025-04-26 19:36:15 +08:00
Weblate 5cf31e627b I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2025-04-26 11:10:33 +00:00
Weblate 6135f27aa7 I18N: Update translations templates 2025-04-26 11:10:19 +00:00
neuromancer 6814bb3521 FREESCAPE: allow to change rotation angle (except castle) 2025-04-26 13:07:51 +02:00
neuromancer b910bf9ee3 FREESCAPE: added disc variant for c64 dark 2025-04-26 13:07:51 +02:00
neuromancer 3c762925cb FREESCAPE: UI fixes for eclipse 2025-04-26 13:07:51 +02:00
neuromancer 210ec41e9d FREESCAPE: corrected color entries for c64 games 2025-04-26 13:07:51 +02:00
elasota 4da171af6b VCRUISE: Add Bulgarian language to DVD release 2025-04-25 21:32:53 -04:00
Strangerke 3193b2779a M4: RIDDLE: Fix player animation when entering room 810 2025-04-26 00:31:42 +01:00
Strangerke 0ab15916bb M4: RIDDLE: Fix the interaction with the background elements in room 809 2025-04-25 23:50:51 +01:00
Miro Kropacek 212dd1655f Revert "BACKENDS: ATARI: Remove move16 code"
This reverts commit 0f85939bc5.

Embarrassingly, my benchmark code was broken. move16 very much does
help, both in VRAM<->TT RAM and TT RAM<->TT RAM copying.
2025-04-25 23:27:19 +02:00
Walter Agazzi 2150f952e8 AGS: Update several Wadjet games
Fix #15894, #15897, #15898
2025-04-25 22:33:53 +02:00
athrxx ee02edfed3 SCUMM: (INDY4/FM-TOWNS) - remove MT-32 sound option
(Indy 4 FM-Towns doesn't have most of the MT-32 resources)
2025-04-25 20:45:05 +02:00
Thierry Crozat 5afda9f4f5 DOC: Add a small clarification to a doxygen comment for TTS 2025-04-25 19:23:08 +01:00
Orgad Shaneh 64c2072ce2 CREATE_PROJECT: Fix include order for cmake projects
If the engines directory contains plugins_table.h or detection_table.h
from an in-source build, when building out-of-source, these files from
the source directory were prioritized over build directory versions.

This caused issues when different plugins were enabled across builds.

The revised include order now matches the implementation in Makefile.
2025-04-25 20:33:19 +03:00
Donovan Watteau 7613a635f6 BUILD: Promote to error any warning about functions lacking a return statement
Regarding the `configure` script, we now have:

  * default: add `-Werror=flag-name` for selected warnings where it's
    important to fail early (just `-Werror=return-type` for now)

  * --enable-Werror: use `-Werror` for all warnings

  * --disable-Werror: don't any `-Werror` flag

For Xcode, `-Werror=return-type` is added to default flags.

For MSVC, equivalent flags have been added to the existing
`globalErrors` list.

Suggested by sluicebox.
2025-04-25 19:25:51 +03:00
Donovan Watteau 14cfd9b006 CREATE_PROJECT: Use /diagnostics:caret for clearer MSVC warnings
Gets a bit closer to how modern GCC and Clang show warnings.

Introduced in VS 2017:
https://learn.microsoft.com/en-us/cpp/build/reference/diagnostics-compiler-diagnostic-options?view=msvc-170
2025-04-25 19:22:31 +03:00
Weblate 3da9ef6d9e I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2025-04-25 13:05:21 +00:00
Weblate 8a8e678503 I18N: Update translations templates 2025-04-25 13:05:07 +00:00
Donovan Watteau 0ea31f0e25 SCUMM: Unbreak (at least) the Steam/Windows release of Loom
Fixes triggering a startSound() assert in player_ad.cpp.

When fixing a regression with the macOS Steam releases, it was decided
to also reset the game MIDI options in ScummEngine::init(), but the
chosen values are incorrect for loom-steam-win.

Just rely on the ScummMetaEngine::createInstance() fix, instead, that
should be enough.

Bug introduced in commit 2193b80119.
2025-04-25 14:57:29 +02:00
Alikhan Balpykov c4faab22e6 QDENGINE: Fix in-game sound volume control not working 2025-04-25 19:56:27 +08:00
Alikhan Balpykov 27ad5cb0fa QDENGINE: Remove SOUND_FLAG_PAUSED flag when sound is resumed
This fixes the bug where pausing the game in the midst of actor's speech
causes that actor stay in one state forever (even after resuming the
game), repeating the same animation that was playing before the pause.
This happened because "paused" flag was never removed after resuming the
sound, so the sound and animation that were synced to that sound could not finish.
2025-04-25 19:56:27 +08:00
Łukasz Lenkiewicz 071dba2dc4 GRAPHICS: Restore missing condition for default unicode font 2025-04-25 19:53:22 +08:00
Łukasz Lenkiewicz 3c61ac1dc9 GUI: Enable help menu translations 2025-04-25 19:53:22 +08:00
Łukasz Lenkiewicz 59289df98e GRAPHICS: Fix TTF font caching 2025-04-25 19:53:22 +08:00
Donovan Watteau e7e6e02555 KYRA: Fix typo in previous commit 2025-04-25 13:27:34 +02:00
Donovan Watteau 812bf67706 KYRA: Give the name of the original SJIS font when reporting it can't be found
More helpful this way.

Tested with my own Japanese FM-TOWNS CD of Kyrandia II.
2025-04-25 13:08:26 +02:00
dasbidyendu 3c8be58fbc JANITORIAL: Fix comment indentation 2025-04-25 18:32:49 +08:00
dasbidyendu 6b7e566818 JANITORIAL: Cleaned up mactext-canvas 2025-04-25 18:32:49 +08:00
dasbidyendu aec6e60066 JANITORIAL: Remove excessive vertical whitespaces
Remove unnecessary vertical whitespaces from code.
2025-04-25 18:32:49 +08:00