Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENGINES: Add new demo detection in many engines #3338

Open
wants to merge 25 commits into
base: master
Choose a base branch
from

Conversation

@trembyle
Copy link
Contributor

@trembyle trembyle commented Sep 3, 2021

I'm going through the engines to find demos that are in detection tables but missing from the site. In the process I keep finding brand new demos. As I find them, I'm uploading to them to scummvm. @sev- will move them to frs so that they can go on the site.

Moving alphabetically through the engines, I'm now finished with GOB. I would expect to find more by the time I get to ZVISION. Since the individual engine developers likely want to weigh in on changes, it can't hurt to get an early start on reviewing them.

Some options:

  1. Shelve this for now until I have all the changes for one big PR
  2. Review changes to individual engines as I add them, but don't merge until all are ready
  3. Split this PR (or merge what's here), and I'll submit new ones as I have changes

Notes on individual engines

ASYLUM

Nothing really to report on this one. Asylum is being actively developed. Maybe @alxpnv will get a chance to look into support at some point.

BURIED

It's only a regional variant of other known demos. Should run fine.

CGE

The Sołtys and Sfinx demos both start and can probably be supported.

CHEWY

We didn't have any demos for this before. This one manages to load the opening screen then crashes within two seconds.

OMNI3D

Uses the same engine but has only one data file, which the engine isn't looking for. Does not start.

DM

Found an Apple IIgs demo. That platform isn't currently supported by the engine, so this won't really help unless development picks up again.

DREAMWEB

The two DOS demos have resource files in the same format, but the files are named differently. I'm hopeful that these can be supported. And I found an Amiga demo that's not going to be supported unless someone new looks at the engine.

GOB

A new Ween demo variant and a new non-interactive Last Dynasty demo work fine right now.

I also found a combined demo for Dynasty/Woodruff. It really just plays the VMDs for the two games in sequence. Just like indyloom, indyzak, zakloom, I guess we could give this a new game ID. It seems to work, although the Woodruff portion may have some issues. I gave the new game the same engine parameters as used for Dynasty, but Woodruff's are slightly different.

GRIME

Found an official Monkey4 CD demo. Someone just uploaded it to IA. This one does not include i9n.lab, which had been used for detection. I changed the file for this and disabled the check for it at first runtime. I hope that's ok. It seems to run as well as the other demos.

GROOVIE

Six new demos are added to detection. Since there is some new development activity in this engine, hopefully this will give some nice new Groovie v2 examples, plus the one potential Groovie v0 demo.

HYPNO

Just a note about this - I know it's not an engine that's merged yet - but I did work with @neuromancer to find three new Wetlands demos in addition to the one that he's already working to support. We have detection for these now for whenever or if ever the engine is merged to master.

KYRA

There is a non-interactive EOB2 "demo" that simply plays through some FLICs and static GIFs using Autodesk Animator player. I left a message telling users that it is unsupported. If someone really wanted to, it would not be difficult to add support for this.

LILLIPUT

There is a Rome demo. There is a game ID for this one in the detection table, although there are no detection entries for the game itself. I added the demo anyway just so we have it.

LURE

The only demo that I can find is from the cover disk of ST Action (UK) Issue 50. The Atari ST platform is not supported at the moment. If someday it was supported, this disk has some copy protection that I haven't figured out. Either the images will need to be accessed directly, or we'll need to find a way to extract the files.

https://archive.org/details/ST_Action_UK_Magazine_Coverdisk_Disk_Image

MACVENTURE

Added an Uninvited demo. All of the MacVenture games are now in the detection table. This appears to be MacVenture v2 based on the FourCC creator code MCV2.

I also have a demo for the Windows port of Shadowgate. Are ports being considered for inclusion once the original MacVenture games are running?

MADE

The user reported demo from Zork Anthology CD also contains a Mac version. There's also a new standalone CD demo. I'm fairly certain that there was a Japanese CD demo as well. I've been looking for that a long time and haven't found it yet.

MADS

In this case, there were Rex and Phantom demos on the site but they were not in the detection tables. I wasn't able to test adding a directory with the Phantom demo because I can't get MADSv2 to compile. This was split into a subengine earlier this year. Since it's in master, shouldn't it at least compile without error?

MOHAWK

I'm slightly shocked that after all these years another Myst demo has been found. This one includes The Making of Myst (see screenshot). Unfortunately the movie is not playing for me. Hopefully it's an easy fix.

SPRINT

Not really a demo (and it can't be distributed) but we can sneak in detection for a Myst3 prototype DVD for the Playstation2. As with the full versions, this is marked as not yet supported.

NEVERHOOD

Lite demo is found here:
https://archive.org/details/Neverhood

NGI

This early demo is from 1997, a full 6 years before the game released in Russia. Some work may be needed to get it running. For one thing, it appears to use general MIDI.

PEGASUS

Demos were found in Mac Addict and the Next Generation Disc. At the time, the game was to be published by Bandai and the demo retains some of their branding on the splash screen and in the credits. The VERS resource in the executable says this is DEMO-1.0.

PRIVATE

Already discussed this with @neuromancer. There is version info in the extended file attributes. We can use this to differentiate the demos while still noting where they were originally distributed.

SAGA

The Pocket PC trial version is interesting to me. It uses TiMidity with a directory of standard MIDI files and a directory of patch files (in a different format than the Mac instrument patches). The wayback machine is missing the package unfortunately, but originally it was here: http://www.wyrmkeep.com/ite/mobile.html

As mentioned in comments in the detection tables, the trial versions contain the full game, along with a simple check for the registration code. Understandably, we cannot support a method to bypass legally purchasing the game. What I don't understand is why this check can't simply be reimplemented in ScummVM.

STARTREK

It's a Mac demo, and that platform isn't supported yet. Maybe @bluegr would want to look at it once the DOS version is ready to go.


More to come ...

@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 3, 2021

As for the title "Woodruff and The Last Dynasty", it is used here on the menu of the CD where I first found it.

dynastywood

The same demo is on CD-ROM User (UK) Disc 6 from Jan 1995.

dynastywood-win

@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 3, 2021

Here is the new Monkey4 CD demo I mentioned.

https://archive.org/details/escape-from-monkey-island-cd-demo

IMG_20210405_0004

Compared to the already known demo:

image

@trembyle trembyle force-pushed the master branch 2 times, most recently from fa33ed3 to e745012 Sep 3, 2021
@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 4, 2021

image

@trembyle trembyle force-pushed the master branch 2 times, most recently from 2781226 to 518d859 Sep 7, 2021
@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 8, 2021

image

@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 8, 2021

image

@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 9, 2021

This demo includes The Making of Myst.

image

@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 10, 2021

image

@trembyle trembyle force-pushed the master branch 2 times, most recently from 46aa87c to 3898826 Sep 10, 2021
@lephilousophe
Copy link
Member

@lephilousophe lephilousophe commented Sep 12, 2021

For Omni3D, demo is only a video file, nothing interactive.
I am not sure it is useful to add it.

@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 13, 2021

For Omni3D, demo is only a video file, nothing interactive.
I am not sure it is useful to add it.

@lephilousophe I'd understand if it's not useful to go through the effort of adding support, but couldn't we identify it and then inform the user that it's unsupported and why?

Also, many engines currently support non-interactive demos. That by itself is not a reason to ignore it. However, I agree that this one is not particularly interesting, and may not be worth someone's time to work on.

@Die4Ever
Copy link
Member

@Die4Ever Die4Ever commented Sep 13, 2021

I just noticed this pull request

are you able to share the groovie demos with me? I'm guessing most of them are the ones from archive.org?

I have these, and I've added them to the detection.cpp in my pull request (before I noticed you were doing this lol), I've stopped using the disk.1 file and now directly use the script files referenced by the disk.1 file

T11H demos:
	// The 11th Hour DOS Interactive Demo English https://archive.org/details/11th_Hour_demo
	{
		{
			"11h", "Interactive Demo",
			AD_ENTRY2s("demo.grv", "5faec559b9abf18cf143751b420208dc", 15991,
						"dvmod1a.gjd", "e304fe68f95c54fc82d785768e372892", 8068568),
			Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE,
			GUIO5(GUIO_NOLAUNCHLOAD, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
		},
		kGroovieT11H
	},

	// The 11th Hour DOS Interactive Demo English (packaged with the Non-Interactive Demo) https://archive.org/details/11HDEMO
	{
		{
			"11h", "Interactive Demo",
			AD_ENTRY2s("demo.grv", "824b1a051f841a50ab7a6b4c10180bbc", 15898,
						"dvmod1a.gjd", "e304fe68f95c54fc82d785768e372892", 8068568),
			Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE,
			GUIO5(GUIO_NOLAUNCHLOAD, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
		},
		kGroovieT11H
	},

	// The 11th Hour DOS Non-Interactive Demo English https://archive.org/details/11HDEMO
	{
		{
			"11h", "Non-Interactive Demo",
			AD_ENTRY2s("niloop.grv", "b4c35a2a6ebaf72fbd830b590d48f8ea", 456,
						"dvmod1b.gjd", "43eb268ef6d64a75b9846df5be453d30", 11264100),
			Common::EN_ANY, Common::kPlatformDOS, ADGF_DEMO | ADGF_UNSTABLE,
			GUIO5(GUIO_NOLAUNCHLOAD, GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
		},
		kGroovieT11H
	},
Clandestiny trailer included with T11H:
	// Clandestiny Trailer DOS/Windows English
	{
		{
			"clandestiny", "Trailer",
			AD_ENTRY2s("trailer.grv", "a7c8bdc4e8bff621f4f50928a95eaaba", 6,
						"atpuz.gjd", NULL, -1),
			Common::EN_ANY, Common::kPlatformWindows, ADGF_DEMO | ADGF_UNSTABLE,
			GUIO3(GUIO_NOMIDI, GUIO_NOLAUNCHLOAD, GUIO_NOASPECT)
		},
		kGroovieCDY
	},

	// Clandestiny Trailer Macintosh English
	{
		{
			"clandestiny", "Trailer",
			AD_ENTRY2s("trailer.grv", "a7c8bdc4e8bff621f4f50928a95eaaba", 6,
						"The 11th Hour Installer", "bcdb4040b27f15b18f39fb9e496d384a", 1002987),
			Common::EN_ANY, Common::kPlatformMacintosh, ADGF_DEMO | ADGF_UNSTABLE,
			GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
		},
		kGroovieCDY
	},

	// Clandestiny Trailer Macintosh English (Digital)
	{
		{
			"clandestiny", "Trailer (Digital)",
			AD_ENTRY2s("trailer.grv", "a7c8bdc4e8bff621f4f50928a95eaaba", 6,
						"el01.mov", "70f42dfc25b1488a08011dc45bb5145d", 6039),
			Common::EN_ANY, Common::kPlatformMacintosh, ADGF_DEMO | ADGF_UNSTABLE,
			GUIO4(GUIO_MIDIADLIB, GUIO_MIDIMT32, GUIO_MIDIGM, GUIO_NOASPECT)
		},
		kGroovieCDY
	},

and I will look into adding the "Guest" demo, maybe it will just work, I'm guessing you're using this copy? https://archive.org/details/The7thGuest_1020

seems like there's some more I could add from archive.org, are these the same ones you found?
https://archive.org/details/Clandestiny_demo
https://archive.org/details/PCG0698TLC
https://archive.org/details/Tender_Loving_Care_demo

unfortunately the TLC demo is only in german?

@eriktorbjorn
Copy link
Member

@eriktorbjorn eriktorbjorn commented Sep 13, 2021

@eriktorbjorn
Copy link
Member

@eriktorbjorn eriktorbjorn commented Sep 13, 2021

I have an Inherit the Earth CD that includes a DOS demo. ScummVM detects it, but it's not supported. So it's presumably the one that, according to its detection entry, is "Based on a very early version of the engine".

@Die4Ever
Copy link
Member

@Die4Ever Die4Ever commented Sep 13, 2021

I added a bunch of demos (with archive.org links) into my groovie/detection.cpp (#3315)
https://github.com/Die4Ever/scummvm/blob/groovie2/engines/groovie/detection.cpp

I think this is all of them, except the "Guest" demo which doesn't use Groovie scripts. We could probably make Guest work pretty easily just by adding stub groovie scripts to it, but I'm trying to focus on Groovie v2 stuff and mostly The 11th Hour for now.

Is there an English demo for TLC? I only found the German one. All those demos and trailers seem to work though, except the intro cutscene for Clandestiny has graphical artifacts.

@bluegr
Copy link
Member

@bluegr bluegr commented Sep 13, 2021

I have an Inherit the Earth CD that includes a DOS demo. ScummVM detects it, but it's not supported. So it's presumably the one that, according to its detection entry, is "Based on a very early version of the engine".

Yes, that's the early DOS demo which isn't supported yet

@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 13, 2021

Since the one on archive.org also includes a .VDX movie, I assume that
one was put together a bit later?

@eriktorbjorn
Yes I also found an earlier demo without the VDX file. The script is basically the same apart from that. That's cool that the movies are titled in the one you have.

Do these TLC files use a format that ended up in Groovie v1?

@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 13, 2021

Is there an English demo for TLC? I only found the German one.

@Die4Ever
Probably! Also there is definitely a full release German version of TLC. There are some auctions out there, but I don't currently have a copy.

@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 13, 2021

I just noticed this pull request

are you able to share the groovie demos with me? I'm guessing most of them are the ones from archive.org?

@Die4Ever yes, I believe that everything I found here is from archive.org. I had been uploading them to a directory on scummvm.org. I think @sev- was going to move them into frs so that they can go on the site.

@Die4Ever
Copy link
Member

@Die4Ever Die4Ever commented Sep 13, 2021

Is there an English demo for TLC? I only found the German one.

@Die4Ever
Probably! Also there is definitely a full release German version of TLC. There are some auctions out there, but I don't currently have a copy.

I believe my current detection code for the full game release will accept any language anyways

@Die4Ever
Copy link
Member

@Die4Ever Die4Ever commented Sep 13, 2021

Since the one on archive.org also includes a .VDX movie, I assume that
one was put together a bit later?

@eriktorbjorn
Yes I also found an earlier demo without the VDX file. The script is basically the same apart from that. That's cool that the movies are titled in the one you have.

Do these TLC files use a format that ended up in Groovie v1?

I haven't actually tried to see if the TLC files are compatible with the VDX decoder, I'll need to make a stub groovie script to execute them from inside scummvm. I think they would also need to be packaged into a gjd file... it's probably gonna be a lot of work

@eriktorbjorn
Copy link
Member

@eriktorbjorn eriktorbjorn commented Sep 13, 2021

Do these TLC files use a format that ended up in Groovie v1?

I have no idea. If you start PLAYTLC.EXE without any command-line parameters, it will say:

Trilobyte 640x480x256 FLICK & Groovie Player.  Version 0.6
Copyright 1991 Trilobyte, all rights reserved.

Use: PLAY filename [-sn] [-ln] [-g[

During playback:
     ESC            - exits animation
     1 - 9          - varies playback speed (1 is the fastest)
     0              - play at default speed
     PgUp / PgDown  - increase / decrease palette luminence
     Home           - reset the palette
     End            - toggles greyscale mode

Command line options
     -sn            - change the playback speed n = 0-255
     -ln            - number of loops to play n = 0-65535
     -g             - stay in graphics mode once done

Does that provide any clue? I don't think "FLICK" has anything to do with the FLIC file format, if only because I couldn't get any media player I tried to understand them, even if I renamed them.

@Die4Ever
Copy link
Member

@Die4Ever Die4Ever commented Sep 14, 2021

Do these TLC files use a format that ended up in Groovie v1?

I have no idea. If you start PLAYTLC.EXE without any command-line parameters, it will say:

Trilobyte 640x480x256 FLICK & Groovie Player.  Version 0.6
Copyright 1991 Trilobyte, all rights reserved.

Use: PLAY filename [-sn] [-ln] [-g[

During playback:
     ESC            - exits animation
     1 - 9          - varies playback speed (1 is the fastest)
     0              - play at default speed
     PgUp / PgDown  - increase / decrease palette luminence
     Home           - reset the palette
     End            - toggles greyscale mode

Command line options
     -sn            - change the playback speed n = 0-255
     -ln            - number of loops to play n = 0-65535
     -g             - stay in graphics mode once done

Does that provide any clue? I don't think "FLICK" has anything to do with the FLIC file format, if only because I couldn't get any media player I tried to understand them, even if I renamed them.

No clue, it's possible that the file extensions simply changed names, or maybe the video format is actually different (I remember hearing about how they had to optimize it at some point because they couldn't get it to stream off a CD), or maybe the video format is a subset of vdx and it works despite being different.

Anyways I think all these demo additions are gonna be great, I was looking at how you guys do testing for new releases
https://wiki.scummvm.org/index.php?title=Release_Testing/2.3.0

And I bet we could get people to test out demos since they're free and easy to get if we provide archive.org links.

If we re-host the demos (or simply re-upload them to archive.org), then we could make it easier for people by taking the files out of the ISOs/images so people don't need to deal with mounting the image.

@einstein95
Copy link
Contributor

@einstein95 einstein95 commented Sep 14, 2021

If we re-host the demos (or simply re-upload them to archive.org), then we could make it easier for people by taking the files out of the ISOs/images so people don't need to deal with mounting the image.

Yes, that's the plan. See https://downloads.scummvm.org/frs/demos/

trembyle added 11 commits Sep 16, 2021
Found on PC Gamer covermount March 1998.

It uses AVI files (Cinepak 24-bit) instead of SMK.
I'm half-jokingly calling it Canadian because Sanctuary Woods was
located there, but it is clearly North American based on the telephone
number.

The demo before this was published by US Gold, a British publisher,
and based on the Manchester phone number, this one is intended for the
UK.

I don't have a copy of the third demo.
Found on 1997 Sfinx CD from LK Avalon.

From the readme:
+-------------------------+
|  "zwiastun gry SOLTYS"  |
|  (mini-gra przygodowa)  |
+-------------------------+

Translated to "Soltys Game Trailer" (mini-adventure game)
Found on CD-ACTION (Poland) #21a Feb 1998.

From SFINX.TXT:
Przedstawiamy gre SFINX Lite, która jest grywalnym demem gry SFINX.

Translation:
We present the game SFINX Lite, which is a playable demo of the game
SFINX.
Found on Blue Byte News Version III/97.

From README.TXT:
Dies ist eine Demo-Version von "Chewy - Esc von F5". Sie enthalt nur
einen kurzen Ausschnitt des kompletten Adventures. Wenn Sie wissen
wollen, wie die Geschichte anfängt und ob sie ein Happy-End hat, dann
fragen Sie Ihren Software-Handler nach der Komplettversion.

Translation:
This is a demo version of "Chewy - Esc from F5". It contains only a
short part of the complete adventure game. If you want to know how the
story begins and whether it has a happy ending, then ask your software
dealer for the full version.
Just in case anyone tries to add this, we can now inform them that
it's unsupported.

https://archive.org/details/playhns_003
* Floppy demo found on PC Format (UK) CD-ROM Collection # 3
* Speech demo found on MediaProducts Supergames Vol 9
* Amiga  demo found on Amiga Format (UK) # 60 disk C

The DOS demos are also here:
https://archive.org/details/DreamWeb_1020
https://archive.org/details/dreamweb-cd_zip
Ween demo has both interactive and non-interactive portions. The title
is Ween: The Prophecy, and so language code EN_GRB is used.
https://archive.org/details/TheProphecy_1020

Dynasty demo plays a single VMD from a small SCN file.
https://archive.org/details/dynasty_zip

Combined demo from CD-ROM Today # 11 (1995) plays the above Dynasty
demo followed by the already known Woodruff demo. In the spirit of the
combined demos in the SCUMM engine, we can create a new game ID.

All of the above play without issue in ScummVM.

Also added file sizes to some existing detection entries and added the
missing demo flags to the Inca2 and Woodruff demos.
Found on Inside Mac Games December 1994.
The official CD demo (EU) does not include i9n.lab. The only other file
that is unique to this version is the Monkey4.exe binary.

https://archive.org/details/escape-from-monkey-island-cd-demo

Demo is now added to detection, and the checks for i9n.lab have been
removed. I left the md5 hash along with a comment, in case it's still
desired for reference.

The name Web Demo comes from its readme file and installer. The CD
simply says: Escape from Monkey Island Demo Version 1.0
@trembyle
Copy link
Contributor Author

@trembyle trembyle commented Sep 16, 2021

image

VM inception was required for this one ...

trembyle added 14 commits Sep 16, 2021
Tech demonstration for "Guest" might use an early Groovie v0 engine.
Strings from the PLAYTLC.EXE binary:

Trilobyte 640x480x256 FLICK & Groovie Player.  Version 0.6
Copyright 1991 Trilobyte, all rights reserved.

Additionally, we have a couple new demo CDs for 11h, plus a new non-
interactive trailer. There is a playable demo CD for Clandestiny and
a German demo for TLC.
We don't need this in the extra text because it's already provided.
We can add a message just in case someone tries to run the demo. If
someone did want to implement it at some point, it would be fairly
simple. It's simply a collection of FLICs and static GIFs.
This will not work yet since Rome is not supported.
Also added Uninvited game ID and macro for demos
Added to the description for demo reported in bug # 11202. There is
also a Mac demo on this disc.

There is also a standalone CD demo here:
https://archive.org/details/Return_to_Zork_demo
These demos were on the site but not in the detection tables.
This larger demo includes The Making of Myst.
We can detect this preview and inform users that it's not yet supported
Found here:
https://archive.org/details/Neverhood

The full demo includes two puzzles to solve, while the lite demo only
includes one.
Released in 1997, a full 6 years before the game came out.
The demo that was distributed in the 90s is slightly different than
the one later made available on Presto's website. At the time, this
was published by Bandai and retains some of their branding in the
splash screen and credits.
Also add version info to known demos.
We can detect the modern 64-bit macOS and WinCE trial versions and
inform users that they're unsupported.

We should explore whether the limited trial functionality can be
implemented in ScummVM, as the Pocket PC version has some unique
features in both trial and unlocked states.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
6 participants