Commit graph

147921 commits

Author SHA1 Message Date
sluicebox
24e9355b0c NEWS: Update AGI news 2024-03-11 10:36:35 -07:00
sluicebox
c0ec5f5a81 AGI: Fix Gold Rush clock time at Fast and Fastest speeds
Fixes bugs #4147, #13910

The Apple IIgs version is unaffected and will require a separate fix.
That version only had one speed, so it does not contain the script that
synchronizes clock speed with game speed. We add this feature, and will
also need to implement this synchronization.
2024-03-11 10:34:38 -07:00
Lothar Serra Mari
53cae155fc NEWS: Update German NEWS file 2024-03-11 14:45:09 +01:00
Torbjörn Andersson
8f01b3421e NEWS: Extend note about Mac Indy3 / Loom screen corruption
Because it turns out that using shortcut keys was just one source of
screen corruption that had to be fixed. The other would happen if the
menu was activated during screen transitions. But that seems far too
technical to include in the note.
2024-03-11 08:04:18 +01:00
Torbjörn Andersson
81c175b767 SCUMM: Don't update the Mac GUI during graphical transitions
Perhaps this will finally fix the screen corruption bug I've been seeing
occasionally in Mac Indy 3? That seemed to happen because the screen was
changing while the game was paused, after the Window manager had made a
copy of the current screen.
2024-03-11 06:29:50 +01:00
Torbjörn Andersson
5154b1e7a8 GRAPHICS: MACGUI: Eliminate timer use
As part of fixing a graphical glitch in Mac Indiana Jones and the Last
Crusade, eliminate the menu timer from the Mac window manager. It's just
too unpredictable and error prone for my taste.
2024-03-11 06:28:44 +01:00
Miro Kropacek
759ea76e23 NEWS: Update Atari port news 2024-03-10 22:55:17 +01:00
Miro Kropacek
ea5ea3cd13 BACKENDS: ATARI: Prepare for 2.8.1 release 2024-03-10 22:28:41 +01:00
Miro Kropacek
d1884ece85 BACKENDS: ATARI: Disable aspect ratio correction
It's used only in surfacesdl backend.
2024-03-10 22:04:10 +01:00
ScummVM-Translations
ef7b1daf61 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/
2024-03-10 08:30:57 +00:00
AndywinXp
498042daaa SCUMM: HE: Disable speech timer code
It's not in any HE executable, and it caused bad memory accesses...
2024-03-10 09:30:39 +01:00
ScummVM-Translations
552801caf1 I18N: Update translations templates 2024-03-09 08:08:53 +00:00
ScummVM-Translations
f37c703059 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/
2024-03-09 08:08:51 +00:00
AndywinXp
67dea26895 SCUMM: Fix #15009 2024-03-09 09:08:33 +01:00
ScummVM-Translations
268ee7093d I18N: Update translations templates 2024-03-08 13:55:01 +00:00
Cameron Cawley
1045870c1a KINGDOM: Free allocated memory on exit 2024-03-08 13:53:16 +00:00
Cameron Cawley
48e7675950 KINGDOM: Avoid loading entire files into memory 2024-03-08 13:52:40 +00:00
Cameron Cawley
7d4e3f1601 DS: Remove duplicate FilesystemFactory creation 2024-03-08 13:52:07 +00:00
sluicebox
891397d6f4 NEWS: Update AGI news 2024-03-07 16:29:46 -07:00
sluicebox
6afe8087de AGI: Fix LSL1 shoplifting bug
Fixes bug #13137
2024-03-07 16:29:46 -07:00
Paweł Kołodziejski
daf9b6b23e GRIM: Restore LUA W/A for release. It might still needed for old save games. 2024-03-07 14:26:22 +01:00
sluicebox
bee6391b8d NEWS: Update AGI news 2024-03-06 23:52:05 -07:00
sluicebox
8413b06c3e AGI: Fix KQ1 ego direction after bowing to king
Fixes bug #7045
2024-03-06 23:38:14 -07:00
sluicebox
2106470cc6 AGI: Add WINNIE error checking when playing sound
Fixes crash that occurs when attempting to play the wind (sound 10)

Bug #14454
2024-03-06 14:44:02 -07:00
ScummVM-Translations
bcb9798f56 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/
2024-03-06 19:06:43 +00:00
sluicebox
9ec216e9d7 AGI: Fix KQ3 Rosella staircase bug
Fixes bug #11996
2024-03-06 12:06:18 -07:00
ScummVM-Translations
bbb62283be I18N: Update translations templates 2024-03-05 22:53:29 +00:00
Cameron Cawley
079dca873d DS: Disable stdio buffering from newlib 2024-03-05 22:53:13 +00:00
Eugene Sandulenko
6804af082c
NEWS: Mention updated macOS icon 2024-03-05 13:48:32 +01:00
Eugene Sandulenko
fba4fc3693
ICONS: Update macOS icon set 2024-03-05 13:47:25 +01:00
Torbjörn Andersson
cd37efaf88 SCUMM: Don't handle Mac GUI events while the game is paused
At least for Indy 3, it led to strange effects with verb buttons being
depressed but not popping back out. For Loom, it made it possible to
move the practice box while the game was paused. While that's not
necessarily bad, I really don't want to have to worry about what else
may happen.
2024-03-05 07:47:35 +01:00
sluicebox
fd6ccc857f NEWS: Add AGI news 2024-03-04 17:37:18 -07:00
sluicebox
334627b4c2 AGI: Remove AGIMOUSE polling code
The AGIMOUSE protocol is for three mouse variables to be set by the
interpreter in response to opcode 171. This code updated two of the
three variables when processing events, causing the variables to
unexpectedly change in the middle of a game cycle, such as when
displaying a message box.

Fixes phantom clicks in "DG: The AGIMouse Adventure"
2024-03-04 17:02:43 -07:00
sluicebox
2365826779 AGI: Reset AGIMOUSE button state when changing rooms
Fixes infinite loop in "DG: The AGIMouse Adventure", bug #10737
2024-03-04 17:02:31 -07:00
sluicebox
18dc896692 AGI: Exclude DDP from motion/loop workaround
Fixes Donald Duck's Playground introduction, bug #14170
2024-03-04 16:15:05 -07:00
Lothar Serra Mari
fb308d3716
NEWS: Update German NEWS file 2024-03-03 07:31:28 +01:00
sluicebox
0ba98e8f64 AGI: Restrict AGIMOUSE feature to AGIMOUSE games
Fixes bug #12747 where fan game Phil's Quest immediately ends, but this
also affects early KQ2 and other games.
2024-03-02 13:29:04 -07:00
Lars Sundström
f921c6acd9 AUDIO: Fix problem where fluidsynth soundfont could not be loaded
The user can specify a custom soundfont to be used with fluidsynth.
There was previously a hack for the iOS7 backend to get the path to
the document folder where the user can put files in a sandboxed
environment. This hack was removed in commit:
cac0664757

The problem however occurred when creating a FSNode from the full
system path because FSNode uses makeFileNodePath, which already
prepends the root. So the full path is added twice which causes the
fileNode.exists() to fail.

Create the FSNode from the path to the soundfont and check if the
file exist. If so then return the full path.

Cherry-pick of: addbdc13c5
Git conflict manually fixed
2024-03-02 12:06:27 +01:00
Lars Sundström
823a060601 IOS7: Use new key overload functions
Call the overload functions for key inputs and return the results
as an array of UIKeyCommands.

Cherry-pick of: 498b9e9e31
2024-03-02 12:06:27 +01:00
Lars Sundström
28c5aaa40b IOS7: Add functions creating UIKeyCommands for special keys
Use the helper function to create an array of UIKeyCommands for the
END, HOME, PAGE UP, PAGE DOWN and the ESC keys. Add a generic handler
function that decides which action for which key.

This allows the application to register key presses of these keys,
however some of them requires iOS 13.4 or later.

Cherry-pick of: 633b7ea201
2024-03-02 12:06:27 +01:00
Lars Sundström
80dcfe0ff9 IOS7: Add functions creating UIKeyCommands for Fn keys
Use the helper function to create an array of UIKeyCommands for the
Fn keys. Add a generic handler function that decides which action
for which key.

This allows the application to register key presses of the Fn keys,
however only supoorted in iOS 13.4 and later.

Cherry-pick of: 7a251f010f
2024-03-02 12:06:27 +01:00
Lars Sundström
7fed8f4fe0 IOS7: Add functions creating UIKeyCommands for number keys
Use the helper function to create an array of UIKeyCommands for the
number keys. Add a generic handler function that decides which action
for which key.

Since not all keyboards have the function keys, Fn1-Fn12, e.g. the
Apple Magic Keyboard for iPads, map these keys to the number keys
when pressed together with the CMD modifier key. Fn11 and Fn12
requires CMD + Shift as modifier keys.

Cherry-pick of: 5c8315abbd
2024-03-02 12:06:27 +01:00
Lars Sundström
b423d3a327 IOS7: Add functions creating UIKeyCommands for roman letter keys
Use the helper function to create an array of UIKeyCommands for the
roman letter keys. Since most of the games supports input of roman
letters, overload these keys. Keys with other characters than these
are not overloaded and will therefore trigger the call to the
delegate function:
"textField:shouldChangeCharactersInRange:replacementString:"
and will therefore still be passed to the IOS7 event handler.
However no modifier flags will be passed for those and they will not
support repeated presses.

Add a generic handler function that decides which action
for which key.

Cherry-pick of: 1a5d247070
2024-03-02 12:06:27 +01:00
Lars Sundström
8c9608b928 IOS7: Add functions creating UIKeyCommands for arrow keys
Use the helper function to create an array of UIKeyCommands for the
arrow keys. Add a generic handler function that decides which action
for which key.

Since not all keyboards have the PAGE UP/DOWN nor HOME/END keys,
e.g. the Apple Magic Keyboard for iPads, map these keys to the arrow
keys when pressed together with the CMD modifier key.

Cherry-pick of: 77ecc595a3
2024-03-02 12:06:27 +01:00
Lars Sundström
9d6150fc84 IOS7: Add helper functions to overload keys
Currently the key inputs are sent to the IOS7 event handler on calls
to the delegate function:
"textField:shouldChangeCharactersInRange:replacementString:"
So when typing on either the software keyboard or a connected HW
keyboard the input is handled by the hidden textfield that is in
focus. The delegate is called on each key input and the character
typed is passed to the IOS7 event handler.

Doing as above has the drawback that if they user holds down a key,
common in games when shooting or moving, the key event is only sent
once. The delegate function is only called once per distinct key
press.

By implementing the keyCommands function and create UIKeyCommands
for a set of keys, the system will call a defined callback function.
This also enables repeatedly calls as long as the key is held down.

Modifier keys can also be configured to create UIKeyCommands to
trigger custom actions. This way we can overload the key functions
when they are pressed at the same time as a modifier key.

Add helper funtions that can be used to create UIKeyCommands for
a set of keys. Keys are represented by their input, e.g. the key
for the character 'c' is defined as a string with only one char,
the 'c', while special keys are represeented by strings defined
by the OS.

Register UIKeyCommands for all types of modifier keys and add a
function that can convert system modifier flags to flags used by
ScummVM.

Cherry-pick of: 7a1ebc05c9
2024-03-02 12:06:27 +01:00
Lars Sundström
b87b03ef16 IOS7: Pass key modifier flags to key events
Prepare the backend to send key modifier flags in the key events.
No modifier flags are sent at this point but will be added in
upcoming commits.

Cherry-pick of: b66dca78ae
2024-03-02 12:06:27 +01:00
Lars Sundström
326833c0e3 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.

Cherry-pick of: 3d1fa1c1dd
2024-03-02 12:06:27 +01:00
Lars Sundström
6684dea683 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.

Cherry-pick of: 2eb03dbc04
2024-03-02 12:06:27 +01:00
Lars Sundström
bef7933e25 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.

Cherry-pick of: 9d63f3901c
2024-03-02 12:06:27 +01:00
Lars Sundström
2fb03e4a51 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.

Cherry-pick of: 19d173ea1b
2024-03-02 12:06:27 +01:00