Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Red Mike
Jul 11, 2011

Rocket Baby Dolls posted:

I've done some reading and it seems like the problem is down to playing the game on a system with a fast processor. I'm playing this game using ScummVM

I believe the only reliable way to avoid this bug in ScummVM is to use the fast mode via the keybinds described here.

Also just chiming in that despite being objectively a pretty bad adventure game, this was one of my favourites growing up so I'm happy to see an LP of it finally. I think unlike a lot of the other adventure games of the time it's pretty self-contained in some ways, so there's not so many references to other unrelated things that you might not get, other than british humour and french history. And for the time it both looks surprisingly good and surprisingly bad in action.

Adbot
ADBOT LOVES YOU

Red Mike
Jul 11, 2011

Rocket Baby Dolls posted:

I've found it really enjoyable so far, does it get worse? It is buggy, but it's not too bad once you get around its quirky mechanics. This is my first time playing the game and I've not seen any further than what I've uploaded so far.

I don't think I ever actually finished it, but only because there's at least one dead-end scenario I got into where I hadn't done something with an item earlier on, and some combination of flags/actions meant it wasn't allowing me to do it then. I wasn't in the mindset of keeping multiple savegames at that point, so I would have had to replay from the start. If I had to guess based on the updates so far, that point was maybe 4-5 more updates in? Up until that point I remember being genuinely entertained by the jokes/puns and even the overall story. It's not some super intellectual plot, but it's basically mildly amusing budget TV writing.

Red Mike
Jul 11, 2011

Rocket Baby Dolls posted:

I only found out about this game a few weeks ago and I wish that I had heard it about sooner as it's been a pleasant surprise.

You can blame that on the publisher being absorbed into Eidos Interactive basically immediately after release, but not before asking for a couple more point and click adventure games because of how well received the writing on Touche was. Funnily enough, if you follow the chain of ownership that means that most likely the IP is now owned by Square Enix.

Rocket Baby Dolls posted:

I didn't realise until now that the game's writer is also a pseudonym: Susan De Nimes\Sue-de-nym.

I believe the history is that Graham Lilley basically co-wrote the initial story with someone he'd previously collaborated on a game with (Kingmaker), but by the time the game was actively being developed none of them were happy with the story/plot, so Ben Daglish/Sarah Bradnock collaborated to turn it into a half-decent story but neither wanted to claim credit so they came up with the pseudonym.

e: I should also say, especially considering that the entire game is basically the work of two programmers (one of whom was also primarily audio/music), and a single artist, it's mighty impressive for its time. All the moreso when you consider that it was developed for DOS and thus had super strict requirements technically.

Red Mike
Jul 11, 2011
There's a site that has at least an interview with the artist and a bit more info. Although if you try to google for it normally you usually arrive at the flash version of the page which is obviously no longer useful. The main site has a set of links at the bottom about this game and other similar ones (like Legend of Kyrandia, another less well-known point and click adventure game).

Red Mike
Jul 11, 2011
I think the original plan with the key puzzle probably made sense, in the sense that you had the wax impression and you filed down your dagger to turn it into the key.. except the graphics for it show extra metal on the dagger as a result, somehow. I think this was one spot where I got locked out of completing the game, maybe because I'd put the wax on my dagger before I needed to use it for cutting the boat loose and it no longer let me do that?

Also I appreciated that the way Geoffroi pretended to be English was to speak slower and louder, and to talk about the weather.

Red Mike
Jul 11, 2011

Rocket Baby Dolls posted:

I've just gone back in to check this out and you can't cut the moorings with the waxy knife, but you should still have the sword in your inventory at this point and that does cut the moorings. Apparently, there's a bug with one of the puzzles if you leave the Rouen cathedral too early.

I think I'd also lost the sword at that point because of the bug around moving items from Henri to yourself, and that most likely it happened very early on when you're forced to grab an item from Henri. The walkthrough I was following at the time was a bit confusing, especially because it used "the sword" to mean both the dagger and the rapier.

Red Mike
Jul 11, 2011
The fact that they went as far as to add different backgrounds to the inventory, along with the initial setup for having a currency counter (presumably one that is separate for the two, as well), makes me think there were puzzles/sections that were dropped where you controlled Henri instead. The monastery had the perfect setup for exactly that, with you sending Henri off to pretend to be a monk; in fact he ends up keeping the items for that disguise in his inventory. Day of the Tentacle being released two years before this game was released also makes me think that they initially took inspiration from the multiple character aspect of it but probably had to cut all of that for time/effort.

I think we've seen a few places already where there's obvious last-minute invisible walls to stop you going somewhere because they couldn't get the location into the release. In the last episode even, the outdoors of Le Havre seems like this to me, especially with the 'oh this tunnel conveniently led to the inn' lampshade.

e: In fact, I realised that ScummVM is open-source so I quickly went and found the Touche engine to see how some things are set up. I haven't dug too deep but some of the things are illuminating:

Giving items to another character is in fact explicitly coded in as a special feature so clearly this was meant to be done reasonably often.
The game is apparently split into episodes (in a way that isn't clear from a skim, but it looks like it functions like event flags to trigger various updates of the areas).
I believe the number of controllable/key characters available is actually kept generic (apparently maxes out at 32) but it's not clear to me if this includes (some? all?) NPCs as well and that's how they do some of the things (e.g. the walking NPCs).
Rooms and characters each run their own scripts which means the game engine is actually really a reasonably un-specialised game engine, which is not what I expected for a one-off game that isn't part of a series or based off of old game code.
There's functions for things like "wait for character to reach a bounding box" which explains some of the bugs I've seen that were a hard lock of the game (because something mis-fired and the character never arrived).

I'm kind of wondering what it would take to try to set up a new game in the same engine, I can't imagine it'd be too hard with the ScummVM code as an explanation for the asset files. A lot of assumptions would need figuring out though (like how the game starts on episode 90, and there's tons of special cases to solve bugs).

Red Mike fucked around with this message at 17:22 on Jun 20, 2022

Red Mike
Jul 11, 2011
Remaking the game is basically what the ScummVM engine is: it's a complete reimplementation of the engine from scratch in C++. It even fixed a number of bugs originally present, and I think it accepts any other fixes people might want to contribute, although I don't know their policy on extending the engine. Even if they allowed it, I'm not sure there's much benefit because of the limitations of the way it's set up (tying things to CPU cycles to some extent, the animation code being a mess, a set of global flags configuring some of the core functionality); at that point you might as well use another engine.

If you're talking about trying to do a 'restore deleted scenes/functionality/etc' type deal, I don't think any of the releases included resources that weren't in the final game because of how strict the storage limitations were. Of course as I was saying that I got curious and opened up the .DAT file and had a poke about and an insane amount of the 25MB file seems to be duplicated item descriptions, so maybe there are some unused assets or the like. I'd have to write up some tooling to load the file properly and then display it in a useful way (which would also involve reading the room data, the pallette data, etc, so not a quick thing).

Now that I think about it, if I were to write this up and wire up my own tiny 'game' on the engine, I'd really want to set up a few Princess Bride set pieces with dialogue from the movie, it would be a perfect fit.

e: Oh and unfortunately the entire game is fixed resolution and the assets are fixed resolution, I don't think higher resolution assets were ever published/shared, so anything like remastering it would be out of the question. Which is a shame considering the backgrounds were watercolour scanned in, they'd probably look amazing at high resolution.

Red Mike
Jul 11, 2011
I'm really easy to trick into doing work apparently. Spent some time and wired up some tooling to at least extract some data out of the .DAT file. I'm not going to share the entire set of assets, especially because there's some spoilers, but here's some highlights:



This is the room image for the first room (ID 1). The various bits scattered throughout are areas that get clipped out and pasted on top of particular locations based on the scripts that run (in a room or in response to player actions).



This is the sprite sheet for the first sprite (ID 0 of course, because why be consistent). This is nowhere near the only sheet used for the main character, and doesn't include a load of actions we've already seen him do.

If the colours seem off on both of those, that's because there's a number of things that can impact the palette: the room you're in dictates the specific palette it uses (which can tint your sprite to show night time, but also fade in/out, but also overlay, but also even some sort of random tinting that happens on a timer), and there's maths around that can shift how the palette actually gets used. I've tried to make sense of it to make the exports line up, but too much of it depends on the scripts having set data to particular values.



Speaking of scripts, this is an example of one. This script is the 'start-up' script that runs when you start a new game. I had to go through and map out what each opcode really does as well as correctly read the right number of parameters for each, otherwise the program makes no sense. For those familiar, yes this is basically bytecode for a custom VM where the instruction set includes both things like 'Jump if not equal' and 'Move STK backwards and decrement its value', but also things like 'Queue up a move for this character' and 'Start playing music'. As far as I can tell the vast majority of scripts are really simple and don't use any complex logic except to short-circuit paths when some events have been finished already.

Unfortunately, there is no real deleted content that I can see, not even any real easter eggs. The storage requirements were probably tight enough that they couldn't afford anything even if they wanted to.

On the other hand, the things that I've enjoyed finding out so far:

1. It looks like multiple characters was definitely a focus of the engine with up to 32 characters being effectively usable per room (each with their own inventory, etc).
2. Money is special cased throughout the codebase as an inventory item with a numeric value, and there's a lot of input logic that went into the ability to grab silver/gold coins correctly from your pouch, etc.
3. It's very obvious that the inventory transfer mechanic is brittle and there's no way around that without fixing how the update cycle works (and how difficult it is to sync up some actions).
4. The palette shifting/fades/etc all make me think that at some point there was the intention to either have a time of day mechanic or something along the lines; there's so much effort put into this and as far as I can tell it's only ever used at the start of the game to 'fade in' the intro and potentially at the end of the game.

It's not too much more work on top of what I've done to build a high-level scripting language that compiles down to this bytecode, so yes other than various assumptions (inventory items that must exist at particular IDs, workarounds for bugs in particular rooms, etc) it's definitely possible to write a "new" game on top, with all new assets/logic. I don't know that I'll take it that far though, but if I clean up this tooling a bit I'll probably throw it up on Github.

Red Mike
Jul 11, 2011
That was a clearly rushed ending, but hey at least it still fits the british sitcom narrative right up until the final line. Thanks for the LP, delivered some needed nostalgia for me.



If anyone's interested and programming-minded, I've pushed up a draft version of the repository now here, although only for viewing some of the assets and assuming you have the TOUCHE.DAT file to use which I won't be including myself for obvious reasons. I set up a web frontend for it and fixed some of the major issues which means the sprite sheets and room images now render in correct colour.

I'm planning to run a publicly-accessible version of latest once I set it up on a droplet, but I think I'll have to tweak the image rendering to make it work so it might be a few days.

But it should look something like this (click for more images):


I'll probably keep working on it for a little while, my goal would be to get enough of the data parsed that I can turn it around and just output a very bare-bones new DAT file with a sprite/room/basic script that can technically be loaded into the game successfully.

Adbot
ADBOT LOVES YOU

Red Mike
Jul 11, 2011
Just to wrap up and say a thank you (and a drat you) for getting my head stuck on this project for a couple weeks, I've now achieved the goal I set out to initially:

https://i.imgur.com/wXhXPoa.gifv

This is running in the actual Touche engine, just by replacing the TOUCHE.DAT file with a new one. In fact, here's a link to my custom one. All it sets up is the background (a modified screenshot from the Princess Bride movie), the two sprites with their stock animations (from the original game for convenience), a couple points for positioning and the strings, and then a program that just makes the sprites act it out about as far as the GIF shows. Honestly even for this little I'm surprised at how little it really took to wire it up, the game engine is honestly not bad. If anything lets it down, it's the animation system being very clearly a last-minute bodge.

The only big outstanding thing I haven't touched is the conversation system, but from a skim it just looks like more of the same, so it's just a matter of working out the right patterns for things. Obviously there's no actual gameplay yet, but that's mostly because putting all the right data in (hitboxes, areas, walk routes, etc) is a lot of manual work at this stage; writing tooling to do it automatically will honestly be less work, but I don't know that I'll take it that far. At the very least I'll clean up what I have and push it up into the repository in the next few days.

So thanks for the nostalgia trip with the LP and then the two weeks of productive procrastination!

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply