Exult Will Now Play the Extended “Serpent Isle” Intro Movie
Some big news from Dominus Dragon: Exult will now automatically play the extended version of the Serpent Isle introduction video when you start at new game of Serpent Isle from its launcher.
As easy as that was to type — and as easy as it was to read — it was apparently quite difficult to actually implement the extended intro within the Exult engine. As Dominus explained in a message to the Codex, it began with finding the extended introduction, which was released some years ago by Denis Loubet:
First I needed to find the original videos by Denis Loubet (as Kobra Kai Dragon’s copy had too many artifacts ). Loubet’s former homepage had already vanished but fortunately the Wayback Machine came to the rescue.
Thankfully, the smallest-sized video had the least amount of image artifacts, and it had almost the correct frame size (320×240). It also didn’t feature the Origin Systems overlay.
But there WERE artifacts.
The video was also not in a format that would work with Ultima 7, of course, which necessitated a conversion. Fortunately, the video codec used for the Ultima 7 cutscenes, while not exactly common, is not something proprietary and thus lost to time after the closure of Origin Systems:
With VideoMach Professional I was able to convert the video file recovered from the Wayback Machine to the FLIC animation format used by Ultima 7. But for that to work, I first had to re-encode the source video to some another format (I opted for AVI, without MPEG compression) that VideoMach Professional could import.
VideoMach Professional worked perfectly to convert the video, and also allowed me to resize it to 320×200; I was also able to split the video into the same number of FLIC files the original game had used.
And with a bit of hackish code and some adjustments to the file headers, I was able to get Exult to use the new FLICs, as well.
And then life happened. My wedding, a big move…a pandemic…and, and, and…
Dominus dropped the idea for a while, but recently re-discovered it and set to work on making it work in a less “hackish” way:
We added the new intro FLICs directly into the data we provide with Exult (rather than requiring users to download it separately) and dabbled a bit with the hackish code of four years prior. It took a bit of work, but we finally came up with something presentable! In particular, the castle scene now displays the lightning flashes, and we kept the original Lord British/Paladin/Guardian scene as it is completely the same; doing so allowed us to avoid using the more artifact-heavy version from Loubet.
The biggest problem we had was that the intro was now around 15 seconds longer than the original one. The music track is synced to the intro, the actual music starts with the second thunderclap; there is a subtle wind when the Guardian’s speech is shown, and the music changes when the ship travel begins. There is also a high pitch note playing when the ship teleports (this is actually mis-timed in the original). The choice we faced was: either everything except the teleportation note would be out of sync, or there would be around 15 seconds of silence at the end of the intro. That doesn’t sound like a lot, but it feels very odd when you try it.
Exult makes use of digital music tracks recorded with a real Roland MT32, and every option to play music in the engine depends on XMI (eXtended MIdi)-format files. There are no working editors for XMI and it’s just a bit too different from standard MIDI for any MIDI editors to work with it.
As such, I spent a night hex-editing the original XMI files (one for MT32 playback, the other for FMOpl and General MIDI) and managed to add some extra loops for the ship travel sequence; with that change, the music syncs up nicely. Thankfully my family was out of the house, so I didn’t wake anyone up by playing the intro very loud at 2:00 AM! The last step was recording the new intro music with Munt (a Roland MT32 emulator) for our digital music track replacement.
Here’s what those changes looked like, by the way:
And with that, Dominus was done…though Exult itself wasn’t quite ready yet:
Finally I was finished with my part of the work. Marzo took over and made the vital changes in the code!
And here we are! By running our latest snapshot (both Windows and MacOS builds are available) you can now enjoy the extended intro in Exult. Actually you have no choice as we hardcoded* it to be the default!!!!
(*there is an undocumented exult.cfg setting you can use, though: config > gameplay > extended intro > yes/no)
The Codex doesn’t maintain links to Exult snapshots on its project entry, as those builds get updated quite often. However, you can always grab the latest Exult snapshots from the project’s downloads page, and if you want to see the new Serpent Isle intro in action, you should definitely do so.