148937 Commits

Author SHA1 Message Date
antoniou79
02bfbe232d BLADERUNNER: Debugger commands ammo and sound
Ammo is to show or add ammo for McCoy, sound is to play sound effects

Also made minor improvements to usability of cmdSay() and cmdMusic()
2024-01-25 22:22:35 +02:00
Paul Gilbert
c599692421 M4: Fix crash in Barbershop playing null sound 2024-01-24 18:50:57 -08:00
Paul Gilbert
69de7c1d35 M4: Mark French version for testing again 2024-01-24 18:50:57 -08:00
Matthew Jimenez
7df802b0f2 ULTIMA8: Remove more unused audio related code 2024-01-24 20:29:18 -06:00
Matthew Jimenez
30d0950ca2 ULTIMA8: Rework audio volume and balance calculations. 2024-01-24 18:33:42 -06:00
Le Philousophe
27c7572bd7 ANDROID: Get HiDPI density from Android metrics 2024-01-24 21:53:07 +01:00
sluicebox
663ea06fce AGI: Fix Mixed-Up Mother Goose Amiga emulated version
Fixes the wrong graphics in the opening credits and throughout
the game. Fixes using the mouse to walk to room edges.
2024-01-24 12:48:51 -08:00
AndywinXp
660fca6a02 SCUMM: MANIAC (Amiga): Fix screen transitions being broken instead of disabled 2024-01-24 21:30:41 +01:00
Paul Gilbert
7128150f0f M4: Update detection table for supported games 2024-01-23 21:19:09 -08:00
Matthew Jimenez
413c85e3f8 ULTIMA8: Move audio stream creation to the audio sample classes.
This greatly simplifies RawAudioSample and allows further potential clean up for Sonarc audio
2024-01-23 18:48:16 -06:00
Kaloyan Chehlarski
2719d826e2 NANCY: Second attempt to fix RaycastPuzzle on ARM
This undoes the last attempt at a fix, and makes changes
that remove the undefined behavior caused by casting
negative floats to unsigned int.
2024-01-23 21:17:10 +01:00
AndywinXp
5caac7e013 SCUMM: Attempt at fixing #14781 2024-01-23 21:03:11 +01:00
Lothar Serra Mari
ce99ff249e
NEWS: Update German NEWS file 2024-01-23 19:51:37 +01:00
sluicebox
bc8550ce02 AGI: Allow message box to be drawn over menu
Fixes five Mixed-Up Mother Goose nursery rhymes. Bug #13820
2024-01-22 18:06:40 -07:00
sluicebox
8f2127e418 AGI: Cleanup graphics code 2024-01-22 17:32:46 -07:00
sluicebox
be698249f1 AGI: Cleanup loader code
Most of these changes resolve inconsistencies between the three loaders.
Formatting, error handling, logging, etc.

V2 and V3 parsers no longer assume that directory files are multiples
of three. Some Mac games have padding. This caused uninitialized memory
to be parsed and stored in the directory table.
2024-01-22 17:32:46 -07:00
sluicebox
8c5b6c032e AGI: Rewrite logic decoding for clarity, OOB fixes 2024-01-22 17:32:45 -07:00
sluicebox
c0433ab956 AGI: Remove unused unload code 2024-01-22 17:32:45 -07:00
sluicebox
6ef496532e AGI: Use parameter names in function declarations 2024-01-22 17:32:45 -07:00
kartiksharmakk
ced5e6b1f8 DIRECTOR: Dump bitmap as PNGs when --dump-scripts is invoked.
This dump all Bitmap cast members into PNGs when --dump-scripts is invoked.
2024-01-23 00:05:33 +01:00
Kaloyan Chehlarski
5e55196ed8 NANCY: Attempt to fix RaycastPuzzle on ARM
The floor and ceiling drawing in RaycastPuzzle is broken
on ARM processors. This commit attempts to fix it, based
on an assumption of precision loss in large floating point
numbers.
2024-01-22 21:22:01 +01:00
Иван Марчуков
97dae516e2 SCI: Fix after code review 2024-01-22 08:50:52 +02:00
Marchukov Ivan
a1171dce97 SCI: Apply suggestions from code review
Co-authored-by: Filippos Karapetis <bluegr@gmail.com>
2024-01-22 08:50:52 +02:00
Иван Марчуков
3f1c050cbe SCI: More information. Moved vocab parse into separate function 2024-01-22 08:50:52 +02:00
Иван Марчуков
7fad58be1d SCI: Add detection table entries for russian translate of
Conquests of Camelot, Laura Bow and Police Quest 2
2024-01-22 08:50:52 +02:00
Иван Марчуков
073469293f SCI: Add cyrillic input support for text-based games 2024-01-22 08:50:52 +02:00
Torbjörn Andersson
73932a70f6 CRUISE: Remove unused screen buffer 2024-01-22 07:11:59 +01:00
Matthew Jimenez
3f7619357f ULTIMA8: Fix neverending Lava Noise.
Properly mark ambient sounds from instrisic function and stop sounds on a audio channel before playing the next.
Fixes #14313
2024-01-21 19:52:48 -06:00
Scott Percival
46772a8a32
DIRECTOR: Roll back func_goto freezing logic
This may have been a mistake; freezing isn't necessarily bad, it just
needs to pick up running the same script after loading the new frame.
Will have another go after writing a D4 test with all the known edge
cases. Makes The Dark Eye work again.

Reverts commit 331df0a138fff525b5084776c372bd2868f340d9.
2024-01-22 08:57:52 +08:00
Matthew Jimenez
f7d13fdd35 ULTIMA8: Adjust audio channel rate using pitch shift variable 2024-01-21 08:42:56 -06:00
Matthew Jimenez
d89c9e1523 ULTIMA8: Remove unused audio related code 2024-01-21 08:42:56 -06:00
Kaloyan Chehlarski
722e2b202a NANCY: Clean up RaycastPuzzle floor/ceiling drawing
This makes the floor/ceiling drawing more readable and
more accurate to the original engine.
2024-01-21 14:25:59 +01:00
Kaloyan Chehlarski
78ad16fc46 NANCY: Consistently show/hide virtual keyboard
Fixed edge cases where the mobile virtual keyboard
wouldn't show/hide properly when it should.
2024-01-21 14:22:06 +01:00
Kaloyan Chehlarski
9940a63fc6 NANCY: Improve keymap disabling behavior
Changed the way keymaps are disabled/enabled to reduce
calls to the InputManager, and make sure secondary
keymaps are only enabled when needed, and kept disabled
the rest of the time.
2024-01-21 13:58:48 +01:00
Kaloyan Chehlarski
414fc5184b NANCY: Mark keymap names as translateable 2024-01-21 13:58:47 +01:00
Kaloyan Chehlarski
62a177523f NANCY: Fix RaycastPuzzle crash in movement code
Added better clipping of the cell ids used when checking
for walls and other obstacles. Also made some of the
formatting in the function prettier.
2024-01-21 13:58:47 +01:00
Lars Sundström
ceb54851c5 IOS7: Make specific options if running in macOS
Add a convenience function to check if the application is running
in macOS. Use this method to change the default visibility of on-
screen control buttons and function bar.
Neither of these are needed when running on macOS since both mouse
and keyboard are available. Also the mouse pointer in ScummVM does
not access the on-screen control buttons.

However this requires function keys and key combinations like e.g.
Alt+X to work to be able to save and quit games.
These will be added in future commits.
2024-01-21 10:57:27 +01:00
Lars Sundström
da19f39164 IOS7: Update the window size correctly
Applications running on iOS are usually full screen. On newer iPads
and when running iOS applications on macOS the application window
size can be changed.

When running the iOS application on macOS using "Designed for iPad"
option, the window can be changed, also to full screen. The function
"safeAreaInsetsDidChange" is then called. Update the screen size
using the view window property instead of checking the UIScreen
window bounds since these never changes.

If forcing the application to run in full screen setting the option
UIRequiresFullScreen to TRUE, it seems to trigger ScummVM to run
in portrait mode instead of landscape mode when running the app in
macOS using "Designed for iPad" on Apple silicon macs.

The UI doesn't require full screen since the application handles
resolution changes nice.
2024-01-21 10:57:27 +01:00
Lars Sundström
20d14337c9 IOS7: Make "Designed for iPad" on Mac silicon great again
It is possible to run iOS applications on macOS on Mac computers
running on Apple Silicon. This was possible before moving to the
ModularGraphicsBackend implementation in the iOS7 port with just
a little tweaking.

After the move to ModularGraphicsBackend, the ScummVM application
crashed on launch. There were two reasons for crashing;

1. dlsym() was called with the special handle RTLD_SELF to search
for the address binding of the GLES2 load symbol. Using RTLD_SELF
the search for the symbol is limited to the shared object issuing
the call to dlsym() and those shared objjects which were loaded
after it. When running an iOS app in macOS it seems that the app
is running inside a wrapper, which means that the objects resides
in a different level. Changing the search level to RTLD_DEFAULT
changes the search to also include all objects loaded at program
start-up.

2. As for the native macOS application, XCode also adds the
argument -NSDocumentRevisionsDebugMode YES if XCode option
"Allow debugging when using document Versions Browser" is on.
Make sure not to parse that argument also when building the
IPHONE target.
2024-01-21 10:57:27 +01:00
Lars Sundström
4db72b15d2 IOS7: Fix toggling of mouse mode when HW keyboard connected
It was not possible to change the mouse mode between "Direct mouse"
and "Touchpad emulation" if a hardware keyboard was connected when
using the on-screen control button.

Fix this by checking if a hardware keyboard is connected.
2024-01-21 10:57:27 +01:00
antoniou79
73c06d2850 SCUMM: Warnings for possibly missing subtitle files 2024-01-21 10:44:11 +01:00
antoniou79
2e3ede7d58 SCUMM: Fix crash when missing TRS file in Full Throttle
This was inspired by bug report https://bugs.scummvm.org/ticket/14876

It is a naive fix, whereby I've added checks for nullptr where Visual Studio debugging
would crash with exception, due to trying to access a nullptr pointer.

It works for the specific crash case, but someone more familiar with the engines should review it.

The crash itself seems to be caused by the game data folder missing
the resource file for subtitles in that scene (which I think is the "DATA\MINEROAD.TRS").
2024-01-21 10:44:11 +01:00
threefins
04cd1dccf9
DIRECTOR: Score: restrict _curFrameNumber updates
When `Score::loadFrame(frameNum)` is called with frameNum <=
_curFrameNumber it will start by resetting frame state, then loading
previous n-l frames and then updating `_curFrameNumber to` `frameNum`.
This is by design, to allow abribtrary script-based frame jumping and debug console commands.

Previous to this change `Score::update()` incrementing `_curFrameNumber` directly before
calling `Score::loadFrame(_curFrameNumber)`. In effect, this meant that
every time the playhead moved forward one frame, all previous frames
would first be loaded from the stream first. Any state built
up by previous scripting is lost and perhaps impacts performance at
suitably high frame counts and debug levels.

In this change, `Score::update()` instead makes changes to a local
variable and passes the result to `Score::loadFrame()`.
2024-01-21 09:26:08 +08:00
Eugene Sandulenko
1d6f7b05ea
JANITORIAL: Clean up some English language 2024-01-21 00:28:44 +01:00
antoniou79
75bfee7d6b BASE: Add path option check for both readable and writeable
Also made the ensureAccessibleDirectoryForPathOption() method use a recursive call to reduce complexity

The following decisions are made for commandline path options accessibility checks:
"screenshotpath" option is required to be writeable (not checked for readable)
"path" option is required to be readable (not checked for writeable)
"savepath" option is required to be readable AND writeable
"extrapath" option is required to be readable (not checked for writeable)
"iconspath" option is required to be readable AND writeable
"themepath" option is required to be readable (not checked for writeable)
2024-01-20 23:58:40 +01:00
antoniou79
047942f5f2 BASE: Fix error in usage message for screenshot path 2024-01-20 23:58:40 +01:00
antoniou79
60b1731d47 BASE: Merge accessibility check and folder path extraction in reusable method 2024-01-20 23:58:40 +01:00
antoniou79
bc2942d73a BASE: Ensure folder path when file path set in command line
soundfont option is excluded for this, since that is expected to be a file path
2024-01-20 23:58:40 +01:00
Vladimir Serbinenko
c09feede0d MIYOO: Add a build script for musl variant of miyoo CFW 2024-01-20 23:55:32 +01:00
Vladimir Serbinenko
0e23319c6c
KOLIBRI: Add explicit paths for ogg and vorbis
Auto-detect fails which is kinda expected with such weird paths
2024-01-20 23:52:50 +01:00