Commit Graph

422 Commits

Author SHA1 Message Date
Hubert Maier
78590e4c86 JANITORIAL: MADE: Fix typos 2024-09-16 01:47:01 +03:00
NabeelShabbir
6b33fcfcbe MADE: Improve mapping labels 2024-07-15 07:53:00 +03: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
NabeelShabbir
bb6c701a7a MADE: Add keymapper support 2024-06-27 17:34:09 -05:00
Misty De Meo
7c1cfb3ce2 MADE: TeraDrive Manhole 2024-04-21 12:24:43 +03:00
Matthew Jimenez
5219c99400 GRAPHICS: Move PaletteManager definition to a separate header 2024-03-12 12:24:00 +02:00
sluicebox
032846efc9 MADE: Add missing else keyword. PVS-Studio V646 2023-11-22 23:21:03 -08:00
Miro Kropacek
38ffb065f5 MADE: Use new CursorMan with cursor surface 2023-04-09 13:12:06 +02:00
Eugene Sandulenko
7c6e369ba3
MADE: Fix POTFILES 2023-03-17 16:21:52 +01:00
Eugene Sandulenko
b07baf493b
ALL: Make sure we always allow to override random seed 2023-01-02 16:12:44 +01:00
Walter Agazzi
12be54888e MADE: Improve detection for RTZ Demo
Fixes clash with Myst demo
2022-12-01 14:18:52 +01:00
Cameron Cawley
f3cb449566 MADE: Move the engine options into the MetaEngine subclass 2022-11-16 23:58:54 +01:00
eientei
a8bd58374d MADE: Add detection for FM-Towns version of The Manhole 2022-10-19 00:31:55 +02:00
Cameron Cawley
f3b094e53f ENGINES: Change the MetaEngineDetection interface to match MetaEngine 2022-07-23 23:31:58 +02:00
Cameron Cawley
1168056ec3 MADE: Use ADExtraGuiOptionsMap for the options 2022-07-07 23:46:04 +03:00
Donovan Watteau
5b1ec56f96 JANITORIAL: Fix some lost or outdated URLs in comments 2022-05-19 07:57:31 +03:00
Torbjörn Andersson
e06f3c9a5a GUI: Allow game option checkboxes to be disabled
Depending on other game option checkboxes. This is used to
enable/disable the semi-smooth scrolling checkboxes for FM Towns Loom,
since it's only used when smooth scrolling is enabled.
2022-04-21 11:07:17 +02:00
Torbjörn Andersson
fd8ba511fc MADE: Fix error message 2022-03-01 14:10:12 +01:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Filippos Karapetis
c14e47753d MADE: Disable unused variable
Thanks to eientei for reporting this
2021-12-24 03:15:12 +02:00
Eugene Sandulenko
48534d5e8c
MADE: Added override keyword 2021-12-01 00:07:46 +01:00
Orgad Shaneh
6333092801 MADE: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Orgad Shaneh
3919f53326 ENGINES: Replace new[]/memset with new[]() 2021-11-10 19:53:15 +01:00
Eugene Sandulenko
d33ef146ae
MADE: Fixed detection entry after MacResMan changes 2021-10-17 20:48:03 +03:00
Coen Rampen
dd8156b2d5 MADE: Add detection.cpp to POTFILES
A new GUI option was added here.
2021-10-16 20:28:58 +02:00
Coen Rampen
5369ed6ecc MADE: Add option for MIDI introduction music
The Return to Zork installer has an option to turn off the digital music during
the introduction and play MIDI music instead. ScummVM would always play the
digital music. This commit adds the installer option to the launcher GUI.
2021-10-09 16:59:45 +02:00
Coen Rampen
245c4cc923 MADE: Display MT-32 quit message
This commit adds the message displayed on the MT-32 display when the game quits.
2021-10-09 16:59:45 +02:00
Coen Rampen
8ec8f65d5f MADE: Improve unpausing game when movie is playing
The movie player would use OSystem::getMillis to check the elapsed playing time
to keep audio and video in sync. This would go wrong when the game was paused
during movie playback, as the player would try to make up for the pause time,
fast forwarding the movie and breaking A/V sync.
This commit improves this by using Engine::getTotalPlayTime, which subtracts
pause time, and Mixer::getElapsedTime, which returns the actual length of audio
played. The player seems to restart later than the audio when unpausing, so it
still catches up for about 10 frames, but it's not as bad as before and it does
not lose A/V sync.
2021-10-09 16:59:45 +02:00
Coen Rampen
30a6c8428c MADE: Fix audible gap when sounds loop
For looping sounds the game script regularly checks if the sound has finished
playing, then plays it again. This works in the original interpreter (possibly
because it checks the first buffer of double-buffered sound output); it does
not work in ScummVM because the mixer will return if the sound has actually
stopped playing. This causes an audible gap when the sound loops.

This commit alters the sfSoundPlaying function to check if the current elapsed
playing time is less than 100ms before the end of the sound, which fixes the
issue. Not sure if this change is necessary or desirable for games other than
Return to Zork. This fixes issue #6443.
2021-10-09 16:59:45 +02:00
Coen Rampen
0a702a6e3f MADE: Pause MIDI music when pausing engine
The MIDI music on external softsynths and devices would keep playing while the
engine was paused. This commit fixes this by implementing the
Engine::pauseEngineIntern method to pause the MIDI music when the engine is
paused.
2021-10-09 16:59:45 +02:00
Coen Rampen
2d5e8dbee6 MADE: New MIDI player
This rewrites the MADE music player to remove the use of the MidiPlayer. This
fixes the following issues in Return to Zork:
- User music volume control did not work for AdLib.
- MIDI channels were remapped; sometimes channels were missing (f.e. at the
  lighthouse exterior).
- Some music tracks did not play because the current track had to be stopped
  before playing a new track (f.e. the music over the credits after the intro).
- MIDI played at half volume and volume control would reset when a new track
  started playing.
- "Native MT-32" flag was not checked, so the Miles driver was not used for
  hardware MT-32.
- MT-32 to GM instrument mapping did not work.
- Roland GS mode now works.
2021-10-09 16:59:44 +02:00
Coen Rampen
69629944e5 MADE: Use SFX sound type for sampled audio
The engine used the plain sound type for sampled sound effects and movie audio
and applied the SFX user volume control to the plain sound type. This caused
emulators like the AdLib emulator and Munt to be affected by the SFX user
volume control, because they use the plain sound type. This commit fixes this
by using the SFX sound type instead of the plain sound type. User volume is
applied by Engine::syncSoundSettings.

This commit also fixes the setSoundVolume script function. Volume was
previously applied to the SFX and speech sound types, which were not used.
Also, by directly using Mixer::setVolumeForSoundType, it would override the
user volume setting. This is fixed by storing the game sound volume in a field
and applying this to the current and future audio streams. This fixes bug
#6444.
2021-10-09 16:59:44 +02:00
trembyle
6d3a5989d4 MADE: Add detection for more demos
Added to the description for demo reported in bug # 11202. There is
also a Mac demo on this disc.

There is also a standalone CD demo here:
https://archive.org/details/Return_to_Zork_demo
2021-09-19 14:52:46 +02:00
Max Horn
2f1f8f502e DEVTOOLS: move credits from devtools/credits.pl to engines
This employs a "lazy" approach: the "format" for the credits stays
exactly as it was, i.e., perl code. Of course one may want to change
this to another format (e.g. YAML, JSON, XML; or also shell script or
AWK, like `configure.engine` uses). But I deliberately kept it simple,
to get a minimal change that is easy to verify. Any further changes to
e.g. the format can be layered atop this.
2021-08-05 00:01:46 +02:00
antoniou79
04642eef8a ENGINES: Replace checkCD with isolated partial methods
This is PR #3018 "rebased" on the current HEAD, after the conflicts with PR #3003 and me botching the rebase in that PR

Old PR is here: https://github.com/scummvm/scummvm/pull/3018
2021-07-27 20:51:57 +02:00
Paul Gilbert
005561d305 COMMON: Increase Stream pos, seek, size from int32 to int64 2021-07-08 18:24:28 -07:00
ysj1173886760
7af3a3f84c ENGINES: introduce ADDectedGameExtraInfo to ADGameDetector, add extra info as parameter for fallback detect. 2021-06-13 14:15:45 +02:00
Eugene Sandulenko
83efc45760
MADE: Added detection for rtz demo. Bugreport #11202 2021-04-21 00:57:31 +02:00
Eugene Sandulenko
9db243f45b
MADE: Added detection for unsupported Manhole version. Bugreport #5855 2021-04-19 02:25:03 +02:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
sluicebox
93eeffc84d JANITORIAL: Update old bug tracker numbers 2021-03-03 02:15:05 +02:00
trembyle
a400ad1657 MADE: Detect Korean variant
This is stable as only the videos are dubbed. No text was translated,
even in menus, so there are no font issues.
2020-12-07 01:35:53 +01:00
Cameron Cawley
4ced49acd4 ENGINES: Changed AdvancedMetaEngine::createInstance to return a Common::Error 2020-12-04 20:57:14 +00:00
Eugene Sandulenko
092886fcb3 I18N: Clarify files in POTFILES 2020-11-28 17:41:24 +01:00
Eugene Sandulenko
3bcff619e7 MADE: Add GOG.com version to detection and mark it as unsupported 2020-11-28 17:41:23 +01:00
Thierry Crozat
ec03345cc9
MADE: Add additional comment on detection entries
Two detection entries for the v1.1 version have the same MD5 hash,
but different file size. According to GoodOldGeorg on the forum one
is a OEM version and the other is a retail version.
2020-10-12 13:11:32 +01:00
Thierry Crozat
0582662f64 MADE: Add detection entry for RTZ version reported in forum
The detection entry was also reported in bug #4198, but the one that
was actually added to the detection table with the same hash had a
different file size. I don't know if they are two different versions,
or if it was a mistake, so I kept the detection entry and just added
the new one.
2020-10-11 23:47:23 +01:00
Eugene Sandulenko
7ff34bc9ec PLUGINS: MetaEngineStatic -> MetaEngineDetection 2020-10-11 23:14:39 +02:00