aboutsummaryrefslogtreecommitdiff
path: root/engines/wintermute
AgeCommit message (Collapse)Author
2019-07-02WINTERMUTE: Add detection for 6 more Carol Reed demoslolbot-iichan
Also fixes https://bugs.scummvm.org/ticket/11005
2019-07-02WINTERMUTE: Reorder Carol Reed detection recordslolbot-iichan
On undetected game user gets message like this: ``` Matched game IDs for the Wintermute engine: actualdest-win, basisoctavus-win-cz, agustin-win, bthreshold-win, bickadoodle-win, bookofgron-win-ru, carolreed4-demo-win, carolreed5-win, carolreed6-win, carolreed7-demo-win, carolreed8-win, carolreed9-win, carolreed10-win, carolreed11-win, carolreed12-win, carolreed13-win, carolreed14-win, chivalry-win, corrosion-win, deadcity-win-cz, dfafadventure-win, dirtysplit-win, dreaming-win, driller-win, ... ``` It's confusing that some carolreed games are mentioned as demos and some are not. Fixed this by reordering them.
2019-06-30COMMON & WINTERMUTE: Use non-1252 for 125X games (PR 1698)lolbot-iichan
* WINTERMUTE: Add detection for "The Driller Incident" "The Driller Incident" is a small freeware game for Wintermute, avaliable in English and Russian: http://questzone.ru/enzi/files/1645 * WINTERMUTE: Add detection table for "One Helluva Day" demo "One Helluva Day" is a point-and-click adventure demo in English / Czech / Russian. Free download: https://store.steampowered.com/app/603680/One_helluva_day/ * WINTERMUTE: Support CHARSET property for TT fonts "// we don't need this anymore" was a mistake =) Surely, most Wintermute games are either designed for 1252 language (DE_DEU, EN_ANY, ES_ESP, FR_FRA, IT_ITA, PT_BRA), or don't use TrueType fonts (5ma, deadcity, grotter1, grotter2, thekite, tib), or use CHARSET=1 with UTF strings (dirtysplit, reversion1, reversion2, twc), which meen this conversion is not needed for those games. However, there are some games that explicitly states CHARSET=10 (driller (RU_RUS), oknytt (RU_RUS), onehelluvaday (UNK_LANG when playing as Russian)) and there are some games with CHARSET=1 with non-1252 in mind (bookofgron (RU_RUS excepts 1251), carolreed4 (RU_RUS excepts 1251), kulivocko (CZ_CZE excepts 1250)). This fixes text in some games: bookofgron, carolreed4, driller, kulivocko, oknytt, onehelluvaday. * WINTERMUTE: Break savegame compatibility sizeof(BaseFontTT) was changed, so let's break savegame compatibility * COMMON: Add conversion tables for win1253 and win1257 * COMMON: Add string conversion from U32String back to Common::String convertUtf32ToUtf8 code is based on Wintermute::ConvertUTF32toUTF8 convertFromU32String use convertUtf32ToUtf8 for UTF8 or lookup through conversion table for single-byte encodings * WINTERMUTE: Use Common::convert functions for non-UTF charsets * WINTERMUTE: Fix whitespaces at detection tables * WINTERMUTE: Add TODO comments
2019-06-30WINTERMUTE: Increase window title height by 1 for "5 Lethal Demons" gamelolbot-iichan
For some reason getFontHeight() is off-by-one comparing to height set in TITLE_RECT, which made text being bigger then title rect and drawing was skipped. This fixes https://bugs.scummvm.org/ticket/6501
2019-06-27WINTERMUTE: Do not optimize out alpha blits on rotationlolbot-iichan
This fixes defect #10684: 1-pixel width sprite becomes a big rectangle if rotation is applied. Case was originally reproduced with FoxTail game for WME, then reduced to testcase https://github.com/tobiatesan/wme_testsuite/tree/master/time_test/packages
2019-06-26WINTERMUTE: Implement Game.OpenDocument() methodlolbot-iichan
Game.OpenDocument() is used to open links for developer's site or social account in games like hellavuday, 5ld, etc.
2019-06-25WINTERMUTE: Add lots of entries to detection table and refactor handling of ↵lolbot-iichan
localization packages * WINTERMUTE: Add detection for unsupported "Basis Octavus" game This game is not supported by ScummVM, because it's 2.5D. However, there are already other 2.5D games in detection table and the intent is to add all known games, and support 2.5D in ResidualVM later. * WINTERMUTE: Add detection for Alimardan dilogy "Alimardan's Mischief" and "Alimardan Meets Merlin" are games by Iranian developer Resana Shokooh Kavir (http://rskgd.com/) It seems that Persian versions also exist, I'll surely look at it later: https://www.digikala.com/product/dkp-75901 There were 2 steam releases for alimardan1: https://steamdb.info/depot/694421/manifests/ There was only one steam release of alimardan2: https://steamdb.info/depot/694431/manifests/ * WINTERMUTE: Add detection for Oknytt 1.12 Oknytt had 2 steam releases (1.12 and 1.13): https://steamdb.info/depot/286321/manifests/ I have downloaded 1.12 and added detection. * WINTERMUTE: Add empty strings between detection table lines * WINTERMUTE: Add detection for Steam versions of reversion1 for Windows Source: https://steamdb.info/depot/270572/manifests/ * WINTERMUTE: Add detection for Steam version of reversion1 for Linux Source: https://steamdb.info/depot/270571/manifests/ * WINTERMUTE: Fix localization loading for Mac and Linux Mac and Linux builds of reversion1 & reversion2 does not have any "languages" folders. So, we need to filter those files according to filenames too. Once there is such filtering, there is no need for this overspecific hack for revision1's xlanguage_pt.dcp. * WINTERMUTE: Add detection for Steam versions of reversion2 for Windows Source: https://steamdb.info/depot/281061/manifests/ * WINTERMUTE: Language packages priority for Linux & Mac * WINTERMUTE: Add detection for Steam versions of reversion2 for Linux Source: https://steamdb.info/depot/281062/manifests/ * WINTERMUTE: Add detection for Steam versions of reversion2 for Mac Source: https://steamdb.info/depot/281063/manifests/ * WINTERMUTE: Add detection for Steam versions of reversion1 for Mac Source: https://steamdb.info/depot/270573/manifests/ * WINTERMUTE: Add detection for old Desura versions of reversion2 Source: https://bugs.scummvm.org/ticket/6564 * WINTERMUTE: Add detection for Spanish versions of reversion1&2 As was shown by windlepoons, xlanguage_* contains additional translation package, while data.dcp contains original translation (which is Spanish). So, even without owning those old releases of reversion1&2, I can wrote detection tables for them by not looking for any "xlanguage_*.dcp" file. However, we shouldn't use WME_ENTRY1s for Spanish, because advanced detector say "new best match, removing all previous candidates" once it hit a WME_ENTRY2s. Instead, let's just look for data.dcp twice to give user a choice of several WME_ENTRY2s. Lor Linux, it's WME_ENTRY3s. * WINTERMUTE: Filter language packages ignoring folder name There are 4 types of multilang games: 1. Each installation contain a data.dcp package (same for all languages) + an additional language package. Other localization packages are not installed. Those games are: "Helga Deep In Trouble", "Dirty Split", "Looky". 2. Each installation contain a data.dcp package (same for all languages) + a folder with all localization packages + a single "selected" language package copied to main folder. "xlanguage_" prefix is usual for reversion series. Other games usually use "english.dcp", "spanich.dcp", "czech.dcp", etc. Those are: "Five Lethal Demons", "Five Magical Amulets", "Dead City", "Oknytt", "Reversion: The Escape", "Reversion: The Meeting". 3. All localizations are inside data.dcp all-together. Those are: "One Hellavu Day", "The White Chamber" and "James Peris: No License Nor Control". 4. Different data.dcp build for each language. All other known games are here. This code covers all known filenames for localization packages and provide several guessworks for ignoring all irrelevant localization packages. * WINTERMUTE: Add localization detection for Five Lethal Demons * WINTERMUTE: Tweak detection for Dead City (Czech) "english.dcp" is not required to play Dead City in Czech language, so we don't need to detect it * WINTERMUTE: Add detection table for Looky in English I got English version here: https://bullshit-softworx.itch.io/looky-adventure * WINTERMUTE: Add detection for Czech versions of Helga "english.dcp" happen to be optional
2019-06-25WINTERMUTE: Add workaround for sprite glitch at Rosemary gamelolbot-iichan
This kind of fixes https://bugs.scummvm.org/ticket/6572 WME: Rosemary - Sprite flaw on going upwards Some Rosemary sprites have non-fully transparent background pixels, sprites of walking up has LOTS of them. Testing Rosemary walking character in a test WME game demonstrates some glitches with original WME as well. However, character sprite is downscaled most of time, and with original WME it isn't that seen when sprite is downscaled. This pull request provides a workaround for this case instead of changing downscaling algorithms: * if game ID is "rosemary" * if loaded sprite is from "actors" folder * if bytesPerPixel is 4 * if some pixel's alpha is between 1 and 15 * set this pixel's alpha to 0
2019-06-25WINTERMUTE: Add comments + warning() for IsKeyDown() methodlolbot-iichan
2019-06-25WINTERMUTE: Add more details in openDiskFile() commentlolbot-iichan
2019-06-25WINTERMUTE: Add debugN + comment for getNumScripts()lolbot-iichan
2019-06-25WINTERMUTE: Support even more keycodes at IsKeyDown()lolbot-iichan
2019-06-25WINTERMUTE: Handle enum in GetNumScriptslolbot-iichan
This code is used only in debug mode and only to display some script counters. States are handled in the very same way in WME Lite, so there is no reason to log tons of warning here.
2019-06-25WINTERMUTE: Fix IsKeyDown to work with ASCIIlolbot-iichan
Tanya Grotter series has a cheat, that is triggered with (Keyboard.IsKeyDown("A") && Keyboard.IsControl && Keyboard.IsAlt && Game.DebugMode) condition. vKeyToKeyCode(97) would produce a warning message, fixed this.
2019-06-25WINTERMUTE: Hardcode known path prefix for tanya2lolbot-iichan
Missing path is "d:\engine\ТГ2\tg_ie_080128_1005\data\interface\pixel\pixel.png" from scenes\code\episode_01\scene_comics_1\scene_comics_1.scene
2019-06-25WINTERMUTE: Detection tables for Tanya Grotter dilogylolbot-iichan
Tanya Grotter games are based on first 2 books of a Russian fantasy novel series by Dmitri Yemets. Those games were both released in Russian only.
2019-06-20WINTERMUTE: Add detection for Carol Reed Mistery 4 (RUS)lolbot-iichan
Carol Reed 4 was published in Russia by "Cd Navigator": http://www.cdnavigator.ru/Game.aspx?id=184
2019-06-18WINTERMUTE: Fix Split() method of ext_stringlolbot-iichan
It's hard to believe, but this fixes bug "#10432" WME Carol Reed Mysteries hint system not working. Carol Reed hint system happen to heavily use line.Split(";") results, which were wrong by 1 byte (delimeter was appended to result while it shouldn't be). I started with decompiling Carol Reed source code, reproducing issue with a stand-alone test project (which worked with WME and showed [null] with ScummVM). then minimized it to a minimal testcase: var line = new String("New Goal;Visit Christina at the Art Museum;1;0;S;;"); var ar = line.Split(";"); if((ar[0] == "New Goal")) { var g = ar[1]; }
2019-06-17WINTERMUTE: Add detection for games listed in #10863lolbot-iichan
This pull request adds all games listed in https://bugs.scummvm.org/ticket/10863: // Carol Reed 10 - Bosch's Damnation // Carol Reed 11 - Shades Of Black // Carol Reed 12 - Profound Red // Carol Reed 13 - The Birdwatcher // Carol Reed 14 - The Fall Of April // Rebecca Carlson Mystery 01 - Silent Footsteps // Corrosion: Cold Winter Waiting (Enhanced Edition) // Rhiannon: Curse of the four Branches (Premium Edition) I don't have those games, so I can't check if those sums are correct.
2019-06-17WINTERMUTE: Fix Hamlet title, add one more detection variantlolbot-iichan
Actual name of "hamlet" is "Hamlet or the last game without MMORPG features, shaders and product placement". Fixed misprint in word "MMORPG". Also added one more Hamlet version from https://bugs.scummvm.org/ticket/10980. My version has another checksum, so I can't test it.
2019-06-17WINTERMUTE: Add another variant of White Chamber to detection tablelolbot-iichan
Official downloads page for the White Chamber (http://www.studiotrophis.com/site/downloads) contains 2 links: 1. Download from IndieDB (thewhitechamber1.7SETUP.exe, 376180149 bytes) (built 2008.06.29, installed game is detectable by ScummVM) 2. Direct Download (thewhitechamber1.7SETUP - Definitive Edition.exe, 376180083 bytes) (built 2008.06.26, installed game is unknown to ScummVM) Both version are called "v1.7 - Definitive Edition". speech.dcp is different: "german/COMPUT050.ogg" was renamed to "german/COMPUT050.ogg" data.dcp & language.dcp content is the same for those versions, except for timestamps (Wed, 25 Jun 2008 21:01:32 GMT vs Sun, 29 Jun 2008 19:36:33 GMT) Several questions: 1. Is it alright to list those builds as Common::UNK_LANG ? Should we change this to 9 records for exact langs: Common::EN_ANY, Common::FR_FRA, Common::IT_ITA, Common::DE_DEU, Common::CZ_CZE, Common::RU_RUS, Common::GR_GRE, Common::PT_POR, Common::PL_POL? 2. Should we provide a fix for "german/COMPUT050.ogg" lookup in version that was built 2008.06.26 or this must be kept as is?
2019-06-09WINTERMUTE: Add missing comment line for new rhiannon demoLothar Serra Mari
2019-06-09WINTERMUTE: Add detection entries for reported rhiannon demosLothar Serra Mari
closes #10972 closes #10973
2019-06-06WINTERMUTE: Show warning on running 2.5D gameslolbot-iichan
This is shown for the 2 games added in 0d8834b5616aa8fc936c750ed92ef4423610d641, as both of them use ACTOR3DX entities, i.e. 3D models, which are not supported in ScummVM
2019-06-04WINTERMUTE: Janitorial edits at detection tablelolbot-iichan
2019-06-04WINTERMUTE: Add detection tables for thekite v1.4lolbot-iichan
You can get the Kite v1.4 at https://anatolii.itch.io/the-kite The Kite v1.5 is remade with Unity engine, so only v1.4 or lower are supported
2019-05-27WINTERMUTE: Remove unused variableFilippos Karapetis
2019-05-18WINTERMUTE: Fix fill rect area on endSaveLoad()lolbot-iichan
2018-12-25WINTERMUTE: Attempt to load fallback fonts from fonts.datCameron Cawley
2018-11-25WINTERMUTE: Add hashes to Zbang! and Pizza MorganaMatan Bareket
These are two never quite finished Israeli games. Zbang can be downloaded at: http://www.corbomitegames.com/zbang/download.php Pizza Morgana can be downloaded at: http://pizza-morgana.com/download
2018-09-16WINTERMUTE: Flush ConfMan to disk on every change (#1314)lolbot-iichan
* WINTERMUTE: Flush ConfMan to disk
2018-08-23WINTERMUTE: Check keyboard state array indexlolbot-iichan
vKeyToKeyCode() method was unsafe if vkey >= KEYSTATES_ARRAY_SIZE was provided, fixed
2018-08-23WINTERMUTE: Support more key codes for mappinglolbot-iichan
some keypresses were producing warnings because key codes were not listed in mappings, added more key codes
2018-08-23WINTERMUTE: Fix printable flag for keyboard statelolbot-iichan
_currentPrintable was set depending on _currentCharCode, which is 112 for both F1 and 'p' keys, fixed after detailed research on which keys should be considered printable
2018-08-17JANITORIAL: Removing trailing spaces after int castsPaul Gilbert
2018-07-29WINTERMUTE: Return Common::kUnsupportedColorMode if the required screen ↵Cameron Cawley
format is unavailable
2018-07-03WINTERMUTE: Use degree conversion common math funcsDavid Fioramonti
2018-05-28Merge pull request #1187 from bgK/detection-refactor-unknownBastien Bouclet
ENGINES: Return unknown game variants with the list of detected games
2018-05-20WINTERMUTE: Update deg2rad usageDavid Fioramonti
2018-05-19WINTERMUTE: Properly fix handling of Ogg Vorbis resourcesAdrian Frühwirth
2018-05-19WINTERMUTE: Fix loading Vorbis filesCameron Cawley
Fixes Trac#10533
2018-05-17WINTERMUTE: Add flag for games using low-spec resources.JenniBee
2018-05-10ENGINES: Add unknown game variants to the game detector resultsBastien Bouclet
2018-05-07JANITORIAL: Fix indentationAdrian Frühwirth
2018-05-01WINTERMUTE: Push down the AD includesBastien Bouclet
2018-04-19JANITORIAL: Fix whitespaceAdrian Frühwirth
2018-04-15JANITORIAL: Indent GFXTransaction code blocksAdrian Frühwirth
2017-10-07ENGINES: Remove default1x scaler flagColin Snover
This flag is removed for a few reasons: * Engines universally set this flag to true for widths > 320, which made it redundant everywhere; * This flag functioned primarily as a "force 1x scaler" flag, since its behaviour was almost completely undocumented and users would need to figure out that they'd need an explicit non-default scaler set to get a scaler to operate at widths > 320; * (Most importantly) engines should not be in the business of deciding how the backend may choose to render its virtual screen. The choice of rendering behaviour belongs to the user, and the backend, in that order. A nearby future commit restores the default1x scaler behaviour in the SDL backend code for the moment, but in the future it is my hope that there will be a better configuration UI to allow users to specify how they want scaling to work for high resolutions.
2017-08-06JANITORIAL: Silence more GCC 7 warningsTorbjörn Andersson
All these fall through were marked as deliberate, so again I've only changed the comment to silence GCC.
2017-07-10Revert "COMMON: Change way the Singleton instances are instantiated"Eugene Sandulenko
This reverts commit eefa72afa1978a9dea10f5b1833fcc8f58a3468e. With this patch ConfigManager is broken.