Another year has gone by, therefore we are releasing a new ScummVM version. As you may notice right away, we are changing our version numbering schema, but that’s not all! We are also planning on more frequent releases!, which you can read about on sev’s blog.
This could be the biggest release we have made so far in terms of the added features and engines. If I count correctly, we have added 12 new engines to our compatibility page. Not games, engines. In terms of games, it is challenging to count, since two of the engines, SLUDGE and WAGE are authoring tools, but if you count games in our detection tables, that adds up to at least 194 titles!
And there is so much more...
Changelog
New games:
- Added support for Dark Seed.
- Added support for God of Thunder.
- Added support for The Adventures of Willy Beamish.
- Added support for Heart of China.
- Added support for Nancy Drew: Secret of the Scarlet Hand.
- Added support for Nancy Drew: Ghost Dogs of Moon Lake.
- Added support for Ripley's Believe It or Not!: The Riddle of Master Lu.
- Added support for Little Longnose.
- Added support for Pilot Brothers 3: Back Side of the Earth.
- Added support for Pilot Brothers 3D. The Case of Garden Pests.
- Added support for Pilot Brothers 3D-2. Kennel Club Secrets.
- Added support for Features of National Fishing.
- Added support for Mom Don't Worry.
- Added support for Dog-n-cat: In the Footsteps of Unprecedented Beasts.
- Added support for Dog-n-cat: Island of Dr Ratiarty.
- Added support for Out of this World (Another World).
- Added support for SLUDGE-based games, such as Out of Order, The Secret of Tremendous Corporation, Robin's Rescue and others, 12 titles so far.
- Added support for Adibou 2: Nature & Sciences.
- Added support for WAGE-based game. More than 160 titles so far.
- Added support for Penumbra: Overture.
- Added support for Tex Murphy: Martian Memorandum
- Added support for Mort&Phil: A Movie Adventure (Special Edition).
- Added support for Trick or Treat.
- Added support for Hodj 'n' Podj.
Access:
- Added keymapper support.
- Fixed foodstep sounds.
ADL:
- Added Text-to-Speech support.
AGI:
- Added Text-to-Speech support.
- Added support for SQ2 French translation.
- Added support for KQ1, KQ2, KQ3 Hebrew translations.
- Fixed Mickey's Space Adventure sound on PS3, Wii, and other big-endian ports.
AGS:
- Updated detection tables.
Buried:
- Added keymapper support.
CinE:
- Added Text-to-Speech support.
Cruise:
- Added Text-to-Speech support.
Cryomni3D:
- Added support for Chinese DOS/Win95 Versailles CD version.
Draci:
- Added Text-to-Speech support.
Drascula:
- Fixed displaying accented characters.
- Added Text-to-Speech support.
- Added keymapper support.
EFH:
- Fixed giving and dropping unequippable items.
- Fixed being unable to replace 3rd party member.
- Fixed quitting in status menu.
- Added Text-to-Speech support.
- Added keymapper support.
Freescape:
- Added roll rotation to Driller and Dark Side.
- Added full TinyGL support for all the games.
- Fixed several small details across all the games including missing graphics and sounds.
Gob:
- Added Text-to-Speech support.
Grim:
- Added support for the fantranslated Polish version of Grim Fandango.
Hugo:
- Added Text-to-Speech support.
- Fixed unrecognized commands, missing points, and graphics glitches in the DOS version of Hugo 2.
- Fixed clicking to walk.
- Fixed closing the top menu.
Hypno:
- Added keymapper support.
- Added support for third party subtitles.
Illusions:
- Fixed a crash when triggering the game menu early in the game.
Kyra:
- Reduced CPU usage in the LoL main menu.
- Reduced CPU usage in EoB 1 and 2.
- Introduced new launcher checkbox in Eye of the Beholder 1 and 2, to enable smarter replacing of thrown weapons from inventory.
- In Eye of the Beholder 1, Ileria and Beohram NPC data fix is now behind a separate feature flag and launcher checkbox.
Lab:
- Added keymapper support.
Lure:
- Added Russian version support to lure.dat.
MADE:
- Added Text-to-Speech support.
MM:
- Fixed protection from elements spell.
- Added Text-to-Speech support.
- Fixed errors with M&M1 monster advancement in combat.
- Fixed doors color in M&M1 enhanced mode.
- Fixed rendering of M&M1 enhanced main menu circles.
Mohawk:
- Fixed popping noise in speech in some game releases (bug in the original).
NANCY:
- Added support for ScummVM's save/load screens.
- Fixed a crash while reading files from the Zip disk in Secret of the Scarlet Hand.
Neverhood:
- Added keymapper support.
NGI:
- Added keymapper support.
- Fixed a crash when trying to open the game main menu several times in a row.
Nuvie:
- Added "Transfer a Character" feature to main menu.
Parallaction:
- Added Text-to-Speech support.
Petka:
- Added keymapper support.
Pink:
- Added keymapper support.
Prince:
- Added Text-to-Speech support.
- Added keymapper support.
Private:
- Added several important missing graphics and gameplay sounds, the engine is now considered to be at feature parity with the original game.
- Fixed inaccessible places, missing interactions or conversations.
- Added option to highlight decision areas for improved visibility.
- Added support for third party subtitles.
- Added missing features and fixed crashes in the desktop screen.
- Fixed various graphics and cursor glitches.
- Added keymapper support.
Queen:
- Added keymapper support.
SCI:
- Fixed PHANT1 losing save files. (ScummVM 2.9.0 bug)
- Fixed QFG4 v1.1/German lockup when entering cave at end of game.
- Fixed PQ2 PC-98 Japanese text not displaying on certain screens.
- Fixed KQ1 Amiga crash when incorrectly guessing gnome's name.
- Fixed LONGBOW Amiga crash when going to abbey.
- Fixed SQ4 Amiga taking three minutes to display title screen.
- Fixed PQ2 phone when dialing wrong numbers.
- Fixed script bugs in ECO1, LSL6, PEPPER.
- Added support for SLATER Macintosh.
- Virtual keyboard now correctly triggers on/off wherever text input is needed.
SCUMM:
- Added support for the classic SE variants of MI1, MI2, DOTT and FT.
- Added support for the remastered speech and sound effects in the remastered version of Day of the Tentacle.
- Added speech support in the SE versions of MI1 and MI2.
- Improved graphics support for Macintosh DOTT, Sam & Max, The Dig, Full Throttle, and the PowerPC version of Fate of Atlantis.
- Added an option to render Sega CD MI1 with the "Shadow Mode" palette which was originally used for that release. (It's unclear whether that much darker rendering was used on purpose, or unintentionally.)
- Added Text-to-Speech support.
- Added support for Catalan fan translations of Maniac Mansion, Indy3, Monkey1 and Indy4.
- Fixed game detection for the Macintosh version of MI1 from the first LucasArts Mac CD Game Pack. Previously you had to make sure to only copy the data fork, not the (empty) resource fork.
- Fixed various crashes when loading some old/special saves.
- Fixed a bug with background layers, which could cause some small glitches in The Dig.
- Fixed an edge case when decoding SMUSH videos. This would cause some gray artifacts/pixels to appear in the ending video of The Dig.
- Fixed minor visual issues in Backyard Baseball (1997) and Pajama Sam 3.
- Fixed missing graphical effects in Spy Fox in Cheese Chase.
- Fixed Spy Fox in Cheese Chase always preferring custom levels over the built-in ones.
Sherlock:
- Added keymapper support.
Stark:
- The OpenGL renderer now works on older GPUs not supporting non-power-of-two textures.
Supernova:
- Added keymapper support.
Sword1:
- Fixed harsh noise being played instead of the intended audio on PS3, Wii, and other big-endian ports.
- Fixed some engine leaks that could lead to crashes in some situations.
Sword25:
- Added keymapper support.
Teenagent:
- Added language support for Polish, Czech and Russian versions. New teenagent.dat file is generated.
- Added keymapper support.
- Added Text-to-Speech support.
- Added support for Polish CD version with voice-over.
Tetraedge:
- Added keymapper support.
Titanic:
- Added keymapper support.
Toltecs:
- Added keymapper support.
Toon:
- Adjusted the speed of the Gift-O-Matic machine sequence, so that it better matches the way it behaved on original hardware.
Touche:
- Fixed a crash when quitting the game while some speech was about to be played.
TwinE:
- Activated original bug fixes (FunFrock's HQ door and safe bugs).
V-Cruise:
- Fixed text rendering in Chinese and Japanese localizations.
- Added support for Japanese DVD version of Schizm: Mysterious Journey.
Voyeur:
- Added keymapper support.
Wintermute:
- 3D renderer enabled by default for 2D games.
- Added Text-to-Speech support.
- Added support for several fan translations.
Desktop ports:
- Allow the user to disable manual resizing of the ScummVM window (using Ctrl+R).
- Add support for building with SDL3 (although SDL2 is still used by default).
- Add support for scaling shaders within 3D engines.
- Remove last remnants from the ResidualVM merge: the codebase is now fully unified.
Android port:
- Support Android 16.
- Add support for scaling shaders within 3D engines.
- Add support for antialiasing with 3D engines.
- Remove last remnants from the ResidualVM merge: the codebase is now fully unified.
- Take screen forbidden zones into account.
- Use Android networking code instead of libcurl: system HTTPS certificates are now used.
- Long-press on back button with latest Android versions is fixed.
Atari port:
- Unified paths for FreeMiNT and TOS in scummvm.cfg (better delete the old config file).
- Added translation for longer than 8+3 .dat filenames.
- Fixed slow rendering of Eco Quest's intro.
- Fixed cursor rendering of Phantasmagoria, KQ7 and other SCI32 games.
- Increased stack size to 256k to avoid stack overflow in some engines (e.g. Supernova).
- Fixed launching games from command line.
DS port:
- Migrate to latest devkitPRO SDK.
iOS port:
- Add support for scaling shaders within 3D engines.
- Add support for antialiasing with 3D engines.
- Remove last remnants from the ResidualVM merge: the codebase is now fully unified.
- Take screen forbidden zones into account.
PS3 port:
- Fixed crashes for games using a screen shaking effect.
Merged PRs
- SCI: fix kernel sub function mapping for certain builds by @athrxx in #6315
- TSAGE: Split engine into multiple subengines by @ccawley2011 in #6314
- SCUMM: HE: Fix alloc-dealloc mismatch in ResExtractor by @tunnelsociety in #6320
- GOB: magicstones detection cleanup by @BJNFNE in #6318
- SCI: (KQ6WinCD) - fix hires drawing glitches by @athrxx in #6319
- JANITORIAL: Fix revesed and desiged typos in head.cpp by @raziel- in #6321
- GRAPHICS: Apply aspect ratio correction to 16 color VGA 640x350 video… by @yuv422 in #6311
- AGI: Fix PREAGI pictures by @sluicebox in #6322
- GRAPHICS: Handle seek-only case in TTFLibrary readCallback by @tunnelsociety in #6324
- SCUMM: Add support for the classic SE variants of MI1, MI2, DOTT and FT by @bluegr in #6313
- SCI: (SQ4/CD/Windows) - make use of windows gfx drivers by @athrxx in #6325
- PSP: Fix PNG loading and improve it by @lephilousophe in #6327
- GOB: add russian adibou3 variant to detection by @BJNFNE in #6330
- Bump jinja2 from 3.1.4 to 3.1.5 in /doc/docportal by @dependabot[bot] in #6332
- GOB: add russian variant of Adiboudchou by @BJNFNE in #6333
- ULTIMA: NUVIE Keymap Fixes by @malignantmanor in #6329
- SCI: cleanup and reorganize gfx drivers by @athrxx in #6328
- Disable load button in Launcher when no savegame is available for the selected game by @criezy in #6331
- GUI: Improve console selection by @tunnelsociety in #6317
- GRAPHICS: OPENGL: Enable more features with OpenGL ES 3 by @ccawley2011 in #6275
- CONFIGURE: Added possibility to define engine components by @sev- in #6280
- JANITORIAL: Fix typos in general files by @raziel- in #6337
- JANITORIAL: Fix AGS engine typos by @raziel- in #6338
- JANITORIAL: Fix everytime typo in bladerunner engine by @raziel- in #6339
- JANITORIAL: Fix sargent typos in darkseed.cpp by @raziel- in #6340
- JANITORIAL: Fix afterwords and cant typos in Glk engine by @raziel- in #6341
- JANITORIAL: Fix applcation typo in gob engine by @raziel- in #6342
- JANITORIAL: Fix degress typo in hdb engine by @raziel- in #6344
- JANITORIAL: Fix degress and cant typos in icb engine by @raziel- in #6345
- JANITORIAL: Fix runing typo in hypno engine by @raziel- in #6346
- JANITORIAL: Fix proccessing typo in immortal engine by @raziel- in #6347
- JANITORIAL: Fix substract typos in myst3 engine by @raziel- in #6350
- JANITORIAL: Fix substract typos in twine engine by @raziel- in #6359
- JANITORIAL: Fix ocassional typo in m4 engine by @raziel- in #6349
- JANITORIAL: Fix auxillaries and explictly typos in lure engine by @raziel- in #6348
- JANITORIAL: Fix a bunch of typos in saga2 engine by @raziel- in #6352
- JANITORIAL: Fix a bunch of typos in the scumm engine by @raziel- in #6353
- JANITORIAL: Fix portugese typo in sword1 engine by @raziel- in #6356
- JANITORIAL: Fix pratice typo in sci engine by @raziel- in #6354
- JANITORIAL: Fix analagous typo in startrek engine by @raziel- in #6355
- JANITORIAL: Fix extremly typo in titanic engine by @raziel- in #6358
- JANITORIAL: Fix convertion typo in qdengine by @raziel- in #6351
- JANITORIAL: Fix cant typos in teenagent engine by @raziel- in #6357
- JANITORIAL: Fix managment typo in watchmaker engine by @raziel- in #6361
- JANITORIAL: Fix a bunch of typos in ultima engine by @raziel- in #6360
- Palette color distance definitions by @OMGPizzaGuy in #6362
- JANITORIAL: Add FIXMEs for typos in hadesch engine by @raziel- in #6343
- CREATE_PROJECT: Add components based features dynamically by @lephilousophe in #6363
- ULTIMA: NUVIE: Fix show_spell_description by @malignantmanor in #6336
- GOB: add versionnumbers to GOB2 and GOB3 entries by @BJNFNE in #6364
- gitignore: Ignore pycache by @einstein95 in #6367
- DIRECTOR: Add CD detection patch for Pink Gear Collection by @einstein95 in #6366
- AUDIO: Fix Fluidsynth soundfont path check on iOS by @criezy in #6365
- SCUMM: Allow using the Amiga palette again for Loom/Monkey1/Passport EGA by @dwatteau in #6316
- GOB: Detection improvements for Gobliins entries by @BJNFNE in #6371
- COMMON: Remove undefined behaviours from RNC decoder by @lephilousophe in #6369
- BACKENDS: MACOS: Don't instantiate touch bar on old MacOS versions by @lephilousophe in #6334
- IOS7: Various fixes by @larsamannen in #6368
- GOB: add missing filesize to GOB2 and GOB3 variants by @BJNFNE in #6373
- SCUMM: Fix build with UBSan and SCUMM engine disabled by @lephilousophe in #6372
- AUDIO: MT32: Force MT32 rebuild after configure is run by @lephilousophe in #6370
- GRAPHICS: Remove overrideColor from ManagedSurface::transBlitFrom by @ccawley2011 in #6375
- SCUMM: Fix DOTT Remastered offsets by @BLooperZ in #6378
- SCUMM: mixer_he: Add check sample buffer size for fade in by @VladDoc in #6376
- SCUMM: Implement Macintosh GUI for the remaining SCUMM games by @eriktorbjorn in #6326
- GRAPHICS: Add ColorQuantizer class by @eriktorbjorn in #6379
- BUILD: Fix build on mingw with libcurl by @orgads in #6380
- DIRECTOR: Add detection for fpgapirates full game, add movutil name to get it past titlescreen by @einstein95 in #6381
- MOHAWK: LB: Fix crash in the v3 sampler during the Green Eggs and Ham section by @ccawley2011 in #6384
- MOHAWK: LB: Add a separate debug channel for LBCode by @ccawley2011 in #6386
- AGI: Refactor
PictureMgr, support early KQ1 pics, fix Troll fill by @sluicebox in #6388 - GRAPHICS: Add simplified mask blitting routines to ManagedSurface by @ccawley2011 in #6390
- GRAPHICS: Convert the primitives code to use classes by @ccawley2011 in #6374
- GRAPHICS: Make use of simpleBlitFrom for PM5544 rendering by @ccawley2011 in #6389
- GRAPHICS: Fix potential bug in drawThickLine2 by @ccawley2011 in #6393
- MEDIASTATION: Make use of simpleBlitFrom by @ccawley2011 in #6394
- IMAGE: Don't declare GIFDecoder when GIF support is not built by @lephilousophe in #6397
- DIRECTOR: Migrate to the new Primitives class by @ccawley2011 in #6396
- ASYLUM: Fix crash for game menu by @antoniou79 in #6385
- GRAPHICS: Remove masks from ManagedSurface::transBlitFrom by @ccawley2011 in #6377
- CREATE_PROJECT: Add support for meta-components by @lephilousophe in #6382
- GRAPHICS: MACGUI: Make it possible to disable menus by @eriktorbjorn in #6395
- GOB: improve magicstones detection by @BJNFNE in #6400
- TETRAEDGE: Support Android and Switch versions by @phcoder in #5021
- GOT: God of Thunder engine by @dreammaster in #6387
- BACKENDS: ANDROID: Fix memchr calls by @lephilousophe in #6402
- NEVERHOOD: Fix "puzzle solved" sound sometimes being played twice in the H room by @Player701 in #6403
- FREESCAPE: Refactor TinyGL's clear method by @cmd05 in #6404
- AGI: KQ1-Early loaders and detection by @sluicebox in #6407
- AGS: Implement SoundClipWaveBase::set_speed by @l0ud in #6410
- SCUMM: Add option for gamma correction (for the Macintosh games) by @eriktorbjorn in #6405
- VCRUISE: Make use of simpleBlitFrom and maskBlitFrom by @ccawley2011 in #6392
- DIRECTOR: Don't allocate big objects in stack in SpaceMgr by @lephilousophe in #6409
- GRAPHICS: Remove deprecated uses of primitives by @lephilousophe in #6401
- CONFIGURE: Warn if the stack frames are too large by @lephilousophe in #6411
- DIRECTOR: Fix UBsan and ASan warnings by @lephilousophe in #6408
- IMAGE: Fix TGA color map loading by @lephilousophe in #6413
- ENGINES: Use LiberationSans instead of FreeSans as a fallback by @ccawley2011 in #6304
- NGI: Don't reopen the NGIArchive when reading a content by @lephilousophe in #6414
- ANDROID: Various improvements around SAF (and more) by @lephilousophe in #6391
- TETRAEDGE: Don't declare OpenGL with shaders as supported by @lephilousophe in #6415
- FREESCAPE: Keep cursor in the middle of the view area when switching to shoot mode by @NigeNigeNige in #6406
- AUDIO: Mark more AdLib symbols as const by @ccawley2011 in #6266
- MOHAWK: Add demos from MacFormat 18 coverdisc by @einstein95 in #6416
- ENGINES: Use LiberationSans with ImGui instead of FreeSans by @ccawley2011 in #6417
- CONFIGURE: Don't use the Gold linker on i386/ppc (unless using --enable-gold) by @dwatteau in #6285
- ENGINES: Use LiberationSans for subtitles instead of FreeSans by @ccawley2011 in #6418
- DIRECTOR: Fixes for D5 support by @moralrecordings in #6420
- DIRECTOR: Fixes for D5 support by @moralrecordings in #6424
- VIDEO: QTVR: Fix hotspot inverse projection by @elasota in #6427
- MEDIASTATION: Fix lionking 2.0GB copy-paste mistake by @einstein95 in #6426
- VIDEO: QTVR: Fix backwards hotspot X reverse projection and revert debug code by @elasota in #6428
- Add support to select shader from the command line by @naatje80 in #6429
- HADESCH: Add pirated Mac version to detection by @einstein95 in #6433
- CI: Update Ubuntu runner from 20.04 to 22.04 by @dwatteau in #6430
- AGS: Add detection for Old Skies OSDemo v1.0 and its controller plugin name by @einstein95 in #6435
- M4: RIDDLE: Add detection for 2 more demos and Italian release, fix typo by @einstein95 in #6432
- 3DS: Fix improper memory freeing (Sprite.vertices) by @BallM4788 in #6434
- CONFIGURE: Make --disable-gold the default, now that Binutils deprecated it by @dwatteau in #6431
- FREESCAPE: Implement skybox for opengl with shaders by @cmd05 in #6440
- DIRECTOR: Fixes for D5 by @moralrecordings in #6437
- I18N: Miscellaneous fixes by @ccawley2011 in #6305
- JANITORIAL: Fix typo by @tunnelsociety in #6438
- BACKENDS: Add SDL3 backend + update imgui by @scemino in #6312
- CRYO: Add detection for Lost Eden PC-9821 version by @einstein95 in #6444
- DISTS: Add Bash tab completions script for ScummVM by @eriktorbjorn in #6419
- COMMON: Remove plural of debugChannels by @lephilousophe in #6452
- BACKENDS: SDL: Let the user prevent resizing of the window by @lephilousophe in #6449
- GOT: Fix the starting armor for area > 1 by @nniro in #6448
- GOT: Add eyeballs mode for chapter 2 shovel maze by @nniro in #6451
- AGS: Avoid stack frame size warning in AGS3::unload_game by @lephilousophe in #6450
- DISTS: IOS7: icons—fix white corners’ artifacting by @stevenjamescox in #6453
- TEST: Fix base64 test on big-endian by @lephilousophe in #6441
- SCUMM: "Fix" the bright graphics in the Sega CD version of MI1 by @eriktorbjorn in #6446
- GRAPHICS: Use constexpr for palette constants by @OMGPizzaGuy in #6456
- FREESCAPE: Fix some UI Issues in Dark-Side by @akramhany in #6455
- IMAGE: Replace palette byte arrays with Palette class by @OMGPizzaGuy in #6447
- TESTBED: Add test suite for image decoders by @OMGPizzaGuy in #6454
- DIRECTOR: Fixes for D5 by @moralrecordings in #6457
- IMAGE: Fix 24bpp PCX image decoding. by @OMGPizzaGuy in #6458
- SWORD1/SWORD2: Detect availability of RGB colour support at runtime by @ccawley2011 in #6297
- TESTBED: Miscellaneous improvements to the video player by @ccawley2011 in #6462
- CONFIGURE: Make SVQ1 and QDM2 optional components by @ccawley2011 in #6461
- COMMON: Add emplace and rvalue insert to Common::List by @ccawley2011 in #6460
- SCUMM: MACGUI: Disable Maniac Mansion Mac GUI while paused by @eriktorbjorn in #6422
- GRAPHICS: Removed deprecated ManagedSurface constructors by @ccawley2011 in #6459
- SWORD25: Fix keyboard input by @rinevard in #6465
- IMAGE: Use palette class in Cinepak decoder. by @OMGPizzaGuy in #6466
- FREESCAPE: Fix Flying-Mode Related Issues by @akramhany in #6463
- Bump jinja2 from 3.1.5 to 3.1.6 in /doc/docportal by @dependabot[bot] in #6467
- SWORD25: Add internal debugger launch flag by @rinevard in #6468
- IMAGE: Use palette class in more codecs by @OMGPizzaGuy in #6469
- SCUMM: LOOM: Fix Hetchel flying with two heads in some EGA releases (Enhancement) by @dwatteau in #6470
- AGS: fix DynamicSprite.Flip() to use CreateTransparentBitmap by @mausimus in #6472
- VIDEO: Use palette class in video decoders by @OMGPizzaGuy in #6471
- QDENGINE: Fix pathfinding slowdown problem by @ormanbai123 in #6476
- SWORD25: Fix display order of deathscreen by @rinevard in #6474
- VIDEO: Use palette class in video decoders (Part 2) by @OMGPizzaGuy in #6475
- DIRECTOR: Fix MSVC warnings by @bluegr in #6464
- GRAPHICS: MACGUI: Fix color palette used in nine-patch bitmap for disabling border by @cmd05 in #6479
- WAGE: Fix "New" and "Revert" option bugs by @WinterSun23 in #6436
- TESTBED: Allow video test to handle more decoders by @OMGPizzaGuy in #6473
- FREESCAPE: Fix sound-related issues by @akramhany in #6478
- PRIVATE: Take cursor images from Windows executable by @ellm135 in #6481
- GOB: mark bargon entry as EN_GRB by @BJNFNE in #6486
- DIRECTOR: Implement text line height by @rinevard in #6480
- DIRECTOR: DEBUGGER: Generate unique table ids to prevent warnings. by @harsh-kulkarni-05 in #6487
- QDENGINE: LITTLE LONGNOSE: Fix missing walking animation and direction change by @ormanbai123 in #6482
- CHAMBER: Fix cga_Blit to support HGA screen rendering by @Nasir-Bilal in #6493
- QDENGINE: Fix path optimization algorithm by @ormanbai123 in #6490
- DGDS: Correct spelling in minigame by @Kawa-oneechan in #6497
- HYPNO: fix infinite video playback during missile sequence in wetlands by @aunnoman1 in #6494
- FREESCAPE: add cubemap shaders to configuration lists by @cmd05 in #6499
- VIDEO: Correctly handle raw Elementary Stream MPEG Videos by @Malharbdv in #6496
- MACVENTURE: Fix save file loading by @cmd05 in #6502
- WAGE: Fix crash due to outdated sound queue timestamps by @aunnoman1 in #6504
- WAGE: Fix missing text and extra newlines by @aunnoman1 in #6501
- DIRECTOR: Fixes for D5 by @moralrecordings in #6498
- TINYGL: Fix TGL_TRIANGLE_FAN rendering by @jpres27 in #6509
- BACKENDS: FS: Use stat() fallback for all unexpected dirent d_type values by @dwatteau in #6505
- GRIM: Add French Mac EMI detection entry by @dwatteau in #6512
- ALL: Use C++ 11 range-based for loops by @bluegr in #6508
- PRIVATE: Track game events in diary by @ellm135 in #6503
- I18N: Fixes for Swedish language by @bluegr in #6488
- DIRECTOR: add Bidule series to detection by @meekee7 in #6507
- FREESCAPE: Fix for #15486 TINYGL: triangles always override zbuffer from lines by @For-Chance in #6527
- TOLTECS: Add keymapper support by @aunnoman1 in #6522
- Czech translation for Kyrandia 1, 2, and 3. by @mbreskovec in #6519
- QDENGINE: Draw background before playing video by @ormanbai123 in #6529
- CHAMBER: HGA Text Rendering Fixes by @Nasir-Bilal in #6523
- GOB: add version number to playtoons2 german variant by @BJNFNE in #6536
- PLAYGROUND3D: Make various improvements by @BallM4788 in #6534
- STARK: Support Hebrew fan translation by @BLooperZ in #6532
- HPL1: Add a new detection entry for Penumbra: Overture by @For-Chance in #6541
- SCUMM: Add enhancement for missing message when entering ship's hold by @eriktorbjorn in #6540
- GUI: Implement GlobalOptionsDialog dumping in dumpAllDialogs by @TusharGautam29 in #6514
- COMMON: Fix DCL IMPLODE name by @sluicebox in #6551
- SCI: Merge and cleanup LZW decompressors by @sluicebox in #6550
- ALG: Initial version of American Laser Games engine by @dckone in #6500
- IMAGE: Get palette class by reference on image decoders by @OMGPizzaGuy in #6535
- JANITORIAL: Add missing references to const function parameters by @mikrosk in #6542
- SCUMM: Add workaround for missing smoke in MI1 VGA floppy lava maze by @eriktorbjorn in #6553
- 3DS: Fix top screen not fully rendering in some cases by @BallM4788 in #6544
- QDENGINE: Various fixes around older game versions by @ormanbai123 in #6517
- BACKENDS: MACOS: Fix various small warnings in macosx-audiocd.cpp by @dwatteau in #6477
- MTROPOLIS: Three new titles for detection (bug #15316) by @meekee7 in #6531
- QDENGINE: Add support for rgba8888 pixel format by @ormanbai123 in #6552
- ANDROID: Add a backup/restore feature by @lephilousophe in #6425
- QDENGINE: Fix Wswitch and Wcast-qual warnings by @ormanbai123 in #6560
- DIRECTOR: Fixes for Derrat Sorcerum by @moralrecordings in #6555
- AGS: Fix volume modifier not being respected by @leny100 in #6554
- SKY: Support Hebrew fan translation by @BLooperZ in #6562
- SCUMM: Add workaround for MI1 Sega CD clobbering bit variables by @eriktorbjorn in #6557
- DOCS: Fix some typos and style by @tunnelsociety in #6568
- MACGUI: Null pointer and empty chunks tests in mactext , change cursor restoration in getmaxwidth. by @dasbidyendu in #6538
- GRAPHICS: Fix TTF font caching by @leny100 in #6561
- QDENGINE: Fix sound related issues by @ormanbai123 in #6567
- CREATE_PROJECT: Use /diagnostics:caret for clearer MSVC warnings by @dwatteau in #6569
- BUILD: Use -Werror=return-type (and MSVC equivalent) by @dwatteau in #6570
- CREATE_PROJECT: Fix include order for cmake projects by @orgads in #6558
- VIDEO: QTVR: Add quality, warpMode and swing transition by @Malharbdv in #6548
- DIRECTOR: XTRA: Set origin for the QTVR decoder in QTVR Xtra by @Malharbdv in #6564
- DIRECTOR: Disable Movie Events while Alert is being shown by @Malharbdv in #6571
- ENGINES: Add detection table dumping for Glk and Scumm by @ShivangNagta in #6524
- COMMON: Improve Gentee Installer loader to support Schizm Japanese version by @elasota in #6572
- SCUMM: Mitigate errors when resuming CD audio after loading a savegame by @eriktorbjorn in #6573
- GUI: Fix integrity dialog freeze/update issue by @ShivangNagta in #6489
- GRAPHICS: Add palette constructor for ownership of data by @OMGPizzaGuy in #6525
- BACKENDS: OPENGL: Fix CLUT shader lookup by @lephilousophe in #6559
- SCI: Fix King's Quest IV demo crash by @eriktorbjorn in #6578
- SCUMM: MONKEY1: Make the Jolly Roger enhancement work on the floppy VGA release by @dwatteau in #6576
- TINYGL: Implement scissor test by @lephilousophe in #6575
- AUDIO: Remove rate parameter for Mod/XM/S3M and Universal Tracker streams by @ccawley2011 in #6581
- IMAGE: Improved support for QuickTime dithering by @ccawley2011 in #6580
- ENGINES: Deduplicate escapeString and fix unused-function warnings by @orgads in #6583
- BUILD: Support both $_host-peldd and peldd for mingw builds by @dwatteau in #6574
- SCUMM: Fix encoding of some message dialogs with
original_gui=falseby @dwatteau in #6577 - VIDEO: QTVR: Remove bug in QTVR while changing nodes by @Malharbdv in #6584
- SCUMM: Add some bounds-checking to o5_stringOps() (bug #15884) by @eriktorbjorn in #6586
- ANDROID: Extract doc outside of the assets folder by @lephilousophe in #6588
- ANDROID: Trigger an abort on error by @lephilousophe in #6589
- BACKENDS: OPENGL: Don't use HW CLUT8 lookup on low precision devices by @lephilousophe in #6587
- OPENGL: Use helper functions for endian-specific pixel formats by @ccawley2011 in #6590
- JANITORIAL: Fix some release build warnings by @orgads in #6592
- FREESCAPE: Support running with any pixel format with TinyGL by @ccawley2011 in #6597
- AWE: Another World engine by @dreammaster in #6556
- CREATE_PROJECT: Set RELEASE_BUILD also for cmake by @orgads in #6591
- CI: Save vcpkg cache even on build failure by @orgads in #6585
- IMAGE: Fix dithering 8bpp images when the container owns the palette by @ccawley2011 in #6594
- DIRECTOR: Ensure that GUI options are displayed for games that use them by @ccawley2011 in #6596
- AWE: Silence clang warnings by @einstein95 in #6598
- GOB: add new german variant of English Fever by @BJNFNE in #6600
- DIRECTOR: Fixes for Derrat Sorcerum by @moralrecordings in #6593
- TWP: FREESCAPE: Fix non-compliant GLSL by @chkuendig in #6602
- QDENGINE: Add 32bpp support to more drawing methods by @ormanbai123 in #6606
- GLK: do not clear screen when adding scrollback buffer + GLK: LEVEL9: add MSX entries, v1 and unknown variant support by @balyuf in #6609
- DRASCULA: Fix displaying accented characters by @criezy in #6612
- GRIM: Mark lua_error as noreturn by @orgads in #6615
- GRIM: Fix unused variable warning by @orgads in #6618
- GRIM: Suppress compiler warning on release build by @orgads in #6617
- DRASCULA: Add text-to-speech (TTS) by @ellm135 in #6526
- BASE: Fix MetaEngine leak in runGame by @tunnelsociety in #6619
- TSAGE: More accurate surface scaling and fixes for Blue Force by @antoniou79 in #6611
- SCI: Suppress GCC warnings on release builds by @orgads in #6616
- GOB: Adibou 2 / Sciences support by @sdelamarre in #6563
- AUDIO: Fix compiler warning on release build by @orgads in #6614
- SCUMM: Fix bad use of strncpy by @orgads in #6622
- GOB: fix o7_openTranslationDB typo by @BJNFNE in #6628
- JANITORIAL: Silence Compiler Warnings by @chkuendig in #6604
- SCUMM: INDY3: Backport FM-TOWNS lightning effect from Japanese release by @dwatteau in #6629
- SCUMM: Fix out-of-bounds charset error with some v0.13.x saves (Trac#15931) by @dwatteau in #6626
- GRIM: Fix failed assertion on font rendering with TinyGL by @orgads in #6631
- GRIM: LUA: Avoid unnecessary calls for empty string concatenation by @orgads in #6625
- CLOUD: Simplify Setup Wizard by @chkuendig in #6603
- DIRECTOR: Add Italian version of Masters of the Elements to detection table by @lotharsm in #6630
- GOB: Code comment improvements by @BJNFNE in #6633
- CONFIGURE: Remove needless condition for GCC version by @orgads in #6632
- TSAGE: BLUEFORCE: Fix submitting password text by @antoniou79 in #6613
- NANCY: ScummVM save/load menus and Nancy 8 fixes by @bluegr in #6599
- COMMON: Fix Unicode support in JSON by @chkuendig in #6601
- GOB: Detection improvements by @BJNFNE in #6635
- GOB: Fix SaveLoad_v7 initialization by @orgads in #6624
- NANCY: Don't change cursor over Help's Done button by @tunnelsociety in #6641
- GRAPHICS: Fix memory leaks in image archive by @leny100 in #6634
- EMSCRIPTEN: TTS: Add TTS based on Web Speech API by @chkuendig in #6636
- BUILD: Suppress stringop-overflow and stringop-truncation GCC warnings by @orgads in #6637
- BACKENDS: ATARI: Introduce AtariFilesystemNode by @mikrosk in #6621
- SCUMM: Initial work on the PowerPC version of Fate of Atlantis by @eriktorbjorn in #6623
- TESTBED: Small Improvements & Bugfixes by @chkuendig in #6605
- NANCY: Fix reset sound in SafeDialPuzzle by @tunnelsociety in #6654
- QDENGINE: Add support for adv minigames by @ormanbai123 in #6647
- QDENGINE: More fixes for older game versions by @ormanbai123 in #6655
- DIRECTOR: Add detection for The Official Guide to The Daedalus Encounter companion disc by @einstein95 in #6645
- SCUMM: Add small helpers for shorter/safer/clearer enhancement checks by @dwatteau in #6650
- DIRECTOR: Swedish edutainment games; Krakel ABC game and the Fem Myror demo from Hemglass by @BreakinBenny in #6652
- QDENGINE: Print more event types in human-readable form in XML scripts by @ormanbai123 in #6657
- SCI: Improve reg_t initialization sequence by @orgads in #6638
- GRIM: Use concrete types to avoid GCC warning by @orgads in #6620
- GRAPHICS: Disable filtering when scaling image to its original size by @leny100 in #6653
- GUI: Take out all the trash (fix memory leak) by @tunnelsociety in #6659
- QDENGINE: Fixes for Triangles minigame by @ormanbai123 in #6660
- MACGUI: Fix clicking on links in helpmenu by @leny100 in #6664
- QDENGINE: Bug fixes and small improvements by @ormanbai123 in #6668
- JANITORIAL: Fix MSVC macro redefinition warnings by @lephilousophe in #6663
- COMMON: Add error description for kMetaEnginePluginNotFound by @tunnelsociety in #6665
- STARK: Check for GL_MIRRORED_REPEAT before using it by @ccawley2011 in #6662
- GOB: use correct directories for ADI4 save files by @BJNFNE in #6672
- SCUMM: Fix MI1 storekeeper line being skipped (original script error) by @dwatteau in #6610
- BACKENDS: Merge 3D graphics managers with the 2D ones by @lephilousophe in #6651
- CREATE_PROJECT: Disable NDEBUG for cmake by @orgads in #6667
- BACKENDS: OPENGL: Fix getScreenFormat while running in 3D by @lephilousophe in #6675
- ENGINES: Replace glColor3*/glColorPointer calls with OpenGL ES compatible calls by @ccawley2011 in #6661
- SCI: Fix GCC warning by @orgads in #6674
- SHERLOCK: Use initGraphicsAny for 3DO screen resolutions by @ccawley2011 in #6671
- WINTERMUTE: Use common code for writing BMP files by @ccawley2011 in #6676
- WINTERMUTE: Reduce the number of surface copies when taking screenshots by @ccawley2011 in #6677
- WINTERMUTE: Avoid unneeded pixel format conversion for fadeToColor() by @ccawley2011 in #6678
- ULTIMA4: Replace Std::deque with Common::List by @ccawley2011 in #6683
- AUDIO: Fix order of Macintosh music types by @ccawley2011 in #6682
- BASE: Show error description when game fails to run by @tunnelsociety in #6666
- OPENGL: Add support for more pixel formats by @ccawley2011 in #6658
- QDENGINE: Improve performance for tiled animations by @ormanbai123 in #6680
- DIRECTOR: Fixes for transitions and sprite updates by @moralrecordings in #6648
- GUI: Remove RTL hack by @lephilousophe in #6679
- ULTIMA4: Replace Shared::File with Common::File by @ccawley2011 in #6686
- TEENAGENT: Add text-to-speech (TTS) by @ellm135 in #6566
- ULTIMA1: Embed the logo and flags bitmaps in the executable by @ccawley2011 in #6687
- ULTIMA: Split up the Debugger classes by @ccawley2011 in #6685
- DS: Support returning errors when switching to unsupported resolutions by @ccawley2011 in #6670
- DIRECTOR: use for "ein" uppercase for TKKG comments by @BJNFNE in #6689
- GOB: add comments for kScriptSourceFile files in demoplayer.cpp by @BJNFNE in #6690
- VIDEO: QTVR: Disabling warp mode 1 and minor changes by @Malharbdv in #6695
- VIDEO: QTVR: Fix hard coded maximum zoom value by @Malharbdv in #6694
- ULTIMA: Split up the UltimaEngine class by @ccawley2011 in #6692
- VIDEO: Fix audio lag and delayed playback start in MPEG videos by @ormanbai123 in #6579
- MADE: Split up the music player class to support other platforms by @ccawley2011 in #6681
- BACKENDS: OPENGL: Fix rendering issues in 3D games when antialiasing is enabled by @lephilousophe in #6702
- XEEN: Fix protection from elements spell by @leny100 in #6703
- GUI: Fixes and cleanup when removing games by @sluicebox in #6701
- VIDEO: MPEGPS: Handle packets with invalid pts when offsetting by @ormanbai123 in #6707
- DOCS, CI: Update build instructions using v4 libs by @larsamannen in #6708
- Fix several issues with the GroupedListWidget by @criezy in #6704
- WINTERMUTE: Reduce direct access to surface pixel buffers by @ccawley2011 in #6696
- AWE: Add detection entry for Amiga version by @eriktorbjorn in #6712
- AUDIO: Remove obsolete note-to-track mapping and fix mTropolis usage of it by @elasota in #6713
- ULTIMA8: Add imgui debug tools with item stats window by @OMGPizzaGuy in #6705
- WINTERMUTE: Remove unused blank surface by @ccawley2011 in #6714
- AGS: Update detection for The Crimson Diamond by @Deledrius in #6719
- WINTERMUTE: Replace drawLine() with fillRect() for drawing indicators by @ccawley2011 in #6721
- SLUDGE: Support extended saves by @ormanbai123 in #6688
- BACKENDS: Fix screen rotation by @lephilousophe in #6699
- GRAPHICS: Add variants of Font::drawChar that preserve the alpha channel by @ccawley2011 in #6720
- SLUDGE: Add keymapper support by @aunnoman1 in #6693
- SLUDGE: Add an initial Debugger implementation for dumping resources by @ccawley2011 in #6726
- SLUDGE: Support MP3 sound files by @ccawley2011 in #6727
- WINTERMUTE: Set pixels matching the colour key to black in the the 2D renderer by @ccawley2011 in #6724
- CREATE_PROJECT: Add SDL3 backend by @SupSuper in #6698
- DIRECTOR: Fixes for D5 by @moralrecordings in #6711
- WINTERMUTE: Fix shader compilation with OpenGL ES 2 by @ccawley2011 in #6729
- WINTERMUTE: File loading improvements by @ccawley2011 in #6728
- LASTEXPRESS: Rewrite and finish the engine by @AndywinXp in #6716
- WINTERMUTE: Move alpha mask handling into the renderer classes by @ccawley2011 in #6725
- OPENGL: Fix copy/paste error with ABGR1555 pixel format by @ccawley2011 in #6738
- WINTERMUTE: Support invalidating surfaces with the 2D renderer by @ccawley2011 in #6731
- MADE: Rename Manhole TeraDrive version to DOS/V by @einstein95 in #6740
- Bump urllib3 from 2.4.0 to 2.5.0 in /doc/docportal by @dependabot[bot] in #6743
- GRAPHICS: Add helper functions for creating endian-independent formats by @ccawley2011 in #6739
- LASTEXPRESS: Add InstallShield archive reader by @eriktorbjorn in #6746
- GRAPHICS: Add ManagedSurface::blendBlitFrom to match other functions by @ccawley2011 in #6697
- WAGE: Add text-to-speech (TTS) by @ellm135 in #6669
- SUPERNOVA: Add keymapper support by @aunnoman1 in #6709
- VOYEUR: Add keymapper support by @aunnoman1 in #6715
- ULTIMA: Reduce differences with common String and Array classes by @ccawley2011 in #6684
- TEENAGENT: Fix Russian TTS encoding by @ellm135 in #6722
- CRUISE: Add text-to-speech (TTS) by @ellm135 in #6710
- ENGINES: Set boolean uniforms using integer calls for AmigaOS 4 by @ccawley2011 in #6730
- AWE: Implement playSfxMusic by @scemino in #6733
- AGI: Fix "choppy" sound on PCjr on fast notes by @SinusPi in #6736
- BLADERUNNER: Simplify pixel format selection by @ccawley2011 in #6734
- AWE: Use RGB555 for 3DO graphics by @ccawley2011 in #6735
- CRAB: Support additional pixel formats by @ccawley2011 in #6749
- COMMON: Remove always-true asserts on base string by @OMGPizzaGuy in #6753
- WINTERMUTE: Use setOutputPixelFormat when loading JPEG images by @ccawley2011 in #6755
- SLUDGE: Add four other versions of cubert to detection table by @ormanbai123 in #6756
- ULTIMA8: Replace quick mover keys with a toggle to override normal directional movement by @OMGPizzaGuy in #6758
- WINTERMUTE: Combine detecting alpha transparency with applying the colour key by @ccawley2011 in #6762
- DEVTOOLS: dumper_companion - Numerous fixes and cleanups by @einstein95 in #6717
- WAGE: Various bug fixes and detection for more games by @ormanbai123 in #6757
- CRUISE: Fix TTS encoding, empty text queuing, and logo speech by @ellm135 in #6752
- GRAPHICS: Add a ManagedSurface function for filling surfaces with blending by @ccawley2011 in #6751
- PSP2: Remove psp2shell dependency by @Aztorius in #6763
- GRAPHICS: Use fixed point arithmetic in scaleBlit by @ccawley2011 in #6765
- TITANIC: Add keymapper support by @aunnoman1 in #6745
- CI: Fix libmpeg2 vcpkg source by @bluegr in #6767
- AGI: add --pcjr-noise option to set shift register by @SinusPi in #6754
- COMMON: set EVENT_MAX for EventType to force size by @Aztorius in #6768
- I18N: Normalize keymapper action descriptions by @aunnoman1 in #6759
- DIRECTOR: Fixes for D5 by @moralrecordings in #6747
- DIRECTOR: Start saving Director movies by @Malharbdv in #6769
- DIRECTOR: Remove unnecessary chunk.h file by @Malharbdv in #6776
- BUILD: enable ARM NEON on PSP2 by @Aztorius in #6781
- ENGINES: Make more use of endian-safe pixel formats by @ccawley2011 in #6748
- BLADERUNNER: Wait with framelimiter in OuttakePlayer::play() by @Aztorius in #6723
- NGI: Add keymapper support by @aunnoman1 in #6780
- FREESCAPE: Reduce pixel format conversion when loading images by @ccawley2011 in #6744
- AWE: Add Italian strings for Amiga version, updates to detection table by @tag2015 in #6771
- DIRECTOR: Fix Palette Duplication by @Malharbdv in #6788
- DIRECTOR: Fixes for Cracking the Conspiracy by @moralrecordings in #6774
- TESTBED: Fix broken tests and non-interactive mode by @chkuendig in #6789
- AWE: Enable EGA/VGA renderer selection for DOS version by @tag2015 in #6786
- DEVTOOLS: CREATE_LURE: Support generation of Russian lure.dat by @ormanbai123 in #6764
- GRAPHICS: Support scaling 24bpp surfaces by @ccawley2011 in #6792
- AGS: Fix displaying thumbnails in the ScummVM GUI by @ccawley2011 in #6784
- GUI: Support CLUT8 surfaces in graphical widgets by @ccawley2011 in #6791
- BACKENDS: OPENGL3D: Fix builds with USE_FORCED_GLES and without USE_GLAD by @chkuendig in #6790
- GRAPHICS: Add fast paths for converting between 32-bit pixel formats by @ccawley2011 in #6760
- DIRECTOR: Save Cast Config and cast member info ('CASt') by @Malharbdv in #6787
- IOS7: Don't override DefaultSaveFileManager::removeSavefile by @lephilousophe in #6782
- WAGE: Add more titles to detection table by @ormanbai123 in #6800
- QDENGINE: Add support for punycode by @ormanbai123 in #6802
- TETRAEDGE: Add keymapper support by @aunnoman1 in #6750
- ADL: Add text-to-speech (TTS) by @ellm135 in #6785
- TEENAGENT: Add language support for Polish, Czech and Russian versions by @ormanbai123 in #6798
- GOB: sync entry of German translation of Croustibat by @BJNFNE in #6766
- GRAPHICS: Set hwFormat as first supported format in surfacesdl by @Aztorius in #6775
- TEENAGENT: Add keymapper support by @aunnoman1 in #6772
New Contributors: Welcome!
- @malignantmanor made their first contribution in #6329
- @VladDoc made their first contribution in #6376
- @Player701 made their first contribution in #6403
- @cmd05 made their first contribution in #6404
- @l0ud made their first contribution in #6410
- @NigeNigeNige made their first contribution in #6406
- @naatje80 made their first contribution in #6429
- @nniro made their first contribution in #6448
- @stevenjamescox made their first contribution in #6453
- @akramhany made their first contribution in #6455
- @rinevard made their first contribution in #6465
- @WinterSun23 made their first contribution in #6436
- @harsh-kulkarni-05 made their first contribution in #6487
- @Nasir-Bilal made their first contribution in #6493
- @jpres27 made their first contribution in #6509
- @For-Chance made their first contribution in #6527
- @mbreskovec made their first contribution in #6519
- @TusharGautam29 made their first contribution in #6514
- @dckone made their first contribution in #6500
- @dasbidyendu made their first contribution in #6538
- @ShivangNagta made their first contribution in #6524
- @balyuf made their first contribution in #6609
- @BreakinBenny made their first contribution in #6652
- @SinusPi made their first contribution in #6736
Full Changelog: v2.9.1...v2026.1.0