Commit Graph

1241 Commits

Author SHA1 Message Date
aviloria
e293ef0ed5 WINTERMUTE: Fix detection for Chinese reversion2
WINTERMUTE: Fix detection for Chinese reversion2

Current "data.dcp" infromation is from reversion1 and not from reversion2 game... surely a C&P mistake
2019-08-06 20:56:47 +02:00
D G Turner
47811167d5 WINTERMUTE: Fix GCC Compilation Warnings
Have commented out rather than removed the lines causing unused variable
warnings as they might be used again in future.
2019-07-24 20:59:31 +01:00
lolbot-iichan
02eb33f83f WINTERMUTE: Add detection for Italian demo of On the Tracks of Dinosaurs
NOTE: This is a 2.5D game that is out of ScummVM scope

Developer's Download page states that there are EN/RU/IT versions:
http://reptilesquest.000webhostapp.com/index.php?page=5
However, rq_demo_beta25_multilang.exe allows to select only EN/RU.
italian.dcp can be extracted from rq_demo_beta25_multilang.exe using any
tool for Inno Setup installer.
2019-07-22 07:56:13 +03:00
lolbot-iichan
4e16711e47 WINTERMUTE: Fix misprint in "mentalrepairs" ID 2019-07-22 00:15:07 +03:00
lolbot-iichan
c593159dd8 WINTERMUTE: Fix language selection regression bug for Reversion
Ooops. Latest refactoring of those if/else blocks was wrong, as a result
Reversion 1&2 ignored all the xlanguage packages. Fixed.
2019-07-22 00:15:07 +03:00
lolbot-iichan
695a671798 WINTERMUTE: More detection records (#1758)
* WINTERMUTE: Add detection and package filtering for Alpha Polaris

Source: https://steamdb.info/app/405780/depots/
NOTE: This is a 2.5D game that is out of ScummVM scope

* WINTERMUTE: Set exact engine version for Project Joe

Download:
http://public.ag.ru/vd/3f983a3b5daf485f6559e7ca1380e47b/demos/14118/joesetup.exe
This also fixes slider issue at Settings menu, since LATEST_VERSION has
sliders broken

* WINTERMUTE: Add detection for Everyday Grey

Fixes https://bugs.scummvm.org/ticket/6563
NOTE: This game seems to be mistakenly marked as 2.5D at Wintermute wiki
Download:
https://web.archive.org/web/20140824221311if_/http://www.krumbukt.com/UnityGames/Everyday_Grey_setup.rar

* WINTERMUTE: Add detection for Apeiron game

Download: https://www.moddb.com/games/apeiron

* WINTERMUTE: Add detection for Palladion demo

Download:
http://www.adventuresplanet.it/contenuti/demo/palladion_demo.exe

* WINTERMUTE: Add detection for Art of Murder: FBI Confidential

Adds checksums from https://bugs.scummvm.org/ticket/6532
NOTE: This is a 2.5D game that is out of ScummVM scope
Buy: https://store.steampowered.com/app/809000

* WINTERMUTE: Add detection for Mental Repairs Inc

This fixes https://bugs.scummvm.org/ticket/6528
Download:
https://games.softpedia.com/get/Freeware-Games/Mental-Repairs-Inc.shtml
NOTE: This is a 2.5D game that is out of ScummVM scope

* WINTERMUTE: Add detection for On the Tracks of Dinosaurs

NOTE: This is a 2.5D game that is out of ScummVM scope
Download: http://reptilesquest.000webhostapp.com/?page=5

* WINTERMUTE: Set engine version for J.U.L.I.A.

Fun fact: J.U.L.I.A. is using 3D features, however this game was
reported as completable with VFX low
Download demo:
http://www.adventuresplanet.it/contenuti/demo/julia_demo_setup.exe

* WINTERMUTE: Add detection for some versions of J.U.L.I.A.: Among the Stars

NOTE: This is a 2.5D game that is out of ScummVM scope

* WINTERMUTE: Add detection for J.U.L.I.A.: Untold

"J.U.L.I.A.: Untold" is a DLC game for "J.U.L.I.A.: Among the Stars"

Buy:
https://store.steampowered.com/app/360340/JULIAAmong_the_Stars__Soundtrack_Hintbook_Untold/
2019-07-21 09:04:41 +03:00
lolbot-iichan
ea98335f2d WINTERMUTE: Support CHARSET_TURKISH at StringUtil 2019-07-21 08:51:11 +03:00
lolbot-iichan
a385172995 WINTERMUTE: Update Carol Reed series engine versions
Thanks to Albadross for collecting those versions:
https://bugs.scummvm.org/ticket/10863
2019-07-20 01:49:33 +03:00
lolbot-iichan
0781584dfc WINTERMUTE: Suppress warning on Directory.Create() for Hamlet 2019-07-16 20:24:42 +03:00
lolbot-iichan
ed635a5b01 WINTERMUTE: Fix File.WriteText method
Removed unnecessary '\0' byte written after a string. Reasons to remove:

1. Hamlet game does not write 0 after string when running this code:
var SomeFile = new File((Game.SaveDirectory + "\gamelet.save"));
SomeFile.OpenAsText(2);
SomeFile.WriteText(LVL_N);
SomeFile.Close();

2. Original WME does not have this:

https://github.com/retrowork/Wintermute-Engine/blob/master/src/engine_core/wme_base/SXFile.cpp#L303
2019-07-16 20:24:42 +03:00
lolbot-iichan
614dfdfbe3 WINTERMUTE: Implement loading files using SavefileManager 2019-07-16 20:24:42 +03:00
lolbot-iichan
9eca2b4c54 WINTERMUTE: Implement saving files using SavefileManager 2019-07-16 20:24:42 +03:00
lolbot-iichan
a96d127b1f WINTERMUTE: Fix assertion in Hamlet game
Assertion was caused by providing "saves/" prefixed string to
WindowsFilesystemNode::getChild() function, that asserts on '/'
characters.

Wintermute game code:
if(!(Game.FileExists((Game.SaveDirectory + "\gamelet.save")))) {
Directory.Create(Game.SaveDirectory);
}
...

Assertion stack:
from C:\WINDOWS\System32\KernelBase.dll
from C:\WINDOWS\System32\msvcrt.dll
(this=0xcfdf710,
n=...) at backends/fs/windows/windows-fs.cpp:158
n=...)
at common/fs.cpp:68
(filename=...)
at engines/wintermute/base/file/base_disk_file.cpp:76
at engines/wintermute/base/file/base_disk_file.cpp:105
this=0x50795e0, filename=...)
at engines/wintermute/base/base_file_manager.cpp:326
(this=0xcea72f0,
script=0xcf657d0, stack=0xcf6a2e0, thisStack=0xcf69ee0,
name=0xcfd8870 "FileExists") at
engines/wintermute/base/base_game.cpp:1523
...
2019-07-16 20:24:42 +03:00
lolbot-iichan
4bb82a8dae WINTERMUTE: Add dummy implementation of Directory global object
Source:
http://docs.dead-code.org/wme/generated/scripting_ref_directory.html
2019-07-16 20:24:42 +03:00
lolbot-iichan
64406b09a8 WINTERMUTE: Add detection tables for all non-English versions of Hamlet
Source: https://steamdb.info/app/222160/depots/
2019-07-16 20:24:42 +03:00
Filippos Karapetis
71a9def71e WINTERMUTE: Add a warning for off-by-one errors in normalizeAngle() 2019-07-14 14:28:40 +03:00
kyranet
212cd5aa78 WINTERMUTE: Fixed normalizeAngle's output range from 0-360 to 0-359
WINTERMUTE: Enhanced BaseUtils::normalizeAngle to run the while if angle is greater than 359.

When normalizing an angle, we expect the number to be between 0 and
359 (since 360 is 0), this changes the util so 360 is transformed to 0.
The case for 359.8 (which this would make it -0.2) is covered by the following
while loop, which will increase it back to 359.8.
2019-07-14 13:57:18 +03:00
lolbot-iichan
290962ba92 WINTERMUTE: Huge update of detection tables (#1748)
* WINTERMUTE: Add all changelog engine versions to enum

Source: http://docs.dead-code.org/wme/history.html

* WINTERMUTE: Fixed name and update detection for Satan and sons

Download:
http://www.freegamearchive.com/play/download/game/satan_and_sons.zip

* WINTERMUTE: Update detection for Five Lethal Demons

Download:
http://web.archive.org/web/20070705114336if_/http://dead-code.org/5ld/5ld_setup.exe

* WINTERMUTE: Update detection for Five Magical Amulets

Download:
http://web.archive.org/web/20070505233127if_/http://www.nacht-und-nebel.org/download/fma.exe
Download:
http://www.flint.cba.pl/fusion_7/downloads.php?cat_id=1&download_id=1
Download: http://dead-code.org/5ma/5ma_deutsch.exe

* WINTERMUTE: Update detection for Actual Destination

Download:
http://web.archive.org/web/20111121174804/http://mrburns.tks.bth.se/ds/ds08/magv08/Actual%20Destination.rar

* WINTERMUTE: Update detection for Boredom of Agustin Cordes

Download: http://www.cbe-software.com/Games/Boredom/setup_boredom.exe

* WINTERMUTE: Update detection for Alimardan's Mischief

Buy: https://store.steampowered.com/app/694420/Alimardans_Mischief/

* WINTERMUTE: Update detection for Alimardan Meets Merlin

Buy: https://store.steampowered.com/app/694430/Alimardan_Meets_Merlin/

* WINTERMUTE: Update detection for Beyond the Threshold

Download: http://www.nacht-und-nebel.org/pcg/BeyondTheTreshold.zip
NOTE: This game's executable has a very strange version 1.7.94 not
listed in changelog.

* WINTERMUTE: Update detection for Basis Octavus

Download: http://kraaca.cz/wp-content/files/basis-octavus.zip

* WINTERMUTE: Update detection for Bickadoodle

Download: https://www.moddb.com/games/bickadoodle/downloads

* WINTERMUTE: Update detection for Book of Gron: Part One

Download: http://questzone.ru/download/gr/BookOfGron.rar

* WINTERMUTE: Update detection for Chivalry is Not Dead

Download: https://games.squinky.me/downloads/chivalry/chivalry.zip

* WINTERMUTE: Update detection for Carol Reed series

I assume that Carol Reed 4 EN use the same engine as Carol Reed 4 RU.
For other versions I assume that Demo and Full versions are sharing the
same engine version.

Demos: http://www.mdna-games.com/
Buy: http://www.mdna-games.com/

* WINTERMUTE: Update detection for Corrosion

Buy:
https://store.steampowered.com/app/349140/Corrosion_Cold_Winter_Waiting_Enhanced_Edition/

* WINTERMUTE: Update detection for Dead City

Download: http://dead-code.org/download/games/deadcity.zip

* WINTERMUTE: Add detection for Dark Fall: Lost Souls

This is a 2.5D game that is out of ScummVM scope

* WINTERMUTE: Update detection for Dirty Split

Download: https://dreamagination.itch.io/dirty-split

* WINTERMUTE: Update detection for Dreamscape

Download:
http://web.archive.org/web/20111121174150if_/http://mrburns.tks.bth.se/ds/ds08/vida08/Dreamland.rar

* WINTERMUTE: Update detection for Dreamcat

Download: https://jennibee.itch.io/dreamcat

* WINTERMUTE: Update detection for Des Reves Elastiques Avec Mille Insectes Nommes Georges

Download: https://games.squinky.me/downloads/dreaming/dreaming.zip

* WINTERMUTE: Update detection for DFAF Adventure

Download: https://jennibee.itch.io/dfaf-adventure

* WINTERMUTE: Add detection for Dr. Bohus

Author: Local Studio
Description: Saving the world from outbreak of a mysterious disease
Language: Czech
Licence: Freeware
Download:
http://www.freegame.cz/hry-ke-stazeni/zdarma/adventury/dr-bohus/13266

* WINTERMUTE: Update detection for Escape from the Mansion

Download:
https://escapefromthemansion.com/files/EscapeFromTheMansion_v1.3.zip

* WINTERMUTE: Add detection for Finding Hope

Finding Hope is a hidden object game made with Wintermute engine by
Golden Bough Games.
Try & Buy: https://www.bigfishgames.com/games/5960/finding-hope/

* WINTERMUTE: Add detection for The Death of Erin Myers

Buy links and details: http://www.viperante.com/short.htm

* WINTERMUTE: Update detection for Four

Download: http://mentalscraps.com/Four.zip

* WINTERMUTE: Add detection for Face Noir

This is a 2.5D game that is out of ScummVM scope

* WINTERMUTE: Update detection for Hamlet

Buy: https://store.steampowered.com/app/222160

* WINTERMUTE: Update detection for Framed

Download:
http://web.archive.org/web/20111121173916if_/http://mrburns.tks.bth.se/ds/ds08/maqk08/Framed.rar

* WINTERMUTE: Update detection for James Peris

Download: http://www.jamesperis.com/jamesperisweb-a.htm

* WINTERMUTE: Update detection for Project Lonely Robot

Download:
http://web.archive.org/web/20111121173634if_/http://mrburns.tks.bth.se/ds/ds07/stgo07/Projectlonelyrobot.rar

* WINTERMUTE: Update detection for Helga Deep In Trouble

Download: http://helgagame.com/download/helgainstall.exe

* WINTERMUTE: Update detection for Ghost in the Sheet

Demo: https://ag.ru/games/ghost-in-the-sheet/demos/24978

* WINTERMUTE: Add detection for K'NOSSOS

Demo: http://svarunentertainment.com/

* WINTERMUTE: Update detection for Open Quest

Download: https://github.com/JenniBee/openquest/releases/tag/v1.0

* WINTERMUTE: Update detection for Night Train

Download: https://www.moddb.com/games/night-train/downloads

* WINTERMUTE: Update detection for Mirage

Download:
http://web.archive.org/web/20111121173733if_/http://mrburns.tks.bth.se/ds/ds08/sasl08/Mirage.rar

* WINTERMUTE: Update detection for kulivocko

Download: https://ulozto.net/!Ge2FUW8q/kulivocko1-zip

* WINTERMUTE: Update detection for Looky

Demo: https://mac-bs.de/homepage/downloads/Looky_Demo_Setup.exe
Download: https://bullshit-softworx.itch.io/looky-adventure

* WINTERMUTE: Add detection for One

Demo: http://rcorp.wz.cz/one/one%20DEMO.rar

* WINTERMUTE: Update detection for Pizza Morgana

Download: http://pizza-morgana.com/download/episode1

* WINTERMUTE: Update detection for One Helluva Day

Demo: https://store.steampowered.com/app/603680/One_helluva_day/

* WINTERMUTE: Update detection for reversion1&2

Buy: https://steamcommunity.com/app/270570 ,
https://store.steampowered.com/app/281060
Source for old versions: https://bugs.scummvm.org/ticket/11009 ,
https://bugs.scummvm.org/ticket/11011

* WINTERMUTE: Update detection for Project: Doom

Download:
http://web.archive.org/web/20111121180654if_/http://mrburns.tks.bth.se/ds/ds08/vida08/ProjectDoom.rar

* WINTERMUTE: Update detection for Silent Footsteps

Demo: http://frostlindgames.com/demo.html
Buy: https://store.steampowered.com/app/780740/Silent_Footsteps/

* WINTERMUTE: Update detection for Paintaria

Download: https://gamejolt.com/games/paintaria/17652

* WINTERMUTE: Update detection for Pigeons in the Park

Download: https://games.squinky.me/downloads/pigeons/pigeons.zip

* WINTERMUTE: Update detection for reversion1&2 (Linux & Mac)

* WINTERMUTE: Update detection for Rosemary

Download: http://gambit.mit.edu/loadgame/rosemary_eula.php

* WINTERMUTE: Update detection for Shaban

Try & Buy (English): https://www.bigfishgames.com/games/7157/shaban/?pc
Try & Buy (German): https://www.bigfishgames.de/spiele/7157/shaban/?pc
Try & Buy (Spanish): https://www.bigfishgames.es/juegos/7157/shaban/?pc
Try & Buy (French): https://www.bigfishgames.fr/jeux/7157/shaban/?pc
Try & Buy (Japanese): https://www.bigfishgames.jp/games/7157/shaban/?pc
Try & Buy (Dutch): https://www.bigfishgames.nl/spellen/7157/shaban/?pc
Try & Buy (Italian): https://www.bigfishgames.it/giochi/7157/shaban/?pc
Try & Buy (Portuguese):
https://www.bigfishgames.com.br/jogos/7157/shaban/?pc

* WINTERMUTE: Update detection for Rhiannon

Demos: https://ag.ru/games/rhiannon-curse-of-the-four-branches/demos
Demo:
http://download.fileplanet.com/ftp1/122008/Rhiannon_Demo_C5_setup.exe
Buy: https://store.steampowered.com/app/298140

* WINTERMUTE: Update detection for Space Invaders demo

Download: https://docs.google.com/file/d/0B1Y5w30FUPM7bk1UQ1BGR2ZVZ2s

* WINTERMUTE: Update detection for Sofia's Debt

Download:
http://www.artisticsoft.com/flyers/deudadesofia/La%20Deuda%20de%20Sofia.zip
Download:
http://www.artisticsoft.com/flyers/deudadesofia/Sofias%20Debt.zip

* WINTERMUTE: Update detection for The Kite

Download: https://anatolii.itch.io/the-kite

* WINTERMUTE: Update detection for The Box

Download: http://web.archive.org/web/20111121180051if_/http://mrburns.tks.bth.se/ds/ds08/maqk08/packages.rar

* WINTERMUTE: Update detection for The Driller Incident

Download: http://questzone.ru/enzi/files/1645

* WINTERMUTE: Update detection for The Ancient Mark

Download: https://www.moddb.com/games/the-ancient-mark-episode-1/downloads

* WINTERMUTE: Update detection for Tanya Grotter dilogy

Buy:
https://www.soft-moscow.ru/goods/tanya_grotter_i_magicheskiy_kontrabas.htm
Buy:
https://www.soft-moscow.ru/goods/tanya_grotter_i_ischezayushchiy_etag.htm

* WINTERMUTE: Update detection for Space Madness

Demos:
http://web.archive.org/web/20150520160556/http://www.spreadcamp.com/downloads/SM-DEMO_English_and_German.exe

* WINTERMUTE: Update detection for The Shine of a Star

NOTE: http://questzone.ru/enzi/game/2502 states that this game is
freeware since 29.07.2013
Download: http://forgottenkey.se/TSoaS/TSOAS.msi
Archive: https://web.archive.org/web/20190116104138if_/http://forgottenkey.se/TSoaS/TSOAS.msi

* WINTERMUTE: Update detection for The White Chamber

Download:
http://www.studiotrophis.com/downloads/thewhitechamber1.7SETUP%20-%20Definitive%20Edition.exe
Download:
http://www.indiedb.com/games/the-white-chamber/downloads/the-white-chamber-17

* WINTERMUTE: Update detection for Trader of Stories

Download demo: http://www.rudowscy.com/download/theTraderofStories.zip
Full version is not made with Wintermute: http://www.rudowscy.com/tos1/

* WINTERMUTE: Update detection for Zbang! The Game

Download: http://www.corbomitegames.com/zbang/download.php

* WINTERMUTE: Update detection for Vsevolod

Download: http://public.ag.ru/vd/c16b434cc9656d4ca5856150c8fc9b18/demos/23267/Vsevolod-Prologue.exe

* WINTERMUTE: Update some comments

* WINTERMUTE: Update detection for Toshechka and Boshechka

* WINTERMUTE: Update detection for Wilma Tetris

Download: http://web.archive.org/web/20160330072540if_/http://dead-code.org/misc/wtetris.zip

* WINTERMUTE: Add detection for WME Technology Demo 1.2

Download: http://www.dead-code.org/download/wme_demo.zip

* WINTERMUTE: Update detection for reversion1 (bug 11011)

This fixes https://bugs.scummvm.org/ticket/11011
2019-07-14 11:42:04 +03:00
lolbot-iichan
13dbfbd8d7 WINTERMUTE: Fix slider bugs in several games
There is a bug introduced in WME Lite.

Testcase:
1. Download https://github.com/lolbot-iichan/wme_testsuite/tree/master/slider_test/packages
2. Download https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/wmelite/wmelite_10_win.zip
3a. Run game.exe -> Slider moves with the mouse while it is pressed and
released when mouse is released
3b. Run wmelite.exe -> Slider is never released
3c. Run ScummVM -> Slider is never released

Related bugs:
https://bugs.scummvm.org/ticket/6567
https://bugs.scummvm.org/ticket/9861

Reason: slider is a button object that changes it's X until "LeftRelease" event is revieved and breaks the endless loop.
Sample code: https://github.com/lolbot-iichan/wme_testsuite/blob/master/slider_test/data/interface/system/speechvolume.script
However, WME Lite does not send "LeftRelease" events to any objects, if Game object can handle such event, even is game is frozen and UI is shown.

Original code: https://github.com/lolbot-iichan/Wintermute-Engine/blob/master/src/engine_core/wme_ad/AdGame.cpp#L2218
Changed in WME Lite: https://github.com/lolbot-iichan/wmelite/blob/master/src/AdGame.cpp#L2120

This behaviour was introduced in SVN period of wmelite, I believe it was
made on purpose for handling some iOS scenarios at commit #37 mentioned
on page https://code.google.com/archive/p/wmelite/source/default/commits

My proposal is to mark iOS apps as WME_LITE and fill exact WME_1_X_X/WME_LITE versions for all known
games. WME_1_X_X can be seen by right-clicking on main executable and seems to be non-empty for almost all existing WME games.
2019-07-02 08:00:30 +03:00
lolbot-iichan
abec0982b9 WINTERMUTE: Add detection for some Russian version of 1 1/2 Ritter
This seems to be some fan-made translation patch. File "string3.tab"
seems to be the only thing translated, and it's stored as a plain file,
outside dcp packages. Patch is applied to original by adding this file.
2019-07-02 08:00:30 +03:00
lolbot-iichan
1e2e01eed9 WINTERMUTE: Add detection for 6 more Carol Reed demos
Also fixes https://bugs.scummvm.org/ticket/11005
2019-07-02 07:57:39 +03:00
lolbot-iichan
5939e4bf18 WINTERMUTE: Reorder Carol Reed detection records
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-07-02 07:57:39 +03:00
lolbot-iichan
747ace78fc COMMON & WINTERMUTE: Use non-1252 for 125X games (PR 1698)
* 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-30 16:45:46 +03:00
lolbot-iichan
d6a1248a16 WINTERMUTE: Increase window title height by 1 for "5 Lethal Demons" game
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-30 12:20:36 +03:00
lolbot-iichan
fa4d310fb4 WINTERMUTE: Do not optimize out alpha blits on rotation
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-27 10:59:35 +03:00
lolbot-iichan
9bee1b5e31 WINTERMUTE: Implement Game.OpenDocument() method
Game.OpenDocument() is used to open links for developer's site or social
account in games like hellavuday, 5ld, etc.
2019-06-26 07:15:14 +03:00
lolbot-iichan
3c1e883ff0 WINTERMUTE: Add lots of entries to detection table and refactor handling of 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-25 13:28:03 +03:00
lolbot-iichan
bf19375d14 WINTERMUTE: Add workaround for sprite glitch at Rosemary game
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-25 08:20:27 +03:00
lolbot-iichan
c32027672e WINTERMUTE: Add comments + warning() for IsKeyDown() method 2019-06-25 08:10:16 +03:00
lolbot-iichan
d53bd4e7a8 WINTERMUTE: Add more details in openDiskFile() comment 2019-06-25 08:10:16 +03:00
lolbot-iichan
4b763f0e9e WINTERMUTE: Add debugN + comment for getNumScripts() 2019-06-25 08:10:16 +03:00
lolbot-iichan
62aebde208 WINTERMUTE: Support even more keycodes at IsKeyDown() 2019-06-25 08:10:16 +03:00
lolbot-iichan
1e005d37e2 WINTERMUTE: Handle enum in GetNumScripts
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-25 08:10:16 +03:00
lolbot-iichan
b9af5ad304 WINTERMUTE: Fix IsKeyDown to work with ASCII
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-25 08:10:16 +03:00
lolbot-iichan
555e400d76 WINTERMUTE: Hardcode known path prefix for tanya2
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-25 08:10:16 +03:00
lolbot-iichan
c2b7fc526e WINTERMUTE: Detection tables for Tanya Grotter dilogy
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-25 08:10:16 +03:00
lolbot-iichan
1596b73110 WINTERMUTE: Add detection for Carol Reed Mistery 4 (RUS)
Carol Reed 4 was published in Russia by "Cd Navigator":
http://www.cdnavigator.ru/Game.aspx?id=184
2019-06-20 05:11:21 +03:00
lolbot-iichan
a7efc8afd8 WINTERMUTE: Fix Split() method of ext_string
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-18 21:20:33 +03:00
lolbot-iichan
4764739dee WINTERMUTE: Add detection for games listed in #10863
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-17 22:14:34 +03:00
lolbot-iichan
b503401c45 WINTERMUTE: Fix Hamlet title, add one more detection variant
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-17 22:08:11 +03:00
lolbot-iichan
2499eaf253 WINTERMUTE: Add another variant of White Chamber to detection table
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-17 17:59:20 +03:00
Lothar Serra Mari
f2b8dc4776 WINTERMUTE: Add missing comment line for new rhiannon demo 2019-06-09 19:27:04 +03:00
Lothar Serra Mari
c0b7862125 WINTERMUTE: Add detection entries for reported rhiannon demos
closes #10972
closes #10973
2019-06-09 19:27:04 +03:00
lolbot-iichan
8b929a584f WINTERMUTE: Show warning on running 2.5D games
This is shown for the 2 games added in
0d8834b561, as both of them use
ACTOR3DX entities, i.e. 3D models, which are not supported in ScummVM
2019-06-06 07:07:16 +03:00
lolbot-iichan
5b06639a69 WINTERMUTE: Janitorial edits at detection table 2019-06-04 08:24:42 +03:00
lolbot-iichan
f23345104c WINTERMUTE: Add detection tables for thekite v1.4
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-06-04 08:24:42 +03:00
Filippos Karapetis
80f773c915 WINTERMUTE: Remove unused variable 2019-05-27 14:53:45 +03:00
lolbot-iichan
7c35e1528f WINTERMUTE: Fix fill rect area on endSaveLoad() 2019-05-18 09:39:44 +01:00
Cameron Cawley
d3bb3cddfd WINTERMUTE: Attempt to load fallback fonts from fonts.dat 2018-12-25 12:47:42 +01:00
Matan Bareket
0d8834b561 WINTERMUTE: Add hashes to Zbang! and Pizza Morgana
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-11-25 10:26:21 -05:00