[Scummvm-git-logs] scummvm branch-2-7 -> a9c855a79332dcc8dc2e6ab6c9e96980345c4dd5
tag2015
noreply at scummvm.org
Fri Jun 30 21:44:47 UTC 2023
This automated email contains information about 56 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
8d9d937392 AGS: Removed update_polled_stuff_if_runtime() from data loading functions
5ad311d8c0 AGS: Engine: fixed GUI sorting for cases when ZOrder is equal
c56f067c33 AGS: Engine: restored GUI draw sort, where equal z is resolved with IDs
1ef2f29329 AGS: Add detection for two new versions
b966af0311 AGS: Add Russian Black Cauldron remake
1d9a96cc37 AGS: Add detection for two games
7997369285 AGS: auto-detect Linux games based on executable
f3ca9fd7c0 AGS: Add a few games/versions
ad4bb515d2 AGS: Fix formatting of debug message
6c009ea367 AGS: Fix two entries requiring punycode
e74aeb1b33 AGS: Add Dreams in the Witch House 1.05 GOG
cba9faaf62 AGS: Add detection for a few old versions
603da1de05 AGS: Add detection for newer Steam Mac versions of Unavowed and The Excavation of Hob's Barrow
dc7eb801bb AGS: Add detection for three games
37aa6f4311 AGS: Add new versions of recent MAGS games
92c7e9fc54 AGS: Add detection for two games
8cc3cccf65 AGS: Add steam version of Dreams in the Witch House + old foy demo
120af8923f AGS: Fixes to some commercial games entries
6a51eef1ec AGS: Rename crystalball -> thecrystalball
3a65a84054 AGS: Add detection entry for Murder Cases Demo
713ee94970 AGS: Disable loading from launcher for Strangeland
1151492abb AGS: Add detection for Stellar Mess full game
7410ad4ceb AGS: Added for Dreams in the Witch House 1.06 GOG
cc5a864881 AGS: Add detection for some italian localized versions
f20b0da940 AGS: Add detection entries for recent demos/games
a1d8f48316 AGS: Engine: a fix for coincidental dynamic sprite replacement in old games
cbf181bdd4 AGS: Engine: fixed room objects with ID >= 100 fail to Animate
d1f2e2b116 AGS: Engine: fixed <3.6.0 Animate functions default volume parameter
df04663e57 AGS: COmment out unused variable
24b9095914 AGS: Fix bitwise operations
8442128ede AGS: Don't assign palette values if array is unallocated
367111653c AGS: Add detection for a few recent games
7f565be18e AGS: Disable loading from launcher for offtheclock
bc99d940a6 AGS: Added detection for Gobliiins5
326542d85a AGS: Use full name for Gobliiins5 detection and do not detected as French
cd297bf9e9 AGS: Add a couple new detection entries
ed59f58a7d AGS: Added detection for the bugfixed gob5
0aa02cd185 AGS: Added more debug output
12dfc13175 AGS: Engine: picked out basic Animate params check and warn instead of quit
f14750aa67 AGS: Small workaround for transparent purple texts
2e426fdf4d AGS: Add a couple new games
bb33a8fcf4 AGS: Fix regression with translation setting change not saved
3ede158e73 AGS: Added updated version of gob5
0be6f263f4 AGS: Engine: fixed wrong mask upscale for low-res rooms in hi-res game
92a6e74066 AGS: Add detection entries for two commercial games
2776696ad1 AGS: Add newest version of Dreams in the Witch House
fe076bad49 AGS: Add AGS Awards 2022 client + minor sorting fixes
fad2ce5009 AGS: Add sanity check for frame in turning animation
984e0e7d47 AGS: Add detection for The Sleeping Castle
0ac49a9f8e AGS: Add latest version of Blackwell Convergence
dec1379b1e AGS: Restore screenshot creation workaround on save
dd9fc544e5 AGS: Add detection for recent games
24e797c04a AGS: Add detection entry for blackwell3 Mac 2.3b
b232eb0825 AGS: Add detection entries for Superego Chapters 1+2
8e605a4cc4 AGS: Add detection entry for Graceward CE full
a9c855a793 NEWS: Mention AGS fixes
Commit: 8d9d93739284fe106c9b0651fe940f30c7ca2c1e
https://github.com/scummvm/scummvm/commit/8d9d93739284fe106c9b0651fe940f30c7ca2c1e
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T20:37:43+02:00
Commit Message:
AGS: Removed update_polled_stuff_if_runtime() from data loading functions
Leave it with a new name as `update_polled_stuff()` only in functions
related to the game update.
>From upstream 95dc139f51e704da19792e5480e69bbfe7ec27aa
Changed paths:
engines/ags/engine/ac/dialog.cpp
engines/ags/engine/ac/display.cpp
engines/ags/engine/ac/draw.cpp
engines/ags/engine/ac/drawing_surface.cpp
engines/ags/engine/ac/dynamic_sprite.cpp
engines/ags/engine/ac/event.cpp
engines/ags/engine/ac/game.cpp
engines/ags/engine/ac/global_drawing_surface.cpp
engines/ags/engine/ac/global_game.cpp
engines/ags/engine/ac/global_screen.cpp
engines/ags/engine/ac/inv_window.cpp
engines/ags/engine/ac/room.cpp
engines/ags/engine/ac/route_finder_impl_legacy.cpp
engines/ags/engine/ac/sprite.cpp
engines/ags/engine/debugging/debug.cpp
engines/ags/engine/game/savegame.cpp
engines/ags/engine/game/savegame_components.cpp
engines/ags/engine/game/savegame_v321.cpp
engines/ags/engine/gui/my_push_button.cpp
engines/ags/engine/main/engine_setup.cpp
engines/ags/engine/main/game_run.cpp
engines/ags/engine/main/game_run.h
engines/ags/engine/media/audio/audio.cpp
engines/ags/engine/media/video/video.cpp
engines/ags/plugins/ags_plugin.cpp
engines/ags/shared/ac/common.h
engines/ags/shared/game/room_file.cpp
engines/ags/shared/game/room_struct.cpp
diff --git a/engines/ags/engine/ac/dialog.cpp b/engines/ags/engine/ac/dialog.cpp
index 8f6326e7ead..fa10284709f 100644
--- a/engines/ags/engine/ac/dialog.cpp
+++ b/engines/ags/engine/ac/dialog.cpp
@@ -479,8 +479,6 @@ void DialogOptions::Prepare(int _dlgnum, bool _runGameLoopsInBackground) {
_GP(play).in_conversation ++;
- update_polled_stuff_if_runtime();
-
if (_GP(game).dialog_bullet > 0)
bullet_wid = _GP(game).SpriteInfos[_GP(game).dialog_bullet].Width + 3;
@@ -490,8 +488,6 @@ void DialogOptions::Prepare(int _dlgnum, bool _runGameLoopsInBackground) {
_G(said_text) = 0;
- update_polled_stuff_if_runtime();
-
const Rect &ui_view = _GP(play).GetUIViewport();
tempScrn = BitmapHelper::CreateBitmap(ui_view.GetWidth(), ui_view.GetHeight(), _GP(game).GetColorDepth());
@@ -770,13 +766,9 @@ void DialogOptions::Redraw() {
wantRefresh = false;
- update_polled_stuff_if_runtime();
-
subBitmap = recycle_bitmap(subBitmap,
_G(gfxDriver)->GetCompatibleBitmapFormat(tempScrn->GetColorDepth()), dirtywidth, dirtyheight);
- update_polled_stuff_if_runtime();
-
if (usingCustomRendering) {
subBitmap->Blit(tempScrn, 0, 0, 0, 0, tempScrn->GetWidth(), tempScrn->GetHeight());
invalidate_rect(dirtyx, dirtyy, dirtyx + subBitmap->GetWidth(), dirtyy + subBitmap->GetHeight(), false);
@@ -945,7 +937,7 @@ bool DialogOptions::Run() {
}
}
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
if (!runGameLoopsInBackground && (_GP(play).fast_forward == 0)) { // note if runGameLoopsInBackground then it's called inside UpdateGameOnce
WaitForNextFrame();
diff --git a/engines/ags/engine/ac/display.cpp b/engines/ags/engine/ac/display.cpp
index 299330923c2..9418ec8ecb6 100644
--- a/engines/ags/engine/ac/display.cpp
+++ b/engines/ags/engine/ac/display.cpp
@@ -333,7 +333,7 @@ ScreenOverlay *_display_main(int xx, int yy, int wii, const char *text, int disp
if (do_break)
break;
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
if (_GP(play).fast_forward == 0) {
WaitForNextFrame();
diff --git a/engines/ags/engine/ac/draw.cpp b/engines/ags/engine/ac/draw.cpp
index cf52ebf3c5b..79d73b93336 100644
--- a/engines/ags/engine/ac/draw.cpp
+++ b/engines/ags/engine/ac/draw.cpp
@@ -1706,7 +1706,6 @@ void prepare_room_sprites() {
// and for software renderer in case there are overlapping viewports.
// Note that software DDB is just a tiny wrapper around bitmap, so overhead is negligible.
if (_G(current_background_is_dirty) || !_G(roomBackgroundBmp)) {
- update_polled_stuff_if_runtime();
_G(roomBackgroundBmp) =
recycle_ddb_bitmap(_G(roomBackgroundBmp), _GP(thisroom).BgFrames[_GP(play).bg_frame].Graphic.get(), false, true);
diff --git a/engines/ags/engine/ac/drawing_surface.cpp b/engines/ags/engine/ac/drawing_surface.cpp
index 0484e87d09e..b823f52947a 100644
--- a/engines/ags/engine/ac/drawing_surface.cpp
+++ b/engines/ags/engine/ac/drawing_surface.cpp
@@ -184,7 +184,6 @@ void DrawingSurface_DrawImageImpl(ScriptDrawingSurface *sds, Bitmap *src,
src = newPic;
needToFreeBitmap = true;
- update_polled_stuff_if_runtime();
}
ds = sds->StartDrawing();
diff --git a/engines/ags/engine/ac/dynamic_sprite.cpp b/engines/ags/engine/ac/dynamic_sprite.cpp
index 8992b0fe7b6..6955fbe3b65 100644
--- a/engines/ags/engine/ac/dynamic_sprite.cpp
+++ b/engines/ags/engine/ac/dynamic_sprite.cpp
@@ -312,8 +312,6 @@ ScriptDynamicSprite *DynamicSprite_CreateFromScreenShot(int width, int height) {
Bitmap *newPic = CopyScreenIntoBitmap(width, height);
- update_polled_stuff_if_runtime();
-
// replace the bitmap in the sprite set
add_dynamic_sprite(gotSlot, newPic);
ScriptDynamicSprite *new_spr = new ScriptDynamicSprite(gotSlot);
diff --git a/engines/ags/engine/ac/event.cpp b/engines/ags/engine/ac/event.cpp
index 14328123abb..9cb59fc8589 100644
--- a/engines/ags/engine/ac/event.cpp
+++ b/engines/ags/engine/ac/event.cpp
@@ -30,6 +30,7 @@
#include "ags/engine/ac/gui.h"
#include "ags/engine/ac/room_status.h"
#include "ags/engine/ac/screen.h"
+#include "ags/engine/main/game_run.h"
#include "ags/shared/script/cc_common.h"
#include "ags/engine/platform/base/ags_platform_driver.h"
#include "ags/plugins/ags_plugin.h"
@@ -282,7 +283,7 @@ void process_event(const EventHappened *evp) {
_G(gfxDriver)->EndSpriteBatch();
}
render_to_screen();
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
WaitForNextFrame();
}
@@ -316,7 +317,7 @@ void process_event(const EventHappened *evp) {
_G(gfxDriver)->DrawSprite(0, 0, ddb);
_G(gfxDriver)->EndSpriteBatch();
render_to_screen();
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
WaitForNextFrame();
}
diff --git a/engines/ags/engine/ac/game.cpp b/engines/ags/engine/ac/game.cpp
index f57fedb0fbd..c38d84eb998 100644
--- a/engines/ags/engine/ac/game.cpp
+++ b/engines/ags/engine/ac/game.cpp
@@ -68,6 +68,7 @@
#include "ags/shared/gui/gui_slider.h"
#include "ags/engine/gui/gui_dialog.h"
#include "ags/engine/main/engine.h"
+#include "ags/engine/main/game_run.h"
#include "ags/engine/media/audio/audio_system.h"
#include "ags/engine/media/video/video.h"
#include "ags/engine/platform/base/ags_platform_driver.h"
@@ -823,7 +824,7 @@ long write_screen_shot_for_vista(Stream *out, Bitmap *screenshot) {
Common::MemoryWriteStreamDynamic bitmap(DisposeAfterUse::YES);
screenshot->SaveToFile(bitmap, _G(palette));
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
// Write the bitmap to the output stream
out->Write(bitmap.getData(), bitmap.size());
@@ -888,8 +889,6 @@ void save_game(int slotn, const char *descript) {
return;
}
- update_polled_stuff_if_runtime();
-
// Actual dynamic game data is saved here
SaveGameState(out.get());
@@ -897,7 +896,7 @@ void save_game(int slotn, const char *descript) {
int screenShotOffset = out->GetPosition() - sizeof(RICH_GAME_MEDIA_HEADER);
int screenShotSize = write_screen_shot_for_vista(out.get(), screenShot.get());
- update_polled_stuff_if_runtime();
+ update_polled_stuff(); // TODO: probably unneeded
out->Seek(12, kSeekBegin);
out->WriteInt32(screenShotOffset);
diff --git a/engines/ags/engine/ac/global_drawing_surface.cpp b/engines/ags/engine/ac/global_drawing_surface.cpp
index 42ce1547d4a..9a85b6a3ff9 100644
--- a/engines/ags/engine/ac/global_drawing_surface.cpp
+++ b/engines/ags/engine/ac/global_drawing_surface.cpp
@@ -222,8 +222,6 @@ void RawDrawImageTransparent(int xx, int yy, int slot, int legacy_transparency)
// 1 - 99 => alpha 1 - 244
//
RawDrawImageTrans(xx, yy, slot, GfxDef::LegacyTrans100ToAlpha255(legacy_transparency));
-
- update_polled_stuff_if_runtime(); // this operation can be slow so stop music skipping
}
void RawDrawImageResized(int xx, int yy, int gotSlot, int width, int height) {
if ((gotSlot < 0) || (_GP(spriteset)[gotSlot] == nullptr))
@@ -249,7 +247,6 @@ void RawDrawImageResized(int xx, int yy, int gotSlot, int width, int height) {
delete newPic;
invalidate_screen();
mark_current_background_dirty();
- update_polled_stuff_if_runtime(); // this operation can be slow so stop music skipping
RAW_END();
}
void RawDrawLine(int fromx, int fromy, int tox, int toy) {
diff --git a/engines/ags/engine/ac/global_game.cpp b/engines/ags/engine/ac/global_game.cpp
index 33b58c673cd..08a1cbd6606 100644
--- a/engines/ags/engine/ac/global_game.cpp
+++ b/engines/ags/engine/ac/global_game.cpp
@@ -169,8 +169,6 @@ int LoadSaveSlotScreenshot(int slnum, int width, int height) {
RectWH(0, 0, _GP(game).SpriteInfos[gotSlot].Width, _GP(game).SpriteInfos[gotSlot].Height),
RectWH(0, 0, width, height));
- update_polled_stuff_if_runtime();
-
// replace the bitmap in the sprite set
free_dynamic_sprite(gotSlot);
add_dynamic_sprite(gotSlot, newPic);
diff --git a/engines/ags/engine/ac/global_screen.cpp b/engines/ags/engine/ac/global_screen.cpp
index 5880fc13310..3702e583f4b 100644
--- a/engines/ags/engine/ac/global_screen.cpp
+++ b/engines/ags/engine/ac/global_screen.cpp
@@ -30,6 +30,7 @@
#include "ags/engine/ac/runtime_defines.h"
#include "ags/engine/ac/screen.h"
#include "ags/engine/debugging/debug_log.h"
+#include "ags/engine/main/game_run.h"
#include "ags/engine/platform/base/ags_platform_driver.h"
#include "ags/engine/gfx/graphics_driver.h"
#include "ags/shared/gfx/bitmap.h"
@@ -77,7 +78,7 @@ void ShakeScreen(int severe) {
render_graphics();
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
}
} else {
// Optimized variant for software render: create game scene once and shake it
@@ -88,7 +89,7 @@ void ShakeScreen(int severe) {
const int yoff = hh % 2 == 0 ? 0 : severe;
_GP(play).shake_screen_yoff = yoff;
render_to_screen();
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
}
clear_letterbox_borders();
render_to_screen();
diff --git a/engines/ags/engine/ac/inv_window.cpp b/engines/ags/engine/ac/inv_window.cpp
index 0faf37eddb1..ea818511c08 100644
--- a/engines/ags/engine/ac/inv_window.cpp
+++ b/engines/ags/engine/ac/inv_window.cpp
@@ -477,7 +477,7 @@ bool InventoryScreen::Run() {
}
wasonitem = isonitem;
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
WaitForNextFrame();
diff --git a/engines/ags/engine/ac/room.cpp b/engines/ags/engine/ac/room.cpp
index f75527e8133..2af5e39bd32 100644
--- a/engines/ags/engine/ac/room.cpp
+++ b/engines/ags/engine/ac/room.cpp
@@ -72,6 +72,7 @@
#include "ags/engine/gfx/gfxfilter.h"
#include "ags/shared/util/math.h"
#include "ags/engine/media/audio/audio_system.h"
+#include "ags/engine/main/game_run.h"
#include "ags/shared/debugging/out.h"
#include "ags/engine/script/script_api.h"
#include "ags/engine/script/script_runtime.h"
@@ -431,8 +432,6 @@ void load_new_room(int newnum, CharacterInfo *forchar) {
}
}
- update_polled_stuff_if_runtime();
-
// load the room from disk
_G(our_eip) = 200;
_GP(thisroom).GameID = NO_GAME_ID_IN_ROOM_FILE;
@@ -450,7 +449,6 @@ void load_new_room(int newnum, CharacterInfo *forchar) {
convert_room_coordinates_to_data_res(&_GP(thisroom));
- update_polled_stuff_if_runtime();
_G(our_eip) = 201;
_GP(play).room_width = _GP(thisroom).Width;
@@ -474,12 +472,9 @@ void load_new_room(int newnum, CharacterInfo *forchar) {
}
for (size_t i = 0; i < _GP(thisroom).BgFrameCount; ++i) {
- update_polled_stuff_if_runtime();
_GP(thisroom).BgFrames[i].Graphic = PrepareSpriteForUse(_GP(thisroom).BgFrames[i].Graphic, false);
}
- update_polled_stuff_if_runtime();
-
_G(our_eip) = 202;
// Update game viewports
if (_GP(game).IsLegacyLetterbox())
@@ -505,11 +500,8 @@ void load_new_room(int newnum, CharacterInfo *forchar) {
_G(walkareabackup) = BitmapHelper::CreateBitmapCopy(_GP(thisroom).WalkAreaMask.get());
_G(our_eip) = 204;
- update_polled_stuff_if_runtime();
redo_walkable_areas();
- update_polled_stuff_if_runtime();
walkbehinds_recalc();
- update_polled_stuff_if_runtime();
_G(our_eip) = 205;
// setup objects
@@ -606,8 +598,6 @@ void load_new_room(int newnum, CharacterInfo *forchar) {
_G(in_new_room) = 2;
}
- update_polled_stuff_if_runtime();
-
if (_GP(thisroom).EventHandlers == nullptr) {
// legacy interactions
// copy interactions from room file into our temporary struct
@@ -636,10 +626,6 @@ void load_new_room(int newnum, CharacterInfo *forchar) {
ccAddExternalDynamicObject(_GP(thisroom).Hotspots[cc].ScriptName, &_G(scrHotspot)[cc], &_GP(ccDynamicHotspot));
}
- _G(our_eip) = 206;
-
- update_polled_stuff_if_runtime();
-
_G(our_eip) = 210;
if (IS_ANTIALIAS_SPRITES) {
// sometimes the palette has corrupt entries, which crash
@@ -682,8 +668,6 @@ void load_new_room(int newnum, CharacterInfo *forchar) {
StopMoving(cc);
}
- update_polled_stuff_if_runtime();
-
_G(roominst) = nullptr;
if (_G(debug_flags) & DBG_NOSCRIPT) ;
else if (_GP(thisroom).CompiledScript != nullptr) {
@@ -840,7 +824,6 @@ void load_new_room(int newnum, CharacterInfo *forchar) {
_G(color_map) = nullptr;
_G(our_eip) = 209;
- update_polled_stuff_if_runtime();
generate_light_table();
update_music_volume();
@@ -870,7 +853,7 @@ void load_new_room(int newnum, CharacterInfo *forchar) {
setpal();
_G(our_eip) = 220;
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
debug_script_log("Now in room %d", _G(displayed_room));
GUI::MarkAllGUIForUpdate();
pl_run_plugin_hooks(AGSE_ENTERROOM, _G(displayed_room));
@@ -882,8 +865,6 @@ void new_room(int newnum, CharacterInfo *forchar) {
debug_script_log("Room change requested to room %d", newnum);
- update_polled_stuff_if_runtime();
-
// we are currently running Leaves Screen scripts
_G(in_leaves_screen) = newnum;
@@ -904,7 +885,6 @@ void new_room(int newnum, CharacterInfo *forchar) {
// who is not in the new room. therefore, abort the follow
_G(playerchar)->following = -1;
}
- update_polled_stuff_if_runtime();
// change rooms
unload_old_room();
@@ -916,8 +896,6 @@ void new_room(int newnum, CharacterInfo *forchar) {
GUI::MarkAllGUIForUpdate();
}
- update_polled_stuff_if_runtime();
-
load_new_room(newnum, forchar);
// Update background frame state (it's not a part of the RoomStatus currently)
diff --git a/engines/ags/engine/ac/route_finder_impl_legacy.cpp b/engines/ags/engine/ac/route_finder_impl_legacy.cpp
index 12c45378604..02348565d4f 100644
--- a/engines/ags/engine/ac/route_finder_impl_legacy.cpp
+++ b/engines/ags/engine/ac/route_finder_impl_legacy.cpp
@@ -442,8 +442,6 @@ static int find_route_dijkstra(int fromx, int fromy, int destx, int desty) {
int totalfound = 0;
int DIRECTION_BONUS = 0;
- update_polled_stuff_if_runtime();
-
while (foundAnswer < 0) {
min = 29999;
changeiter = iteration;
@@ -548,7 +546,6 @@ static int find_route_dijkstra(int fromx, int fromy, int destx, int desty) {
}
}
if (totalfound >= 1000) {
- update_polled_stuff_if_runtime();
totalfound = 0;
}
}
diff --git a/engines/ags/engine/ac/sprite.cpp b/engines/ags/engine/ac/sprite.cpp
index af201585a94..2d851daa8b9 100644
--- a/engines/ags/engine/ac/sprite.cpp
+++ b/engines/ags/engine/ac/sprite.cpp
@@ -166,7 +166,6 @@ void initialize_sprite(int ee) {
}
pl_run_plugin_hooks(AGSE_SPRITELOAD, ee);
- update_polled_stuff_if_runtime();
_G(our_eip) = oldeip;
}
diff --git a/engines/ags/engine/debugging/debug.cpp b/engines/ags/engine/debugging/debug.cpp
index 364634d7f28..58fceec3df6 100644
--- a/engines/ags/engine/debugging/debug.cpp
+++ b/engines/ags/engine/debugging/debug.cpp
@@ -36,6 +36,7 @@
#include "ags/engine/debugging/log_file.h"
#include "ags/engine/debugging/message_buffer.h"
#include "ags/engine/main/config.h"
+#include "ags/engine/main/game_run.h"
#include "ags/engine/media/audio/audio_system.h"
#include "ags/engine/platform/base/ags_platform_driver.h"
#include "ags/engine/platform/base/sys_main.h"
@@ -469,7 +470,7 @@ void break_into_debugger() {
_G(game_paused_in_debugger) = 1;
while (_G(game_paused_in_debugger)) {
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
_G(platform)->YieldCPU();
}
diff --git a/engines/ags/engine/game/savegame.cpp b/engines/ags/engine/game/savegame.cpp
index 69c9b6ed958..366b01239d7 100644
--- a/engines/ags/engine/game/savegame.cpp
+++ b/engines/ags/engine/game/savegame.cpp
@@ -50,6 +50,7 @@
#include "ags/engine/game/savegame.h"
#include "ags/engine/game/savegame_components.h"
#include "ags/engine/game/savegame_internal.h"
+#include "ags/engine/main/game_run.h"
#include "ags/engine/main/engine.h"
#include "ags/engine/main/main.h"
#include "ags/engine/platform/base/ags_platform_driver.h"
@@ -483,16 +484,12 @@ HSaveError DoAfterRestore(const PreservedParams &pp, const RestoredData &r_data)
int queuedMusicSize = _GP(play).music_queue_size;
_GP(play).music_queue_size = 0;
- update_polled_stuff_if_runtime();
-
// load the room the game was saved in
if (_G(displayed_room) >= 0)
load_new_room(_G(displayed_room), nullptr);
else
set_room_placeholder();
- update_polled_stuff_if_runtime();
-
_GP(play).gscript_timer = gstimer;
// restore the correct room volume (they might have modified
// it with SetMusicVolume)
@@ -509,8 +506,6 @@ HSaveError DoAfterRestore(const PreservedParams &pp, const RestoredData &r_data)
sys_window_set_title(_GP(play).game_name);
- update_polled_stuff_if_runtime();
-
if (_G(displayed_room) >= 0) {
// Fixup the frame index, in case the restored room does not have enough background frames
if (_GP(play).bg_frame < 0 || static_cast<size_t>(_GP(play).bg_frame) >= _GP(thisroom).BgFrameCount)
@@ -606,7 +601,7 @@ HSaveError DoAfterRestore(const PreservedParams &pp, const RestoredData &r_data)
RestoreViewportsAndCameras(r_data);
_GP(play).ClearIgnoreInput(); // don't keep ignored input after save restore
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
pl_run_plugin_hooks(AGSE_POSTRESTOREGAME, 0);
diff --git a/engines/ags/engine/game/savegame_components.cpp b/engines/ags/engine/game/savegame_components.cpp
index ecda89b5d0c..f1d0be3b39b 100644
--- a/engines/ags/engine/game/savegame_components.cpp
+++ b/engines/ags/engine/game/savegame_components.cpp
@@ -1253,7 +1253,6 @@ HSaveError ReadAll(Stream *in, SavegameVersion svg_version, const PreservedParam
idx, info.Name.IsEmpty() ? "unknown" : info.Name.GetCStr(), info.Version, info.Offset),
err);
}
- update_polled_stuff_if_runtime();
idx++;
} while (!in->EOS());
return new SavegameError(kSvgErr_ComponentListClosingTagMissing);
@@ -1284,7 +1283,6 @@ HSaveError WriteAllCommon(Stream *out) {
String::FromFormat("Component: (#%d) %s", type, (*g_componentHandlers)[type].Name.GetCStr()),
err);
}
- update_polled_stuff_if_runtime();
}
WriteFormatTag(out, ComponentListTag, false);
return HSaveError::None();
diff --git a/engines/ags/engine/game/savegame_v321.cpp b/engines/ags/engine/game/savegame_v321.cpp
index efbed45c027..52a48c40e83 100644
--- a/engines/ags/engine/game/savegame_v321.cpp
+++ b/engines/ags/engine/game/savegame_v321.cpp
@@ -400,8 +400,6 @@ HSaveError restore_save_data_v321(Stream *in, const PreservedParams &pp, Restore
return err;
restore_game_spriteset(in);
- update_polled_stuff_if_runtime();
-
err = restore_game_scripts(in, pp, r_data);
if (!err)
return err;
@@ -461,13 +459,7 @@ HSaveError restore_save_data_v321(Stream *in, const PreservedParams &pp, Restore
restore_game_thisroom(in, r_data);
restore_game_ambientsounds(in, r_data);
restore_game_overlays(in);
-
- update_polled_stuff_if_runtime();
-
restore_game_dynamic_surfaces(in, r_data);
-
- update_polled_stuff_if_runtime();
-
restore_game_displayed_room_status(in, r_data);
err = restore_game_globalvars(in);
if (!err)
diff --git a/engines/ags/engine/gui/my_push_button.cpp b/engines/ags/engine/gui/my_push_button.cpp
index 34503ec4b77..a952011c9d8 100644
--- a/engines/ags/engine/gui/my_push_button.cpp
+++ b/engines/ags/engine/gui/my_push_button.cpp
@@ -76,8 +76,7 @@ int MyPushButton::pressedon(int mx, int my) {
wasstat = state;
state = mouseisinarea(mx, my);
- // stop mp3 skipping if button held down
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
if (wasstat != state) {
// ags_domouse(DOMOUSE_DISABLE);
draw(get_gui_screen());
diff --git a/engines/ags/engine/main/engine_setup.cpp b/engines/ags/engine/main/engine_setup.cpp
index c02f19e9481..985925b28a6 100644
--- a/engines/ags/engine/main/engine_setup.cpp
+++ b/engines/ags/engine/main/engine_setup.cpp
@@ -38,6 +38,7 @@
#include "ags/engine/gfx/graphics_driver.h"
#include "ags/shared/gui/gui_main.h"
#include "ags/shared/gui/gui_inv.h"
+#include "ags/engine/main/game_run.h"
#include "ags/engine/main/graphics_mode.h"
#include "ags/engine/main/engine_setup.h"
#include "ags/engine/media/video/video.h"
@@ -157,7 +158,7 @@ void engine_adjust_for_rotation_settings() {
// Setup gfx driver callbacks and options
void engine_post_gfxmode_driver_setup() {
- _G(gfxDriver)->SetCallbackForPolling(update_polled_stuff_if_runtime);
+ _G(gfxDriver)->SetCallbackForPolling(update_polled_stuff);
_G(gfxDriver)->SetCallbackToDrawScreen(draw_game_screen_callback, construct_engine_overlay);
_G(gfxDriver)->SetCallbackForNullSprite(GfxDriverNullSpriteCallback);
}
diff --git a/engines/ags/engine/main/game_run.cpp b/engines/ags/engine/main/game_run.cpp
index 7155b9bdc7a..e6ca01d049c 100644
--- a/engines/ags/engine/main/game_run.cpp
+++ b/engines/ags/engine/main/game_run.cpp
@@ -796,7 +796,7 @@ void UpdateGameOnce(bool checkControls, IDriverDependantBitmap *extraBitmap, int
_G(our_eip) = 7;
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
if (_G(abort_engine))
return;
@@ -812,7 +812,7 @@ void UpdateGameOnce(bool checkControls, IDriverDependantBitmap *extraBitmap, int
game_loop_update_fps();
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
if (_G(abort_engine))
return;
@@ -1041,7 +1041,7 @@ void RunGameUntilAborted() {
}
}
-void update_polled_stuff_if_runtime() {
+void update_polled_stuff() {
::AGS::g_events->pollEvents();
if (_G(want_exit)) {
diff --git a/engines/ags/engine/main/game_run.h b/engines/ags/engine/main/game_run.h
index 9645123d334..605b927c819 100644
--- a/engines/ags/engine/main/game_run.h
+++ b/engines/ags/engine/main/game_run.h
@@ -59,6 +59,9 @@ bool run_service_key_controls(KeyInput &kgn);
// Runs service mouse controls, returns false if mouse input was claimed by the engine,
// otherwise returns true and provides mouse button code.
bool run_service_mb_controls(eAGSMouseButton &mbut, int &mwheelz);
+// Polls few things (exit flag and debugger messages)
+// TODO: refactor this
+void update_polled_stuff();
} // namespace AGS3
diff --git a/engines/ags/engine/media/audio/audio.cpp b/engines/ags/engine/media/audio/audio.cpp
index 8d9bc39d037..490c6758fcf 100644
--- a/engines/ags/engine/media/audio/audio.cpp
+++ b/engines/ags/engine/media/audio/audio.cpp
@@ -763,7 +763,7 @@ void update_volume_drop_if_voiceover() {
// Update the music, and advance the crossfade on a step
// (this should only be called once per game loop)
void update_audio_system_on_game_loop() {
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
process_scheduled_music_update();
diff --git a/engines/ags/engine/media/video/video.cpp b/engines/ags/engine/media/video/video.cpp
index 2faf4e0826c..8a4e41d6934 100644
--- a/engines/ags/engine/media/video/video.cpp
+++ b/engines/ags/engine/media/video/video.cpp
@@ -68,7 +68,7 @@ static bool play_video(Video::VideoDecoder *decoder, const char *name, int flags
return false;
}
- update_polled_stuff_if_runtime();
+ update_polled_stuff(); // TODO: probably unneeded
Graphics::Screen scr;
bool stretchVideo = (flags & kVideo_Stretch) != 0;
@@ -78,8 +78,8 @@ static bool play_video(Video::VideoDecoder *decoder, const char *name, int flags
if (!enableAudio)
decoder->setVolume(0);
- update_polled_stuff_if_runtime();
-
+ update_polled_stuff();
+
decoder->start();
while (!SHOULD_QUIT && !decoder->endOfVideo()) {
if (decoder->needsUpdate()) {
diff --git a/engines/ags/plugins/ags_plugin.cpp b/engines/ags/plugins/ags_plugin.cpp
index 3fd36a9a923..6f624b7e51e 100644
--- a/engines/ags/plugins/ags_plugin.cpp
+++ b/engines/ags/plugins/ags_plugin.cpp
@@ -344,7 +344,7 @@ void IAGSEngine::BlitSpriteRotated(int32 x, int32 y, BITMAP *bmp, int32 angle) {
void IAGSEngine::PollSystem() {
ags_domouse();
- update_polled_stuff_if_runtime();
+ update_polled_stuff();
eAGSMouseButton mbut;
int mwheelz;
if (run_service_mb_controls(mbut, mwheelz) && mbut > kMouseNone && !_GP(play).IsIgnoringInput())
diff --git a/engines/ags/shared/ac/common.h b/engines/ags/shared/ac/common.h
index bf419bae029..23f5535ea71 100644
--- a/engines/ags/shared/ac/common.h
+++ b/engines/ags/shared/ac/common.h
@@ -30,7 +30,6 @@ namespace AGS3 {
void quit(const AGS::Shared::String &str);
void quit(const char *);
void quitprintf(const char *fmt, ...);
-void update_polled_stuff_if_runtime();
void set_our_eip(int eip);
int get_our_eip();
diff --git a/engines/ags/shared/game/room_file.cpp b/engines/ags/shared/game/room_file.cpp
index de5529dfae7..5036280879a 100644
--- a/engines/ags/shared/game/room_file.cpp
+++ b/engines/ags/shared/game/room_file.cpp
@@ -19,7 +19,6 @@
*
*/
-#include "ags/shared/ac/common.h" // update_polled_stuff
#include "ags/shared/ac/common_defines.h"
#include "ags/shared/ac/game_struct_defines.h"
#include "ags/shared/ac/words_dictionary.h" // TODO: extract string decryption
@@ -141,8 +140,6 @@ HError ReadMainBlock(RoomStruct *room, Stream *in, RoomFileVersion data_ver) {
wallpoints[i].Read(in);
*/
- update_polled_stuff_if_runtime();
-
room->Edges.Top = in->ReadInt16();
room->Edges.Bottom = in->ReadInt16();
room->Edges.Left = in->ReadInt16();
@@ -295,7 +292,6 @@ HError ReadMainBlock(RoomStruct *room, Stream *in, RoomFileVersion data_ver) {
room->Regions[i].Tint = in->ReadInt32();
}
- update_polled_stuff_if_runtime();
// Primary background (LZW or RLE compressed depending on format)
if (data_ver >= kRoomVersion_pre114_5)
room->BgFrames[0].Graphic.reset(
@@ -304,16 +300,12 @@ HError ReadMainBlock(RoomStruct *room, Stream *in, RoomFileVersion data_ver) {
room->BgFrames[0].Graphic.reset(load_rle_bitmap8(in));
// Area masks
- update_polled_stuff_if_runtime();
if (data_ver >= kRoomVersion_255b)
room->RegionMask.reset(load_rle_bitmap8(in));
else if (data_ver >= kRoomVersion_114)
skip_rle_bitmap8(in); // an old version - clear the 'shadow' area into a blank regions bmp (???)
- update_polled_stuff_if_runtime();
room->WalkAreaMask.reset(load_rle_bitmap8(in));
- update_polled_stuff_if_runtime();
room->WalkBehindMask.reset(load_rle_bitmap8(in));
- update_polled_stuff_if_runtime();
room->HotspotMask.reset(load_rle_bitmap8(in));
return HError::None();
}
@@ -382,7 +374,6 @@ HError ReadAnimBgBlock(RoomStruct *room, Stream *in, RoomFileVersion data_ver) {
}
for (size_t i = 1; i < room->BgFrameCount; ++i) {
- update_polled_stuff_if_runtime();
room->BgFrames[i].Graphic.reset(
load_lzw(in, room->BackgroundBPP, &room->BgFrames[i].Palette));
}
diff --git a/engines/ags/shared/game/room_struct.cpp b/engines/ags/shared/game/room_struct.cpp
index e5cd1915e1f..d8be7209a94 100644
--- a/engines/ags/shared/game/room_struct.cpp
+++ b/engines/ags/shared/game/room_struct.cpp
@@ -19,7 +19,7 @@
*
*/
-#include "ags/shared/ac/common.h" // update_polled_stuff_if_runtime
+#include "ags/shared/ac/common.h" // quit
#include "ags/shared/game/room_file.h"
#include "ags/shared/game/room_struct.h"
#include "ags/shared/gfx/bitmap.h"
@@ -230,12 +230,9 @@ void load_room(const String &filename, RoomStruct *room, bool game_is_hires, con
room->Free();
room->InitDefaults();
- update_polled_stuff_if_runtime();
-
RoomDataSource src;
HRoomFileError err = OpenRoomFileFromAsset(filename, src);
if (err) {
- update_polled_stuff_if_runtime(); // it can take a while to load the file sometimes
err = ReadRoomData(room, src.InputStream.get(), src.DataVersion);
if (err)
err = UpdateRoomData(room, src.DataVersion, game_is_hires, sprinfos);
Commit: 5ad311d8c0246e5ee862e2820dcad4da910a5b06
https://github.com/scummvm/scummvm/commit/5ad311d8c0246e5ee862e2820dcad4da910a5b06
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T20:56:26+02:00
Commit Message:
AGS: Engine: fixed GUI sorting for cases when ZOrder is equal
Was broken by fcc873e
>From upstream ff210b2ce50cea0e903cd1d09fa7ad1734a862b0
Changed paths:
engines/ags/engine/ac/gui.cpp
diff --git a/engines/ags/engine/ac/gui.cpp b/engines/ags/engine/ac/gui.cpp
index 370aff5ad4c..6bb00b57cb7 100644
--- a/engines/ags/engine/ac/gui.cpp
+++ b/engines/ags/engine/ac/gui.cpp
@@ -406,9 +406,9 @@ void replace_macro_tokens(const char *text, String &fixed_text) {
}
}
-
bool sort_gui_less(const int g1, const int g2) {
- return _GP(guis)[g1].ZOrder < _GP(guis)[g2].ZOrder;
+ return (_GP(guis)[g1].ZOrder < _GP(guis)[g2].ZOrder) ||
+ ((_GP(guis)[g1].ZOrder == _GP(guis)[g2].ZOrder) && (g1 < g2));
}
void update_gui_zorder() {
Commit: c56f067c33c36e7e08e2b42345d9a801207d65fb
https://github.com/scummvm/scummvm/commit/c56f067c33c36e7e08e2b42345d9a801207d65fb
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T20:58:17+02:00
Commit Message:
AGS: Engine: restored GUI draw sort, where equal z is resolved with IDs
NOTE: the code theoretically allows any object to be sorted this
way, but the problem is, the ID sequences are not shared, and
multiple object types may have same IDs.
This is something to consider in the future.
Changed paths:
engines/ags/engine/ac/draw.cpp
diff --git a/engines/ags/engine/ac/draw.cpp b/engines/ags/engine/ac/draw.cpp
index 79d73b93336..c9fdc4fdb8a 100644
--- a/engines/ags/engine/ac/draw.cpp
+++ b/engines/ags/engine/ac/draw.cpp
@@ -844,13 +844,15 @@ static void add_to_sprite_list(IDriverDependantBitmap *ddb, int x, int y, int zo
_GP(sprlist).push_back(sprite);
}
-// z-order sorting function for sprites
+// Sprite drawing order sorting function,
+// where equal zorder is resolved by comparing optional IDs too.
static bool spritelistentry_less(const SpriteListEntry &e1, const SpriteListEntry &e2) {
- return (e1.zorder < e2.zorder);
+ return (e1.zorder < e2.zorder) ||
+ ((e1.zorder == e2.zorder) && (e1.id < e2.id));
}
-// room-specialized function to sort the sprites into baseline order
-// has special handling for walk-behinds (this is complicated...)
+// Room-specialized function to sort the sprites into baseline order;
+// does not account for IDs, but has special handling for walk-behinds.
static bool spritelistentry_room_less(const SpriteListEntry &e1, const SpriteListEntry &e2) {
if (e1.zorder == e2.zorder) {
if (e1.takesPriorityIfEqual)
Commit: 1ef2f293295719ea791dbbc3e831b263ee58045d
https://github.com/scummvm/scummvm/commit/1ef2f293295719ea791dbbc3e831b263ee58045d
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T20:59:07+02:00
Commit Message:
AGS: Add detection for two new versions
>From TRAC #14320-1
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 7c0a30128fb..71139b18156 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3960,6 +3960,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_STEAM("metaldead", "metaldead.exe", "91996c5379e82787b68e84ab67d9672f", 1504754877),
GAME_ENTRY_EN("metaldead", "metaldead.exe", "3b0874c12fa643efa5fcdc43f647c871", 1501335400),
GAME_ENTRY_STEAM("mountainsofmadness", "MountainsOfMadness.exe", "95822b7957b8f239d3216b9209cfb1f5", 337894184), // En-De-It
+ GAME_ENTRY_STEAM("mountainsofmadness", "MountainsOfMadness.exe", "95822b7957b8f239d3216b9209cfb1f5", 337897388), // En-De-Es-It
GAME_ENTRY_STEAM("mybigsister", "My Big Sister.exe", "4dc50ca8b5d2c762fe86a528b09973cf", 147257266), // En-Fr-De-Es-Pt
GAME_ENTRY_STEAM("mybigsister", "My Big Sister.exe", "4dc50ca8b5d2c762fe86a528b09973cf", 147082912), // rollback
GAME_ENTRY_STEAM("mybigsister", "My Big Sister.exe", "4dc50ca8b5d2c762fe86a528b09973cf", 147248623), // rollback - latest
@@ -4568,7 +4569,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("smgilbert", "s&m2_demo_ENG.exe", "c87aa6377abc18c1a1b2968ae6db08eb", 4141303),
DEMO_ENTRY_LANG("smgilbert", "s&m2_demo.exe", "c87aa6377abc18c1a1b2968ae6db08eb", 4268861, Common::IT_ITA),
DEMO_ENTRY_EN("smileordie", "SmileOrDie.exe", "06a03fe35791b0578068ab1873455463", 12740162),
- DEMO_ENTRY_EN("snowproblem", "Snow Problem Demo V3.exe", "fae163b58c16e194688727d0903684be", 5047803),
+ DEMO_ENTRY_EN("snowproblem", "Snow Problem Demo V3.exe", "fae163b58c16e194688727d0903684be", 5047803), //v3
+ DEMO_ENTRY_EN("snowproblem", "Snow Problem.exe", "fae163b58c16e194688727d0903684be", 5139172), //v4
DEMO_ENTRY_LANG("spacefreakers", "Space Freakers v2.exe", "7a3096ac0237cb6aa8e1718e28caf039", 64527091, Common::FR_FRA),
DEMO_ENTRY_EN("spacepirates", "Space Pirates.exe", "95dcf736be87cf7d40bf64d5b078c4b7", 3006210),
DEMO_ENTRY_EN("spacesim", "space_3d.exe", "8538afa638531020f79df88aec0fb797", 1667537),
Commit: b966af03119df80d1f5e6c6971003ddaded13a19
https://github.com/scummvm/scummvm/commit/b966af03119df80d1f5e6c6971003ddaded13a19
Author: Vladimir Serbinenko (phcoder at gmail.com)
Date: 2023-06-30T20:59:17+02:00
Commit Message:
AGS: Add Russian Black Cauldron remake
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 71139b18156..e18d849ab7d 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -4992,6 +4992,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("bbcscreensaver", "BBC-Screensaver.exe", "0e6d6f3c19f5ca250b7b7ee03cdb2083", 131195371),
GAME_ENTRY_EN("bcremake", "bc.exe", "2e58934bbe98335f33c20a23a6c6135a", 8208487), // v1.2
GAME_ENTRY_EN("bcremake", "bc.exe", "0710e2ec71042617f565c01824f0cf3c", 7683255), // v1.3
+ GAME_ENTRY_LANG("bcremake", "bc.exe", "ef3f57fbb5693c23f5815a421bdb7f4e", 7909416, Common::Language::RU_RUS),
GAME_ENTRY_EN("beacon", "beacon.exe", "af0d268193a9220891e983d03141ec58", 24671086),
GAME_ENTRY_EN("bear", "bear.exe", "97020973a2a635fe28eb0ba4bdfaa70b", 3258662), //v1.3
GAME_ENTRY_EN("beardbeverage", "Beard.exe", "618d7dce9631229b4579340b964c6810", 7081492),
Commit: 1d9a96cc378c72bf715f59b65a046588de888240
https://github.com/scummvm/scummvm/commit/1d9a96cc378c72bf715f59b65a046588de888240
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T20:59:28+02:00
Commit Message:
AGS: Add detection for two games
Dreams Witch House 1.04 / Rosewater Demo
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index e18d849ab7d..a143f36154d 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -344,6 +344,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "richardandalice", "Richard & Alice" },
{ "rnrneverdies", "Rock 'n' Roll Will Never Die!" },
{ "roguestate", "Rogue State" },
+ { "rosewater", "Rosewater" },
{ "samaritan", "The Samaritan Paradox" },
{ "shardlight", "Shardlight" },
{ "shivah", "The Shivah" },
@@ -3887,6 +3888,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_STEAM("downfall2016", "Downfall.ags", "7c87b99ce309a46085e40ac1a2b20e75", 224024207), // Linux
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484767783), // v1.01
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484767190), // v1.02
+ GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484783215), // v1.04
GAME_ENTRY_EN_STEAM("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 63365026),
GAME_ENTRY_EN("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 82185295),
GAME_ENTRY_PLUGIN_STEAM_EN_NOLAUNCHLOAD("excavationhb", "ac2game.dat", "e5553f7c45d26d5fbc8b376a859bb87c", 563281442, AGSSPRITEFONT_CLIFFTOP), // Mac
@@ -4544,6 +4546,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("rontimeouttrailer", "ronTOintro.exe", "95b7dd55f6e15c8a2118856ed9fe8ff9", 2804752),
DEMO_ENTRY_EN("rontimeouttrailer", "ronTOintro.exe", "95b7dd55f6e15c8a2118856ed9fe8ff9", 2804573),
DEMO_ENTRY_EN("ron5thanniversary", "5thpromo.exe", "f120690b506dd63cd7d1112ea6af2f77", 1620446),
+ DEMO_ENTRY_EN("rosewater", "Rosewater.exe", "0b5e8f44bd102fd4f799e904de96f621", 459525303),
DETECTION_ENTRY("rotla", "ROTLA DEMO V1.0 ENG.exe", "a01a9639ce30bdcd5bf82e528b51fa06", 7788105, Common::EN_ANY, "Tanis Demo", nullptr, ADGF_DEMO),
DETECTION_ENTRY("rotla", "ROTLA.exe", "a01a9639ce30bdcd5bf82e528b51fa06", 7789189, Common::ES_ESP, "Tanis Demo", nullptr, ADGF_DEMO),
DEMO_ENTRY_EN("rotla", "ROTLA.exe", "82da2565c456dcfb265ded6fe3189c0b", 12126185), // Eng-Esp
Commit: 7997369285a33ecee11f6d90f13aecb483dfcec2
https://github.com/scummvm/scummvm/commit/7997369285a33ecee11f6d90f13aecb483dfcec2
Author: marius david (marius at mariusdavid.fr)
Date: 2023-06-30T21:21:24+02:00
Commit Message:
AGS: auto-detect Linux games based on executable
ags64 (and also ags32) are the name of the engine executable on Linux.
These names seems to be exclusivelly used for that OS.
Fix a bug in Zniw Adventure (GOG, Linux) due to translation path being
different between Linux and Windows.
Changed paths:
engines/ags/engine/main/config.cpp
diff --git a/engines/ags/engine/main/config.cpp b/engines/ags/engine/main/config.cpp
index 6dfd83a1267..a9c2a3ad354 100644
--- a/engines/ags/engine/main/config.cpp
+++ b/engines/ags/engine/main/config.cpp
@@ -354,8 +354,12 @@ void apply_config(const ConfigTree &cfg) {
// User's overrides and hacks
_GP(usetup).override_multitasking = CfgReadInt(cfg, "override", "multitasking", -1);
- String override_os = CfgReadString(cfg, "override", "os");
_GP(usetup).override_script_os = -1;
+ // Looks for the existence of the Linux executable
+ if (File::IsFile(Path::ConcatPaths(_GP(usetup).startup_dir, "ags64"))) {
+ _GP(usetup).override_script_os = eOS_Linux;
+ }
+ String override_os = CfgReadString(cfg, "override", "os");
if (override_os.CompareNoCase("dos") == 0) {
_GP(usetup).override_script_os = eOS_DOS;
} else if (override_os.CompareNoCase("win") == 0) {
Commit: f3ca9fd7c05d01108953b09aa429f370b3d3f580
https://github.com/scummvm/scummvm/commit/f3ca9fd7c05d01108953b09aa429f370b3d3f580
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:22:34+02:00
Commit Message:
AGS: Add a few games/versions
>From TRAC reports
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index a143f36154d..d75e290481d 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -2546,6 +2546,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "sabotagenb", "Sabotage on Noegato-Bas" },
{ "saddsonissein", "Saddson Issein" },
{ "salazarsevilplan", "Salazar's Evil Plan" },
+ { "salt", "Salt" },
{ "samarkand", "Samarkand" },
{ "sammysperm", "Sammy Sperm" },
{ "sammysquest", "Sammy's Quest" },
@@ -3064,6 +3065,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "tiltor", "TiLTOR" },
{ "timeoutjoint", "Time Out of Joint" },
{ "timeparadox", "TIME-PARADOX 2009" },
+ { "timeparadoxdan", "Time Paradox" }, // Dan's Time Paradox Hourgame
{ "timeparadoxenk", "Enkerro's Time Paradox" },
{ "timequest1", "Time Quest" },
{ "timequest2", "Time Quest 2" },
@@ -3751,6 +3753,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
// uses unsupported agslua plugin
UNSUPPORTED_GAME_ENTRY("allthewaydown", "deepuns3.exe", "6c0b5468657c22d62201e3769cd8d2b3", 29830067),
UNSUPPORTED_GAME_ENTRY("barelyfloating", "Barely Floating.exe", "60fbd60394e3616920325eab6eef567c", 1283262682),
+ UNSUPPORTED_GAME_ENTRY("salt", "salt.exe", "652b25e0a5017c737382b7ebb9edad4e", 10247572),
// Commercial game that likely uses custom extensions. Not only does it seem
// to use AGSController plugin built-in, even when I hooked up AGSController for
// the stand-alone AGS 3.5 interpreter, it hangs just like in ScummVM
@@ -3795,7 +3798,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_STEAM("beer", "beer!.exe", "6f201fd7a19869c85f49c7c471d0479a", 5055091), // Windows
GAME_ENTRY_EN_STEAM("beer", "Beer!.ags", "6f201fd7a19869c85f49c7c471d0479a", 5042748), // Linux
GAME_ENTRY_GOG("beyondowlsgard", "Owlsgard.exe", "0f647ddfd86c3dad2d68055fab21f091", 556521058), // Eng-Deu v1.1
- GAME_ENTRY_STEAM("beyondowlsgard", "Owlsgard.exe", "0f647ddfd86c3dad2d68055fab21f091", 556512803), // Eng-Deu
+ GAME_ENTRY_STEAM("beyondowlsgard", "Owlsgard.exe", "0f647ddfd86c3dad2d68055fab21f091", 556512803), // Eng-Deu Win
+ GAME_ENTRY_STEAM("beyondowlsgard", "Owlsgard.ags", "ec06f55f20c49b5cb2df6c9e16440aeb", 552945167), // Eng-Deu Linux
GAME_ENTRY_EN_GOG("blackwell1", "blackwell1.exe", "605e124cb7e0b56841c471e2d641c224", 18822697),
GAME_ENTRY_EN_GOG("blackwell1", "Blackwell Legacy.exe", "92af7315126c6da1e9e0c641cd9df200", 67316743), // v2.2.1
GAME_ENTRY_EN_GOG("blackwell1", "Blackwell Legacy.exe", "92af7315126c6da1e9e0c641cd9df200", 67331239), // v2.2.2
@@ -7853,6 +7857,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("tiltor", "Tiltor.exe", "f120690b506dd63cd7d1112ea6af2f77", 17561878),
GAME_ENTRY_EN("timeoutjoint", "timeout.exe", "06a03fe35791b0578068ab1873455463", 1647055),
GAME_ENTRY("timeparadox", "REDQUEST.exe", "465f972675db2da6040518221af5b0ba", 32472406), //Eng-Rus
+ GAME_ENTRY_EN("timeparadoxdan", "Time Paradox.exe", "06a03fe35791b0578068ab1873455463", 1592755),
GAME_ENTRY_EN("timeparadoxenk", "timeparadoxenk.exe", "06a03fe35791b0578068ab1873455463", 1840636),
GAME_ENTRY("timequest1", "gam.exe", "465f972675db2da6040518221af5b0ba", 5669007), //Eng-Rus
GAME_ENTRY("timequest1", "TQ.exe", "465f972675db2da6040518221af5b0ba", 5671274), //Eng-Rus v1.1
Commit: ad4bb515d261756459bf3b0faed1249c0383bb1e
https://github.com/scummvm/scummvm/commit/ad4bb515d261756459bf3b0faed1249c0383bb1e
Author: antoniou79 (a.antoniou79 at gmail.com)
Date: 2023-06-30T21:31:01+02:00
Commit Message:
AGS: Fix formatting of debug message
About bad index of audio channel
Changed paths:
engines/ags/engine/ac/system.cpp
diff --git a/engines/ags/engine/ac/system.cpp b/engines/ags/engine/ac/system.cpp
index 409dd365125..1a99e946780 100644
--- a/engines/ags/engine/ac/system.cpp
+++ b/engines/ags/engine/ac/system.cpp
@@ -168,7 +168,7 @@ int System_GetAudioChannelCount() {
ScriptAudioChannel *System_GetAudioChannels(int index) {
if ((index < 0) || (index >= _GP(game).numGameChannels))
quitprintf("!System.AudioChannels: invalid sound channel index %d, supported %d - %d",
- 0, _GP(game).numGameChannels);
+ index, 0, _GP(game).numGameChannels - 1);
return &_G(scrAudioChannel)[index];
}
Commit: 6c009ea367f76c714faf63941b920391c0e40b86
https://github.com/scummvm/scummvm/commit/6c009ea367f76c714faf63941b920391c0e40b86
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:31:25+02:00
Commit Message:
AGS: Fix two entries requiring punycode
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index d75e290481d..0a157b51c93 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -5118,7 +5118,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("boxland", "OROW 2008.exe", "95dcf736be87cf7d40bf64d5b078c4b7", 5988324),
GAME_ENTRY_EN("boyindahood", "boy in da hood.exe", "afe40dc1416dd51e896ee0444d799f07", 12260759),
GAME_ENTRY_EN("bradbradsonkeyquest", "badness.exe", "0500aacb6c176d47ac0f8158f055db83", 1190580),
- GAME_ENTRY_LANG("braquagegringotts", "Braquage à Grin.exe", "06a03fe35791b0578068ab1873455463", 86953263, Common::FR_FRA),
+ GAME_ENTRY_LANG("braquagegringotts", "xn--Braquage Grin.exe-nrb", "06a03fe35791b0578068ab1873455463", 86953263, Common::FR_FRA),
GAME_ENTRY_EN("breakage", "Breakage.exe", "973f6b65820ca1f4e19704a49be99d76", 727818639),
GAME_ENTRY_EN("breakdown", "breakdown.exe", "710ac163c281a5a539ffe2386264b990", 5273352),
GAME_ENTRY_EN("breakingcharacter", "Breaking character.exe", "615e73fc1874e92d60a1996c2330ea36", 23803957),
@@ -7527,7 +7527,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("subatomic", "LD48-23.exe", "75f4c7f66b1be60af5b2d65f617b91a7", 25655660),
GAME_ENTRY_EN("subwaycrisis", "Ludum Dare 43.ags", "97341b3ddd7a0eb8ae4a247fe25dc082", 3508218), // Linux
GAME_ENTRY_EN("subwaycrisis", "Ludum Dare 43.exe", "78f88f71bbef277d93cbe10f1d2ac404", 5996042), // Windows
- GAME_ENTRY_LANG("suenanfantasmas", "SueñanLosFantasmas.exe", "50a7ba44a0d5499628de2a46bb4a9e97", 71071264, Common::ES_ESP), // Windows
+ GAME_ENTRY_LANG("suenanfantasmas", "xn--SueanLosFantasmas.exe-ebc", "50a7ba44a0d5499628de2a46bb4a9e97", 71071264, Common::ES_ESP), // Windows
GAME_ENTRY_LANG("suenanfantasmas", "SuenanLosFantasmas.ags", "4092234ccc703586b54d86900550baa0", 67828236, Common::ES_ESP), // Linux
GAME_ENTRY_EN("summerwoes", "MAGSAugust.exe", "7921b41f852d8dd62922d87cc69d9e83", 4896812),
GAME_ENTRY_EN("sunriseparadise", "Sunrise Paradise.exe", "838f62e456d4fbab9c3754c9d70d2b89", 13430921),
Commit: e74aeb1b33d42d4f05779d065595b119bc74df68
https://github.com/scummvm/scummvm/commit/e74aeb1b33d42d4f05779d065595b119bc74df68
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:31:36+02:00
Commit Message:
AGS: Add Dreams in the Witch House 1.05 GOG
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 0a157b51c93..0ba7c7db178 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3893,6 +3893,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484767783), // v1.01
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484767190), // v1.02
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484783215), // v1.04
+ GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484795246), // v1.05
GAME_ENTRY_EN_STEAM("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 63365026),
GAME_ENTRY_EN("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 82185295),
GAME_ENTRY_PLUGIN_STEAM_EN_NOLAUNCHLOAD("excavationhb", "ac2game.dat", "e5553f7c45d26d5fbc8b376a859bb87c", 563281442, AGSSPRITEFONT_CLIFFTOP), // Mac
Commit: cba9faaf62180f44124cc61b809d696f5cfa599c
https://github.com/scummvm/scummvm/commit/cba9faaf62180f44124cc61b809d696f5cfa599c
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:31:49+02:00
Commit Message:
AGS: Add detection for a few old versions
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 0ba7c7db178..6562d093b06 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -5108,6 +5108,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("boilerroom", "brb.exe", "27343924ddad3be0b97bdcaa71858b1b", 4299483),
GAME_ENTRY_EN("boltaction", "BAction.exe", "7435dda89567847b6f6ae5211cbdffde", 91472413),
GAME_ENTRY_EN("bone", "Bone.exe", "eaa4f4b14a9fb5bb59aca188d765b41e", 4079499),
+ GAME_ENTRY_EN("boogiebum", "Feb16Mags.exe", "2ca80bd50763378b72cd1e1cf25afac3", 4664112),
GAME_ENTRY_EN("boogiebum", "BoogieBum.exe", "2ca80bd50763378b72cd1e1cf25afac3", 4882195),
GAME_ENTRY_EN("bookofspells4", "BOS4.exe", "db4d303868b86e28a8eca1a4181ea288", 4537869),
GAME_ENTRY_EN_PLATFORM("bookofspellscomplete", "bos2.exe", "f3a13b2d6c2e0fe04c6f466062920e23", 5724377, "Beta"),
@@ -6052,7 +6053,9 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY("iwantout", "I_want_out!.ags", "7db3059844c14f1d817f68b958b66f45", 22718900),
GAME_ENTRY("iwanttodie", "ElMito.exe", "f120690b506dd63cd7d1112ea6af2f77", 11304944), // Eng-Esp
GAME_ENTRY_LANG("iwanttodie", "QuieroMorir.exe", "f120690b506dd63cd7d1112ea6af2f77", 11304944, Common::ES_ESP),
- GAME_ENTRY("iwanttodieremake", "IWTD.exe", "981e60a9be515bb56c634856462abbc7", 62882828), // Eng-Esp
+ GAME_ENTRY_EN("iwanttodieremake", "IWTD.exe", "981e60a9be515bb56c634856462abbc7", 62882828),
+ GAME_ENTRY_LANG("iwanttodieremake", "QM.exe", "981e60a9be515bb56c634856462abbc7", 62486182, Common::ES_ESP),
+ GAME_ENTRY_PLATFORM("iwanttodieremake", "QM.exe", "981e60a9be515bb56c634856462abbc7", 62806610, "Galician"),
GAME_ENTRY_EN("iwwhiiwwhitomirotpgthegame", "IWWHIIWWHITOMIROTPG - The Game.exe", "5fd79c32d2b8bbd589f6254d611d2742", 3576019),
GAME_ENTRY_EN("jack", "JACK.exe", "615e73fc1874e92d60a1996c2330ea36", 243357628),
GAME_ENTRY("jacktrasheaterch1", "carrin.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 2376923), //En-It
@@ -6185,6 +6188,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("lancethepenguin", "LanceThePenguin.exe", "a524cbb1c51589903c4043b98917f1d9", 3838581),
GAME_ENTRY_LANG("laodiseadelfracaso2", "La Odisea II.exe", "0710e2ec71042617f565c01824f0cf3c", 3083622, Common::ES_ESP),
GAME_ENTRY_EN_PLATFORM("larrylotter", "Warthogs.exe", "06a03fe35791b0578068ab1873455463", 3387147, "MAGS"),
+ GAME_ENTRY_EN_PLATFORM("larrylotter", "Warthogs.exe", "06a03fe35791b0578068ab1873455463", 3481314, "MAGS"),
GAME_ENTRY("lasol", "LaSol.exe", "615e73fc1874e92d60a1996c2330ea36", 19677458), // Multilang
GAME_ENTRY_EN("lastclown", "ZOM.exe", "e88fd6a23a5e498d7b0d50e3bb914085", 867344),
GAME_ENTRY_EN("lastlightpost", "LastLightPost.exe", "981e60a9be515bb56c634856462abbc7", 65705119),
@@ -8141,6 +8145,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_LANG("evildead4", "evil dead.exe", "465f972675db2da6040518221af5b0ba", 2141432,Common::RU_RUS),
GAME_ENTRY_LANG("goodman", "goodman.exe", "465f972675db2da6040518221af5b0ba", 2699578,Common::RU_RUS),
GAME_ENTRY_LANG("prisonersofice", "newyearq.exe", "b26aa198e5175000f037b84d8a4038f5", 84723231, Common::RU_RUS),
+ GAME_ENTRY_LANG("prisonersofice", "newyearq.exe", "b26aa198e5175000f037b84d8a4038f5", 88100040, Common::RU_RUS),
{ AD_TABLE_END_MARKER, nullptr, nullptr }
Commit: 603da1de053687d3d1a6af6d326723b3b9a69feb
https://github.com/scummvm/scummvm/commit/603da1de053687d3d1a6af6d326723b3b9a69feb
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2023-06-30T21:34:21+02:00
Commit Message:
AGS: Add detection for newer Steam Mac versions of Unavowed and The Excavation of Hob's Barrow
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 6562d093b06..91dfbf23872 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3897,6 +3897,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_STEAM("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 63365026),
GAME_ENTRY_EN("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 82185295),
GAME_ENTRY_PLUGIN_STEAM_EN_NOLAUNCHLOAD("excavationhb", "ac2game.dat", "e5553f7c45d26d5fbc8b376a859bb87c", 563281442, AGSSPRITEFONT_CLIFFTOP), // Mac
+ GAME_ENTRY_PLUGIN_STEAM_EN_NOLAUNCHLOAD("excavationhb", "ac2game.dat", "e5553f7c45d26d5fbc8b376a859bb87c", 563283917, AGSSPRITEFONT_CLIFFTOP), // Mac
GAME_ENTRY_PLUGIN_GOG_EN_NOLAUNCHLOAD("excavationhb", "TEOHB.exe", "f176b46bc89e227f745dae9878171676", 566320586, AGSSPRITEFONT_CLIFFTOP),
GAME_ENTRY_PLUGIN_GOG_EN_NOLAUNCHLOAD("excavationhb", "TEOHB.exe", "f176b46bc89e227f745dae9878171676", 566323443, AGSSPRITEFONT_CLIFFTOP), // Win 1.05
GAME_ENTRY_STEAM("falconcity", "game.exe", "e816b31cfe3512c2ec24ac0bc6cfc605", 584191058), // Eng-Hun-Chi
@@ -4121,6 +4122,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_STEAM("timegentlemenplease", "tgp.exe", "86a5359bac7c88f0dfa060478800dd61", 74077811),
GAME_ENTRY_EN_STEAM("unavowed", "ac2game.dat", "b1ff7d96667707daf4266975cea2bf90", 1755457364), // Mac
GAME_ENTRY_EN_STEAM("unavowed", "ac2game.dat", "140570a663877cb81e3656b4f29c63f6", 1752922600), // Mac
+ GAME_ENTRY_EN_STEAM("unavowed", "ac2game.dat", "140570a663877cb81e3656b4f29c63f6", 1752927680), // Mac
GAME_ENTRY_EN_PLATFORM("unavowed", "Unavowed.exe", "b1ff7d96667707daf4266975cea2bf90", 1755451248, "Steam/GOG.com"), // TODO: split
GAME_ENTRY_EN_PLATFORM("unavowed", "Unavowed.exe", "52c411caa3bfb65788ed8768ceaa0c30", 1756036604, "Steam/GOG.com"), // Linux/Windows v0.9.0 (GOG v1.2)
GAME_ENTRY_EN_STEAM("unavowed", "Unavowed.exe", "52c411caa3bfb65788ed8768ceaa0c30", 1756040045), // Linux (and Windows?) v1.0.0
Commit: dc7eb801bbbcfcbd3d6cb44648bacf9aef259c8e
https://github.com/scummvm/scummvm/commit/dc7eb801bbbcfcbd3d6cb44648bacf9aef259c8e
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:35:55+02:00
Commit Message:
AGS: Add detection for three games
New MAGS games + Indy demo (TRAC 14230)
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 91dfbf23872..0338bf3075a 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -1140,6 +1140,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "eikos2", "La Légende d'Eikos chapitre 2 : Réveil dans la Nuit" },
{ "electrokit", "Maaikes Elektrokit" },
{ "elegantmurdermystery", "The Elegant Murder Mystery" },
+ { "elevation", "Elevation" },
{ "elevator", "The Elevator" },
{ "elevatorriseabyss", "The Elevator - Rise from the Abyss!" },
{ "elfer", "Elfer" },
@@ -1497,6 +1498,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "indycomingofage", "Indiana Jones - Coming of Age" },
{ "indycrownofsolomon", "Indiana Jones and the Crown of Solomon" },
{ "indycrystalcursor", "Indiana Jones and the Window of the Crystal Cursor" },
+ { "indyeyedestiny", "Indiana Jones and the Eye of Destiny" },
{ "indygoldofgenghiskhan", "Indiana Jones and the Gold of Genghis Khan" },
{ "indynouvelan", "Indiana Jones et les aventuriers du nouvel an" },
{ "indypassageofsaints", "Indiana Jones and the Passage of Saints" },
@@ -2942,6 +2944,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "thefrozenshore", "The Frozen Shore" },
{ "thefurtheststation", "The Furthest Station" },
{ "thegardenofhades", "The Garden of Hades" },
+ { "thegift", "The Gift" },
{ "theglasssplinters", "The Glass Splinters" },
{ "thegourmet", "The Gourmet" },
{ "thegreatcasserolecaper", "The Great Casserole Caper" },
@@ -4385,6 +4388,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_LANG("indycrownofsolomon", "CoSdemo2.1.exe", "f120690b506dd63cd7d1112ea6af2f77", 6069990, Common::ES_ESP), //Spanish
DEMO_ENTRY_LANG("indycrownofsolomon", "CoSdemo2.1.exe", "06a03fe35791b0578068ab1873455463", 6903169, Common::FI_FIN), //Finnish
DEMO_ENTRY_EN("indycrystalcursor", "cursoid.exe", "06a03fe35791b0578068ab1873455463", 12136127),
+ DEMO_ENTRY_EN("indyeyedestiny", "Trap.exe", "618d7dce9631229b4579340b964c6810", 3619133),
DEMO_ENTRY_EN("indysevencities", "Seven Cities.exe", "c9cd3e2cdd295c33e62cfa97b14461e9", 12561314), //v1.2.1.1
DEMO_ENTRY_EN("infectionep2", "Infection_Ep_II_AGS.exe", "a524cbb1c51589903c4043b98917f1d9", 23691417),
DEMO_ENTRY_EN("inferno", "inf.exe", "97d700529f5cc826f230c27acf81adfd", 8783105),
@@ -5564,6 +5568,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_LANG("eikos2", "eikos2.exe", "0564de07d3fd5c16e6947a647061913c", 1038284323, Common::FR_FRA),
GAME_ENTRY("electrokit", "electrctGUI.exe", "e88fd6a23a5e498d7b0d50e3bb914085", 8941606), //Eng-Dutch
GAME_ENTRY_EN("elegantmurdermystery", "DH.exe", "0b7529a76f38283d6e850b8d56526fc1", 2098899),
+ GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.ags", "bf06b9759714464c095e1c1e597f1e86", 4362276, "Beta"), // Linux
+ GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.exe", "2f2bc0b9c539d20529c0e343315d5f65", 7471160, "Beta"), // Windows
GAME_ENTRY_EN("elevator", "Elevator.exe", "f10516e88ec858700804ee69d041aead", 29506915),
GAME_ENTRY_EN("elevatorriseabyss", "T_E_R.exe", "f120690b506dd63cd7d1112ea6af2f77", 13366126),
GAME_ENTRY_LANG("elfer", "socer.exe", "e88fd6a23a5e498d7b0d50e3bb914085", 1911767, Common::DE_DEU),
@@ -7719,6 +7725,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("thefurtheststation", "TheFurthestStation.exe", "82da2565c456dcfb265ded6fe3189c0b", 17582750),
GAME_ENTRY_EN("thegardenofhades", "hades.exe", "d304c4f27f336963c16578274264d174", 991101514),
GAME_ENTRY_EN("thegardenofhades", "hades.ags", "7c6fe05a214e42dbbf9f2f1d173918ab", 988042294),
+ GAME_ENTRY_EN("thegift", "GIFT.ags", "2bb1b2a9feae34ccf8f3f6c1f51c8972", 1643933),
GAME_ENTRY_EN("theglasssplinters", "Splinters.exe", "615e73fc1874e92d60a1996c2330ea36", 5249293),
GAME_ENTRY_EN("thegourmet", "The Gourmet.exe", "c48d0beedcdc1b05e9e25dcd60de46a9", 49995478),
GAME_ENTRY_EN("thegourmet", "The Gourmet.exe", "c48d0beedcdc1b05e9e25dcd60de46a9", 49995756),
Commit: 37aa6f43115c90e4c11a27aa0ff211ac7fa79083
https://github.com/scummvm/scummvm/commit/37aa6f43115c90e4c11a27aa0ff211ac7fa79083
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:36:08+02:00
Commit Message:
AGS: Add new versions of recent MAGS games
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 0338bf3075a..e129e652718 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -5569,7 +5569,9 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY("electrokit", "electrctGUI.exe", "e88fd6a23a5e498d7b0d50e3bb914085", 8941606), //Eng-Dutch
GAME_ENTRY_EN("elegantmurdermystery", "DH.exe", "0b7529a76f38283d6e850b8d56526fc1", 2098899),
GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.ags", "bf06b9759714464c095e1c1e597f1e86", 4362276, "Beta"), // Linux
+ GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.ags", "3063ec0d8db8305d1dc61d7862650f11", 4363999, "Beta"),
GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.exe", "2f2bc0b9c539d20529c0e343315d5f65", 7471160, "Beta"), // Windows
+ GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.exe", "2f2bc0b9c539d20529c0e343315d5f65", 7472883, "Beta"),
GAME_ENTRY_EN("elevator", "Elevator.exe", "f10516e88ec858700804ee69d041aead", 29506915),
GAME_ENTRY_EN("elevatorriseabyss", "T_E_R.exe", "f120690b506dd63cd7d1112ea6af2f77", 13366126),
GAME_ENTRY_LANG("elfer", "socer.exe", "e88fd6a23a5e498d7b0d50e3bb914085", 1911767, Common::DE_DEU),
@@ -7726,6 +7728,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("thegardenofhades", "hades.exe", "d304c4f27f336963c16578274264d174", 991101514),
GAME_ENTRY_EN("thegardenofhades", "hades.ags", "7c6fe05a214e42dbbf9f2f1d173918ab", 988042294),
GAME_ENTRY_EN("thegift", "GIFT.ags", "2bb1b2a9feae34ccf8f3f6c1f51c8972", 1643933),
+ GAME_ENTRY_EN("thegift", "GIFT.exe", "ae2e93ae61a612dd8cad1290bd5f7443", 4755889),
GAME_ENTRY_EN("theglasssplinters", "Splinters.exe", "615e73fc1874e92d60a1996c2330ea36", 5249293),
GAME_ENTRY_EN("thegourmet", "The Gourmet.exe", "c48d0beedcdc1b05e9e25dcd60de46a9", 49995478),
GAME_ENTRY_EN("thegourmet", "The Gourmet.exe", "c48d0beedcdc1b05e9e25dcd60de46a9", 49995756),
Commit: 92c7e9fc548d37afa98e53814a47e0e0b572499f
https://github.com/scummvm/scummvm/commit/92c7e9fc548d37afa98e53814a47e0e0b572499f
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:36:20+02:00
Commit Message:
AGS: Add detection for two games
* Zniw Adventure linux steam (TRAC 14379)
* Sorrows of a Furry Father
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index e129e652718..4c1dcd2ccef 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -1299,10 +1299,11 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "fsivacuum", "FSi's Vacuum Cleaner Gone Mad" },
{ "fuguestate", "The Man From Fugue State" },
{ "fulkramick", "Fulkramick's Dreamting: An Interactive Adventure" },
- { "furballs1", "Fur Balls 1 - evil be thy name: Bundles of mayhem!" },
{ "funnyboneyard", "The Funny Boneyard" },
{ "funsunmishaps", "Fun, Sun & Mishaps" },
{ "funwithnumbers", "Fun With Numbers" },
+ { "furballs1", "Fur Balls 1 - evil be thy name: Bundles of mayhem!" },
+ { "furryfather", "Sorrow of a Furry Father" },
{ "futuramatrivia", "Futurama: Who Said That?" },
{ "futurecity3000", "Future City 3000" },
{ "fycorpse", "Fuck You I'm a Corpse" }, // aka Dead Dave
@@ -4141,8 +4142,9 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_PLUGIN_GOG_NOLAUNCHLOAD("whispersofamachine", "whispers.exe", "b8416ff5242d6540980f922f03a01a5f", 159085573, AGSSPRITEFONT_CLIFFTOP),
GAME_ENTRY_EN_STEAM("wolfterritory", "wolf.exe", "78dd4ca028ee0156b6a093d6d780aa65", 3957156),
GAME_ENTRY_EN_STEAM("yetilastescape", "Big-run.exe", "1e003cdad70709b5bd3d0d957f637e58", 31372723),
- GAME_ENTRY_STEAM("zniwadventure", "ctgame.exe", "8a2d48ee8d92bad3c5cacd8b883c5871", 100036465), // Eng-Pol
+ GAME_ENTRY_STEAM("zniwadventure", "ctgame.exe", "8a2d48ee8d92bad3c5cacd8b883c5871", 100036465), // Win Eng-Pol
GAME_ENTRY_STEAM("zniwadventure", "ctgame.exe", "8a2d48ee8d92bad3c5cacd8b883c5871", 100040004),
+ GAME_ENTRY_STEAM("zniwadventure", "ctgame.ags", "8f52737244a78a7d1e6acace8ced67a5", 97017764), // Linux
GAME_ENTRY_GOG("zniwadventure", "ctgame.exe", "8a2d48ee8d92bad3c5cacd8b883c5871", 100046802),
GAME_ENTRY_GOG("zniwadventure", "ac2game.dat", "8a2d48ee8d92bad3c5cacd8b883c5871", 100067853), // macOS
GAME_ENTRY_GOG("zniwadventure", "ctgame.exe", "8a2d48ee8d92bad3c5cacd8b883c5871", 100067853), // 1.3.4 Win
@@ -5753,6 +5755,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("funsunmishaps", "Fun, Sun & Mishaps.exe", "933200c8f306eccaaa484b1575da8528", 452348866),
GAME_ENTRY_EN("funwithnumbers", "fwn.exe", "a524cbb1c51589903c4043b98917f1d9", 18743833),
GAME_ENTRY_EN("furballs1", "Fur Balls 1 Evil be thy name.exe", "c876b504a1048fe06c71c9d9a0bc5817", 11417569),
+ GAME_ENTRY_EN("furryfather", "Sorrow of a Furry Father.exe", "0fe1d93da69963d5eef55ce2619c94be", 20220753), // Windows
+ GAME_ENTRY_EN("furryfather", "Sorrow of a Furry Father.ags", "5f2b5f4a20550110de2a00c46c722dee", 17186109), // Linux
GAME_ENTRY_EN("futuramatrivia", "FuturamaWhoSaidThat.exe", "8923670fc767b7b66ac2659556bdc3da", 125539307), // Windows
GAME_ENTRY_EN("futuramatrivia", "FuturamaWhoSaidThat.ags", "a02b24866dbcc53227b96d4767fd566e", 122145751), // Linux
GAME_ENTRY_EN("futurecity3000", "FutureCity3000.exe", "4d4b6d6e560cf32f440c39f8d3896da5", 41930580),
Commit: 8cc3cccf6598caf1316777804335bf4d2c0baec9
https://github.com/scummvm/scummvm/commit/8cc3cccf6598caf1316777804335bf4d2c0baec9
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:37:00+02:00
Commit Message:
AGS: Add steam version of Dreams in the Witch House + old foy demo
TRAC #14409-10
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 4c1dcd2ccef..1c55398c66a 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3898,6 +3898,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484767190), // v1.02
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484783215), // v1.04
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484795246), // v1.05
+ GAME_ENTRY_EN_STEAM("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484795038), // v1.05
GAME_ENTRY_EN_STEAM("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 63365026),
GAME_ENTRY_EN("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 82185295),
GAME_ENTRY_PLUGIN_STEAM_EN_NOLAUNCHLOAD("excavationhb", "ac2game.dat", "e5553f7c45d26d5fbc8b376a859bb87c", 563281442, AGSSPRITEFONT_CLIFFTOP), // Mac
@@ -4340,6 +4341,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("fountainofyouth", "foydemo1.1.exe", "f120690b506dd63cd7d1112ea6af2f77", 14372003), // v1.0 (misnamed file)
DEMO_ENTRY_EN("fountainofyouth", "foydemo.exe", "f120690b506dd63cd7d1112ea6af2f77", 14371419), // v1.1
DEMO_ENTRY_LANG("fountainofyouth", "FoYDemo_Dutch.exe", "6cddccb3744ec5c6af7c398fb7b3b11c", 15295028, Common::NL_NLD), // v1.1
+ DEMO_ENTRY_EN("fountainofyouth", "foydemo.exe", "5f141d6719b7b748087a7c05be13a7f6", 18766682), // v1.2 (TRAC #14410)
DEMO_ENTRY_EN("fountainofyouth", "foydemo.exe", "5f141d6719b7b748087a7c05be13a7f6", 19770554), // v1.2 r1
DEMO_ENTRY_EN("fountainofyouth", "foydemo.exe", "f541f879f479bf430bb0f6d8bb151d5d", 19770548), // v1.2 r2-r3
DEMO_ENTRY_LANG("fountainofyouth", "FOYDemoDutch.exe", "f25752043e2a77ec07bca0c6818af701", 20666760, Common::NL_NLD), // v1.2 r1
Commit: 120af8923fc510ea9202ad6d307194ed7af8ba06
https://github.com/scummvm/scummvm/commit/120af8923fc510ea9202ad6d307194ed7af8ba06
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:37:21+02:00
Commit Message:
AGS: Fixes to some commercial games entries
* Added some missing hashes for blackwell3-4, resonance, strangeland
* Properly marked sisterssecret and tales as demo or full
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 1c55398c66a..cbf4f6ff1f2 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -274,6 +274,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "avcsurvivalguide", "AVC's Survival Guide / GuÃa de supervivencia en CAV" },
{ "beer", "Beer!" },
{ "beyondowlsgard","Beyond the Edge of Owlsgard" },
+ { "bizarreearthquake", "Bizarre Earthquake" },
{ "blackwell1", "The Blackwell Legacy" },
{ "blackwell2", "Blackwell Unbound" },
{ "blackwell3", "The Blackwell Convergence" },
@@ -721,7 +722,6 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "bitstream", "Bitstream" },
{ "bittersweet", "Bittersweet" },
{ "biwa", "Biwa of Blood" },
- { "bizarreearthquake", "Bizarre Earthquake" },
{ "bjcase1", "Ben Jordan P.I. Case 1: In Search of the Skunk-Ape" },
{ "bjcase2", "Ben Jordan P.I. Case 2: The Lost Galleon of the Salton Sea" },
{ "bjcase3", "Ben Jordan P.I. Case 3: The Sorceress of Smailholm" },
@@ -3850,10 +3850,11 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "2260c1a21aba7ac00baf0100d4ca54f1", 172578803, AGSTEAM_WADJETEYE),
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "2260c1a21aba7ac00baf0100d4ca54f1", 171969680, AGSTEAM_WADJETEYE),
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "f261c2505f98503a1ec9f1dff7f13bda", 173873229, AGSTEAM_WADJETEYE),
+ GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "1fbaa55037f7f1c8c5e59b2dacc994e2", 173960270, AGSTEAM_WADJETEYE),
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "ac2game.dat", "2844e3823d74652d282b8173bbde2b8b", 170703726, AGSTEAM_WADJETEYE), // Linux & Mac
GAME_ENTRY_EN("blackwell3", "convergence.exe", "2260c1a21aba7ac00baf0100d4ca54f1", 172578032), // Humble Bundle (Windows, v1.1)
- GAME_ENTRY_EN("blackwell3", "ac2game.dat", "2260c1a21aba7ac00baf0100d4ca54f1", 173301005), // Android
GAME_ENTRY_EN("blackwell3", "ac2game.dat", "c894f6005f479ba8f12e87223920aa6a", 170700456), // Humble Bundle (Linux)
+ GAME_ENTRY_EN("blackwell3", "ac2game.dat", "2260c1a21aba7ac00baf0100d4ca54f1", 173301005), // Android
GAME_ENTRY_EN("blackwell3", "ac2game.dat", "2260c1a21aba7ac00baf0100d4ca54f1", 172574888),
GAME_ENTRY_EN_GOG("blackwell4", "deception.exe", "b3b192cf20a2f7666ddea3410dbd87cc", 303459336),
GAME_ENTRY_EN_GOG("blackwell4", "deception.exe", "1c0bf79d9720d0a81219e8778fb7e231", 304040703),
@@ -3863,6 +3864,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_GOG("blackwell4", "ac2game.dat", "05a3a5ff709a5764d2b4a5dc301107d6", 302140480), // Mac
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell4", "deception.exe", "b3b192cf20a2f7666ddea3410dbd87cc", 304076138, AGSTEAM_WADJETEYE),
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell4", "deception.exe", "499c3261a1f73c5b78125beeca1c2d08", 305215631, AGSTEAM_WADJETEYE),
+ GAME_ENTRY_PLUGIN_STEAM_EN("blackwell4", "deception.exe", "8f7335b030b38b610637b3033859f828", 305293936, AGSTEAM_WADJETEYE),
GAME_ENTRY_EN_GOG("blackwell5", "epiphany.exe", "c1cddd6fcdbcd030beda9f10d4e4270a", 281849897),
GAME_ENTRY_EN_GOG("blackwell5", "epiphany.exe", "c3f7a995bbea7ce4ba7a2a97995c677e", 283092455), //v2.2
GAME_ENTRY_EN_GOG("blackwell5", "epiphany.exe", "c3f7a995bbea7ce4ba7a2a97995c677e", 283092983), //v2.3
@@ -4036,7 +4038,9 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_GOG("resonance", "resonance.exe", "6cc23ce7cdf62de776c6b8ddb6b8a7ff", 850643390), // v2.3
GAME_ENTRY_EN_GOG("resonance", "ac2game.dat", "1dd9f78fbd1947fdf66a820928baf8a4", 847433642), // Mac v2.3
GAME_ENTRY_EN_GOG("resonance", "agsgame.dat", "2e635c22bcbf0ed3d46f1bcde71812d4", 849404957), // Linux
- GAME_ENTRY_PLUGIN_STEAM_EN("resonance", "resonance.exe", "2e635c22bcbf0ed3d46f1bcde71812d4", 849410915, AGSTEAM_WADJETEYE),
+ GAME_ENTRY_PLUGIN_STEAM_EN("resonance", "resonance.exe", "2e635c22bcbf0ed3d46f1bcde71812d4", 849410915, AGSTEAM_WADJETEYE), // Win original
+ GAME_ENTRY_PLUGIN_STEAM_EN("resonance", "resonance.exe", "6cc23ce7cdf62de776c6b8ddb6b8a7ff", 850642889, AGSTEAM_WADJETEYE), // Win-Linux
+ GAME_ENTRY_PLUGIN_STEAM_EN("resonance", "ac2game.dat", "1dd9f78fbd1947fdf66a820928baf8a4", 847433141, AGSTEAM_WADJETEYE), // Mac
GAME_ENTRY_EN_STEAM("richardandalice", "richardandalice.exe", "1023d348f67ba958f78ed62d029565c7", 109164768),
GAME_ENTRY_EN_STEAM("richardandalice", "richardandalice.exe", "f47d11397e2059a25b11057ea6cf3409", 108264256),
GAME_ENTRY_EN_GOG("richardandalice", "richardandalice.exe", "9a7e38a1810e6a1839601fb5c6bd42e6", 108602238), // Desura - GOG v1.0
@@ -4068,6 +4072,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_GOG("shivahkosher", "shivah.exe", "adf5d1e8de8b1292e98ef59ce89ab42c", 33845596), // GOG, v2.1
GAME_ENTRY_EN_GOG("shivahkosher", "ac2game.dat", "021b85e94ba52ed77b6b4841ffb50c43", 30658376), // macOS v2.1a
GAME_ENTRY_EN("sisterssecret", "SistersSecret.exe", "f8d06c339ca2af5160b662c7a19572d6", 18659398), // v1.0.0a
+ GAME_ENTRY_EN("sisterssecret", "SistersSecret.exe", "f8d06c339ca2af5160b662c7a19572d6", 18660074), // v1.0.1
GAME_ENTRY_STEAM("smallsister", "sister.exe", "78dd4ca028ee0156b6a093d6d780aa65", 18534526), // Eng-Tur
GAME_ENTRY_EN_STEAM("spaceraven", "Tiny Planet.exe", "c6154d27a773ebf98a9be181a840d146", 29803571),
GAME_ENTRY_STEAM("starshipquasar", "starship quasar.ags", "0ea8150e15a4f4d0f3e82c231a4659f2", 10415956), // Multilang
@@ -4075,15 +4080,16 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY("starshipquasar", "Starship Quasar.exe", "0ea8150e15a4f4d0f3e82c231a4659f2", 10415936), // Multilang itch.io
GAME_ENTRY_EN_STEAM("stayingalive", "Staying Alive.exe", "fae163b58c16e194688727d0903684be", 17380838),
GAME_ENTRY("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3186614879),
- GAME_ENTRY("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", -1), // for 32-bit limited filesystems
GAME_ENTRY("strangeland", "ac2game.dat", "151b0391a650d3c81c2758deaa5852cd", 3183277137),
GAME_ENTRY_GOG("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3186989657), // Win v2.7
GAME_ENTRY_GOG("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3187004936), // Win v3.0
+ GAME_ENTRY_GOG("strangeland", "ac2game.dat", "511e08ad31c4020a9ca01b6f7ce1365f", 3009634736), // Mac
GAME_ENTRY_GOG("strangeland", "ac2game.dat", "7e5abc5202098bd00ddef999854eb9ab", 3183368017), // Mac
GAME_ENTRY_GOG("strangeland", "ac2game.dat", "e4b9f0aa26c1115143ad483c99bc9383", 3183880236), // Mac v2.5a
GAME_ENTRY_GOG("strangeland", "ac2game.dat", "86e8b93b8231d6c571669f1621561a21", 3183886917), // Mac v2.7
- GAME_ENTRY_GOG("strangeland", "ac2game.dat", "c0d0009485795a4ff0cf9dbe5ad82a2f", 3183902196), // Mac
- GAME_ENTRY_GOG("strangeland", "ac2game.dat", "511e08ad31c4020a9ca01b6f7ce1365f", 3009634736), // Mac v3.2
+ GAME_ENTRY_GOG("strangeland", "ac2game.dat", "c0d0009485795a4ff0cf9dbe5ad82a2f", 3183902196), // Mac v3?
+ GAME_ENTRY_STEAM("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3187004654), // Win-Linux v3.0
+ GAME_ENTRY_STEAM("strangeland", "ac2game.dat", "e037ab3414dec971b90715c7dbb56f4c", 3183901914), // Mac
GAME_ENTRY("sulifallenharmony", "Suli Fallen Harmony.exe", "8a58836830dce896e4366f57791ab6cc", 35900870), // v1.4 itch.io En-Fr
GAME_ENTRY_STEAM("sumatra", "sumatra fate of yandi.exe", "57c868b1a81c0335ab60970292cd79d8", 170088886), // En-Fr-De-Es
GAME_ENTRY_STEAM("sumatra", "sumatra fate of yandi.exe", "b4407ac542f316456f549fc8a60dccae", 170634789),
@@ -4096,14 +4102,13 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_LANG_PLATFORM("symploke2", "symploke2.exe", "ff20c8c9dda8379607db87e7726909c6", 124539110, Common::ES_ESP, "Steam"), // Steam (Spanish)
GAME_ENTRY_EN_STEAM("symploke3", "symploke3.exe", "c7acc0fba53cb6a656c9cbc788868a2d", 284040264), // Steam (English)
GAME_ENTRY_LANG_PLATFORM("symploke3", "symploke3.exe", "c7acc0fba53cb6a656c9cbc788868a2d", 284098408, Common::ES_ESP, "Steam"), // Steam (Spanish)
- GAME_ENTRY("tales", "tales.exe", "4f6c7ec127e8b0ce077abb357903612f", 112930701),
GAME_ENTRY_STEAM("tales", "tales.exe", "7b5842e8954354ef6e21dc1837073182", 150969855), // En-Fr-De-Es-It-Ru
GAME_ENTRY_EN_STEAM("technobabylon", "technobabylon.exe", "e523535e730f313e1ed9b19b1a9dd228", 447900356), // Win Orig
GAME_ENTRY_EN_STEAM("technobabylon", "technobabylon.exe", "83cd1ad574bcfffe1b11504a32402b1e", 448795857), // Win v2.2
GAME_ENTRY_EN_STEAM("technobabylon", "technobabylon.exe", "83cd1ad574bcfffe1b11504a32402b1e", 448823986), // Win v2.2 updated
GAME_ENTRY_EN_STEAM("technobabylon", "technobabylon.exe", "83cd1ad574bcfffe1b11504a32402b1e", 448823978),
GAME_ENTRY_EN_STEAM("technobabylon", "technobabylon.exe", "83cd1ad574bcfffe1b11504a32402b1e", 448825176), // Win v2.5
- GAME_ENTRY_EN_STEAM("technobabylon", "technobabylon.exe", "83cd1ad574bcfffe1b11504a32402b1e", 448836470), // Win v2.5a
+ GAME_ENTRY_EN_STEAM("technobabylon", "technobabylon.exe", "83cd1ad574bcfffe1b11504a32402b1e", 448836470), // Win/Linux v2.5a
GAME_ENTRY_EN_STEAM("technobabylon", "ac2game.dat", "570e69be27d3fa94b50f2779100e3fed", 445700420), // Mac
GAME_ENTRY_EN_GOG("technobabylon", "technobabylon.exe", "83cd1ad574bcfffe1b11504a32402b1e", 448796372), // Win v2.2
GAME_ENTRY_EN_GOG("technobabylon", "technobabylon.exe", "83cd1ad574bcfffe1b11504a32402b1e", 448825442), // Win v2.5
@@ -4581,7 +4586,6 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("signalecho", "Signal & Echo - Iris is Missing (demo).exe", "f9e3e0193fbc975daa3a7c95edf04e0a", 39177267),
DEMO_ENTRY_EN("simonthesorcerer3", "simon3.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 8189928),
DEMO_ENTRY_EN("simonthesorcerersbrother", "stsb-trailer.exe", "06a03fe35791b0578068ab1873455463", 2283838),
- DEMO_ENTRY_EN("sisterssecret", "SistersSecret.exe", "f8d06c339ca2af5160b662c7a19572d6", 18660074), // v1.0.1
DEMO_ENTRY_EN("skytowerrescue", "STR.exe", "2b7ae26333ba15529a8bbbdb49605133", 8630945),
DEMO_ENTRY_EN("smallsister", "sister.exe", "78dd4ca028ee0156b6a093d6d780aa65", 18528035),
DEMO_ENTRY_EN("smgilbert", "s&m2_demo_ENG.exe", "c87aa6377abc18c1a1b2968ae6db08eb", 4141303),
@@ -4621,8 +4625,9 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY("sulifallenharmony", "Suli Fallen Harmony - Demo.exe", "8a58836830dce896e4366f57791ab6cc", 8826816), // itch.io En-Fr
DEMO_ENTRY_EN("superjazzman", "sjmdemo.exe", "0710e2ec71042617f565c01824f0cf3c", 5214882),
DEMO_ENTRY_EN("supernaturaltt", "sam&dean.exe", "06a03fe35791b0578068ab1873455463", 6276225),
- DEMO_ENTRY("tales", "tales.exe", "4f6c7ec127e8b0ce077abb357903612f", 112930689), // Steam Eng-Ita
DEMO_ENTRY("tales", "tales.exe", "bdaf20d9779c01986d6d8b7e1d6118ee", 68615667), // Tech demo
+ DEMO_ENTRY("tales", "tales.exe", "4f6c7ec127e8b0ce077abb357903612f", 112930689), // Eng-Ita Steam
+ DEMO_ENTRY("tales", "tales.exe", "4f6c7ec127e8b0ce077abb357903612f", 112930701), // Eng-Ita Official website
DEMO_ENTRY_EN("technobabylon", "technobabylon.exe", "e523535e730f313e1ed9b19b1a9dd228", 595787927),
DEMO_ENTRY_EN("technobabylon", "technobabylon.exe", "e523535e730f313e1ed9b19b1a9dd228", 59578792),
DEMO_ENTRY_EN("thatday", "ThatDay.exe", "b142b43c146c25443a1d155d441a6a81", 9534366),
Commit: 6a51eef1ec1d77f9528806d1b9f326ffdcdd6fb8
https://github.com/scummvm/scummvm/commit/6a51eef1ec1d77f9528806d1b9f326ffdcdd6fb8
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:37:35+02:00
Commit Message:
AGS: Rename crystalball -> thecrystalball
Prevents clash with GLK game
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index cbf4f6ff1f2..1f60cb9d604 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -960,7 +960,6 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "cryo", "Cryo" },
{ "crypt", "Crypt" },
{ "cryptic", "Cryptic" },
- { "crystalball", "The Crystal Ball" },
{ "crystalquest", "Crystal Quest" },
{ "csihunt1", "CSI Hunt 1" },
{ "cspb", "Cake & Smurphy Puzzle Battle!" },
@@ -2903,6 +2902,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "thecondemned", "The Condemned" },
{ "thecradle", "The Cradle" },
{ "thecrazedchicken", "The Crazed Chicken" },
+ { "thecrystalball", "The Crystal Ball" },
{ "thecube", "The Cube" },
{ "thecurseoflife", "The Curse of Life" },
{ "thedarkplague", "The Dark Plague" },
@@ -5373,7 +5373,6 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("cryo", "cryo.exe", "615e73fc1874e92d60a1996c2330ea36", 27992619),
GAME_ENTRY_EN("crypt", "crypt.exe", "0500aacb6c176d47ac0f8158f055db83", 2089059),
GAME_ENTRY_EN("cryptic", "cryptic.exe", "d9143b143b011d7bd8726c1bb5dabc59", 6027654),
- GAME_ENTRY_EN("crystalball", "OROW8.exe", "8cc8a212d8ffb923db0ba740074dfa69", 20921755),
GAME_ENTRY_EN("crystalquest", "MarchMAGS.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 2284362),
GAME_ENTRY_EN("csihunt1", "csi hunt 1.exe", "06a03fe35791b0578068ab1873455463", 2190662),
GAME_ENTRY_EN("cspb", "cspb.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 77296215),
@@ -7688,6 +7687,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("thecondemned", "The Condemned.exe", "338fa79960d40689063af31c671b8729", 399499655),
GAME_ENTRY_EN("thecradle", "The Cradle.exe", "7db052bc30700d1f30f5330f5814f519", 326421438),
GAME_ENTRY("thecrazedchicken", "chicken.exe", "6cddccb3744ec5c6af7c398fb7b3b11c", 3913199), // Eng-Pol
+ GAME_ENTRY_EN("thecrystalball", "OROW8.exe", "8cc8a212d8ffb923db0ba740074dfa69", 20921755),
GAME_ENTRY("thecube", "The Cube.exe", "97d700529f5cc826f230c27acf81adfd", 2029985), // Eng-Deu
GAME_ENTRY("thecurseoflife", "TheCurse.exe", "90413e9ae57e222f8913b09d2bc847bc", 9651875), // Eng-Ita
GAME_ENTRY_EN("thedarkplague", "darkplague.exe", "850d1f4d8af87b89d77650a083f7f307", 8176381),
Commit: 3a65a840540f8204fadefee9b149dbc7a87bf475
https://github.com/scummvm/scummvm/commit/3a65a840540f8204fadefee9b149dbc7a87bf475
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:38:44+02:00
Commit Message:
AGS: Add detection entry for Murder Cases Demo
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 1f60cb9d604..771ab6af129 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -326,6 +326,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "mage", "Mage's Initiation: Reign of the Elements" },
{ "metaldead", "Metal Dead" },
{ "mountainsofmadness", "Chronicle of Innsmouth: Mountains of Madness" },
+ { "murdercases", "Murder Cases" },
{ "mybigsister", "My Big Sister" },
{ "mybigsisterrm", "My Big Sister: Remastered" },
{ "nellycootalot-hd", "Nelly Cootalot: Spoonbeaks Ahoy! HD" },
@@ -4492,6 +4493,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DETECTION_ENTRY("mmmwayne", "Police_Molest-SP.exe", "bb59de174d70797d774dec76a171352d", 6740315, Common::DE_DEU, "Trailer", nullptr, ADGF_DEMO),
DEMO_ENTRY_EN("monkeywrench", "monkeywrench.exe", "a01a9639ce30bdcd5bf82e528b51fa06", 27454116),
DEMO_ENTRY_EN("morphine", "Morphine.exe", "0a04523bb2e6fe2b4eb8eee70217ac16", 113435250),
+ DEMO_ENTRY("murdercases", "Murder Cases Demo.exe", "e01f39b38593e3f871a803908daa20e7", 431399292),
+ DEMO_ENTRY("murdercases", "Murder Cases Demo.exe", "e01f39b38593e3f871a803908daa20e7", 431401071),
DEMO_ENTRY_EN("murderinminnesota", "Game.exe", "495d45fb8adfd49690ae3b97921feec6", 14820679), //v1 Windows
DEMO_ENTRY_EN("murderinminnesota", "Game.ags", "b4ed9f317081139a925d1b3a0260c1ad", 12340023), //v1 Linux
DEMO_ENTRY_EN("murderinminnesota", "Game.exe", "495d45fb8adfd49690ae3b97921feec6", 15258174), //v2 Windows
Commit: 713ee94970277857f331509a5b8428c430325086
https://github.com/scummvm/scummvm/commit/713ee94970277857f331509a5b8428c430325086
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:42:42+02:00
Commit Message:
AGS: Disable loading from launcher for Strangeland
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 771ab6af129..bf579da2541 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -4080,17 +4080,17 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_STEAM("starshipquasar", "starship quasar.ags", "0ea8150e15a4f4d0f3e82c231a4659f2", 10415936), // Multilang
GAME_ENTRY("starshipquasar", "Starship Quasar.exe", "0ea8150e15a4f4d0f3e82c231a4659f2", 10415936), // Multilang itch.io
GAME_ENTRY_EN_STEAM("stayingalive", "Staying Alive.exe", "fae163b58c16e194688727d0903684be", 17380838),
- GAME_ENTRY("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3186614879),
- GAME_ENTRY("strangeland", "ac2game.dat", "151b0391a650d3c81c2758deaa5852cd", 3183277137),
- GAME_ENTRY_GOG("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3186989657), // Win v2.7
- GAME_ENTRY_GOG("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3187004936), // Win v3.0
- GAME_ENTRY_GOG("strangeland", "ac2game.dat", "511e08ad31c4020a9ca01b6f7ce1365f", 3009634736), // Mac
- GAME_ENTRY_GOG("strangeland", "ac2game.dat", "7e5abc5202098bd00ddef999854eb9ab", 3183368017), // Mac
- GAME_ENTRY_GOG("strangeland", "ac2game.dat", "e4b9f0aa26c1115143ad483c99bc9383", 3183880236), // Mac v2.5a
- GAME_ENTRY_GOG("strangeland", "ac2game.dat", "86e8b93b8231d6c571669f1621561a21", 3183886917), // Mac v2.7
- GAME_ENTRY_GOG("strangeland", "ac2game.dat", "c0d0009485795a4ff0cf9dbe5ad82a2f", 3183902196), // Mac v3?
- GAME_ENTRY_STEAM("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3187004654), // Win-Linux v3.0
- GAME_ENTRY_STEAM("strangeland", "ac2game.dat", "e037ab3414dec971b90715c7dbb56f4c", 3183901914), // Mac
+ DETECTION_ENTRY_GUIO("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3186614879, Common::EN_ANY, nullptr, GUIO2(GUIO_NOLANG, GUIO_NOLAUNCHLOAD), nullptr, ADGF_NO_FLAGS),
+ DETECTION_ENTRY_GUIO("strangeland", "ac2game.dat", "151b0391a650d3c81c2758deaa5852cd", 3183277137, Common::EN_ANY, nullptr, GUIO2(GUIO_NOLANG, GUIO_NOLAUNCHLOAD), nullptr, ADGF_NO_FLAGS),
+ GAME_ENTRY_PLUGIN_GOG_NOLAUNCHLOAD("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3186989657, nullptr), // Win v2.7
+ GAME_ENTRY_PLUGIN_GOG_NOLAUNCHLOAD("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3187004936, nullptr), // Win v3.0
+ GAME_ENTRY_PLUGIN_GOG_NOLAUNCHLOAD("strangeland", "ac2game.dat", "511e08ad31c4020a9ca01b6f7ce1365f", 3009634736, nullptr), // Mac
+ GAME_ENTRY_PLUGIN_GOG_NOLAUNCHLOAD("strangeland", "ac2game.dat", "7e5abc5202098bd00ddef999854eb9ab", 3183368017, nullptr), // Mac
+ GAME_ENTRY_PLUGIN_GOG_NOLAUNCHLOAD("strangeland", "ac2game.dat", "e4b9f0aa26c1115143ad483c99bc9383", 3183880236, nullptr), // Mac v2.5a
+ GAME_ENTRY_PLUGIN_GOG_NOLAUNCHLOAD("strangeland", "ac2game.dat", "86e8b93b8231d6c571669f1621561a21", 3183886917, nullptr), // Mac v2.7
+ GAME_ENTRY_PLUGIN_GOG_NOLAUNCHLOAD("strangeland", "ac2game.dat", "c0d0009485795a4ff0cf9dbe5ad82a2f", 3183902196, nullptr), // Mac v3?
+ GAME_ENTRY_PLUGIN_STEAM_NOLAUNCHLOAD("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3187004654, nullptr), // Win-Linux v3.0
+ GAME_ENTRY_PLUGIN_STEAM_NOLAUNCHLOAD("strangeland", "ac2game.dat", "e037ab3414dec971b90715c7dbb56f4c", 3183901914, nullptr), // Mac
GAME_ENTRY("sulifallenharmony", "Suli Fallen Harmony.exe", "8a58836830dce896e4366f57791ab6cc", 35900870), // v1.4 itch.io En-Fr
GAME_ENTRY_STEAM("sumatra", "sumatra fate of yandi.exe", "57c868b1a81c0335ab60970292cd79d8", 170088886), // En-Fr-De-Es
GAME_ENTRY_STEAM("sumatra", "sumatra fate of yandi.exe", "b4407ac542f316456f549fc8a60dccae", 170634789),
Commit: 1151492abb3dc9b74da989211c6c08230568c0c4
https://github.com/scummvm/scummvm/commit/1151492abb3dc9b74da989211c6c08230568c0c4
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:42:59+02:00
Commit Message:
AGS: Add detection for Stellar Mess full game
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index bf579da2541..96f3b41e833 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -360,6 +360,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "sphonx", "Sphonx" },
{ "starshipquasar", "Starship Quasar" },
{ "stayingalive", "The Ancient Art of Staying Alive" },
+ { "stellarmessep1", "Stellar Mess - Episode 1: The Princess Conundrum" },
{ "strangeland", "Strangeland" },
{ "sulifallenharmony", "Suli Fallen Harmony" },
{ "sumatra", "Sumatra: Fate of Yandi" },
@@ -2783,7 +2784,6 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "steamsquares", "Steamsquares" },
{ "steamtrek", "Steam Trek: Clueless around Risa" },
{ "stediddyip1employment", "Stediddy in IP1 - Employment" },
- { "stellarmessep1", "Stellar Mess - Episode 1: The Princess Conundrum" },
{ "stephenkingcars", "Stephen King DodgeEmCars" },
{ "stevequest", "Steve Quest" },
{ "stickamhour1", "Stickam Hour Game - Downfallen Superhero" },
@@ -4080,6 +4080,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_STEAM("starshipquasar", "starship quasar.ags", "0ea8150e15a4f4d0f3e82c231a4659f2", 10415936), // Multilang
GAME_ENTRY("starshipquasar", "Starship Quasar.exe", "0ea8150e15a4f4d0f3e82c231a4659f2", 10415936), // Multilang itch.io
GAME_ENTRY_EN_STEAM("stayingalive", "Staying Alive.exe", "fae163b58c16e194688727d0903684be", 17380838),
+ GAME_ENTRY_STEAM("stellarmessep1", "StellarMessTPC.exe", "a409703089eebbcfa13f0a22f6fb71ed", 18068440), // Eng-Esp
+ GAME_ENTRY_STEAM("stellarmessep1", "StellarMessTPC.exe", "a409703089eebbcfa13f0a22f6fb71ed", 18077040), // Eng-Esp v1.4
DETECTION_ENTRY_GUIO("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3186614879, Common::EN_ANY, nullptr, GUIO2(GUIO_NOLANG, GUIO_NOLAUNCHLOAD), nullptr, ADGF_NO_FLAGS),
DETECTION_ENTRY_GUIO("strangeland", "ac2game.dat", "151b0391a650d3c81c2758deaa5852cd", 3183277137, Common::EN_ANY, nullptr, GUIO2(GUIO_NOLANG, GUIO_NOLAUNCHLOAD), nullptr, ADGF_NO_FLAGS),
GAME_ENTRY_PLUGIN_GOG_NOLAUNCHLOAD("strangeland", "Strangeland.exe", "c5978d50a9b7ee1c8a50a731847d8504", 3186989657, nullptr), // Win v2.7
Commit: 7410ad4ceb6129e1f49216d14941f9ee2b124984
https://github.com/scummvm/scummvm/commit/7410ad4ceb6129e1f49216d14941f9ee2b124984
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:43:19+02:00
Commit Message:
AGS: Added for Dreams in the Witch House 1.06 GOG
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 96f3b41e833..873d0a5194c 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3901,6 +3901,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484767190), // v1.02
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484783215), // v1.04
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484795246), // v1.05
+ GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484837277), // v1.06
GAME_ENTRY_EN_STEAM("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484795038), // v1.05
GAME_ENTRY_EN_STEAM("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 63365026),
GAME_ENTRY_EN("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 82185295),
Commit: cc5a864881a575639ce9b408115f0b9d06beaaa8
https://github.com/scummvm/scummvm/commit/cc5a864881a575639ce9b408115f0b9d06beaaa8
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:43:30+02:00
Commit Message:
AGS: Add detection for some italian localized versions
>From miworld.eu
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 873d0a5194c..9f71e1f3016 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -115,7 +115,6 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "inadream", "In a Dream" },
{ "indygoldmedallion", "Indiana Jones and The Gold Medallion" },
{ "indyguybrush", "Indiana Jones - Alla ricerca di Guybrush Threepwood" },
- { "indysecretchamber", "Indiana Jones and the Secret Chamber of Schloss Brunwald" },
{ "interactivefiction", "Interactive Fiction" },
{ "intergalacticlife", "Intergalactic Life" },
{ "invasionspacealiens", "Invasion of the Space Aliens Who Are Not From Earth But From Some Other Planet" },
@@ -1506,6 +1505,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "indypassageofsaints", "Indiana Jones and the Passage of Saints" },
{ "indyrelicoftheviking", "Indiana Jones and the relic of the Viking" },
{ "indyroyaume", "Indiana Jones et le Royaume des Voeux" },
+ { "indysecretchamber", "Indiana Jones and the Secret Chamber of Schloss Brunwald" },
{ "indysevencities", "Indiana Jones and the Seven Cities of Gold" },
{ "indianarodent", "Indiana Rodent: Raiders of the Lost Cheese" },
{ "ineedawee", "I need a Wee!" },
@@ -4403,6 +4403,12 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("indycrystalcursor", "cursoid.exe", "06a03fe35791b0578068ab1873455463", 12136127),
DEMO_ENTRY_EN("indyeyedestiny", "Trap.exe", "618d7dce9631229b4579340b964c6810", 3619133),
DEMO_ENTRY_EN("indysevencities", "Seven Cities.exe", "c9cd3e2cdd295c33e62cfa97b14461e9", 12561314), //v1.2.1.1
+ DEMO_ENTRY("indysevencities", "Seven Cities.exe", "be858e83311d4f1b49e05b933b92f0a9", 12592498), // Eng-Ita
+ DETECTION_ENTRY("indysevencities", "mirrors_demo.exe", "615e73fc1874e92d60a1996c2330ea36", 3363553, Common::UNK_LANG, "Mirrors Module Demo v1", nullptr, ADGF_DEMO), //En-It
+ DETECTION_ENTRY("indysevencities", "IJ7Cities-Mirrors.exe", "44f90e1b2f427fef02fc0d00420d2b6f", 4637313, Common::UNK_LANG, "Mirrors Module Demo v2", nullptr, ADGF_DEMO), //En-It
+ DETECTION_ENTRY("indysevencities", "Map_noDynamicSprites.exe", "615e73fc1874e92d60a1996c2330ea36", 3540387, Common::UNK_LANG, "Indy Map Module Demo", nullptr, ADGF_DEMO), //En-It
+ DETECTION_ENTRY("indysevencities", "IJ7Cities-TextArea.exe", "635852726a70679997f9834619678845", 3633773, Common::UNK_LANG, "Text Area Module Demo", nullptr, ADGF_DEMO), //En-It
+ DETECTION_ENTRY("indysevencities", "IJ7Cities-Icicles.exe", "44f90e1b2f427fef02fc0d00420d2b6f", 3798425, Common::UNK_LANG, "Icicles Module Demo", nullptr, ADGF_DEMO), //En-It
DEMO_ENTRY_EN("infectionep2", "Infection_Ep_II_AGS.exe", "a524cbb1c51589903c4043b98917f1d9", 23691417),
DEMO_ENTRY_EN("inferno", "inf.exe", "97d700529f5cc826f230c27acf81adfd", 8783105),
DEMO_ENTRY_LANG("insidemonkeyislandch4", "IMI4.exe", "18b284c22010850f79bc5c20054a70c4", 8187753, Common::IT_ITA),
@@ -4461,9 +4467,11 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("menial", "Menial (demo).ags", "c828826cc17fda61464ca7cc3d3a7fc0", 15248159),
DEMO_ENTRY_EN("mi0daementia", "Monkey Island - Zero.exe", "a524cbb1c51589903c4043b98917f1d9", 6561007),
DEMO_ENTRY("mi0navidad", "Navidad.exe", "735dab7116efa2dfff49ea57e5259223", 2321151), // Eng-Esp
+ DEMO_ENTRY("mi0navidad", "MI Zero - Navidad.exe", "44f90e1b2f427fef02fc0d00420d2b6f", 3642721), // En-Es-It
DEMO_ENTRY_LANG("mi12", "Monkey Island.exe", "0500aacb6c176d47ac0f8158f055db83", 3394895, Common::DE_DEU),
DEMO_ENTRY_LANG("mi25escape", "MI 2.5.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 6592143, Common::IT_ITA),
DEMO_ENTRY_LANG("mi25parque", "Golden Studios.exe", "c6c49c00986ca36933959fa8afa6678b", 6553367, Common::ES_ESP),
+ DEMO_ENTRY("mi25parque", "MI2.5 El parque de las Pesadillas.exe", "0b629941253ad4b140bf26a69a170f7a", 7816500), // Es-It
DEMO_ENTRY_EN("mi5thereturnoflechuck", "demo.exe", "0500aacb6c176d47ac0f8158f055db83", 6235270),
DEMO_ENTRY_EN("mibaddaytobedead", "Monkey.exe", "f120690b506dd63cd7d1112ea6af2f77", 2117238),
DEMO_ENTRY_LANG("micv", "MI.exe", "d90febc33f641a5f14c485f8ef29fb33", 3371895, Common::ES_ESP),
@@ -4475,6 +4483,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("minewadv", "Lars MI game.exe", "7f59c1439943d984312dfb08083b13c9", 1869768),
DEMO_ENTRY_LANG("miprision", "Prision Demo.exe", "6ccc4b7febad420898db72f0c0190875", 3444329, Common::ES_ESP), //v1
DEMO_ENTRY_LANG("miprision", "Prision Demo V0.2.exe", "81b72a0500164c15396238a19a8314a4", 3369056, Common::ES_ESP), //v2
+ DEMO_ENTRY("miprision", "Prision.exe", "c3b72132686c4a102b3365d380c8ae3a", 5179581), // v3 Es-It
DEMO_ENTRY_EN("mirevealed", "MI2.5.exe", "0710e2ec71042617f565c01824f0cf3c", 2454801),
DEMO_ENTRY_LANG("misterybigwhoop", "monkyisland-pjt.exe", "f3a13b2d6c2e0fe04c6f466062920e23", 2132048, Common::IT_ITA),
DEMO_ENTRY("mivl", "MI.exe", "23a7b5a6119e82a9750302492b3f2856", 1927604), // Eng-Esp
@@ -6024,6 +6033,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("indypassageofsaints", "Compiled_AGS3.2.1.exe", "4370edcb2ef8b9ecb323fb5a94770117", 78409939),
GAME_ENTRY("indyrelicoftheviking", "Indiana Jones and the relic of the viking.exe", "de375dffcb0635bb84daf82eaddf4e3b", 63943198), //v1.1 Multilang
GAME_ENTRY_LANG("indyroyaume", "indiana.exe", "18b284c22010850f79bc5c20054a70c4", 3779448, Common::FR_FRA),
+ GAME_ENTRY("indysecretchamber", "The Secret Chamber of Schloss Brunwald.exe", "44f90e1b2f427fef02fc0d00420d2b6f", 3813560), // En-It
GAME_ENTRY_EN("ineedawee", "needawee.exe", "f120690b506dd63cd7d1112ea6af2f77", 1377697),
GAME_ENTRY_EN("infantrydivision", "Infantry.exe", "0710e2ec71042617f565c01824f0cf3c", 9144372),
GAME_ENTRY("infectionep1", "Infection I.exe", "7132ff7d6b0bc1e9f3e4bd4755390626", 25974295), // En-De
@@ -6361,6 +6371,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_PLATFORM("manboy", "Man Boy.exe", "1275885401b7d2ece491e704535707d9", 2932301, "OROW"),
GAME_ENTRY_EN("mangivingup", "ManGivingUp.exe", "1a56f15e76e2650c38ef680cb0f6ad3f", 4218825),
GAME_ENTRY_EN("maniacapartment", "Maniac apartmen.exe", "465f972675db2da6040518221af5b0ba", 4806623),
+ GAME_ENTRY("maniacapartment", "ManiacApt.exe", "44f90e1b2f427fef02fc0d00420d2b6f", 6844931), // v1.1 En-Es-It
GAME_ENTRY_EN("maniacland", "AliceInManiacland.exe", "74203c62b4604c4463f1c53db2d47c01", 6570499), // Windows
GAME_ENTRY_EN("maniacland", "AliceInManiacland.ags", "00596e8a9f0bd774528fb8c7225bed0d", 4082163), // Linux
GAME_ENTRY("maniacland", "AliceInManiacland.exe", "d37a4f06126fc1f3bb7e5c31bd58a014", 8015351), // Windows (newer) En-Es-It
@@ -6853,6 +6864,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("onemorefathom", "AGS_OMF.exe", "9b47600b5662d7f8b6a4c6ed6854a12c", 24492467),
GAME_ENTRY_EN("oneofakind", "OneOfAKind.exe", "a524cbb1c51589903c4043b98917f1d9", 4031186),
GAME_ENTRY_EN("onerainyday", "gewitter.exe", "82da2565c456dcfb265ded6fe3189c0b", 8409861),
+ GAME_ENTRY("onerainyday", "OneRainyDay.exe", "c3b72132686c4a102b3365d380c8ae3a", 9749023), // En-It
GAME_ENTRY_EN_PLATFORM("oneroom", "One Room.exe", "a01a9639ce30bdcd5bf82e528b51fa06", 14331940, "OROW"),
GAME_ENTRY_EN("oneroom", "One Room.exe", "7a5f69f3034dc2b629ee53bd7ee5f95b", 21431873), // v2
GAME_ENTRY_EN("oneroomonecheese", "One Cheese.exe", "c4f5b7b29be90ba0f8128298afb917de", 3698736),
@@ -8086,6 +8098,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY("wheredidhumansgo", "AdvGameChallenge22.exe", "805aebfc9a02cd02f892de6cd2cb7c87", 34137817), // Windows Eng-Ita
GAME_ENTRY("wheredidhumansgo", "AdvGameChallenge22.ags", "d8eefb1fd0d9132d413f3d977c9712f8", 31022789), // Linux Eng-Ita
GAME_ENTRY_EN("wheredidsamgo", "WDSG.exe", "0710e2ec71042617f565c01824f0cf3c", 4921841),
+ GAME_ENTRY("wheredidsamgo", "WDSamGo.exe", "90c820d7154dda79ac2af5fbbf60887f", 10719373), // En-It
GAME_ENTRY_EN_PLATFORM("wheresmhatma", "WMHM.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 50659613, "MAGS"),
GAME_ENTRY_EN_PLATFORM("wheresmhatma", "g3.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 50659613, "MAGS"),
GAME_ENTRY_EN("wheresmhatma", "WMHM.exe", "25f919423520b921a041ec854e3a0217", 51766424), //v2.0
Commit: f20b0da94064876cb9ef30ec0f5da4f5df2d22dd
https://github.com/scummvm/scummvm/commit/f20b0da94064876cb9ef30ec0f5da4f5df2d22dd
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:43:41+02:00
Commit Message:
AGS: Add detection entries for recent demos/games
>From AGS forums
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 9f71e1f3016..db3030acf8f 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -785,6 +785,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "brokenwindows1", "Broken Windows - Chapter 1" },
{ "brokenwindows2", "Broken Windows - Chapter 2" },
{ "brokenwindows3", "Broken Windows - Chapter 3" },
+ { "brokenwindows4", "Broken Windows - Chapter 4" },
{ "brotherswreckers", "Brothers & Wreckers" },
{ "brotherswreckersep7", "Brothers & Wreckers - Episode 7" },
{ "brucequest", "Bruce Quest: The Secrets of the Outback" },
@@ -1337,10 +1338,12 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "glitchquest", "Glitch Quest" },
{ "globalistagenda", "My Dear Globalist Agenda" },
{ "gloriouswolf2", "Glorious Wolf 2 - The Queens Gambit" },
+ { "gloriouswolfcomics", "Glorious Wolf - Interactive Musical Comics Ep. 1" },
{ "gnomeshomebrewingadventure", "Gnome's Homebrewing Adventure" },
{ "gnrblex", "GNRBLEX" },
{ "goatburn", "Goat Burn" },
{ "goatherd", "Goat Herd and the Gods" },
+ { "gobyworld", "Gobyworld" },
{ "goldreddragon", "Gold of the Red Dragon" },
{ "goneboatfishin", "Gone Boat Fishin'" },
{ "gonefishin", "Gone fishin'" },
@@ -2931,6 +2934,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "theendlessnight", "The Endless Night" },
{ "theenergizer", "The Energizer" },
{ "theepicadventures", "The epic adventures of Barry" },
+ { "theerrand", "The Errand" },
{ "theeternalnight", "The Eternal Night" },
{ "theeverbeginningtale", "The Ever-Beginning Tale" },
{ "theexecutionofanneboleyn", "The Execution of Anne Boleyn" },
@@ -2990,7 +2994,8 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "thenetherworld", "The Netherworld" },
{ "thenextcurse", "The Next Curse" },
{ "thenorthcrown", "The North Crown" },
- { "theoccultist", "The Occultist - Old Growth" },
+ { "theoccultist1", "The Occultist - Old Growth" },
+ { "theoccultist2", "The Occultist - Bridge Under Troubled Water" },
{ "theoffice", "The Office" },
{ "theoracle", "The Oracle" },
{ "theoscillation", "The Oscillation" },
@@ -3772,6 +3777,9 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
UNSUPPORTED_INSTALLER_ENTRY("zak2", "fanadv_zak2.exe", "Zak2.exe", "329ff478ffc1a3bd0dc941d5212aa602", 7165704),
UNSUPPORTED_GAME_ENTRY("zak2", "Zak2.exe", "0b7529a76f38283d6e850b8d56526fc1", 9205143),
+ // AGS4 games
+ UNSUPPORTED_GAME_ENTRY("gloriouswolfcomics", "Glorious Wolf.ags", "578f34ce108225b7b03091b424655f6e", 1592100251),
+
// Commercial games
GAME_ENTRY_EN_STEAM("alemmo", "al-emmo.exe", "ff22fd118f18eca884dc7ed2a5be3877", 19045178),
GAME_ENTRY_EN("alemmo", "al_emmo.exe", "bb9e32ee92bb0996df5fea50e88d686a", 19036716), // 4.1, Desura
@@ -4205,6 +4213,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("aboardtheadventure", "Aboard.exe", "3c3f8f6c6fdcc519464477d3627b60f6", 125789038), // Voice: En-Es(LA), Subs: De-En-Es(La)-Pt(Br)
DEMO_ENTRY_EN("aboardtheadventure", "Aboard.exe", "3c3f8f6c6fdcc519464477d3627b60f6", 125813308),
DEMO_ENTRY_EN("abscission", "Abscission.exe", "418a9aaa044bfc5b7a79ba96fe679b60", 54341372), // v1.0.3
+ DEMO_ENTRY_EN("abscission", "Abscission Demo.exe", "418a9aaa044bfc5b7a79ba96fe679b60", 311033029), // Steam
DEMO_ENTRY_EN("absurdistan", "Absurdistan - Demo.exe", "4588012d3077d6b6791fce8cd4b15885", 35712363), // v1.3
DEMO_ENTRY_EN("acaixa", "A caixa.exe", "f434ba41ed68ef8d5224254027aad1f4", 48866212),
DEMO_ENTRY_EN("acuriouspastime", "Curious.exe", "3e46b32a00fd4e6b9f68754f854695c5", 27346489),
@@ -4653,6 +4662,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("thejourneyofiesir", "The Journey of Iesir.exe", "376a3f162c7940d990325c53edc20fed", 70444514),
DEMO_ENTRY("theloneloser", "demo (english).exe", "0500aacb6c176d47ac0f8158f055db83", 6082095), //Eng-Ita
DEMO_ENTRY_EN("themajesticconspiracy", "majestic.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 17929647),
+ DEMO_ENTRY_EN("theoccultist2", "Occultist2-BUTW.exe", "b781cc4ab0fbe647615fafa4830ec308", 8571116), // Windows
+ DEMO_ENTRY_EN("theoccultist2", "Occultist2-BUTW.ags", "50198f2880d4f8334a74051fa5591192", 5404376), // Linux
DEMO_ENTRY_EN("theperfectmurder", "Tamz.exe", "9cf51833e787cc919837d9a8bd8fc14c", 4527709),
DEMO_ENTRY_EN("theropods", "Theropods - Demo.exe", "bd4f8ebbab2893ccd54ea0e7ca4334a7", 445439739), // Steam
DEMO_ENTRY_EN("theropods", "theropods-demo.exe", "e4e47802c282a743fb269794e8bf0fe9", 445252923), // Gamejolt
@@ -5162,6 +5173,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("brokenwindows1", "Police.exe", "7ddb9e776648faed5a51170d087074e9", 16971333),
GAME_ENTRY_EN("brokenwindows2", "BW2.exe", "0564de07d3fd5c16e6947a647061913c", 16458558),
GAME_ENTRY_EN("brokenwindows3", "BW3.exe", "0564de07d3fd5c16e6947a647061913c", 16926857),
+ GAME_ENTRY_EN("brokenwindows4", "BW4.exe", "0564de07d3fd5c16e6947a647061913c", 15020205),
GAME_ENTRY_EN("brotherswreckersep7", "Brothers & Wreckers.exe", "f24c533ce89a2566c157b871f87a4ce4", 19524598),
GAME_ENTRY_EN("brucequest", "bruce.exe", "f18443f98fd61d2c655e76a17f7da905", 30055288),
GAME_ENTRY_EN("bruises", "Bruises.exe", "1b9191cfa0fab42776cbaf7b02768a05", 8050720), //Windows
@@ -5824,6 +5836,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("goatburn", "Goat Burn.exe", "22d2d13d88310758fc76ff9d6e4f23b8", 49624859),
GAME_ENTRY_EN_PLATFORM("goatburn", "Goat Burn.exe", "22d2d13d88310758fc76ff9d6e4f23b8", 49624244, "MAGS"),
GAME_ENTRY_EN("goatherd", "Goat Herd and the Gods.exe", "56ce1bc6ab10748cb4ddb91435cfa578", 91710325),
+ GAME_ENTRY_EN_STEAM("gobyworld", "Gobyworld.exe", "c1be9e9512e62644d40aedb5bf6cd649", 33204590),
GAME_ENTRY_EN("goldreddragon", "Mongoose Fitch.exe", "615e73fc1874e92d60a1996c2330ea36", 4508646),
GAME_ENTRY_EN("goneboatfishin", "Gone Boat Fishin'.exe", "bdd1df0484e296faa348ffcb03e16273", 72936045),
GAME_ENTRY_EN("gonefishin", "Gone fishin'.exe", "338fa79960d40689063af31c671b8729", 76569490),
@@ -7737,6 +7750,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("theendlessnight", "An Endless Night.exe", "ae8d17427ae4a33be146967054f0fcf1", 7052775),
GAME_ENTRY_EN("theenergizer", "TheEnergizer.exe", "a01a9639ce30bdcd5bf82e528b51fa06", 54539625),
GAME_ENTRY_EN("theepicadventures", "Epic adventures.exe", "a524cbb1c51589903c4043b98917f1d9", 17723648),
+ GAME_ENTRY_EN("theerrand", "The Errand.ags", "1bf407b3d0396deefd5c02f4996806f4", 24822053),
+ GAME_ENTRY_EN("theerrand", "The Errand.exe", "ae2e93ae61a612dd8cad1290bd5f7443", 27934009),
GAME_ENTRY_EN("theeverbeginningtale", "RRS.exe", "36f8b37f85f446e9aaccb18d85660cde", 5006033),
GAME_ENTRY_EN_PLATFORM("theeverbeginningtale", "RRS.exe", "25976a689b0f4d73eac69b1728377ecb", 4313508, "MAGS"),
GAME_ENTRY_EN("theexecutionofanneboleyn", "TheExecutionOfAnneBoleyn.exe", "6ee67d23067b0499eb8c6a1a9aabff8c", 8549540),
@@ -7810,8 +7825,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("thenextcurse", "TNC.exe", "88cf59aad15ca331ab0f854e16c84df3", 4125146),
GAME_ENTRY_EN("thenorthcrown", "htw.exe", "a01a9639ce30bdcd5bf82e528b51fa06", 3452775),
GAME_ENTRY_EN("thenorthcrown", "htw.exe", "a01a9639ce30bdcd5bf82e528b51fa06", 3452831),
- GAME_ENTRY_EN("theoccultist", "Occultist01.exe", "776a62db4387dc68be92ef9933399fd5", 10691261), // Windows
- GAME_ENTRY_EN("theoccultist", "Occultist01.ags", "bedd88519a455aea5ccd7f0c8298116d", 7584937),
+ GAME_ENTRY_EN("theoccultist1", "Occultist01.exe", "776a62db4387dc68be92ef9933399fd5", 10691261), // Windows
+ GAME_ENTRY_EN("theoccultist1", "Occultist01.ags", "bedd88519a455aea5ccd7f0c8298116d", 7584937),
GAME_ENTRY_EN("theoffice", "TheOffice.exe", "8e386ed8901186872484373c64fcd812", 355519407), //v1.1 Win
GAME_ENTRY_EN("theoffice", "TheOffice.ags", "6721a4f1403e28a61dca04558728f914", 353015199), //v1.1 Linux
GAME_ENTRY_EN("theoracle", "The Oracle.exe", "f120690b506dd63cd7d1112ea6af2f77", 7490474), //v1.1
Commit: a1d8f4831661889d8b0020a73f69de860ffdeb27
https://github.com/scummvm/scummvm/commit/a1d8f4831661889d8b0020a73f69de860ffdeb27
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T21:47:39+02:00
Commit Message:
AGS: Engine: a fix for coincidental dynamic sprite replacement in old games
This is a (ugly) backward compatible workaround in game_sprite_deleted().
Apparently there are few games that may rely (either with or without author's intent) on newly
created dynamic sprite being assigned same index as a recently deleted one, which results in
new sprite "secretly" taking place of an old one on the GUI, etc.
One known example is "Kathy Rain" game.
For old games we keep only partial index reset (full cleanup is 3.5.0+).
>From upstream e8409920049b2a8859856d3525a8f112227df4df
Changed paths:
engines/ags/engine/ac/game.cpp
diff --git a/engines/ags/engine/ac/game.cpp b/engines/ags/engine/ac/game.cpp
index c38d84eb998..f1a35338c9b 100644
--- a/engines/ags/engine/ac/game.cpp
+++ b/engines/ags/engine/ac/game.cpp
@@ -1378,6 +1378,15 @@ void game_sprite_deleted(int sprnum) {
_G(gfxDriver)->ClearSharedDDB(sprnum);
// character and object draw caches
reset_objcache_for_sprite(sprnum, true);
+
+ // This is ugly, but apparently there are few games that may rely
+ // (either with or without author's intent) on newly created sprite
+ // being assigned same index as a recently deleted one, which results
+ // in new sprite "secretly" taking place of an old one on the GUI, etc.
+ // So for old games we keep only partial reset (full cleanup is 3.5.0+).
+ const bool reset_sprindex_oldstyle =
+ _G(loaded_game_file_version) < kGameVersion_350;
+
// room object graphics
if (_G(croom) != nullptr) {
for (size_t i = 0; i < (size_t)_G(croom)->numobj; ++i) {
@@ -1385,13 +1394,6 @@ void game_sprite_deleted(int sprnum) {
_G(objs)[i].num = 0;
}
}
- // gui backgrounds
- for (size_t i = 0; i < (size_t)_GP(game).numgui; ++i) {
- if (_GP(guis)[i].BgImage == sprnum) {
- _GP(guis)[i].BgImage = 0;
- _GP(guis)[i].MarkChanged();
- }
- }
// gui buttons
for (auto &but : _GP(guibuts)) {
if (but.Image == sprnum)
@@ -1406,6 +1408,17 @@ void game_sprite_deleted(int sprnum) {
but.MarkChanged();
}
}
+
+ if (reset_sprindex_oldstyle)
+ return; // stop here for < 3.5.0 games
+
+ // gui backgrounds
+ for (size_t i = 0; i < (size_t)_GP(game).numgui; ++i) {
+ if (_GP(guis)[i].BgImage == sprnum) {
+ _GP(guis)[i].BgImage = 0;
+ _GP(guis)[i].MarkChanged();
+ }
+ }
// gui sliders
for (auto &slider : _GP(guislider)) {
if ((slider.BgImage == sprnum) || (slider.HandleImage == sprnum))
Commit: cbf181bdd475f77d8fda52158823b87c77eb2391
https://github.com/scummvm/scummvm/commit/cbf181bdd475f77d8fda52158823b87c77eb2391
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:14:14+02:00
Commit Message:
AGS: Engine: fixed room objects with ID >= 100 fail to Animate
This is because of legacy AnimateObject behavior, which treated IDs >= 100
as a command to run AnimateCharacter(ID - 100) instead.
>From upstream 8365802092cd3f704aecffe7d08b4d9f65f1f396
Changed paths:
engines/ags/engine/ac/global_object.cpp
engines/ags/engine/ac/runtime_defines.h
diff --git a/engines/ags/engine/ac/global_object.cpp b/engines/ags/engine/ac/global_object.cpp
index 0aad35ab0b8..06c52cf6e49 100644
--- a/engines/ags/engine/ac/global_object.cpp
+++ b/engines/ags/engine/ac/global_object.cpp
@@ -215,10 +215,6 @@ int GetObjectBaseline(int obn) {
}
void AnimateObjectImpl(int obn, int loopn, int spdd, int rept, int direction, int blocking, int sframe, int volume) {
- if (obn >= MANOBJNUM) {
- scAnimateCharacter(obn - 100, loopn, spdd, rept);
- return;
- }
if (!is_valid_object(obn))
quit("!AnimateObject: invalid object number specified");
if (_G(objs)[obn].view == RoomObject::NoView)
@@ -265,12 +261,23 @@ void AnimateObjectImpl(int obn, int loopn, int spdd, int rept, int direction, in
GameLoopUntilValueIsZero(&_G(objs)[obn].cycling);
}
+// A legacy variant of AnimateObject implementation: for pre-2.72 scripts;
+// it has a quirk: for IDs >= 100 this actually calls AnimateCharacter(ID - 100)
+static void LegacyAnimateObjectImpl(int obn, int loopn, int spdd, int rept,
+ int direction = 0, int blocking = 0) {
+ if (obn >= LEGACY_ANIMATE_CHARIDBASE) {
+ scAnimateCharacter(obn - LEGACY_ANIMATE_CHARIDBASE, loopn, spdd, rept);
+ } else {
+ AnimateObjectImpl(obn, loopn, spdd, rept, direction, blocking, 0);
+ }
+}
+
void AnimateObjectEx(int obn, int loopn, int spdd, int rept, int direction, int blocking) {
- AnimateObjectImpl(obn, loopn, spdd, rept, direction, blocking, 0);
+ LegacyAnimateObjectImpl(obn, loopn, spdd, rept, direction, blocking);
}
void AnimateObject(int obn, int loopn, int spdd, int rept) {
- AnimateObjectImpl(obn, loopn, spdd, rept, 0, 0, 0);
+ LegacyAnimateObjectImpl(obn, loopn, spdd, rept, 0, 0);
}
void MergeObject(int obn) {
diff --git a/engines/ags/engine/ac/runtime_defines.h b/engines/ags/engine/ac/runtime_defines.h
index c43430952a3..7c9132b3925 100644
--- a/engines/ags/engine/ac/runtime_defines.h
+++ b/engines/ags/engine/ac/runtime_defines.h
@@ -145,7 +145,9 @@ const int LegacyRoomVolumeFactor = 30;
// Bit mask for packing skip key/button data into result
#define SKIP_RESULT_DATA_MASK 0x00FFFFFF
-#define MANOBJNUM 99
+// The index base for characters, used in legacy AnimateObject script function;
+// if passed ID is eq or gt than this, then a Character is animated instead
+#define LEGACY_ANIMATE_CHARIDBASE 100
#define STD_BUFFER_SIZE 3000
Commit: d1f2e2b1165d393f02b247d100d5e691df562a70
https://github.com/scummvm/scummvm/commit/d1f2e2b1165d393f02b247d100d5e691df562a70
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:14:31+02:00
Commit Message:
AGS: Engine: fixed <3.6.0 Animate functions default volume parameter
>From upstream d8d94b36a3e4e7fe201e93965952698fc6c8da5e
Changed paths:
engines/ags/engine/ac/button.cpp
engines/ags/engine/ac/character.cpp
engines/ags/engine/ac/global_object.cpp
engines/ags/engine/ac/object.cpp
diff --git a/engines/ags/engine/ac/button.cpp b/engines/ags/engine/ac/button.cpp
index 9ca362f2d18..3574bcee9f9 100644
--- a/engines/ags/engine/ac/button.cpp
+++ b/engines/ags/engine/ac/button.cpp
@@ -119,12 +119,12 @@ void Button_AnimateEx(GUIButton *butt, int view, int loop, int speed,
}
void Button_Animate(GUIButton *butt, int view, int loop, int speed, int repeat) {
- Button_AnimateEx(butt, view, loop, speed, repeat, IN_BACKGROUND, FORWARDS, 0, 100);
+ Button_AnimateEx(butt, view, loop, speed, repeat, IN_BACKGROUND, FORWARDS, 0, 100 /* full volume */);
}
void Button_Animate7(GUIButton *butt, int view, int loop, int speed, int repeat, int blocking, int direction, int sframe) {
- Button_AnimateEx(butt, view, loop, speed, repeat, blocking, direction, sframe, 100);
- }
+ Button_AnimateEx(butt, view, loop, speed, repeat, blocking, direction, sframe, 100 /* full volume */);
+}
const char *Button_GetText_New(GUIButton *butt) {
return CreateNewScriptString(butt->GetText().GetCStr());
diff --git a/engines/ags/engine/ac/character.cpp b/engines/ags/engine/ac/character.cpp
index b80fc10b80a..bfd6794fc05 100644
--- a/engines/ags/engine/ac/character.cpp
+++ b/engines/ags/engine/ac/character.cpp
@@ -178,7 +178,7 @@ void Character_AnimateEx(CharacterInfo *chaa, int loop, int delay, int repeat,
}
void Character_Animate(CharacterInfo *chaa, int loop, int delay, int repeat, int blocking, int direction) {
- Character_AnimateEx(chaa, loop, delay, repeat, blocking, direction, 0, -1);
+ Character_AnimateEx(chaa, loop, delay, repeat, blocking, direction, 0, 100 /* full volume */);
}
void Character_ChangeRoomAutoPosition(CharacterInfo *chaa, int room, int newPos) {
diff --git a/engines/ags/engine/ac/global_object.cpp b/engines/ags/engine/ac/global_object.cpp
index 06c52cf6e49..91da813781e 100644
--- a/engines/ags/engine/ac/global_object.cpp
+++ b/engines/ags/engine/ac/global_object.cpp
@@ -268,7 +268,7 @@ static void LegacyAnimateObjectImpl(int obn, int loopn, int spdd, int rept,
if (obn >= LEGACY_ANIMATE_CHARIDBASE) {
scAnimateCharacter(obn - LEGACY_ANIMATE_CHARIDBASE, loopn, spdd, rept);
} else {
- AnimateObjectImpl(obn, loopn, spdd, rept, direction, blocking, 0);
+ AnimateObjectImpl(obn, loopn, spdd, rept, direction, blocking, 0, 100 /* full volume */);
}
}
diff --git a/engines/ags/engine/ac/object.cpp b/engines/ags/engine/ac/object.cpp
index c75029826d9..00a3a18a10b 100644
--- a/engines/ags/engine/ac/object.cpp
+++ b/engines/ags/engine/ac/object.cpp
@@ -142,7 +142,7 @@ void Object_AnimateEx(ScriptObject *objj, int loop, int delay, int repeat,
}
void Object_Animate(ScriptObject *objj, int loop, int delay, int repeat, int blocking, int direction) {
- Object_AnimateEx(objj, loop, delay, repeat, blocking, direction, 0, -1);
+ Object_AnimateEx(objj, loop, delay, repeat, blocking, direction, 0, 100 /* full volume */);
}
void Object_StopAnimating(ScriptObject *objj) {
Commit: df04663e576595704e9e97b5d4749d77ca4c48e8
https://github.com/scummvm/scummvm/commit/df04663e576595704e9e97b5d4749d77ca4c48e8
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-06-30T22:22:58+02:00
Commit Message:
AGS: COmment out unused variable
Changed paths:
engines/ags/shared/game/main_game_file.cpp
diff --git a/engines/ags/shared/game/main_game_file.cpp b/engines/ags/shared/game/main_game_file.cpp
index 41b6255d783..3a3faf386de 100644
--- a/engines/ags/shared/game/main_game_file.cpp
+++ b/engines/ags/shared/game/main_game_file.cpp
@@ -315,7 +315,7 @@ void ReadDialogs(std::vector<DialogTopic> &dialog,
fgetstring(stringbuffer, iii);
}
*/
- int i = 0;
+ //int i = 0;
char buffer[1000];
if (data_ver <= kGameVersion_260) {
// Plain text on <= 2.60
@@ -342,7 +342,7 @@ void ReadDialogs(std::vector<DialogTopic> &dialog,
break;
old_speech_lines.push_back(buffer);
- i++;
+ //i++;
}
} else {
// Encrypted text on > 2.60
@@ -358,7 +358,7 @@ void ReadDialogs(std::vector<DialogTopic> &dialog,
decrypt_text(buffer, newlen);
buffer[newlen] = 0;
old_speech_lines.push_back(buffer);
- i++;
+ //i++;
}
}
}
Commit: 24b9095914d9e831a14e1d2315c4902ca22da2ce
https://github.com/scummvm/scummvm/commit/24b9095914d9e831a14e1d2315c4902ca22da2ce
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-06-30T22:23:14+02:00
Commit Message:
AGS: Fix bitwise operations
Changed paths:
engines/ags/engine/ac/game.cpp
engines/ags/engine/ac/global_object.cpp
engines/ags/engine/ac/route_finder_impl_legacy.cpp
diff --git a/engines/ags/engine/ac/game.cpp b/engines/ags/engine/ac/game.cpp
index f1a35338c9b..12e7b5fb37a 100644
--- a/engines/ags/engine/ac/game.cpp
+++ b/engines/ags/engine/ac/game.cpp
@@ -1262,7 +1262,7 @@ void replace_tokens(const char *srcmes, char *destm, int maxlen) {
while (srcmes[indxsrc] != 0) {
srcp = &srcmes[indxsrc];
destp = &destm[indxdest];
- if ((strncmp(srcp, "@IN", 3) == 0) | (strncmp(srcp, "@GI", 3) == 0)) {
+ if ((strncmp(srcp, "@IN", 3) == 0) || (strncmp(srcp, "@GI", 3) == 0)) {
int tokentype = 0;
if (srcp[1] == 'I') tokentype = 1;
else tokentype = 2;
diff --git a/engines/ags/engine/ac/global_object.cpp b/engines/ags/engine/ac/global_object.cpp
index 91da813781e..bae7d3c8ad8 100644
--- a/engines/ags/engine/ac/global_object.cpp
+++ b/engines/ags/engine/ac/global_object.cpp
@@ -456,7 +456,7 @@ void RunObjectInteraction(int aa, int mood) {
}
int AreObjectsColliding(int obj1, int obj2) {
- if ((!is_valid_object(obj1)) | (!is_valid_object(obj2)))
+ if ((!is_valid_object(obj1)) || (!is_valid_object(obj2)))
quit("!AreObjectsColliding: invalid object specified");
return (AreThingsOverlapping(obj1 + OVERLAPPING_OBJECT, obj2 + OVERLAPPING_OBJECT)) ? 1 : 0;
diff --git a/engines/ags/engine/ac/route_finder_impl_legacy.cpp b/engines/ags/engine/ac/route_finder_impl_legacy.cpp
index 02348565d4f..bbd4ca54d96 100644
--- a/engines/ags/engine/ac/route_finder_impl_legacy.cpp
+++ b/engines/ags/engine/ac/route_finder_impl_legacy.cpp
@@ -318,7 +318,7 @@ try_again:
return 0;
}
- if (((nextx < 0) | (nextx >= _G(wallscreen)->GetWidth()) | (nexty < 0) | (nexty >= _G(wallscreen)->GetHeight())) ||
+ if (((nextx < 0) || (nextx >= _G(wallscreen)->GetWidth()) || (nexty < 0) || (nexty >= _G(wallscreen)->GetHeight())) ||
(_G(wallscreen)->GetPixel(nextx, nexty) == 0) || ((beenhere[srcy][srcx] & (1 << trydir)) != 0)) {
if (leftorright == 0) {
Commit: 8442128ede10d4097b31ff62d4ac26f0ac6d2b48
https://github.com/scummvm/scummvm/commit/8442128ede10d4097b31ff62d4ac26f0ac6d2b48
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:29:13+02:00
Commit Message:
AGS: Don't assign palette values if array is unallocated
Fixes a segfault in Last 'n' Furious
Changed paths:
engines/ags/shared/gfx/image.cpp
diff --git a/engines/ags/shared/gfx/image.cpp b/engines/ags/shared/gfx/image.cpp
index 35d4e381e4b..b61b505dcda 100644
--- a/engines/ags/shared/gfx/image.cpp
+++ b/engines/ags/shared/gfx/image.cpp
@@ -50,7 +50,7 @@ BITMAP *decodeImageStream(Common::SeekableReadStream &stream, color *pal) {
// Copy the palette
const byte *palP = decoder.getPalette();
- if (palP) {
+ if (palP && pal) {
for (int idx = 0; idx < 256; ++idx, palP += 3) {
pal[idx].r = palP[0];
pal[idx].g = palP[1];
Commit: 367111653ca94c58bf61b80948192570f72004eb
https://github.com/scummvm/scummvm/commit/367111653ca94c58bf61b80948192570f72004eb
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:32:41+02:00
Commit Message:
AGS: Add detection for a few recent games
>From itch.io / ags forums
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index db3030acf8f..fdc07488f53 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -417,6 +417,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "24hourgame", "The 24 Hour Game" },
{ "24hours", "24 Hours" },
{ "30minutes", "30 minutes" },
+ { "3dayspandora", "3 Days to Pandora" },
{ "3minfart", "3 Minutes a Fart" },
{ "3pigsandawolf", "Three Little Pigs and a Wolf" },
{ "46memorylane", "46 Memory Lane" },
@@ -683,6 +684,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "beasts", "Beasts" },
{ "beatthebuzzer", "Beat the Buzzer" },
{ "beautiesandbeasts", "Beauties and Beasts" },
+ { "beepboop", "Beep Boop" },
{ "beforethedarkcrystal", "Before the Dark Crystal" },
{ "beforethedarkcrystal2", "Before the Dark Crystal II" },
{ "beforeww2", "Before WW2" },
@@ -2156,6 +2158,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "nightmareframes", "Nightmare Frames" },
{ "nightoftheravingfeminist", "Night of the Raving Feminist" },
{ "nightofthetesticle", "Night of the Testicle" },
+ { "nightowl", "The Night Owl Murder" },
{ "nightwatch", "NightWatch (2008)" },
{ "nightwitch", "Night Witch" },
{ "nightwitches", "Night Witches: Women of the clouds" },
@@ -4207,6 +4210,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
// Free post-2.5 games that are likely supported by the AGS engine
DEMO_ENTRY_EN("24hourgame", "24 Hour Game.exe", "06a03fe35791b0578068ab1873455463", 2209262),
DEMO_ENTRY("3geeks", "3GEEKS_Demo.exe", "7ddb9e776648faed5a51170d087074e9", 512546851), // itch.io En-Fr
+ DEMO_ENTRY_EN("3dayspandora", "3_Days.ags", "654d58a2bc09c516f2ce69a1c2f88ae3", 1120924),
DEMO_ENTRY_EN("99species", "99Species.exe", "615e73fc1874e92d60a1996c2330ea36", 23870894),
DEMO_ENTRY_EN("aazor", "aazor.exe", "465f972675db2da6040518221af5b0ba", 4955082),
DEMO_ENTRY_EN("aazor", "aazor.exe", "465f972675db2da6040518221af5b0ba", 4956212),
@@ -5053,6 +5057,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("beatthebuzzer", "Beat the Buzzer.exe", "4d5d25446373d4df71c6bda77a15230a", 227179876), // v1.1 Post-Jam
GAME_ENTRY_EN_PLATFORM("beautiesandbeasts", "beautiesandbeasts.exe", "089fab88e6e1075a2f5b271f6f5b3c57", 6506966, "OROW"), //v1.00
GAME_ENTRY_EN("beautiesandbeasts", "beautiesandbeasts.exe", "089fab88e6e1075a2f5b271f6f5b3c57", 6507202), //v1.01
+ GAME_ENTRY_EN("beepboop", "Beep Boop.exe", "b781cc4ab0fbe647615fafa4830ec308", 5230657),
+ GAME_ENTRY_EN("beepboop", "Beep Boop.ags", "d0598090532ce80925e08c05424d8f6b", 2063917),
GAME_ENTRY("beforethedarkcrystal", "DarkCrystal.exe", "f120690b506dd63cd7d1112ea6af2f77", 15194282), // En-Fr
GAME_ENTRY("beforethedarkcrystal2", "Before the Dark Crystal II.exe", "23a67b6de10ec35e9f5a4dfc7d928222", 59569723), // En-Fr
GAME_ENTRY_EN("bellyofthebeast", "Belly of the beast.exe", "9f8a9d74c09f188af9af3e263f8b59bc", 22461502), // Windows
@@ -6802,6 +6808,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("nightandday", "Night and Day.exe", "430eaebb21d406061d67a9972ad33947", 17206287), //v1.1
GAME_ENTRY_EN("nightandday", "Night and Day.exe", "430eaebb21d406061d67a9972ad33947", 17209105), //v1.2
GAME_ENTRY_EN("nightofthetesticle", "testicle2.exe", "18b284c22010850f79bc5c20054a70c4", 145543486),
+ GAME_ENTRY_EN("nightowl", "LD51.exe", "dbe9bab672130b9a84925cb6da64a3db", 33871100),
+ GAME_ENTRY_EN("nightowl", "LD51.ags", "475ee6971bd15088ab7c4271ef6dccfd", 30762728),
GAME_ENTRY_EN("nightwatch", "NWATCH.exe", "089fab88e6e1075a2f5b271f6f5b3c57", 2451134),
GAME_ENTRY_EN("nightwitch", "NightWitch.exe", "9632da1faae3ef66d7ea9dd60cc19440", 28701275),
GAME_ENTRY_EN("nightwitch", "NightWitch.ags", "220d7fcf6fc747f1861265c338ff3fdd", 25658951),
Commit: 7f565be18e2806453505f53447ce1690253c0752
https://github.com/scummvm/scummvm/commit/7f565be18e2806453505f53447ce1690253c0752
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:32:57+02:00
Commit Message:
AGS: Disable loading from launcher for offtheclock
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index fdc07488f53..ffe2a859464 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -6863,9 +6863,9 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("odr3", "ODR3.exe", "af11e94f91b66e11450e8daf51d09292", 7637876),
GAME_ENTRY_EN("odr4", "ODR4.exe", "510be04e5eec2aa92bb78b060f138d64", 24227828),
GAME_ENTRY_EN("officeshenanigans", "OfficeShenanigans.exe", "25976a689b0f4d73eac69b1728377ecb", 6111931),
- GAME_ENTRY_EN("offtheclock", "Off The Clock.ags", "8918895c5c695bae90af13ea4f1a9807", 495345700), // Linux
- GAME_ENTRY_EN("offtheclock", "Off The Clock.exe", "b2eb107c1f9784b7fc4f58c2a7678dea", 498392456), // Windows
- GAME_ENTRY_EN("offtheclock", "ac2game.dat", "b2eb107c1f9784b7fc4f58c2a7678dea", 498257938), // Mac
+ DETECTION_ENTRY_GUIO("offtheclock", "Off The Clock.ags", "8918895c5c695bae90af13ea4f1a9807", 495345700, Common::EN_ANY, nullptr, GUIO2(GUIO_NOLANG, GUIO_NOLAUNCHLOAD), nullptr, ADGF_NO_FLAGS), // Linux
+ DETECTION_ENTRY_GUIO("offtheclock", "Off The Clock.exe", "b2eb107c1f9784b7fc4f58c2a7678dea", 498392456, Common::EN_ANY, nullptr, GUIO2(GUIO_NOLANG, GUIO_NOLAUNCHLOAD), nullptr, ADGF_NO_FLAGS), // Win
+ DETECTION_ENTRY_GUIO("offtheclock", "ac2game.dat", "b2eb107c1f9784b7fc4f58c2a7678dea", 498257938, Common::EN_ANY, nullptr, GUIO2(GUIO_NOLANG, GUIO_NOLAUNCHLOAD), nullptr, ADGF_NO_FLAGS), // Mac
GAME_ENTRY("ohdulieber", "Augustin.exe", "b142b43c146c25443a1d155d441a6a81", 13477896), // En-Fr-De
GAME_ENTRY_EN_PLATFORM("ohdulieber", "Augustin.exe", "b5c41e08919834b549ca350a28f18f87", 12576785, "MAGS"),
GAME_ENTRY_EN("ohitschristmas", "soi_c.exe", "0241777c2537fc5d077c05cde10bfa9f", 17522925),
Commit: bc99d940a6da59716cf8562331b7acf9e61a49c1
https://github.com/scummvm/scummvm/commit/bc99d940a6da59716cf8562331b7acf9e61a49c1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-06-30T22:33:25+02:00
Commit Message:
AGS: Added detection for Gobliiins5
Yet to figure out how to switch the gane to English
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index ffe2a859464..18ef264ddb6 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -303,6 +303,10 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "geminirue", "Gemini Rue" },
{ "ghostdream", "Ghostdream" },
{ "ghostman", "Ghostman: The Council Calamity" },
+ { "gobliiins5-1", "Gobliiins5 Part1/Demo" },
+ { "gobliiins5-2", "Gobliiins5 Part2" },
+ { "gobliiins5-3", "Gobliiins5 Part3" },
+ { "gobliiins5-4", "Gobliiins5 Part4" },
{ "goldenwake", "A Golden Wake" },
{ "graceward", "Graceward" },
{ "grandmabadass", "GrandMa Badass" },
@@ -3948,6 +3952,10 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY("geminirue", "ac2game.dat", "e8f1d07a6b363e9cc80dac5367f1b4ba", 72836785), // MacOS, Humble Bundle
GAME_ENTRY_EN_STEAM("ghostdream", "ghostdream.exe", "05594881531d62e4575545f3c8fd2576", 480856325),
GAME_ENTRY_EN_STEAM("ghostman", "Rebut And Ghostman.exe", "0241777c2537fc5d077c05cde10bfa9f", 10312749),
+ GAME_ENTRY_LANG("gobliiins5-1", "Gobliiins5-Part1.exe", "t:684f59952b168c26b45556d1560bb590", 174840675, Common::FR_FRA),
+ GAME_ENTRY_LANG("gobliiins5-2", "Gobliiins5-Part2.exe", "t:5f753c3b1df583397cf016d3bcf4bf64", 144263518, Common::FR_FRA),
+ GAME_ENTRY_LANG("gobliiins5-3", "Gobliiins5-Part3.exe", "t:a6d99497f108311308e812b5ba904d95", 176338687, Common::FR_FRA),
+ GAME_ENTRY_LANG("gobliiins5-4", "Gobliiins5-Part4.exe", "t:1f2401479d4104539d54a4d11a713044", 352399933, Common::FR_FRA),
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "dbe281d93c914899886e77c09c3c65ec", 130844360), // Linux & Mac
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "e7080df9729aae2a0097b752198f3cca", 130846774),
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "409b71f7b73f30bef5098c6449505c1a", 130929070), // Windows
Commit: 326542d85a1077acf9c9bf7ef303a467debbd279
https://github.com/scummvm/scummvm/commit/326542d85a1077acf9c9bf7ef303a467debbd279
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2023-06-30T22:33:39+02:00
Commit Message:
AGS: Use full name for Gobliiins5 detection and do not detected as French
The game is multi-lingual (it currently includes French and English and
other languages are planned).
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 18ef264ddb6..4b5d832764a 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -303,10 +303,10 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "geminirue", "Gemini Rue" },
{ "ghostdream", "Ghostdream" },
{ "ghostman", "Ghostman: The Council Calamity" },
- { "gobliiins5-1", "Gobliiins5 Part1/Demo" },
- { "gobliiins5-2", "Gobliiins5 Part2" },
- { "gobliiins5-3", "Gobliiins5 Part3" },
- { "gobliiins5-4", "Gobliiins5 Part4" },
+ { "gobliiins5-1", "Gobliiins5 - L'Invasion des Morglotons Part1/Demo" },
+ { "gobliiins5-2", "Gobliiins5 - L'Invasion des Morglotons Part2" },
+ { "gobliiins5-3", "Gobliiins5 - L'Invasion des Morglotons Part3" },
+ { "gobliiins5-4", "Gobliiins5 - L'Invasion des Morglotons Part4" },
{ "goldenwake", "A Golden Wake" },
{ "graceward", "Graceward" },
{ "grandmabadass", "GrandMa Badass" },
@@ -3952,10 +3952,10 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY("geminirue", "ac2game.dat", "e8f1d07a6b363e9cc80dac5367f1b4ba", 72836785), // MacOS, Humble Bundle
GAME_ENTRY_EN_STEAM("ghostdream", "ghostdream.exe", "05594881531d62e4575545f3c8fd2576", 480856325),
GAME_ENTRY_EN_STEAM("ghostman", "Rebut And Ghostman.exe", "0241777c2537fc5d077c05cde10bfa9f", 10312749),
- GAME_ENTRY_LANG("gobliiins5-1", "Gobliiins5-Part1.exe", "t:684f59952b168c26b45556d1560bb590", 174840675, Common::FR_FRA),
- GAME_ENTRY_LANG("gobliiins5-2", "Gobliiins5-Part2.exe", "t:5f753c3b1df583397cf016d3bcf4bf64", 144263518, Common::FR_FRA),
- GAME_ENTRY_LANG("gobliiins5-3", "Gobliiins5-Part3.exe", "t:a6d99497f108311308e812b5ba904d95", 176338687, Common::FR_FRA),
- GAME_ENTRY_LANG("gobliiins5-4", "Gobliiins5-Part4.exe", "t:1f2401479d4104539d54a4d11a713044", 352399933, Common::FR_FRA),
+ GAME_ENTRY("gobliiins5-1", "Gobliiins5-Part1.exe", "t:684f59952b168c26b45556d1560bb590", 174840675),
+ GAME_ENTRY("gobliiins5-2", "Gobliiins5-Part2.exe", "t:5f753c3b1df583397cf016d3bcf4bf64", 144263518),
+ GAME_ENTRY("gobliiins5-3", "Gobliiins5-Part3.exe", "t:a6d99497f108311308e812b5ba904d95", 176338687),
+ GAME_ENTRY("gobliiins5-4", "Gobliiins5-Part4.exe", "t:1f2401479d4104539d54a4d11a713044", 352399933),
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "dbe281d93c914899886e77c09c3c65ec", 130844360), // Linux & Mac
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "e7080df9729aae2a0097b752198f3cca", 130846774),
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "409b71f7b73f30bef5098c6449505c1a", 130929070), // Windows
Commit: cd297bf9e9604105094102d866e375eb5615f50a
https://github.com/scummvm/scummvm/commit/cd297bf9e9604105094102d866e375eb5615f50a
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:33:49+02:00
Commit Message:
AGS: Add a couple new detection entries
>From Steam/itch.io
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 4b5d832764a..7c07128d7c8 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3265,6 +3265,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "winnersdontdodrugs", "Winners Don't Do Drugs" },
{ "winterrose", "The Winter Rose" },
{ "wisp", "Wisp" },
+ { "witchcuisine", "How to: Witchcraft Cuisine" },
{ "witchlullaby", "The Witch's Lullaby" },
{ "witchnight", "Witch Night" },
{ "witchron", "Witch!" },
@@ -4528,6 +4529,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("morphine", "Morphine.exe", "0a04523bb2e6fe2b4eb8eee70217ac16", 113435250),
DEMO_ENTRY("murdercases", "Murder Cases Demo.exe", "e01f39b38593e3f871a803908daa20e7", 431399292),
DEMO_ENTRY("murdercases", "Murder Cases Demo.exe", "e01f39b38593e3f871a803908daa20e7", 431401071),
+ DEMO_ENTRY("murdercases", "Murder Cases Demo.exe", "e01f39b38593e3f871a803908daa20e7", 669629768),
DEMO_ENTRY_EN("murderinminnesota", "Game.exe", "495d45fb8adfd49690ae3b97921feec6", 14820679), //v1 Windows
DEMO_ENTRY_EN("murderinminnesota", "Game.ags", "b4ed9f317081139a925d1b3a0260c1ad", 12340023), //v1 Linux
DEMO_ENTRY_EN("murderinminnesota", "Game.exe", "495d45fb8adfd49690ae3b97921feec6", 15258174), //v2 Windows
@@ -8158,6 +8160,9 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("winterrose", "Winter Rose.exe", "0500aacb6c176d47ac0f8158f055db83", 37443633), //v1.2
GAME_ENTRY_EN("winterrose", "Winter Rose.exe", "0500aacb6c176d47ac0f8158f055db83", 37444693), //v1.3
GAME_ENTRY_EN("wisp", "Wisp.exe", "9cb3c8dc7a8ab9c44815955696be2677", 2090032),
+ GAME_ENTRY("witchcuisine", "Witchcraft Cuisine.exe", "b781cc4ab0fbe647615fafa4830ec308", 29708682), // Win Eng-Ita
+ GAME_ENTRY("witchcuisine", "Witchcraft Cuisine.ags", "e21087d20f4671e9082ba9d0063e450a", 26541942), // Linux
+ GAME_ENTRY("witchcuisine", "games.ags", "90fe5cdf64cc46965c2e3d5c53af193a", 46076827), // Mac
GAME_ENTRY_EN("witchlullaby", "The Witch's Lullaby.exe", "ca511538e3e3244813db0f905a31810a", 70312050), // v1.1
GAME_ENTRY_EN("witchlullaby", "The Witch's Lullaby.ags", "3e89d1cade6b23ae330390a2924882f0", 59534130), // v1.2
GAME_ENTRY_EN("witchnight", "wnight.exe", "9cf51833e787cc919837d9a8bd8fc14c", 2792150),
Commit: ed59f58a7d34c4a6d7308124ee3bce259ab1ec41
https://github.com/scummvm/scummvm/commit/ed59f58a7d34c4a6d7308124ee3bce259ab1ec41
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-06-30T22:34:15+02:00
Commit Message:
AGS: Added detection for the bugfixed gob5
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 7c07128d7c8..e98eef0d216 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3953,10 +3953,17 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY("geminirue", "ac2game.dat", "e8f1d07a6b363e9cc80dac5367f1b4ba", 72836785), // MacOS, Humble Bundle
GAME_ENTRY_EN_STEAM("ghostdream", "ghostdream.exe", "05594881531d62e4575545f3c8fd2576", 480856325),
GAME_ENTRY_EN_STEAM("ghostman", "Rebut And Ghostman.exe", "0241777c2537fc5d077c05cde10bfa9f", 10312749),
+ // Original release 2023-08-02
GAME_ENTRY("gobliiins5-1", "Gobliiins5-Part1.exe", "t:684f59952b168c26b45556d1560bb590", 174840675),
GAME_ENTRY("gobliiins5-2", "Gobliiins5-Part2.exe", "t:5f753c3b1df583397cf016d3bcf4bf64", 144263518),
GAME_ENTRY("gobliiins5-3", "Gobliiins5-Part3.exe", "t:a6d99497f108311308e812b5ba904d95", 176338687),
GAME_ENTRY("gobliiins5-4", "Gobliiins5-Part4.exe", "t:1f2401479d4104539d54a4d11a713044", 352399933),
+ // Bugfix release 2023-05-08
+ GAME_ENTRY("gobliiins5-1", "Gobliiins5-Part1.exe", "t:684f59952b168c26b45556d1560bb590", 174840596),
+ GAME_ENTRY("gobliiins5-2", "Gobliiins5-Part2.exe", "t:5f753c3b1df583397cf016d3bcf4bf64", 144263538),
+ GAME_ENTRY("gobliiins5-3", "Gobliiins5-Part3.exe", "t:a6d99497f108311308e812b5ba904d95", 176341869),
+ GAME_ENTRY("gobliiins5-4", "Gobliiins5-Part4.exe", "t:1f2401479d4104539d54a4d11a713044", 352414577),
+
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "dbe281d93c914899886e77c09c3c65ec", 130844360), // Linux & Mac
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "e7080df9729aae2a0097b752198f3cca", 130846774),
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "409b71f7b73f30bef5098c6449505c1a", 130929070), // Windows
Commit: 0aa02cd1855ef19f693c39a1e802bf229b662a12
https://github.com/scummvm/scummvm/commit/0aa02cd1855ef19f693c39a1e802bf229b662a12
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-06-30T22:41:07+02:00
Commit Message:
AGS: Added more debug output
Changed paths:
engines/ags/engine/ac/character.cpp
diff --git a/engines/ags/engine/ac/character.cpp b/engines/ags/engine/ac/character.cpp
index bfd6794fc05..1f737c7294f 100644
--- a/engines/ags/engine/ac/character.cpp
+++ b/engines/ags/engine/ac/character.cpp
@@ -165,11 +165,11 @@ void Character_AnimateEx(CharacterInfo *chaa, int loop, int delay, int repeat,
blocking = 0;
if ((repeat < 0) || (repeat > 1))
- quit("!Character.Animate: invalid repeat value");
+ quitprintf("!Character.Animate: invalid repeat value (%d)", repeat);
if ((blocking < 0) || (blocking > 1))
- quit("!Character.Animate: invalid blocking value");
+ quitprintf("!Character.Animate: invalid blocking value (%d)", blocking);
if ((direction < 0) || (direction > 1))
- quit("!Character.Animate: invalid direction");
+ quitprintf("!Character.Animate: invalid direction (%d)", direction);
animate_character(chaa, loop, delay, repeat, 0, direction, sframe, volume);
Commit: 12dfc13175fd922f95546653c2d7628979c75d10
https://github.com/scummvm/scummvm/commit/12dfc13175fd922f95546653c2d7628979c75d10
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:41:21+02:00
Commit Message:
AGS: Engine: picked out basic Animate params check and warn instead of quit
This avoids the Gobliiins5 errors.
>From upstream ecb4ae13031c32c2793d1d6a2b2af9f2af7bd911
Changed paths:
engines/ags/engine/ac/button.cpp
engines/ags/engine/ac/character.cpp
engines/ags/engine/ac/global_object.cpp
engines/ags/engine/ac/object.cpp
engines/ags/engine/ac/object.h
diff --git a/engines/ags/engine/ac/button.cpp b/engines/ags/engine/ac/button.cpp
index 3574bcee9f9..36389fed62c 100644
--- a/engines/ags/engine/ac/button.cpp
+++ b/engines/ags/engine/ac/button.cpp
@@ -60,15 +60,6 @@ void Button_AnimateEx(GUIButton *butt, int view, int loop, int speed,
int guin = butt->ParentId;
int objn = butt->Id;
- if (direction == FORWARDS)
- direction = 0;
- else if (direction == BACKWARDS)
- direction = 1;
- if (blocking == BLOCKING)
- blocking = 1;
- else if (blocking == IN_BACKGROUND)
- blocking = 0;
-
if ((view < 1) || (view > _GP(game).numviews))
quit("!AnimateButton: invalid view specified");
view--;
@@ -76,12 +67,8 @@ void Button_AnimateEx(GUIButton *butt, int view, int loop, int speed,
quit("!AnimateButton: invalid loop specified for view");
if (sframe < 0 || sframe >= _GP(views)[view].loops[loop].numFrames)
quit("!AnimateButton: invalid starting frame number specified");
- if ((repeat < 0) || (repeat > 1))
- quit("!AnimateButton: invalid repeat value");
- if ((blocking < 0) || (blocking > 1))
- quit("!AnimateButton: invalid blocking value");
- if ((direction < 0) || (direction > 1))
- quit("!AnimateButton: invalid direction");
+
+ ValidateViewAnimParams("Button.Animate", repeat, blocking, direction);
volume = Math::Clamp(volume, 0, 100);
diff --git a/engines/ags/engine/ac/character.cpp b/engines/ags/engine/ac/character.cpp
index 1f737c7294f..60dd1915d9d 100644
--- a/engines/ags/engine/ac/character.cpp
+++ b/engines/ags/engine/ac/character.cpp
@@ -155,21 +155,8 @@ void Character_AddWaypoint(CharacterInfo *chaa, int x, int y) {
void Character_AnimateEx(CharacterInfo *chaa, int loop, int delay, int repeat,
int blocking, int direction, int sframe, int volume = 100) {
- if (direction == FORWARDS)
- direction = 0;
- else if (direction == BACKWARDS)
- direction = 1;
- if (blocking == BLOCKING)
- blocking = 1;
- else if (blocking == IN_BACKGROUND)
- blocking = 0;
-
- if ((repeat < 0) || (repeat > 1))
- quitprintf("!Character.Animate: invalid repeat value (%d)", repeat);
- if ((blocking < 0) || (blocking > 1))
- quitprintf("!Character.Animate: invalid blocking value (%d)", blocking);
- if ((direction < 0) || (direction > 1))
- quitprintf("!Character.Animate: invalid direction (%d)", direction);
+
+ ValidateViewAnimParams("Character.Animate", repeat, blocking, direction);
animate_character(chaa, loop, delay, repeat, 0, direction, sframe, volume);
diff --git a/engines/ags/engine/ac/global_object.cpp b/engines/ags/engine/ac/global_object.cpp
index bae7d3c8ad8..36cbb883cd8 100644
--- a/engines/ags/engine/ac/global_object.cpp
+++ b/engines/ags/engine/ac/global_object.cpp
@@ -221,14 +221,15 @@ void AnimateObjectImpl(int obn, int loopn, int spdd, int rept, int direction, in
quit("!AnimateObject: object has not been assigned a view");
if (loopn < 0 || loopn >= _GP(views)[_G(objs)[obn].view].numLoops)
quit("!AnimateObject: invalid loop number specified");
+ if (_GP(views)[_G(objs)[obn].view].loops[loopn].numFrames < 1)
+ quit("!AnimateObject: no frames in the specified view loop");
if (sframe < 0 || sframe >= _GP(views)[_G(objs)[obn].view].loops[loopn].numFrames)
quit("!AnimateObject: invalid starting frame number specified");
+
if ((direction < 0) || (direction > 1))
quit("!AnimateObjectEx: invalid direction");
- if ((rept < 0) || (rept > 2))
+ if (((rept + 1) < ANIM_ONCE) || ((rept + 1) > ANIM_ONCERESET)) // will convert to 1-based repeat below
quit("!AnimateObjectEx: invalid repeat value");
- if (_GP(views)[_G(objs)[obn].view].loops[loopn].numFrames < 1)
- quit("!AnimateObject: no frames in the specified view loop");
// reverse animation starts at the *previous frame*
if (direction) {
diff --git a/engines/ags/engine/ac/object.cpp b/engines/ags/engine/ac/object.cpp
index 00a3a18a10b..c3d52943c5a 100644
--- a/engines/ags/engine/ac/object.cpp
+++ b/engines/ags/engine/ac/object.cpp
@@ -122,21 +122,8 @@ int Object_GetBaseline(ScriptObject *objj) {
void Object_AnimateEx(ScriptObject *objj, int loop, int delay, int repeat,
int blocking, int direction, int sframe, int volume = 100) {
- if (direction == FORWARDS)
- direction = 0;
- else if (direction == BACKWARDS)
- direction = 1;
- if (blocking == BLOCKING)
- blocking = 1;
- else if (blocking == IN_BACKGROUND)
- blocking = 0;
- if ((repeat < 0) || (repeat > 1))
- quit("!Object.Animate: invalid repeat value");
- if ((blocking < 0) || (blocking > 1))
- quit("!Object.Animate: invalid blocking value");
- if ((direction < 0) || (direction > 1))
- quit("!Object.Animate: invalid direction");
+ ValidateViewAnimParams("Object.Animate", repeat, blocking, direction);
AnimateObjectImpl(objj->id, loop, delay, repeat, direction, blocking, sframe, volume);
}
@@ -555,6 +542,31 @@ int check_click_on_object(int roomx, int roomy, int mood) {
return 1;
}
+void ValidateViewAnimParams(const char *apiname, int &repeat, int &blocking, int &direction) {
+ if (blocking == BLOCKING)
+ blocking = 1;
+ else if (blocking == IN_BACKGROUND)
+ blocking = 0;
+
+ if (direction == FORWARDS)
+ direction = 0;
+ else if (direction == BACKWARDS)
+ direction = 1;
+
+ if ((repeat < 0) || (repeat > 1)) {
+ debug_script_warn("%s: invalid repeat value %d, will treat as REPEAT (1).", apiname, repeat);
+ repeat = 1;
+ }
+ if ((blocking < 0) || (blocking > 1)) {
+ debug_script_warn("%s: invalid blocking value %d, will treat as BLOCKING (1)", apiname, blocking);
+ blocking = 1;
+ }
+ if ((direction < 0) || (direction > 1)) {
+ debug_script_warn("%s: invalid direction value %d, will treat as BACKWARDS (1)", apiname, direction);
+ direction = 1;
+ }
+}
+
// General view animation algorithm: find next loop and frame, depending on anim settings
bool CycleViewAnim(int view, uint16_t &o_loop, uint16_t &o_frame, bool forwards, int repeat) {
// Allow multi-loop repeat: idk why, but original engine behavior
diff --git a/engines/ags/engine/ac/object.h b/engines/ags/engine/ac/object.h
index 28fe1c010e6..410709b37a9 100644
--- a/engines/ags/engine/ac/object.h
+++ b/engines/ags/engine/ac/object.h
@@ -102,6 +102,10 @@ int is_pos_in_sprite(int xx, int yy, int arx, int ary, Shared::Bitmap *sprit
// X and Y co-ordinates must be in native format
// X and Y are ROOM coordinates
int check_click_on_object(int roomx, int roomy, int mood);
+// TODO: pick out some kind of "animation" struct
+// Tests if the standard animate parameters are in valid range, if not then clamps them and
+// reports a script warning.
+void ValidateViewAnimParams(const char *apiname, int &repeat, int &blocking, int &direction);
// General view animation algorithm: find next loop and frame, depending on anim settings;
// loop and frame values are passed by reference and will be updated;
// returns whether the animation should continue.
Commit: f14750aa67fd379edcac4a80655a117e3fa6679a
https://github.com/scummvm/scummvm/commit/f14750aa67fd379edcac4a80655a117e3fa6679a
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:42:19+02:00
Commit Message:
AGS: Small workaround for transparent purple texts
Prevent purple texts from turning transparent in some games (such as
Billy Masters, A Fragment of Her, Hutton Grammar School)
Changed paths:
engines/ags/shared/font/fonts.cpp
diff --git a/engines/ags/shared/font/fonts.cpp b/engines/ags/shared/font/fonts.cpp
index c8977b6c0f1..3bd5a684e2d 100644
--- a/engines/ags/shared/font/fonts.cpp
+++ b/engines/ags/shared/font/fonts.cpp
@@ -421,6 +421,13 @@ void wouttextxy(Shared::Bitmap *ds, int xxx, int yyy, size_t fontNumber, color_t
return; // each char is clipped but this speeds it up
if (_GP(fonts)[fontNumber].Renderer != nullptr) {
+ if (text_color == makeacol32(255, 0, 255, 255)) { // transparent color (magenta)
+ // WORKAROUND: Some Allegro routines are not implemented and alfont treats some magenta texts as invisible
+ // even if the alpha channel is fully opaque
+ // Slightly change the value if the game uses that color for fonts, so that they don't turn invisible
+ debug(0, "Overriding transparent text color!");
+ text_color--;
+ }
_GP(fonts)[fontNumber].Renderer->RenderText(texx, fontNumber, (BITMAP *)ds->GetAllegroBitmap(), xxx, yyy, text_color);
}
}
Commit: 2e426fdf4ddd14524feb9d2f59226f019ea178f5
https://github.com/scummvm/scummvm/commit/2e426fdf4ddd14524feb9d2f59226f019ea178f5
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:42:27+02:00
Commit Message:
AGS: Add a couple new games
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index e98eef0d216..ce5e0958c26 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -1068,6 +1068,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "disquiet", "Disquiet" },
{ "distancenoobject", "Distance no object" },
{ "djdeceased", "D. Jones: Deceased" },
+ { "dobutsu", "Dobutsu no Costco" },
{ "doctormaze", "The Amazing Doctor Maze" },
{ "doctormuttonchop", "Doctor Muttonchop" },
{ "doctorwho", "Doctor Who: Time Snare" },
@@ -4234,6 +4235,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY_EN("aboardtheadventure", "Aboard.exe", "3c3f8f6c6fdcc519464477d3627b60f6", 125813308),
DEMO_ENTRY_EN("abscission", "Abscission.exe", "418a9aaa044bfc5b7a79ba96fe679b60", 54341372), // v1.0.3
DEMO_ENTRY_EN("abscission", "Abscission Demo.exe", "418a9aaa044bfc5b7a79ba96fe679b60", 311033029), // Steam
+ DEMO_ENTRY_EN("abscission", "Abscission Demo.exe", "7633f0919378749cebf6dacba61ca0e1", 313386788), // Steam
DEMO_ENTRY_EN("absurdistan", "Absurdistan - Demo.exe", "4588012d3077d6b6791fce8cd4b15885", 35712363), // v1.3
DEMO_ENTRY_EN("acaixa", "A caixa.exe", "f434ba41ed68ef8d5224254027aad1f4", 48866212),
DEMO_ENTRY_EN("acuriouspastime", "Curious.exe", "3e46b32a00fd4e6b9f68754f854695c5", 27346489),
@@ -5541,6 +5543,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("distancenoobject", "Distance no object.exe", "5cca0f8af961d2bc1c6e475437d3b23b", 98011325), // Windows
GAME_ENTRY_EN("distancenoobject", "Distance no object.ags", "60b1978b591c4ffcb63e81e69d425343", 94977705), // Linux
GAME_ENTRY_EN("djdeceased", "RON.exe", "0710e2ec71042617f565c01824f0cf3c", 1175250),
+ GAME_ENTRY_EN("dobutsu", "Dobutsu no Costco.exe", "b781cc4ab0fbe647615fafa4830ec308", 29725433),
GAME_ENTRY_EN("doctormaze", "Maze.exe", "825ccacaabe2a3b0cd48d6f8deb42d72", 43934617),
GAME_ENTRY_EN("doctormuttonchop", "muttonchop.exe", "57e261dd3bb45761af4a002775e45710", 5781714),
GAME_ENTRY_EN("doctormuttonchop", "muttonchop.exe", "57e261dd3bb45761af4a002775e45710", 5847364),
@@ -5628,8 +5631,10 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("elegantmurdermystery", "DH.exe", "0b7529a76f38283d6e850b8d56526fc1", 2098899),
GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.ags", "bf06b9759714464c095e1c1e597f1e86", 4362276, "Beta"), // Linux
GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.ags", "3063ec0d8db8305d1dc61d7862650f11", 4363999, "Beta"),
+ GAME_ENTRY_EN("elevation", "Elevation.ags", "46d792c62262d9f83e476f96a4bfb74b", 4490040),
GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.exe", "2f2bc0b9c539d20529c0e343315d5f65", 7471160, "Beta"), // Windows
GAME_ENTRY_EN_PLATFORM("elevation", "Elevation.exe", "2f2bc0b9c539d20529c0e343315d5f65", 7472883, "Beta"),
+ GAME_ENTRY_EN("elevation", "Elevation.exe", "82e7377dcb9236fc9b622e12baa64a49", 7605580),
GAME_ENTRY_EN("elevator", "Elevator.exe", "f10516e88ec858700804ee69d041aead", 29506915),
GAME_ENTRY_EN("elevatorriseabyss", "T_E_R.exe", "f120690b506dd63cd7d1112ea6af2f77", 13366126),
GAME_ENTRY_LANG("elfer", "socer.exe", "e88fd6a23a5e498d7b0d50e3bb914085", 1911767, Common::DE_DEU),
Commit: bb33a8fcf47a3261a07a54698d070b4c1bb67bb0
https://github.com/scummvm/scummvm/commit/bb33a8fcf47a3261a07a54698d070b4c1bb67bb0
Author: Thierry Crozat (criezy at scummvm.org)
Date: 2023-06-30T22:47:51+02:00
Commit Message:
AGS: Fix regression with translation setting change not saved
When the setting is changed in game (for example in the Options
dialog in Kathy Rain) that change used to be saved in the ScummVM
config file, but this got lost during one of the synchronisation
with upstream code. This commit adds that code back.
Changed paths:
engines/ags/engine/main/config.cpp
diff --git a/engines/ags/engine/main/config.cpp b/engines/ags/engine/main/config.cpp
index a9c2a3ad354..3b0b3e7300f 100644
--- a/engines/ags/engine/main/config.cpp
+++ b/engines/ags/engine/main/config.cpp
@@ -391,7 +391,16 @@ void post_config() {
}
void save_config_file() {
- // ScummVM doesn't write out any configuration changes
+ // Translation / localization
+ if (!_GP(usetup).translation.IsEmpty()) {
+ ConfMan.getActiveDomain()->setVal("translation", _GP(usetup).translation.GetCStr());
+ ConfMan.flushToDisk();
+ } else if (ConfMan.getActiveDomain()->contains("translation")) {
+ ConfMan.getActiveDomain()->erase("translation");
+ ConfMan.flushToDisk();
+ }
+
+ // ScummVM doesn't write out other configuration changes
}
} // namespace AGS3
Commit: 3ede158e7365f192b966552fdeace827faa49b1d
https://github.com/scummvm/scummvm/commit/3ede158e7365f192b966552fdeace827faa49b1d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-06-30T22:48:02+02:00
Commit Message:
AGS: Added updated version of gob5
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index ce5e0958c26..b1d9cf54a7a 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3964,6 +3964,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY("gobliiins5-2", "Gobliiins5-Part2.exe", "t:5f753c3b1df583397cf016d3bcf4bf64", 144263538),
GAME_ENTRY("gobliiins5-3", "Gobliiins5-Part3.exe", "t:a6d99497f108311308e812b5ba904d95", 176341869),
GAME_ENTRY("gobliiins5-4", "Gobliiins5-Part4.exe", "t:1f2401479d4104539d54a4d11a713044", 352414577),
+ // Bugfix release 2023-05-14
+ GAME_ENTRY("gobliiins5-3", "Gobliiins5-Part3.exe", "t:a6d99497f108311308e812b5ba904d95", 176342992),
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "dbe281d93c914899886e77c09c3c65ec", 130844360), // Linux & Mac
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "e7080df9729aae2a0097b752198f3cca", 130846774),
Commit: 0be6f263f46ca57932d83e8b0de0677531328a4a
https://github.com/scummvm/scummvm/commit/0be6f263f46ca57932d83e8b0de0677531328a4a
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:48:55+02:00
Commit Message:
AGS: Engine: fixed wrong mask upscale for low-res rooms in hi-res game
Instead of "physically" resizing masks we should adjust MaskResolution factor, used when converting coordinates.
This also relates to the situations when the low-res game is run in "upscale" mode (e.g. 320x200 -> 640x400).
This fixes lowered walking speed (#2004).
This is a (hopefully) proper alternative to an older fix 900f47b , and 60d79d1 (see #1383).
>From upstream 1b4117a6d2bc9e5a70739d7d73ab77e616320fdb
Changed paths:
engines/ags/engine/ac/room.cpp
diff --git a/engines/ags/engine/ac/room.cpp b/engines/ags/engine/ac/room.cpp
index 2af5e39bd32..8a70359da49 100644
--- a/engines/ags/engine/ac/room.cpp
+++ b/engines/ags/engine/ac/room.cpp
@@ -188,9 +188,8 @@ void convert_room_background_to_game_res() {
if (!_GP(game).AllowRelativeRes() || !_GP(thisroom).IsRelativeRes())
return;
- int bkg_width = _GP(thisroom).Width;
- int bkg_height = _GP(thisroom).Height;
- data_to_game_coords(&bkg_width, &bkg_height);
+ const int bkg_width = data_to_game_coord(_GP(thisroom).Width);
+ const int bkg_height = data_to_game_coord(_GP(thisroom).Height);
for (size_t i = 0; i < _GP(thisroom).BgFrameCount; ++i)
_GP(thisroom).BgFrames[i].Graphic = FixBitmap(_GP(thisroom).BgFrames[i].Graphic, bkg_width, bkg_height);
@@ -198,19 +197,11 @@ void convert_room_background_to_game_res() {
// Fix masks to match resized room background
// Walk-behind is always 1:1 with room background size
_GP(thisroom).WalkBehindMask = FixBitmap(_GP(thisroom).WalkBehindMask, bkg_width, bkg_height);
- int mask_width = bkg_width / _GP(thisroom).MaskResolution;
- int mask_height = bkg_height / _GP(thisroom).MaskResolution;
- _GP(thisroom).HotspotMask = FixBitmap(_GP(thisroom).HotspotMask, mask_width, mask_height);
- _GP(thisroom).RegionMask = FixBitmap(_GP(thisroom).RegionMask, mask_width, mask_height);
- _GP(thisroom).WalkAreaMask = FixBitmap(_GP(thisroom).WalkAreaMask, mask_width, mask_height);
-
- for (size_t i = 0; i < _GP(thisroom).WalkAreaCount; ++i) {
- _GP(thisroom).WalkAreas[i].Top = room_to_mask_coord(_GP(thisroom).WalkAreas[i].Top);
- _GP(thisroom).WalkAreas[i].Bottom = room_to_mask_coord(_GP(thisroom).WalkAreas[i].Bottom);
- }
+ // For the rest we keep the masks at original res, but update the MaskResolution,
+ // as it must correspond to the runtime data->game coordinate conversion
+ _GP(thisroom).MaskResolution = data_to_game_coord(_GP(thisroom).MaskResolution);
}
-
void save_room_data_segment() {
_G(croom)->FreeScriptData();
Commit: 92a6e74066a01e210d752626963f61b877a17f68
https://github.com/scummvm/scummvm/commit/92a6e74066a01e210d752626963f61b877a17f68
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:49:05+02:00
Commit Message:
AGS: Add detection entries for two commercial games
Detective Boiled-Hard Case 1
The Castle (new version)
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index b1d9cf54a7a..08d1bd69578 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -289,6 +289,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "crimsondiamond","The Crimson Diamond" },
{ "crystalshardadventurebundle", "Crystal Shard Adventure Bundle" },
{ "danewguys2", "Da New Guys: Day of the Jackass" },
+ { "detectivebhdino", "Detective Boiled-Hard - Case File: Death of the Space Dino Hunter" },
{ "detectivegallo", "Detective Gallo" },
{ "diamondsintherough", "Diamonds in the Rough" },
{ "docapocalypse", "Doc Apocalypse" },
@@ -1046,7 +1047,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "desertminer", "Desert Miner" },
{ "desmond", "Desmond: The 'Thing' from another world!" },
{ "desolate", "Desolate" },
- { "detectivebhmini", "Detective Boiled Hard Mini Case" },
+ { "detectivebhmini", "Detective Boiled-Hard Mini Case" },
{ "detectiveobriced", "Detective O.Briced" },
{ "detectiverizal", "Detective Rizal and the Jaded Ruby" },
{ "detention", "Detention!" },
@@ -3901,6 +3902,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("cosmosquest3", "cq3.exe", "18b284c22010850f79bc5c20054a70c4", 8674790),
GAME_ENTRY_STEAM("crystalshardadventurebundle", "bundle.exe", "1c45d5c239d9eeef61e283983b6e6851", 4645713), // Multilang
GAME_ENTRY_EN("danewguys2", "jackass.exe", "029aab0fef5e9fff7b95ddf5d79d7718", 23932842), // Humble Store
+ GAME_ENTRY_EN_STEAM("detectivebhdino", "Detective Boiled-Hard Case File - Death of the Space Dino Hunter.exe", "4d5d25446373d4df71c6bda77a15230a", 49618396),
GAME_ENTRY_STEAM("detectivegallo", "dgbuild.exe", "2e0678b5642c64e057022a79742743fb", 90740554), // Multilang
GAME_ENTRY_GOG("detectivegallo", "dgbuild.exe", "2e0678b5642c64e057022a79742743fb", 90740772),
GAME_ENTRY("detectivegallo", "dgbuild.exe", "2e0678b5642c64e057022a79742743fb", 90713626), // Big Box Limited Edition DVD
@@ -4154,6 +4156,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("theantidote", "The Antidote.exe", "4017d881af6467d6aad9183e6e38a261", 325819947),
GAME_ENTRY_EN_STEAM("thebeardinthemirror", "the beard in the mirror.exe", "4d4b6d6e560cf32f440c39f8d3896da5", 40637501),
GAME_ENTRY_STEAM("thecastle", "maniac.exe", "3b96c2143d927f005715be73344e456c", 22362337), // En-Es-It
+ GAME_ENTRY_STEAM("thecastle", "maniac.exe", "f39cba038b386d28fbcf869556c090c1", 23317965), // En-De-Es-It
GAME_ENTRY_GOG("thecatlady", "thecatlady.exe", "0ea2b985dc5d7d27cb7c1b7da5eedea0", 1072316702), // Multilang
GAME_ENTRY_STEAM("thecatlady", "thecatlady.exe", "0ea2b985dc5d7d27cb7c1b7da5eedea0", 53988582),
GAME_ENTRY("thecatlady", "Cat Lady.exe", "92320e20e3d4c70a94d89e2f797e65c1", 1061000756), // DVD
Commit: 2776696ad11bd58118eee4644e290db3eda56acd
https://github.com/scummvm/scummvm/commit/2776696ad11bd58118eee4644e290db3eda56acd
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:50:08+02:00
Commit Message:
AGS: Add newest version of Dreams in the Witch House
Version 1.07 GOG
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 08d1bd69578..ec1ac0c4c86 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3921,6 +3921,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484783215), // v1.04
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484795246), // v1.05
GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484837277), // v1.06
+ GAME_ENTRY_EN_GOG("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484844189), // v1.07
GAME_ENTRY_EN_STEAM("dreamswitchhouse", "Dreams in the Witch House.exe", "160d78e898924f5cb1347b13746cc935", 484795038), // v1.05
GAME_ENTRY_EN_STEAM("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 63365026),
GAME_ENTRY_EN("dustbowl", "dustbowl.exe", "aa349d52fd620cf9642935cd5bdec5d8", 82185295),
Commit: fe076bad49d36c5cd3773956b66644212106f389
https://github.com/scummvm/scummvm/commit/fe076bad49d36c5cd3773956b66644212106f389
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:51:50+02:00
Commit Message:
AGS: Add AGS Awards 2022 client + minor sorting fixes
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index ec1ac0c4c86..da23aaaf50e 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -263,6 +263,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
// Commercial games
{ "3geeks", "3 GEEKS" },
{ "aboardtheadventure","Aboard the Adventure" },
+ { "abscission", "Abscission" },
{ "alemmo", "Al Emmo And The Lost Dutchman's Mine" },
{ "alemmoanozira", "Al Emmo's Postcards from Anozira" },
{ "alum", "Alum" },
@@ -335,13 +336,17 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "mybigsisterrm", "My Big Sister: Remastered" },
{ "nellycootalot-hd", "Nelly Cootalot: Spoonbeaks Ahoy! HD" },
{ "neofeud", "Neofeud" },
+ { "nightmareframes", "Nightmare Frames" },
{ "odissea", "Odissea - An Almost True Story" },
+ { "oldskies", "Old Skies" },
{ "oott", "Order of the Thorne: The King's Challenge" },
{ "perfecttides", "Perfect Tides" },
{ "perfidiouspetrolstation", "The Perfidious Petrol Station" },
+ { "personalrocket", "Personal Rocket" },
{ "phantomfellows", "The Phantom Fellows" },
{ "primordia", "Primordia" },
{ "projectorface", "Projector Face" },
+ { "puzzlebots", "Puzzle Bots" },
{ "qfi", "Quest for Infamy" },
{ "quantumnauts", "Quantumnauts" },
{ "quantumnauts2", "Quantumnauts 2" },
@@ -446,7 +451,6 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "abettermousetrap", "A Better Mouse Trap" },
{ "ablemabel", "Able Mabel gets a Job" },
{ "abominationobtainer", "Abomination Obtainer" },
- { "abscission", "Abscission" },
{ "absent", "Absent" },
{ "absentpart1", "Absent - Part I: Innocent Until Proven Guilty" },
{ "absin", "Absin - An Interactive Mystery" },
@@ -499,6 +503,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "agsawards2016", "AGS Awards Ceremony 2016" },
{ "agsawards2017", "AGS Awards Ceremony 2017" },
{ "agsawards2020", "AGS Awards Ceremony 2020" },
+ { "agsawards2022", "AGS Awards Ceremony 2022" },
{ "agsawardsbp", "AGS Awards Backstage Pass" },
{ "agscamerastd", "AGS Cameras Tech Demo" },
{ "agschess", "AGS Chess" },
@@ -524,7 +529,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "aidaschristmas", "Aida's Strange Christmas" },
{ "aidashalloween", "Aida's Bizarre Halloween" },
{ "ainthegoffantabulousw", "Adventures in the Galaxy of Fantabulous Wonderment" },
- { "airwaveifoughtthelawandthelawone", "~airwave~ - I Fought the Law, And the Law One" },
+ { "airwave", "~airwave~ - I Fought the Law, And the Law One" },
{ "alandlordsdream", "A Landlord's Dream" },
{ "alansaveschristmas", "Alan saves Christmas (and most of the world too)" },
{ "aliceinwonderlandis", "Lewis Carroll's Alice In Wonderland - an interactive storybook" },
@@ -2161,7 +2166,6 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "niemandsland", "Das Niemandsland" },
{ "nightandday", "Night and Day" },
{ "nightmare", "Nightmare" },
- { "nightmareframes", "Nightmare Frames" },
{ "nightoftheravingfeminist", "Night of the Raving Feminist" },
{ "nightofthetesticle", "Night of the Testicle" },
{ "nightowl", "The Night Owl Murder" },
@@ -2212,7 +2216,6 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "ohitschristmas", "Oh, it's Christmas" },
{ "ohnonotagain", "Oh no not again!" },
{ "oldmansea", "The Old Man and the Sea" },
- { "oldskies", "Old Skies" },
{ "olol", "Olol" }, // aka Custard's 1 hour game
{ "omfgparadox", "OMFGPARADOX!" },
{ "omnipotenttarot", "Omnipotent Tarot" },
@@ -2320,7 +2323,6 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "perelman", "Perelman" },
{ "perilsofpoom", "Perils of Poom" },
{ "persephonediary", "Persephone's Diary: Secrets of the South" },
- { "personalrocket", "Personal Rocket" },
{ "pesterquest", "Pester Quest: From n00b to newb" },
{ "petshopincident", "The Pet Shop Incident" },
{ "petalrose", "Petals Around the Rose" },
@@ -2429,7 +2431,6 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "purposeretired", "Purpose : Retired" },
{ "pussiehunt", "Pussie Hunt" },
{ "puzzlepumice", "Puzzle of the Pulchritudinous Pumice" },
- { "puzzlebots", "Puzzle Bots" },
{ "pxenophobe", "Project Xenophobe" },
{ "qfheroes", "Quest for Heroes" },
{ "questblackdiamond", "The Quest for the Black Diamond" },
@@ -4837,6 +4838,9 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("agsawards2017", "AGS Awards 2017.exe", "78dd4ca028ee0156b6a093d6d780aa65", 799003462),
GAME_ENTRY_EN("agsawards2020", "AGS Awards 2020.exe", "1466cb5cd32c5ce4a4dbc6e4975f8991", 346110549),
GAME_ENTRY_EN("agsawards2020", "AGS Awards 2020.exe", "1466cb5cd32c5ce4a4dbc6e4975f8991", 346114803),
+ GAME_ENTRY_EN("agsawards2022", "AGS Awards 2022.exe", "e0c91ac3e4bbfad799b958afb5878d32", 926641116), // Win
+ GAME_ENTRY_EN("agsawards2022", "AGS Awards 2022.ags", "2abf435d01917e3a598fc370dfe43af0", 923130246), // Linux
+ GAME_ENTRY_EN("agsawards2022", "ac2game.dat", "2abf435d01917e3a598fc370dfe43af0", 923130246), // Mac
GAME_ENTRY_EN("agsawardsbp", "AGS Awards Backstage Pass.exe", "82da2565c456dcfb265ded6fe3189c0b", 6458787),
GAME_ENTRY_EN("agscamerastd", "camdemo.exe", "17009da9820f5aa86d0588023d497db8", 26012159), // Windows
GAME_ENTRY_EN("agscamerastd", "camdemo.ags", "4e6e999d090581aea259ee10428d5628", 22977515), // Linux
@@ -4866,7 +4870,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("aidashalloween", "Aida's Bizarre Halloween.exe", "18f5fd85de78efca16c7bafce54e3f63", 23337412),
GAME_ENTRY_EN("ainthegoffantabulousw", "gfw.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 7991208),
GAME_ENTRY_EN("ainthegoffantabulousw", "gfw.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 7991393),
- GAME_ENTRY_EN("airwaveifoughtthelawandthelawone", "~airwave~.exe", "18456f28d9bf843b087e80072c85beca", 22521544),
+ GAME_ENTRY_EN("airwave", "~airwave~.exe", "18456f28d9bf843b087e80072c85beca", 22521544),
GAME_ENTRY_EN_PLATFORM("alandlordsdream", "Game.exe", "0241777c2537fc5d077c05cde10bfa9f", 6212265, "MAGS"), // v1.1
GAME_ENTRY("alandlordsdream", "Game.exe", "9cd9563150a69bc1d4eacda0ff3557f8", 7197801), // v1.2 En-Es-It
GAME_ENTRY("alandlordsdream", "Game.exe", "7db052bc30700d1f30f5330f5814f519", 8060425), // v1.4?
Commit: fad2ce50099eeb0e62189db0e04a394a0505a7a8
https://github.com/scummvm/scummvm/commit/fad2ce50099eeb0e62189db0e04a394a0505a7a8
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:54:00+02:00
Commit Message:
AGS: Add sanity check for frame in turning animation
Before checking if an animation frame is not used (numFrames < 1),
make sure that the addressed frame is actually present in the loops vector.
Fixes #14491 affecting blackwell2, mountainsofmadness and possibly others
Changed paths:
engines/ags/engine/ac/character.cpp
diff --git a/engines/ags/engine/ac/character.cpp b/engines/ags/engine/ac/character.cpp
index 60dd1915d9d..11b9b489a20 100644
--- a/engines/ags/engine/ac/character.cpp
+++ b/engines/ags/engine/ac/character.cpp
@@ -1711,7 +1711,11 @@ void start_character_turning(CharacterInfo *chinf, int useloop, int no_diagonal)
break;
if ((turnlooporder[ii] >= 4) && (no_diagonal > 0))
continue;
- if (_GP(views)[chinf->view].loops[turnlooporder[ii]].numFrames < 1)
+ // Upstream does not do this check
+ // The value of turnlooporder should be checked before addressing the
+ // loops vector, to avoid going OOB and triggering an assertion
+ if (((uint)turnlooporder[ii] < _GP(views)[chinf->view].loops.size()) &&
+ (_GP(views)[chinf->view].loops[turnlooporder[ii]].numFrames < 1))
continue;
if (turnlooporder[ii] < _GP(views)[chinf->view].numLoops)
chinf->walking += TURNING_AROUND;
Commit: 984e0e7d47892e28a677d9b2deb4a7003ca39dc7
https://github.com/scummvm/scummvm/commit/984e0e7d47892e28a677d9b2deb4a7003ca39dc7
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:56:36+02:00
Commit Message:
AGS: Add detection for The Sleeping Castle
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index da23aaaf50e..f6d6c2434f6 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -2669,6 +2669,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "slaythedragon2", "Slay the Dragon II" },
{ "slaythedragon3", "Slay the Dragon III" },
{ "sleepingbeauty", "Sleeping Beauty" },
+ { "sleepingcastle", "The Sleeping Castle" },
{ "sleepyisland", "The Sleepy Island" },
{ "sleuth2020remake", "SLEUTH Remake" },
{ "sleuthch1", "Sleuth - Chapter One" },
@@ -7435,6 +7436,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("slaythedragon2", "Dragon2.exe", "84dc3d6bee474e039aace3c1f37b6c7d", 5682711),
GAME_ENTRY_EN("slaythedragon3", "Dragon III.exe", "7ddb9e776648faed5a51170d087074e9", 36162059),
GAME_ENTRY_EN("sleepingbeauty", "SleepingBeauty.exe", "495d45fb8adfd49690ae3b97921feec6", 607993972),
+ GAME_ENTRY_EN("sleepingcastle", "sleeping.exe", "1a2f8dacfa7ab2d30579a49d2ae64e05", 1076403478),
GAME_ENTRY_EN("sleepyisland", "Sleepy Island.exe", "465f972675db2da6040518221af5b0ba", 20270790),
GAME_ENTRY_EN("sleuth2020remake", "SLEUTH.exe", "615e73fc1874e92d60a1996c2330ea36", 11422136),
GAME_ENTRY_EN("sleuthch1", "Sleuth.exe", "23a67b6de10ec35e9f5a4dfc7d928222", 34770218),
Commit: 0ac49a9f8eed7b3f5b93342e7b59838ee0c73ece
https://github.com/scummvm/scummvm/commit/0ac49a9f8eed7b3f5b93342e7b59838ee0c73ece
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:56:45+02:00
Commit Message:
AGS: Add latest version of Blackwell Convergence
Steam / GOG
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index f6d6c2434f6..0919c561f93 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3866,13 +3866,16 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_GOG("blackwell3", "convergence.exe", "2260c1a21aba7ac00baf0100d4ca54f1", 172575801),
GAME_ENTRY_EN_GOG("blackwell3", "convergence.exe", "1fbaa55037f7f1c8c5e59b2dacc994e2", 173960270), // v2.2.1
GAME_ENTRY_EN_GOG("blackwell3", "convergence.exe", "1fbaa55037f7f1c8c5e59b2dacc994e2", 173960749), // v2.3
+ GAME_ENTRY_EN_GOG("blackwell3", "convergence.exe", "1fbaa55037f7f1c8c5e59b2dacc994e2", 173960748), // v2.3b Win-Linux
GAME_ENTRY_EN_GOG("blackwell3", "ac2game.dat", "0b99002018dcf6d3db95925006da01bb", 170769466), // Mac
GAME_ENTRY_EN_GOG("blackwell3", "ac2game.dat", "0b6f9ba727ce934a515dcff9af9c3b9e", 170769945), // Mac v2.3
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "2260c1a21aba7ac00baf0100d4ca54f1", 172578803, AGSTEAM_WADJETEYE),
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "2260c1a21aba7ac00baf0100d4ca54f1", 171969680, AGSTEAM_WADJETEYE),
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "f261c2505f98503a1ec9f1dff7f13bda", 173873229, AGSTEAM_WADJETEYE),
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "1fbaa55037f7f1c8c5e59b2dacc994e2", 173960270, AGSTEAM_WADJETEYE),
+ GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "1fbaa55037f7f1c8c5e59b2dacc994e2", 173960518, AGSTEAM_WADJETEYE), // Win-Linux
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "ac2game.dat", "2844e3823d74652d282b8173bbde2b8b", 170703726, AGSTEAM_WADJETEYE), // Linux & Mac
+ GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "ac2game.dat", "0b99002018dcf6d3db95925006da01bb", 170769466, AGSTEAM_WADJETEYE), // Mac
GAME_ENTRY_EN("blackwell3", "convergence.exe", "2260c1a21aba7ac00baf0100d4ca54f1", 172578032), // Humble Bundle (Windows, v1.1)
GAME_ENTRY_EN("blackwell3", "ac2game.dat", "c894f6005f479ba8f12e87223920aa6a", 170700456), // Humble Bundle (Linux)
GAME_ENTRY_EN("blackwell3", "ac2game.dat", "2260c1a21aba7ac00baf0100d4ca54f1", 173301005), // Android
Commit: dec1379b1ee09c1e3e85340ce56b8f46e54a1c74
https://github.com/scummvm/scummvm/commit/dec1379b1ee09c1e3e85340ce56b8f46e54a1c74
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:57:02+02:00
Commit Message:
AGS: Restore screenshot creation workaround on save
This commit restores the old workaround to force screenshot creation on save,
which was lost among the upstream commits
Fixes bug #14477
Changed paths:
engines/ags/engine/ac/game.cpp
diff --git a/engines/ags/engine/ac/game.cpp b/engines/ags/engine/ac/game.cpp
index 12e7b5fb37a..5f69b90478f 100644
--- a/engines/ags/engine/ac/game.cpp
+++ b/engines/ags/engine/ac/game.cpp
@@ -880,7 +880,10 @@ void save_game(int slotn, const char *descript) {
VALIDATE_STRING(descript);
String nametouse = get_save_game_path(slotn);
std::unique_ptr<Bitmap> screenShot;
- if (_GP(game).options[OPT_SAVESCREENSHOT] != 0)
+
+ // WORKAROUND: AGS originally only creates savegames if the game flags
+ // that it supports it. But we want it all the time for ScummVM GMM
+ if (/*_GP(game).options[OPT_SAVESCREENSHOT] != 0*/ true)
screenShot.reset(create_savegame_screenshot());
std::unique_ptr<Stream> out(StartSavegame(nametouse, descript, screenShot.get()));
Commit: dd9fc544e51090f84c8abe00a1a51b4993c21354
https://github.com/scummvm/scummvm/commit/dd9fc544e51090f84c8abe00a1a51b4993c21354
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:57:16+02:00
Commit Message:
AGS: Add detection for recent games
>From AGS forums and itch.io
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 0919c561f93..f91e43b5854 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -1543,6 +1543,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "interdimensionalcs", "Interdimensional Community Service" },
{ "intergalacticspacepancake", "Intergalactic Space Pancake!" },
{ "interstellarborders", "Interstellar Borders" },
+ { "interstellarinterruption", "Interstellar Interruption" },
{ "intestinator", "Intestinator!" },
{ "intothelight", "Into The Light" },
{ "intraworld", "Intra-World" },
@@ -2210,6 +2211,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "odow", "One Dungeon One Week" },
{ "odr3", "Outrage Dreamer Roads 3" },
{ "odr4", "Outrage Dreamer Roads 4" },
+ { "officereturned", "Office of the Returned" },
{ "officeshenanigans", "Office Shenanigans" },
{ "offtheclock", "Off The Clock" },
{ "ohdulieber", "Oh du lieber Augustin" },
@@ -2628,6 +2630,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "shamrockhg", "Shamrock High Graduation" },
{ "shapeshift", "Shapeshift for Cheese" },
{ "shapevillage", "Shape Village" },
+ { "shardsofgod", "Shards of God" },
{ "sharethis", "Share This With Your Friends" },
{ "sharkysthree", "Sharky's 3: The Heist" },
{ "shawshank", "The Shawshank Redemption" },
@@ -3014,6 +3017,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "thepaparazziprince", "The Paparazzi Prince; and the Quest for Headlines" },
{ "thepark", "The Park" },
{ "theparrotsnatchers", "The Parrot Snatchers" },
+ { "thepassenger", "The Passenger" },
{ "thepathpumpkin", "The Path of the Pumpkin" },
{ "thepenthouse", "The Penthouse" },
{ "theperfectmurder", "The Perfect Murder" },
@@ -4639,6 +4643,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
DEMO_ENTRY("shadowsoftheempire", "sote_td.exe", "b8cd640b45c5a79c33c7a8a8fe32ebe2", 63299246), //v1.1 En-De-It
DEMO_ENTRY_EN("shardlight", "shardlight demo.exe", "ee801fba52d252249677a9170bd2db96", 642405010), // Steam
DEMO_ENTRY_EN("shardlight", "shardlight demo.exe", "ee801fba52d252249677a9170bd2db96", 642366257),
+ DEMO_ENTRY_EN("shardsofgod", "Shards of God.ags", "b181201165d078ac786fa474ef8c14fd", 36754512),
DEMO_ENTRY_EN("shivah", "shivahdemo.exe", "6e3d6225dee662ff6450a3bfa942773b", 20897850),
DEMO_ENTRY_EN("shivahkosher", "shivah-demo.exe", "0aaf5445a3544a631d6e7dd4561fc7ae", 23987292),
DEMO_ENTRY_EN("signalecho", "Signal & Echo - Iris is Missing (demo).exe", "f9e3e0193fbc975daa3a7c95edf04e0a", 39177267),
@@ -6110,6 +6115,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("interdimensionalcs", "ICS.exe", "8d1ff95c16500befbdc72260d461d73f", 15656530),
GAME_ENTRY_EN("intergalacticspacepancake", "space.exe", "97d700529f5cc826f230c27acf81adfd", 1797309),
GAME_ENTRY_EN("interstellarborders", "Interstellar Borders New.exe", "23a67b6de10ec35e9f5a4dfc7d928222", 13864633),
+ GAME_ENTRY_EN("interstellarinterruption", "Interstellar Interruption.ags", "5bb241c71681dadc3be75a9795ea9be7", 6222268),
GAME_ENTRY_EN("intestinator", "intestinator.exe", "3421b46ff95c5885603086c39a038a20", 1722265),
GAME_ENTRY_EN_PLATFORM("intestinator", "ac2game.ags", "af8c785b9c462228b1c134ac79f83986", 423817, "Beta"),
GAME_ENTRY_EN("intothelight", "ITL.exe", "3b7cceb3e4bdb031dc5d8f290936e94b", 12145887),
@@ -6898,6 +6904,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("odow", "ODOW.exe", "6e6f33162242d74dd1fa042429f16562", 3968102),
GAME_ENTRY_EN("odr3", "ODR3.exe", "af11e94f91b66e11450e8daf51d09292", 7637876),
GAME_ENTRY_EN("odr4", "ODR4.exe", "510be04e5eec2aa92bb78b060f138d64", 24227828),
+ GAME_ENTRY_EN("officereturned", "OfficeofTheReturned.ags", "fda695d784c029b3b13a63c7ee989d9a", 3722245),
GAME_ENTRY_EN("officeshenanigans", "OfficeShenanigans.exe", "25976a689b0f4d73eac69b1728377ecb", 6111931),
DETECTION_ENTRY_GUIO("offtheclock", "Off The Clock.ags", "8918895c5c695bae90af13ea4f1a9807", 495345700, Common::EN_ANY, nullptr, GUIO2(GUIO_NOLANG, GUIO_NOLAUNCHLOAD), nullptr, ADGF_NO_FLAGS), // Linux
DETECTION_ENTRY_GUIO("offtheclock", "Off The Clock.exe", "b2eb107c1f9784b7fc4f58c2a7678dea", 498392456, Common::EN_ANY, nullptr, GUIO2(GUIO_NOLANG, GUIO_NOLAUNCHLOAD), nullptr, ADGF_NO_FLAGS), // Win
@@ -7880,6 +7887,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("thepaparazziprince", "Willy.exe", "f3a13b2d6c2e0fe04c6f466062920e23", 3403804),
GAME_ENTRY_EN("thepark", "park.exe", "97d700529f5cc826f230c27acf81adfd", 709265),
GAME_ENTRY("theparrotsnatchers", "r.exe", "a524cbb1c51589903c4043b98917f1d9", 11945759), // En-Pol
+ GAME_ENTRY_EN("thepassenger", "The Passenger.exe", "ae2e93ae61a612dd8cad1290bd5f7443", 4367776),
+ GAME_ENTRY_EN("thepassenger", "The Passenger.ags", "39af4e69a003d070a96bface061b819e", 1255820),
GAME_ENTRY("thepathpumpkin", "The path of a pumpkin(The story of Skar).exe", "2c8f16a69b659ddfad4a043a24d8aa49", 264732994), // En-Ita
GAME_ENTRY_EN("thepenthouse", "Penthouse.exe", "0564de07d3fd5c16e6947a647061913c", 13596940),
GAME_ENTRY("thephantominheritance", "Phantom.exe", "ec04c7917c003d9e07d4514ff25bf365", 27558669), // Eng-Esp
Commit: 24e797c04a2a7caff3aa5c6cac6ba61603abf619
https://github.com/scummvm/scummvm/commit/24e797c04a2a7caff3aa5c6cac6ba61603abf619
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:57:57+02:00
Commit Message:
AGS: Add detection entry for blackwell3 Mac 2.3b
TRAC report #14514
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index f91e43b5854..e8889670185 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3873,6 +3873,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN_GOG("blackwell3", "convergence.exe", "1fbaa55037f7f1c8c5e59b2dacc994e2", 173960748), // v2.3b Win-Linux
GAME_ENTRY_EN_GOG("blackwell3", "ac2game.dat", "0b99002018dcf6d3db95925006da01bb", 170769466), // Mac
GAME_ENTRY_EN_GOG("blackwell3", "ac2game.dat", "0b6f9ba727ce934a515dcff9af9c3b9e", 170769945), // Mac v2.3
+ GAME_ENTRY_EN_GOG("blackwell3", "ac2game.dat", "613c49405b24b367a961a7e14a3849d0", 170769944), // Mac v2.3b
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "2260c1a21aba7ac00baf0100d4ca54f1", 172578803, AGSTEAM_WADJETEYE),
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "2260c1a21aba7ac00baf0100d4ca54f1", 171969680, AGSTEAM_WADJETEYE),
GAME_ENTRY_PLUGIN_STEAM_EN("blackwell3", "convergence.exe", "f261c2505f98503a1ec9f1dff7f13bda", 173873229, AGSTEAM_WADJETEYE),
Commit: b232eb0825ed69f5ae6de3c18a78a1c6a7388a20
https://github.com/scummvm/scummvm/commit/b232eb0825ed69f5ae6de3c18a78a1c6a7388a20
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:58:32+02:00
Commit Message:
AGS: Add detection entries for Superego Chapters 1+2
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index e8889670185..69c35fa0195 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -373,6 +373,7 @@ const PlainGameDescriptor GAME_NAMES[] = {
{ "strangeland", "Strangeland" },
{ "sulifallenharmony", "Suli Fallen Harmony" },
{ "sumatra", "Sumatra: Fate of Yandi" },
+ { "superegoch12", "Superego - Chapter 1+2" },
{ "superjazzman", "Super Jazz Man" },
{ "symploke1", "Symploke: Legend of Gustavo Bueno (Chapter 1)" },
{ "symploke2", "Symploke: Legend of Gustavo Bueno (Chapter 2)" },
@@ -4141,6 +4142,8 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_STEAM("sumatra", "sumatra fate of yandi.exe", "57c868b1a81c0335ab60970292cd79d8", 170088886), // En-Fr-De-Es
GAME_ENTRY_STEAM("sumatra", "sumatra fate of yandi.exe", "b4407ac542f316456f549fc8a60dccae", 170634789),
GAME_ENTRY_GOG("sumatra", "sumatra fate of yandi.exe", "b4407ac542f316456f549fc8a60dccae", 170715680), // v1.2
+ GAME_ENTRY_EN("superegoch12", "Superego - Chapter 1+2 (ENG).exe", "faeaa85c173b559be75f55a3433e1fd2", 346120240), // itch.io
+ GAME_ENTRY_LANG("superegoch12", "Superego - Cap. 1+2.exe", "2b5c2ecd5dbeafcd1591a6d743cf8adc", 346121328, Common::ES_ESP),
GAME_ENTRY_EN("superjazzman", "sjm.exe", "0710e2ec71042617f565c01824f0cf3c", 10841689), // Official website
GAME_ENTRY_LANG("symploke1", "Symploke.exe", "ff20c8c9dda8379607db87e7726909c6", 29996616, Common::ES_ESP), // Videojuegos Fermin website (Spanish)
GAME_ENTRY_EN("symploke1", "symploke1.exe", "ff20c8c9dda8379607db87e7726909c6", 57363019), // Steam (English), same as Videojuegos Fermin website (English)
Commit: 8e605a4cc4ac9b1908a2b2d2e0b38581d0ac6e3b
https://github.com/scummvm/scummvm/commit/8e605a4cc4ac9b1908a2b2d2e0b38581d0ac6e3b
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T22:58:44+02:00
Commit Message:
AGS: Add detection entry for Graceward CE full
Changed paths:
engines/ags/detection_tables.h
diff --git a/engines/ags/detection_tables.h b/engines/ags/detection_tables.h
index 69c35fa0195..49b2f165e56 100644
--- a/engines/ags/detection_tables.h
+++ b/engines/ags/detection_tables.h
@@ -3980,7 +3980,6 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY("gobliiins5-4", "Gobliiins5-Part4.exe", "t:1f2401479d4104539d54a4d11a713044", 352414577),
// Bugfix release 2023-05-14
GAME_ENTRY("gobliiins5-3", "Gobliiins5-Part3.exe", "t:a6d99497f108311308e812b5ba904d95", 176342992),
-
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "dbe281d93c914899886e77c09c3c65ec", 130844360), // Linux & Mac
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "e7080df9729aae2a0097b752198f3cca", 130846774),
GAME_ENTRY_EN_STEAM("goldenwake", "a-golden-wake.exe", "409b71f7b73f30bef5098c6449505c1a", 130929070), // Windows
@@ -3989,6 +3988,7 @@ const AGSGameDescription GAME_DESCRIPTIONS[] = {
GAME_ENTRY_EN("goldenwake", "a-golden-wake.exe", "e80586fdc2db32f65658b235d8cbc159", 129814642),
GAME_ENTRY_EN("goldenwake", "ac2game.dat", "bb3b4630c44a51e3a23892563121c2c8", 128018480), // Linux Humble Bundle
GAME_ENTRY_EN("goldenwake", "ac2game.dat", "d27edc5b7eee382501dfcfea044dfc90", 128018546),
+ GAME_ENTRY_EN_STEAM("graceward", "Graceward.exe", "0564de07d3fd5c16e6947a647061913c", 292555926),
GAME_ENTRY_STEAM("grandmabadass", "GrandmaBadass-bundle1.exe", "a66d7de0e58d3f3a09522745c4d523d9", 739736114), // En-Fr-De-Es-It
GAME_ENTRY_STEAM("guardduty", "guardduty.exe", "98d09f79129a5f96b6622661e2a7bc64", 706020335), // En-Fr-De-Es
GAME_ENTRY_GOG("guardduty", "guardduty.exe", "98d09f79129a5f96b6622661e2a7bc64", 706020743),
Commit: a9c855a79332dcc8dc2e6ab6c9e96980345c4dd5
https://github.com/scummvm/scummvm/commit/a9c855a79332dcc8dc2e6ab6c9e96980345c4dd5
Author: Walter Agazzi (walter.agazzi at protonmail.com)
Date: 2023-06-30T23:41:33+02:00
Commit Message:
NEWS: Mention AGS fixes
Changed paths:
NEWS.md
diff --git a/NEWS.md b/NEWS.md
index 92af5e433ae..ce1a4e2013a 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -11,6 +11,18 @@ For a more comprehensive changelog of the latest experimental code, see:
AGI:
- Restored possibility to pick arbitrary render mode in Game Options.
+ AGS:
+ - Multiple additions to game detection tables.
+ - Fixed crashes in various games (commercial and freeware)
+ - Fixed graphical priority errors when using computers in Resonance, Kathy Rain and Blackwell Convergence.
+ - Fix for some sounds not playing in "The Cat Lady" and other games.
+ - Reintroduced thumbnail creation for all savegames.
+ - Fixed regression for translation setting not being saved.
+ - Fixed translation bug in Zniw Adventure (linux version).
+ - Fixed wrong walkspeed in old games (e.g. Apprentice)
+ - Added small workaround for purple texts appearing transparent.
+ - Minor changes to debug/error messages and code style.
+
HDB:
- Fixed bug with inability to pick up red envelope with keyboard.
More information about the Scummvm-git-logs
mailing list