ForNeVeR / overtone

A modern FOSS remake of The Tone Rebellion.
MIT License
16 stars 1 forks source link

Show the intro video #6

Open ForNeVeR opened 4 years ago

ForNeVeR commented 4 years ago

Overtone should be able to run the intro video from the game (namely, THING2/INTRO.AVI).

As the video uses an old codec and I don't want to mess with any video codecs (yet), I suggest we use an approach similar to the original: just use the external video player to show the video.

So, we'll need a program that extracts the video file from the ISO provided, and runs it via the OS facilities (something like xdg-open/open on *nix, and a similar facility on Windows).

Lewiscowles1986 commented 1 year ago

How will you know when the video is done playing?

Lewiscowles1986 commented 1 year ago

vlc -f /Volumes/TONE116E/THING2/INTRO.AVI vlc://quit && echo "success" seems to be working and allowing me to chain when done. Thanks to StackOverflow https://stackoverflow.com/a/69476995/1548557

I Also had to alias VLC alias vlc=/Applications/VLC.app/Contents/MacOS/VLC

ForNeVeR commented 1 year ago

How will you know when the video is done playing?

In the original game, as I see, there's no need to know that the video has ended playing. There was just a Start menu item to start the video, then that's it. The player would see the video, close the player after it ends, and start the game themselves.

Of course, we can improve this. I am thinking about embedding the video player into the game somehow eventually.

Generally, if we want to figure out that the video player has finished playing the video, it gets tricky. In some cases, when we start the player process directly (as in the case you outlined), we can just wait for its finish programmatically. But in some other cases, like when we use open command, I'm not sure it's possible.

Also, while VLC is a great player, we are not going to bundle it with the game :)

ForNeVeR commented 10 months ago

Cinepak seems to be a relatively simple video format. I wonder if we could just write a decoder for it.