Saturday, January 29, 2011

Riven iOS

My father wanted to buy Riven iOS for his iPod Touch, so I figured I'd take a quick look at it. The game itself seems to work well, but the videos are a bit jittery. Now onto the more important part: A look at the data files.

No, I'm not going to reimplement this engine. But at least this would be a good starting point for anyone who wants to.

It was pretty easy to figure out everything that was going on immediately. Ron Hayter already updated his Riveal tool to extract the images from the game. So, here's pretty much what's going on with those formats:

Images
PNG in the main directory and in zip files with the stack name in it, for example: "aspitimages" is the zip file holding images for aspit, also known as the main menu.

Sounds
CoreAudio Format in the main directory.

Movies
MPEG-4 with h.264 video and AAC audio.

Scripts
Now, here's the interesting part. The scripts are all in a SQlite database (version 3). They're also named by the stack, such as "aspitdb" for the scripts for the main menu. The actual scripts seem to be all in strings, probably based on the original HyperCard source (which was never released). I matched up some script segments for a comparison:

Riven iOS Script
Riven Win/Mac Script (dumped using ScummVM)

The card scripts start with the script type. The hotspots have the name followed by the rect followed by their scripts. It's pretty much the same setup as CARD/HSPT in the Win/Mac version.

Miscellaneous Observations
The entire main menu seems to have been converted, but is unused. Anyone who finds a debug mode in the app and goes to the original setup page gets a cookie from me.

Sunday, January 23, 2011

The Riven Easter Egg Shortcut

Hopefully the couple readers I have remember a post I did back in August entitled Riven Easter Egg Plus. For those who don't, it was about there being some script fragments on how to shortcut the full Riven easter egg.

Tonight, I present to you the full version of that shortcut. There is a trick to doing it and the game itself will try to block you at various occasions (disabling the shortcut just because you turned one way by accident). Oh yes, with the original interpreter as well. So, here's my best attempt at explaining this. You should *not* click on any red-shaded areas.

1) After the intro videos, walk over to the handle and click it *one* time.







2) Turn around to the cage (avoiding red spots) and look up. Then click the star on top of the helmet *one* time.





3) Turn right from the helmet and avoid red hotspots to walk over to Cho.







4) Click the hotspots on Cho in this order:



At this point, you have just taken a shortcut through the first four parts of the Riven easter egg. The last part is to go press the RAWA hotspot over by the maglev.

Yes, that's right. You can get the entire easter egg setup from the beginning without ever leaving Temple Island. So what are you waiting for? Go try it out! :)

Tuesday, January 11, 2011

Riven Update

Been a while, but here's a Riven update! Today, I finally finished QuickTime seeking support, so I quickly jumped at the opportunity to implement another puzzle, and here are the results:

This is how I envision my death

Need some aspirin?

Also, the telescope actually moves now instead of just jumping from place to place. Stay tuned for more updates soon, hopefully, maybe!

Feeling Rebellious

Out of boredom the other day, I decided to play around with ScummVM's SMUSH player and see if it could be "convinced" into playing some Rebel Assault videos (not Rebel Assault II, that's basically already there).

These version 1 videos are very similar to their version 2 brethren (Rebel Assault II, The Dig, Full Throttle, etc.), but have some differences. The delta palette code is different, providing fewer entries (smaller color sizes?). Audio and text seem to be handled differently as well. At least the audio flags are different. There's also a 'PVOC' chunk that probably deals with audio and a 'GAME' chunk that I can only speculate what it's for. Of course, I completely ignored the 'IACT' (interactive, for the INSANE code).

So, minus audio, text, and palette changes, I was able to render a couple frames. A couple at any rate. Without further ado:

The cutscene after the hardest level in the game. Seriously, who makes a level that hard and difficult to navigate? Damn Kolaador...


Now someone should go implement the game (not in ScummVM)!