Previous Post

Project: Cliff Hanger

Next Post
Project: Cliff Hanger
1 / 7
DESCRIPTION

(also not the One More Thing thing. I know, I know.)

Can you believe this is how a whole generation of American children got introduced to Lupin III?

True story! It wasn't available in America in 1983. It wasn't something you were going to stumble into a bookstore, or a Blockbuster Video, and discover. And this truth solved a very specific dilemma for Stern Electronics.

Largely a pinball company, Stern saw a competitor's arcade cabinet that was responsible for single-handedly jump-starting a fading arcade industry. It was so interesting, and unique, that kids across the country were lining up to shovel a full dollar into it for each play instead of the industry standard 25 cents.

It was like playing an animated movie. It was, of course, Dragon's Lair, and Stern wanted to get in on the action.

But right from the start, there was a production concern in making laserdisc-based arcade games.

Stern's likely most-famous game was Berserk, and it looked like this:

And, you know, not so much like this:

One of the most famous animators in the world, Don Bluth, was responsible for Dragon's Lair's footage. And The Secret of NIHM dude does not work cheap.

Dragon's Lair, allegedly, cost 1.5 million dollars to produce.

The easiest way to cut costs here was to find some footage that already exists and build up a game around it. And that's just what Stern Electronics did.

For those in the know, they built their game, Cliff Hanger, from footage of two different Lupin III films, which they found in Japan while looking for unique content to use for a game. Most of Cliff Hanger is The Castle of Cagliostro, and a little more is from The Mystery of Mamo. If you pull out their action sequences and turn each little moment into a Quick Time Event, you more or less have a ready-made laserdisc game without a massive production budget getting in the way of all those sweet, sweet quarters plinking into coinboxes in arcades across the nation.

Mr Lupin was renamed "Cliff," and he spends a lot of time hanging from things, true to name. In early builds of the game, they would actually show him being hanged from a gallows (get it, CLIFF HANGER?!) every time you failed. The sequence is long and a little disturbing, and there's a DIP switch in the cabinet to disable it. I've never seen it play in an actual arcade, but it's there on the disc.

Unlike Dragon's Lair, Cliff Hanger plays serially; you have to complete a scene to see the next one, in order. Also unlike Dragon's Lair, where most scenes have around five choices to make, one scene in Cliff Hanger might have 50 or more actions...and some of those scenes are brutal as hell.

This game is now supported by DirkSimple! Just point it at an Ogg Theora video named cliff.ogv and play!

While I built DirkSimple with the intention of adding more games, I didn't plan to return to it so soon. But then I was DM'd by someone on Discord with a bio that reads "looking for steam game keys and brl currency steam wallet keys and xbox game pass ultimate keys." No kidding. 

He asked about adding Cliff Hanger support and I explained the technical problem while my finger hovered over the Block button: I need the timing data from the ROM, so if he happened to have that laying around, sure, cool.

Five minutes later, he had it.

Turns out there are people that disassembled the ROMs for several of these laserdisc arcade games, and commented the heck out of them! Jeff Kulczycki and Robert Dinapoli took a deep-dive clinical look at Cliff Hanger's code. This got me not just the timings I needed, but also all the other unique traits of this game.

Dragon's Lair does all its rendering via its laserdisc player; the extremely minimal UI--game over messages, "please press the Player One Start button," etc--are all just single frames of video on the disc, and the game seeks to them and pauses there as necessary. Cliff Hanger is more advanced: it has the means to output simple graphics on top of the laserdisc output, as The DLP notes here:

(Less advanced in one way: it literally controls the laserdisc player with an IR blaster, simulating a remote control inside the cabinet. As a multi-decade Tivo owner, I'm going to guess this was a central point of failure).

Cliff Hanger's graphics board can draw a 40x24 grid of 8x8 pixel sprites to the screen, in 1-bit color (1=foreground, 0=background), and choose from a palette of 16 colors that one or zero represents (color zero is transparent, for drawing over pieces of the laserdisc footage).

The extremely-detailed ROM disassembly gave me all the details of what gets drawn where and when, how scoring works, the exact pixels that make up each sprite, and other quirks. A few perl scripts later, and I had a game I could play through. A ton of infrastructure work after that got me the ability to draw graphics over the laserdisc content, plus a lot of polish, and it looks and plays like the arcade version now!

So about 10000 lines of Z80 assembly code became about 1100 lines of Lua, which isn't a bad reduction. Plus this sets the engine up for future games that need to draw to the screen programmatically, not to mention not having code in place which will eventually let me overlay touch controls on the screen, etc.

The person who did the disassembly work for Cliff Hanger also published similar work for Thayer's Quest and Bega's Battle, so those are the next most likely targets for DirkSimple to support, next time I come around to this. But if anyone has leads on other titles that I can at least extract the scene tables from, I'd love to hear about it. This game is supported because a random dude looking for free game keys slid into my DMs, so I'm open to any conversations about this at this point.  :)

DirkSimple is still over on GitHub.

Ryan C. Gordon PATREON 3 favs
VIEWS1
FILES7 files
POSTEDFeb 20, 2023
ARCHIVEDFeb 20, 2023