Commit graph

3214 commits

Author SHA1 Message Date
Walter Agazzi
54e019f570 AGS: Add detection for new MMM games 2025-03-31 20:48:15 +02:00
Walter Agazzi
0c65a0a8d4 AGS: Add Rosewater detection / update Beekeeper 2025-03-31 02:55:05 +02:00
Walter Agazzi
4059b4db72 AGS: Add Beekeeper Picnic full version + some other games 2025-03-26 18:12:53 +01:00
Walter Agazzi
7a036b8c75 AGS: Add multiple games
From AGS forums / itch.io
2025-03-19 23:04:39 +01:00
Walter Agazzi
3ef003b3a0 AGS: Update blackwell1/2 detection entries
Fix #15791
2025-03-19 15:17:19 +01:00
mausimus
8211a5fc25 AGS: fix DynamicSprite.Flip() to use CreateTransparentBitmap 2025-03-09 14:12:20 +02:00
Walter Agazzi
93c7523e36 AGS: Add new games/versions
From AGS forums
2025-03-02 19:56:15 +01:00
Filippos Karapetis
7d9f2a175d AGS: Fix a warning in the script creation code
CreateImpl() is called with either the text or the length parameter,
thus there is no reason to set the length parameter, which is unsigned,
to -1. Therefore, using 0 for the length when a text buffer is used
yields the same result
2025-03-01 22:12:37 +02:00
Matthew Jimenez
1e99ce9d43 GRAPHICS: Use constexpr for palette constants 2025-02-26 11:11:43 +02:00
Le Philousophe
4da3b518b5 AGS: Avoid stack frame size warning in AGS3::unload_game
Instead of allocating the GameState and GameSetupStruct variables on
stack and erase the heap version, deallocate the old ones and reallocate
new ones.
2025-02-23 17:56:17 +02:00
Eugene Sandulenko
b34411bc23
ENGINES: [a-k]*: Switched Debug Channels from bitfield to sequential enum 2025-02-22 15:51:24 +01:00
eientei95
c3ee2a1ddc AGS: Get Old Skies OSDemo v1.0 booting 2025-02-14 00:18:37 +00:00
eientei95
aa2a1bf82d AGS: Add detection for Old Skies OSDemo v1.0 2025-02-14 00:18:37 +00:00
Walter Agazzi
208f82790c AGS: Update primordia entries and add new games
Fix #15726, #15716, #15715
2025-02-06 22:30:43 +01:00
Le Philousophe
859a8e06ad GRAPHICS: Also enable NEON codepath if compiler builds with NEON enabled
This will allow to build with NEON on platforms using an old compiler
but with NEON enabled for all translation units.
2025-02-01 18:06:56 +01:00
Przemysław Romaniak
94614d19e9 AGS: Implement SoundClipWaveBase::set_speed
Calculate new sample rate based on new_speed and apply to channel
2025-01-23 21:39:53 +02:00
Walter Agazzi
8215c32b67 AGS: Add paintedhills2 version
Fix #15690
2025-01-19 12:20:17 +01:00
Walter Agazzi
b0ea237df9 AGS: Update primordia and a few other games
Fix #15677, #15672 and #15670
2025-01-15 19:57:12 +01:00
Walter Agazzi
c1be003ff3 AGS: Add several new games/versions
Reported in TRAC, and others
2025-01-04 23:20:33 +01:00
Eugene Sandulenko
a7aec6c486
CONFIGURE: Implement mpeg2 as a component 2024-12-27 13:03:46 +01:00
Eugene Sandulenko
74c2cb0c13
CONFIGURE: Added universaltracker as a meta-component
This could disable both MikMod and OpenMPT as the universal tracker
libraries
2024-12-26 23:04:48 +01:00
Eugene Sandulenko
879eba5c32
CONFIGURE: Replace mt32emu component with 'midi'
This component disables all MIDI-related things when unused,
including MT-32 emulator, Fluidsynth, TiMidity and Sonivox
2024-12-26 22:54:56 +01:00
Hubert Maier
76210767fa
JANITORIAL: AGS: Fix typos 2024-12-25 17:08:44 +02:00
Walter Agazzi
c39c101f6b AGS: Update phantomfellows entries 2024-12-25 11:31:26 +01:00
Eugene Sandulenko
d780708c96 ENGINES: Add mt32emu as a feature and component
Add it to engines that have MIDI playback.

This essentially compiles the emulator only when an engine that
can potentially use it (e.g. MIDI) is enabled
2024-12-25 00:34:39 +01:00
Eugene Sandulenko
aa43f4f5e7 CONFIGRE: Added theoradec component and marked all the relevant engines 2024-12-25 00:34:39 +01:00
Eugene Sandulenko
fdecb6afca ENGINES: Add components to configure.engine's explanatory comment 2024-12-25 00:34:39 +01:00
Walter Agazzi
e1ac307409 AGS: Update Unavowed entries and a couple other games
Fix #15590
2024-12-18 18:11:52 +01:00
Torbjörn Andersson
df31b0fb05 AGS: Add detection entries for some alternate versions 2024-12-15 17:45:29 +01:00
Walter Agazzi
d2fe4ed195 AGS: Update blackwell5 / unavowed entries
+ new games
2024-12-05 18:03:10 +01:00
Walter Agazzi
715bba2206 AGS: Add upscaling factor to flashlight plugin
The flashlight plugin didn't consider the legacy upscale mode
used in few old AGS games (Maniac Mansion Deluxe and
some Maniac Mansion Mania episodes).
This commit adds this feature per-game, although there's room
for improvement as the legacy upscale setting should be made
accessible from the plugin.
Fix #15547
2024-12-05 15:38:27 +01:00
Walter Agazzi
162802ba0c AGS: Fix game.top_inv_item script variable not working (again)
This completes commit f1ce81461e
that was only partially working after the update to AGS 3.6.1
Fix #15545
2024-12-04 23:11:28 +01:00
Walter Agazzi
263dfdf640 AGS: Add various new games
From AGS forums / itch.io
2024-12-01 21:56:29 +01:00
Eugene Sandulenko
247e1061a1
AGS: Added KIDCODE: ICEBOY detection. Bug #15538
The game could be downloaded from https://graysond.itch.io/kidname-iceboy
2024-11-30 22:21:03 +01:00
Thierry Crozat
83eefd4214 AGS: Engine: create ccInstances wrapped in std::unique_ptr
This also fixed a potential memory leak in ccInstance::CreateEx().

From upstream 30167df0690e0a771a8eb4f14a4d6a72da526b49

Also remove unreachable code (same condition checked twice in a
function) as that caused a compilation error with the changes above
otherwise. This change is part of upstream commit
881d31966cf7600c9b5628fff4c194d628196f4a
2024-11-27 21:23:33 +00:00
Walter Agazzi
aa1d21fd5d AGS: Engine: fix Character.Animate in case called during idling
This fixes a regression after db71d92
in case Character.Animate() called during idling, and Loop number assertion is done
prior to view changing back to normal view, could cause game to error.

Pick out "stop_character_idling" function that checks idle state and releases the locked idle view.
From upstream 946fa71c9332cae98f31d8b7672a1fe7b76d46c5

Fix #15523
2024-11-27 16:45:50 +01:00
Walter Agazzi
69ba09c5fd AGS: Add two methods for handling multiscreen
For completeness, this adds functions sys_window_fit_in_display
and sys_get_window_display_index.
Practically it has no effect as in ScummVM we don't support
multiscreen and the resolution is hardcoded.

Partially from upstream 1afc61df54681ffe2fddc0d30bb2221c38a0fa79 and
b17f58d90061c3b12c9e4c04183dc59b094d66cb
2024-11-27 16:45:50 +01:00
Walter Agazzi
8d96ff3966 AGS: Engine: perform SetTextOverlay through new Overlay_SetText algorithm
The implementation of Overlay_SetText() was rewritten in aaf6144 , with a purpose of replacing
only the internal image of overlay, but not going all the way of removing/creating a new overlay
into the same slot.

In addition to the initial reasons, it became even more essential after the overlay storage
optimization (see merge commit 77b8264), as overlay system now records free ids on overlay
removal. As recreating overlay with exact same id would now require extra hacks into overlay
logic.

Unfortunately, an old SetTextOverlay() function was forgotten about, and it still doing this
remove/create way of resetting a text. This results in engine wrongly considering certain ids to
be free, while they are already taken.

This commit fixes this by making SetTextOverlay delegate to the new Overlay_SetText()
algorithm instead.
From upstream 4caf0765ef36b4ebc2fb609f99a36a56d0736255
2024-11-27 16:45:50 +01:00
Walter Agazzi
f1dcf66ad3 AGS: Engine: added AudioChannel's playback state to saves
AudioChannel.Pause and Resume commands were added back in 3.6.0,
but I forgot to write the paused state to save format...
From upstream e18091c2f32a057d4c6538b9b26e4f31ef9b6296
2024-11-27 16:45:50 +01:00
Walter Agazzi
b0cbe21288 AGS: Engine: fixed Wait function's negative time case for pre-3.6.0 API
Prior to 3.6.0 script API Wait function was treating negative values as "no time",
but since 3.6.0 it treats it as "infinite time".
Also, old engines let overflow happen when assigning > INT16_MAX values to the wait counter
(which is int16).
In the old engine this resulted in immediate timer stop, by pure accident.
From upstream 6777dad163b3f8c2678e5fc001feb15b78c36849
2024-11-27 16:45:50 +01:00
Walter Agazzi
a0cc706ddd AGS: Updated build version (3.6.1.30 P8)
Partially from upstream f42af3cf884a5aab5ffeb308da9da692eb8a3f03
2024-11-27 16:45:50 +01:00
Walter Agazzi
bd66bd7e7f AGS: Add MatchesFormat method
Probably just for hardware renders, but added for completeness
Partially from upstream dcf3c2cc304f67a5f7f46259bb3dd53b4b369e5b
2024-11-27 16:45:49 +01:00
Walter Agazzi
49b7374dfe AGS: Engine: fixed FadeIn/Out() not marking screen faded if fast-forwarding
This results in post-cutscene state being different if it's skipped compared to
a normal run if a pairing FadeOut or FadeIn was not inside StartCutscene/EndCutscene too.
From upstream 14bc225fb64bef8aae56c2f791194d515d7a664b
2024-11-27 16:45:49 +01:00
Walter Agazzi
0c90054ead AGS: Engine: fixed playing transition-out effect while skipping cutscene
This is a regression since 3.6.0.
From upstream a18d94a61d698aeb4fba39330d4194ca5410d696
2024-11-27 16:45:49 +01:00
Walter Agazzi
6ec09a5e56 AGS: Engine: fixed default InvWindow not redrawn when player char changes
This is a regression since around 3.6.0, but apparently Inventory Window had always some problem
updating after SetAsPlayer is called.
In much older versions of AGS, even prior to GUI optimizations, it also did not update until player
moved mouse cursor around some interactive elements. Which probably made an impression
that it's not working without explicitly assigning InvWindow.CharacterToUse.
From upstream 0b758225a7801700a03e48fa72b733fd122ca1c9
2024-11-27 16:45:49 +01:00
Walter Agazzi
6a0da1f9c6 AGS: Engine: fix SetCharacterViewEx alignment value
From upstream e9c1c7e0477c8fe156d7e3b86e70b925535c9e2b
2024-11-27 16:45:49 +01:00
Walter Agazzi
e79f840cba AGS: Common: fix AssetManager construct with initialized lib sorter
From upstream 814fada7bd7f851a08f5f9c2171bd1541e6a9be5
2024-11-27 16:45:49 +01:00
Walter Agazzi
1244fe78e9 AGS: Engine: also move frame fixup to FixupCurrentLoop()
From upstream ecf6fe02d73686651f4123fb59f8a0c1b821bea8
2024-11-27 16:45:49 +01:00
Walter Agazzi
2e2cf19168 AGS: Engine: do character loop fixup after move update
Loop fixup was introduced earlier to avoid crashes in certain old games,
and also in case users forgot to unlock a custom animation View.
But apparently I missed a case when a loop may be adjusted later on during walking update.
From upstream f04c4d7d9adff5134e48c1062b0214251797efdc
2024-11-27 16:45:49 +01:00
Thierry Crozat
9a336aaa87 AGS: Clear all screen overlays in unload_game()
This is what upstream AGS does in the 3.6.1 and master branches,
while our code corresponded to the 3.6.0 branch.
This fixes an issue where deleting the screenoverlay vector later
on would try to access an already cleared SpriteCache.

This sould fix bugs #15488 and bug #15510.
2024-11-26 22:59:39 +00:00