Commit graph

1463 commits

Author SHA1 Message Date
Filippos Karapetis
2d86549c3f AGOS: Use C++ 11 range-based for loops 2025-03-27 13:47:57 +08:00
Filippos Karapetis
ce1afedb43 AGOS: Use C++ 11 range-based for loops 2025-03-27 13:47:57 +08:00
Coen Rampen
ed650e1cf0 AUDIO: Fix OPL channel allocation for rhythm mode 2025-02-22 23:13:54 +01:00
Coen Rampen
a28952f1b0 AGOS: Fix bad rhythm instruments in Simon 1 DOS 2025-02-22 16:57:47 +01:00
Eugene Sandulenko
b34411bc23
ENGINES: [a-k]*: Switched Debug Channels from bitfield to sequential enum 2025-02-22 15:51:24 +01:00
Coen Rampen
9d800bd7c4 AGOS: Fix compiler warning 2025-02-07 16:15:38 +01:00
Coen Rampen
debe30b25e AUDIO: Add full support for type 1 SMF
Type 1 SMF files consist of multiple tracks that are to be played simultaneously
in parallel. Support for this was previously implemented by merging these tracks
into one single track, then treating the result as a regular type 0 SMF file.

This commit adds full support for type 1 files. The parallel tracks are loaded
as subtracks of the parent track and played simultaneously in real time. This
allows for support of MIDI formats with parallel subtracks that do not use the
SMF format (Dark Seed floppy version) or that jump to offsets within each
parallel subtrack (Origin MIDI).
2025-02-07 14:10:52 +01:00
Coen Rampen
7e85388a25 AGOS: Fix MIDI track queueing not working 2025-02-04 20:38:07 +01:00
Cameron Cawley
4e95dc1480 ENGINES: Use LiberationSans for subtitles instead of FreeSans 2025-01-30 23:08:04 +02:00
Le Philousophe
c7e3415511 AUDIO: Avoid duplicating pointers by making use of const_cast
const_cast is valid in these cases because the pointed data is
dynamically allocated.
2025-01-28 23:24:40 +02:00
Cameron Cawley
7187c9293f AUDIO: Mark more AdLib symbols as const 2025-01-28 23:24:40 +02: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
Eugene Sandulenko
4a70b3507f
CONFIGURE: Added fmtowns_pc98_audio as a component 2024-12-26 19:18:49 +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
fdecb6afca ENGINES: Add components to configure.engine's explanatory comment 2024-12-25 00:34:39 +01:00
Filippos Karapetis
cc0e753dee AGOS: Add Spanish 4CD unextracted version of Feeble Files - bug #15461 2024-11-11 02:46:40 +02:00
Filippos Karapetis
0905e16a9b AGOS: Add a workaround when an invalid path is selected - fixes bug 6356 2024-11-06 10:36:35 +02:00
Filippos Karapetis
6e8a0146fb AGOS: Fix entering save game name, after keymapper changes
We need to disable the keymapper while entering a save game name.
This was addressed for some, but not all AGOS games in commit
c5422d4aab, in all cases where
userGameGetKey() is used
2024-11-04 17:59:46 +02:00
Eugene Sandulenko
e62aa1cb8a
I18N: Normalized "Left Click" to be in title case in keymaps 2024-11-04 15:36:23 +01:00
Eugene Sandulenko
422cf51481
AGOS: Fix key description in the keymapper to match other engines 2024-10-10 14:35:06 +02:00
Eugene Sandulenko
0ecb90dc0a
JANITORIAL: Remove trailing spaces 2024-10-10 14:35:06 +02:00
NabeelShabbir
08e8c4534a AGOS: Introduce I18N comments to improved mapping labels
Remove title case and add I18N comments for keymap labels
2024-07-15 07:53:00 +03:00
Hubert Maier
452e438f69 JANITORIAL: Fix specfic typos in sound.h 2024-07-03 11:09:57 +03:00
Hubert Maier
9b68ebea3a JANITORIAL: Fix verison typo in saveload.cpp 2024-07-03 11:09:57 +03:00
Hubert Maier
e79648d2ae JANITORIAL: Fix noticably typo in midi.cpp 2024-07-03 11:09:57 +03:00
Cameron Cawley
441b02d057 DETECTION: Use uint32 for ADGameFileDescription file size 2024-06-30 19:13:41 +02:00
Le Philousophe
7e0048b4a3 ENGINES: Add ADDynamicGameDescription class
This class manages a buffer where all data usually stored in detection
plugin will get copied before unloading the plugin and starting the
game.

This class expects that two functions are present in every
GameDescription: sizeBuffer which calculates how many bytes we will need
to store the entry in RAM and toBuffer which copies the data in the
buffer and fix the pointers in the class.
At the end, it is expected that an ADDynamicGameDescription doesn't
depend anymore on data stored in the detection plugin.

The AD_GAME_DESCRIPTION_HELPERS macro allow to implement these functions
in all GameDescription which don't have any pointer except those in
ADGameDescription.
2024-06-30 18:39:06 +02:00
Le Philousophe
b61bd3ff85 ENGINES: Create a type aware advanced meta engine 2024-06-30 18:39:06 +02:00
Le Philousophe
90b886097f ENGINES: Create a type aware advanced detector 2024-06-30 18:39:06 +02:00
Le Philousophe
98d6f155d2 ENGINES: Split Engine::createInstance in two
This brings a cleaner separation between AdvancedMetaEngineDetection and
AdvancedMetaEngine.
2024-06-30 18:39:06 +02:00
Torbjörn Andersson
28bfd6e977 AGOS: Add "Enable copy protection" engine checkbox
I don't have the floppy version of Simon 2, and I'm uncertain of the
actual effect of failing the copy protection in Waxworks and Simon 1.
But they are at the very least partly implemented.
2024-06-30 18:01:32 +02:00
NabeelShabbir
c5422d4aab AGOS: Add keymapper support
AGOS: Add keymapper support

commit 40359d7e9b575dbcc6233f9ba7f7454cf760c498
Author: NabeelShabbir <i210443@nu.edu.pk>
Date:   Thu May 30 02:51:09 2024 +0500
2024-06-27 17:33:31 -05:00
Eugene Sandulenko
0d02f81f94
AGOS: Improved debug output 2024-05-28 14:57:58 +02:00
Eugene Sandulenko
263ea9a063
AGOS: Added support for music track replacement for Enhanced Music Project 2024-05-28 14:54:44 +02:00
Eugene Sandulenko
d0ab4251c5
AGOS: Added more debug output to music player 2024-05-28 14:47:18 +02:00
Eugene Sandulenko
dc5c2f9946
AGOS: Enhance 'music' debugger command with optional track number 2024-05-28 14:46:43 +02:00
Eugene Sandulenko
9f843b2f6c
AGOS: Added support for Enhanced Soundtrack 2024-05-27 20:23:34 +02:00
Filippos Karapetis
40d62bd6bc AGOS: Use true/false keywords for boolean variables 2024-05-13 09:47:28 +03:00
athrxx
8feeded6ae AGOS: (WW) - prevent invalid memory access
It can be reproduced by clicking on the crystal ball icon.
From looking at disasm I think it happens in the original
in the same way. But this is a static memory area, so it
will always corrupt the same variable in the original
(_fcsData1[0]) which seems to cause no harm here.
2024-04-06 22:39:48 +02:00
athrxx
879f6a43f5 AGOS: fix timer handling in savegames (bug no. 14886)
("Waxworks crashing at Egypt Level 3, corrupting save file")

The design for the timers is a bit sloppy, even the original
interpreter often writes negative timeouts into the save files.
We replicated this correctly, but treated these values as very
large positives which effectively disabled the timers.

The bug report is only about Waxworks, but I checked Elvira
and i have the same absurd timer values in my old savegames
there. It seems that the timers have little impact in most cases,
but in Waxworks there is a timer that runs every 10 seconds
which cleans up the items chain. And if that doesn't happen
it will lead to invalid item handles, like in that bug ticket.
2024-04-04 22:12:01 +02:00
athrxx
be41ea3125 AGOS: (WW) - fix mouse cursor glitch
This one is pretty obvious when comparing ScummVM
with DOSBox behaviour. After the cursor changes to
one of the arrow cursors, it often stays that way when
it should actually switch back to the normal cursor. I have
fixed it to match the original code.
2024-03-27 21:55:11 +01:00
Matthew Jimenez
5219c99400 GRAPHICS: Move PaletteManager definition to a separate header 2024-03-12 12:24:00 +02:00
Le Philousophe
d614b5d31c AGOS: Migrate engine to Path 2023-12-24 13:19:25 +01:00
sluicebox
ce7b926a1a AGOS: Fix memory leak. PVS-Studio V773 2023-12-05 09:24:31 -08:00
sluicebox
b1f466fb8e AGOS: Fix memory leaks. PVS-Studio V773 2023-10-30 11:28:14 -07:00
Le Philousophe
5bdd9e6f50 ALL: Unify zlib and gzio API
zlib is used when available and falls back on gzio.
This allows performance improvements as our CRC32 and gzio
implementations are slower than base zlib.
As zlib is available when libpng is present, this is sensible to
benefit from it.
2023-08-28 21:49:03 +02:00
Donovan Watteau
500a54a559 Revert "AGOS: SIMON2: Fix pirate dialogue freeze"
This change introduced several character animation regressions in the
game, which may seem as a worse experience than the original issue with
the pirate dialogue, for most end users (Trac#13997).

This reverts commit eb851041ed.
2023-08-08 12:30:17 +02:00
Coen Rampen
00d273fc55 AGOS: Fix support for Simon 2 25th Anniversary
This adds detection entries for the German and French versions. All language
versions except Russian use WAV sound effects and GM SMF MIDI data, so the
platform is changed to Windows. These versions also contain the MT-32 MIDI data
in XMIDI format, so support for this is added as well. Finally, the MT-32 track
10 workaround has been updated to deal with these versions.
2023-07-03 21:57:39 +02:00
Coen Rampen
7eba6e9eb5 AGOS: Add Simon 1 AdLib SFX fallback 2023-06-27 21:33:39 +02:00
Coen Rampen
7fdb1fe012 AGOS: Add Simon 1 25th Anniversary detection
Adds detection entries for the new versions in the 25th Anniversary editions.
The remaining language versions are already detected.
To use the 25th Anniversary versions you have to copy the files from the
subdirectory of the language you want to use to the main directory, then detect
the main directory; or just detect without copying for English CD.
2023-06-27 21:33:39 +02:00