ScummVM 2.5.1 was 200ms per tick, I feel like 1000ms per tick is too slow but 200ms is too fast. This makes the biggest difference in T7G puzzles like the cake and knights.
Official releases differ and are not consistent. For example, Clandestiny on iOS uses a timer based on the OS suggested audio buffer size. Windows 95 T7G runs the timer incredibly fast, all of the queens dialog will play before you can even click anything.
This commit fixes problems with commit acad766 which disabled the open house
savegame in The 7th Guest and The 11th Hour. These games use slot 0 to write a
special savegame when the game has been completed. This conflicts with ScummVM
autosave functionality, which also uses slot 0 by default. To fix this, the
autosave slot has been moved to slot 24, the last available save slot. The
workaround from commit acad766 for saving in slot 0 has been removed.
The intro music is now fixed by checking for a load of slot 0 and not stopping
the music in this case.
From the 12+1 mini-games:
- Crypts (T7G) works
- Cake (T7G) works
- Spiders (T7G) works
- High Lights (T7G) works
- Blood and Honey / beehive (11H) misses game logic
- The Amazing Labyrinth / mousetrap (11H) misses game logic
- Book Checkers (11H) works
- SwitchBoard (11H) works
- Cursed Coins (Clan) misses game logic
- Trade Winds (Clan) crashes with missing resources
- Statue Paths (Clan) crashes with missing resources
- Leap Frogs (Clan) works
- The final puzzle is not accessible yet
fixes the end of The 11th Hour where there's supposed to be a timeout but it didn't actually trigger until you moved the mouse
also the script timer has been further slowed down to 1000ms because that appears to be what T7G uses, both from looking at the exe and also from observing the game
cleaning up detection.cpp by removing all references to the disk.1 file and using AD_ENTRY2s
for Groovie v2 games, make sure to search for a file in the GROOVIE folder and also a file in the MEDIA folder, in order to ensure the user is adding the root game directory and not a subfolder, this also ensures that Mass Add Games works correctly without broken duplicates
also improved the error message in resource.cpp for when a file from a different disk is not found
For videos that don't have a _videoSkipAddress this allows you to fast forward through them. Also allows you to skip audio files like in T11H the riddles and hints.
For The 11th Hour, this means things like clock chimes and wind sounds. This also fixes the end of the game where you have until the clock chimes 12 to choose a door.
- also renamed the stub ops functions
- sound effect volume setting for Groovie 2 games
- stop sound effects when playing an FMV (an interlaced video)
This is enough to get through the whole game, although you have to use the GameBook to solve mouse trap, chapel, and cake. Modern art has rudimentary AI. Beehive and Pente both auto-solve. Updated o2_stub49 so the player can choose an ending.
This changes the audio mixer sound type used for movie audio from plain to
speech. The engine would apply speech volume to the plain sound type, but this
sound type is also used by the AdLib emulator. Volume control of the movie and
AdLib emulator audio is now independent.
For each engine:
- Make a new folder detection
- Move detection-related files inside the folder
- Add a new module "enginename/detection"
- Add DETECT_OBJS here
- Adjust the normal engine module to remove detect_objs
- Adjust every file for the new changes.
The MIDI music would keep playing while the ScummVM menu was open. This would
cause the music for cutscenes to go out of sync. I've added pausing to the
MusicPlayerMidi to fix this.
Loading and returning from subscripts alters the _variables
used, thus are not guaranteed to create a valid save state.
Loading a save should be valid at any time, as long as the
active script being run is restored to the base game script.
If the user enters in an invalid description for the save then it will be
simplified by the saved name cache process in Script::savegame.
I checked this with t7g, but not with the 11th guest or any other Groovie game.
The original in-game loading/saving can still only access the first 10 save
slots (0-9).
Its possible to saving via the GMM when the game is interactive.
Loading a game saved via the gui using the original in-game load menu
works fine.
Saving via the GMM with timestamp works, but only only saves the characters
up to the first non-alpha non-letter characer.
This flag is removed for a few reasons:
* Engines universally set this flag to true for widths > 320,
which made it redundant everywhere;
* This flag functioned primarily as a "force 1x scaler" flag,
since its behaviour was almost completely undocumented and users
would need to figure out that they'd need an explicit non-default
scaler set to get a scaler to operate at widths > 320;
* (Most importantly) engines should not be in the business of
deciding how the backend may choose to render its virtual screen.
The choice of rendering behaviour belongs to the user, and the
backend, in that order.
A nearby future commit restores the default1x scaler behaviour in
the SDL backend code for the moment, but in the future it is my
hope that there will be a better configuration UI to allow users
to specify how they want scaling to work for high resolutions.
Engines should only have to call one set of functions and not decide between the two. In fact, the 'emulation' API was documented to just call the 'real CD' API.