tag:blogger.com,1999:blog-93483062024-03-19T05:14:36.977-04:00Clone2727's BlogClone2727's Little Corner of the World Wide Webclone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.comBlogger85125tag:blogger.com,1999:blog-9348306.post-24756670408149918512015-09-26T20:44:00.000-04:002016-05-20T21:43:34.249-04:00The Future<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdXGqV-CxAORpXBXlI6yss3q_KzzYjHlD4n5mzLp6lM8quhPaWxnuZ809kk7YnX_vlpnb1pc2usD8adegRuMwFLhqXSXbPb2ibtndsJfx8HHNse5cIRtPv2egcHj7n8_woP9f-Xw/s1600/bit_title24.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdXGqV-CxAORpXBXlI6yss3q_KzzYjHlD4n5mzLp6lM8quhPaWxnuZ809kk7YnX_vlpnb1pc2usD8adegRuMwFLhqXSXbPb2ibtndsJfx8HHNse5cIRtPv2egcHj7n8_woP9f-Xw/s320/bit_title24.png" width="320" /></a></div>
On the off-chance you didn't recognize the image from <a href="http://clone2727.blogspot.com/2015/09/teaser-and-firecat.html">my last post</a>, it was part of an animation from <i>Buried in Time</i>. And now you can find the source for running the game in Cabal <a href="https://github.com/project-cabal/cabal/tree/master">over here</a>. And, yes, it's completable.<br />
<br />
I'll fill in more details on the blog when I get a chance, but I think trying it out is probably a better way to show off what's been done.<br />
<br />
Oh, and I went a little overboard with compatibility on this title. Not only is the 24-bit one working, it has full compatibility with the 8-bit game resources too. (This is the ultimate purpose for that <a href="http://clone2727.blogspot.com/2014/08/revisiting-cinepak.html">Cinepak dithering</a> I spoke of last year.)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQvID6KTQfhMG5yp7S0zeiqpX0Wumg61wlbSEIAg_-9_gBYjzlcEaPQIy6ZyQgThJngVg4rrviNGuM1lFzBr5pvMMRF-yYkmPlV3S1brZf82H5EpJZy1ht-aaG2t3wy80eItXU8g/s1600/bit_title8.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQvID6KTQfhMG5yp7S0zeiqpX0Wumg61wlbSEIAg_-9_gBYjzlcEaPQIy6ZyQgThJngVg4rrviNGuM1lFzBr5pvMMRF-yYkmPlV3S1brZf82H5EpJZy1ht-aaG2t3wy80eItXU8g/s320/bit_title8.png" width="320" /></a></div>
Much thanks to Presto Studios yet again for making all this possible and providing the original source code!clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com0tag:blogger.com,1999:blog-9348306.post-49551871739253836442015-09-25T00:09:00.000-04:002015-09-25T00:09:51.564-04:00Teaser and the Firecat<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipO4AR8njXjhpzQvjzHrThxzyAg4ZLmkMugvkX4N8j8OaIQx6J6LPQkDnbdYEChRAzoYDcYPBfTtox6WxWFd99YKGN5iz9FwEy5C-bx0WOdNmlvx4M1nObHCW_9ZqP5-ePlMgaKw/s1600/teaser_20150923.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="143" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipO4AR8njXjhpzQvjzHrThxzyAg4ZLmkMugvkX4N8j8OaIQx6J6LPQkDnbdYEChRAzoYDcYPBfTtox6WxWFd99YKGN5iz9FwEy5C-bx0WOdNmlvx4M1nObHCW_9ZqP5-ePlMgaKw/s320/teaser_20150923.png" width="320" /></a></div>
<i>Soon...</i>clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com0tag:blogger.com,1999:blog-9348306.post-76479594854190292262014-08-17T19:13:00.000-04:002014-08-17T19:14:25.933-04:00Revisiting CinepakWhile working on an as-of-yet-unnamed engine last year, I realized I needed to dither some videos. My only hope was that it wouldn't be as painful as <a href="https://drmccoy.de/gobsmacked/?tag=dithering">DrMcCoy had it</a> several years ago (and I'm pretty sure the "beauty" part was sarcastic). Looking at how the game dithers the graphics, I figured out that it relied on Video for Windows to handle dithering. VFW promptly handles it by making the codec handle it.<br />
<br />
For this game, that codec was Cinepak. The Cinepak decoder has been in ScummVM since 2009 (I wrote it in late 2007 or so, so it's really even older). I refused to use some other dithering algorithm that would have been different and given different results. If I was going to implement this, I was going to do it to match the original 100%. That meant it was time to figure out what it does.<br />
<br />
Basically, the algorithm is based on pre-dithered tables that are for a given hardcoded palette. For custom palettes, it finds the nearest (using a simple distance equation) color in it and maps from the Cinepak palette index to the custom one. It then uses the pre-dithered tables to generate 4x4 blocks based on the contents of the codebook which is then mapped to the custom palette.<br />
<br />
I pushed <a href="https://github.com/clone2727/scummvm/tree/video-dither">the code</a> for the curious.<br />
<br />
QuickTime also does something similar (but with a different dithering algorithm in Cinepak, of course), which I'll be working on for Myst.<br />
<br />
Here's the result, using one of the Cinepak samples from the <a href="http://samples.mplayerhq.hu/V-codecs/CVID/">MPlayer samples archive</a> (in this case, the Lara Croft one):<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ7mYZDB5lzs-VgdbeAudpLms-FKqd22VYZDsqLZt5DtsHWxsZ95k3MPHa_2PcisU4cH9PlhOkaunlFw_SVwsZI69pTNFIaikdwaDq7oFIPVPF1J1Oc2xs1vf7_RDcgmkXCPlHaQ/s1600/24bpp_lara.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQ7mYZDB5lzs-VgdbeAudpLms-FKqd22VYZDsqLZt5DtsHWxsZ95k3MPHa_2PcisU4cH9PlhOkaunlFw_SVwsZI69pTNFIaikdwaDq7oFIPVPF1J1Oc2xs1vf7_RDcgmkXCPlHaQ/s1600/24bpp_lara.png" height="149" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Normal decode to 24bpp</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPmtaCcqOekJZGYWfKwwpcZvuiKuHuYiauGLBK9LM7WkRjIsOHs5mhU_0cLTdSgXcyvOD3l_Gr3oOSav6H4ytFrNMFUjVM4FjQ_5eKpOcWR4Czim6X5SarleUuzmhxhQLXy6U5ow/s1600/8bpp_lara.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPmtaCcqOekJZGYWfKwwpcZvuiKuHuYiauGLBK9LM7WkRjIsOHs5mhU_0cLTdSgXcyvOD3l_Gr3oOSav6H4ytFrNMFUjVM4FjQ_5eKpOcWR4Czim6X5SarleUuzmhxhQLXy6U5ow/s1600/8bpp_lara.png" height="149" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Dither to 8bpp</td></tr>
</tbody></table>
<br />
The result looks pretty decent. I was mostly glad it wasn't a ridiculous amount of extra code.clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com2tag:blogger.com,1999:blog-9348306.post-36268284663917340402014-08-16T02:18:00.001-04:002014-08-16T09:09:49.872-04:00Hidden in Plain SightWith the DVD/GOG version of Pegasus Prime, there was a slight problem before release. We had an invalid function call entering the three new chase sequences when compiled in gcc with optimizations. I was unable to figure out the exact cause at the time and I ended up writing a hack around it in final release.<br />
<br />
Since a bad function was getting called, I had feared gcc was overwriting a return address somewhere and sending the program counter where it shouldn't be. valgrind wasn't helping and only showed the after-effects of the bad function call. It was pretty hard to pinpoint in gdb too, due to the calling function being called numerous times during execution without breaking. I had shelved the issue for some time so I could return later, perhaps with another idea of tackling it. I found my hope in the <a href="http://code.google.com/p/address-sanitizer/">AddressSanitizer</a>.<br />
<br />
Armed with my shiny new PC and gcc 4.8.1, I recompiled with the address sanitizer to see what I would get. The game would now crash as soon as the sequence would start, due to the sanitizer kicking in. The information the sanitizer gave helped in really one way: I had a way to make it stop as soon as it broke from the <a href="http://code.google.com/p/address-sanitizer/wiki/ExampleStackOutOfBounds">stack buffer overflow</a> error. Perhaps not quite the way the tool was intended to be used, but it was enough of a hint for me.<br />
<br />
With some logging to a file, I saw that it crashed <a href="https://github.com/scummvm/scummvm/blob/d2bf7f99fd20fbc0b6126e5c8ae6833d3491d030/engines/pegasus/input.cpp#L266">here</a> the first time _inputHandler changed. Going with <a href="http://lordhoto.blogspot.com/">LordHoto</a>'s suggestion to check the vtable of the pointer, I noticed something funny: It was the vtable for the wrong class!<br />
<br />
Once I saw <a href="https://github.com/scummvm/scummvm/blob/d2bf7f99fd20fbc0b6126e5c8ae6833d3491d030/engines/pegasus/interaction.h#L40">where the _inputHandler field was populated</a>, I quickly saw what my mistake was. Instead of relying on the compiler to upcast from the subclass to the InputHandler class, I had a manual C-style cast in there. The Neighborhood pointer (only known through forward declaration) was being cast to the InputHandler pointer. Normally this would be OK, as long as the compiler knew about the class hierarchy (in this case, with multiple inheritance and virtual functions), and then generate a static_cast. But if it didn't know that, it would have to go with a reinterpret_cast. The code was doing a reinterpret_cast and throwing away the hierarchy, and therefore causing undefined behavior. It just so happened that it called into the wrong vtable in this case.<br />
<br />
But why did it happen only during optimization? Probably because the function was getting inlined. If the include order had Neighborhood defined in the translation unit before getting to the constructor of GameInteraction, it would have output the correct static_cast. It's likely one other place had this situation and that version ended up being the actual used function.<br />
<br />
Definitely one of the hardest bugs I've had to track down.clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com2tag:blogger.com,1999:blog-9348306.post-50588176310332998352013-04-02T00:22:00.000-04:002013-04-02T00:22:47.263-04:00I'm not dead! I feel happy!It's been so long since the last post that Blogger completely changed their editing interface (OK, not really a joke since Google seems to change their GUI with everything at regular intervals to confuse the public at large).<br />
<br />
A few things for this update:<br />
<br />
1) <i>The Journeyman Project: Pegasus Prime</i> <a href="http://www.scummvm.org/news/20130328/">is now supported in daily builds of ScummVM</a>. Rejoice! And stay tuned for more news!<br />
<br />
2) ScummVM April Fools Jokes™ will return next year with a vengeance (blame <a href="http://drmccoy.de/gobsmacked/">DrMcCoy</a>, probably).<br />
<br />
3) If you're able to recall when posts happened more regularly than yearly, you might remember <a href="http://clone2727.blogspot.com/2011/01/feeling-rebellious.html">this post</a>, which I <a href="http://clone2727.blogspot.com/2011/02/git-er-done.html">followed up</a> saying I uploaded modified ScummVM code to a branch. Then last year I wrote <a href="https://github.com/clone2727/smushplay">a small player</a> for the videos so I didn't have to hack directly in ScummVM anymore -- and then added support for <i>Outlaws</i> (<u>proper</u> 1/4 sized raw frames), <i>Mysteries of the Sith</i>, and (partially) <i>Rebel Assault</i> SegaCD.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj08XdXMvTNbWKch3CWhximDoKgJla0J69oN-VJDirGYLBF3z8eiXd9pX6GhbsC1FeoY7TpeEv7qAwuYOC0IVhh0pXG1A2AnHiio4QLOiJEUcqzBj_1Aj5gqNSr0WnsOEeILriGKA/s1600/ra_segacd2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj08XdXMvTNbWKch3CWhximDoKgJla0J69oN-VJDirGYLBF3z8eiXd9pX6GhbsC1FeoY7TpeEv7qAwuYOC0IVhh0pXG1A2AnHiio4QLOiJEUcqzBj_1Aj5gqNSr0WnsOEeILriGKA/s1600/ra_segacd2.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i><a href="http://lordhoto.blogspot.com/">LordHoto</a>'s favorite level (Sega CD version)</i></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHFftEaX28Xevi998iQ-lrGC4rYARVq1M7t7tWrcbfosHqqNH_wAKOpTFkqVHtkcSC59bH9YrFZUvtG8zZwnG8MrP_UL2nv6E4oXDUg96XX86qOil7aUNPSPolUeEMr19FlBfSYg/s1600/mots_l1o.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHFftEaX28Xevi998iQ-lrGC4rYARVq1M7t7tWrcbfosHqqNH_wAKOpTFkqVHtkcSC59bH9YrFZUvtG8zZwnG8MrP_UL2nv6E4oXDUg96XX86qOil7aUNPSPolUeEMr19FlBfSYg/s320/mots_l1o.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Mysteries of the Sith, Level 1 Opening</i></td></tr>
</tbody></table>
Oh, and I apologize if your comment didn't show up over the past few months. I screwed up with the admin settings on the blog and it never forwarded me e-mails! Sorry!clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com2tag:blogger.com,1999:blog-9348306.post-50040477988451135432012-04-12T14:50:00.005-04:002012-04-12T15:28:55.359-04:00Getting Pegasus to Run in ScummVM<span style="font-style: italic;">The Journeyman Project: Pegasus Prime</span> is very much a Mac game. And by that, I mean it uses the gamut of Mac resources it has available to it. Thus, it can be very hard to extract the data on a non-Mac system. This post is an attempt to document some sane way for everyone to play the game in ScummVM. I'll also update this as people give me more info since some information is not provided by myself. Much thanks to eriktorbjorn for his file list and his Linux extraction script. This is all assuming you can compile the source code at the <a href="https://github.com/clone2727/scummvm/tree/pegasus">"pegasus" branch of my github fork</a> already.<br /><br /><span style="font-size:180%;">Extracting the Full Game Data</span><br />Since this is different on different platforms, I shall cover the big three here.<br /><br /><span style="font-size:130%;">Windows</span><br />For Windows you need to use either the <a href="http://www.emaculation.com/doku.php/hfvexplorer">HFVExplorer</a> or <a href="http://www.catacombae.org/hfsx.html">HFSExplorer</a> tools.<br /><br />If you're using HFVExplorer, you'll want to dump the files according to <a href="http://pastebin.com/KqWGiZwq">this document</a>. If you see "M" on a line, make HFVExplorer extract as MacBinary and as a "raw copy, data fork" for ones beginning with "R". Note that you'll have to rename any file or directory with "/" in the name to have an underscore ("_") in its place.<br /><br />For HFSExplorer, you can pretty much use the same instructions as HFVExplorer, except that you want to extract AppleDouble instead of MacBinary.<br /><br /><span style="font-size:130%;">Mac OS X</span><br />Extracting the data on a Mac is actually the easiest because a) you can use HFS drives directly and b) you can then run the game directly without changing any file names.<br /><br />First thing you'll need to do is to <a href="http://osxdaily.com/2009/02/25/show-hidden-files-in-os-x/">enable hidden folders</a>. Then merge the PP Data folders from all four discs into one folder on your hard drive. Any files with the same name are identical. That's it, you're done. You can also use the "macbinary" command line tool to make MacBinary versions of the files.<br /><br /><span style="font-size:130%;">Linux</span><br />You'll need to have hfsutils installed on Linux. Then you should run <a href="http://pastebin.com/B0SAJmwv">this script</a> provided by eriktorbjorn with <a href="http://pastebin.com/KqWGiZwq">this file list</a> (pasted into a file called "filelist.txt"). It should be pretty self-explanatory to run beyond that, I hope.<br /><br /><span style="font-size:180%;">Extracting the Demo Data</span><br />Since StuffIt is a completely awful tool that won't let you extract any of the resource fork data on a non-Mac system, you will have to wait until I upload a version of the demo that can be played with ScummVM directly. Mac users can use it pretty much right away. I will update this space as soon as possible with more details. Sit tight!clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com5tag:blogger.com,1999:blog-9348306.post-77258917103282224782012-04-02T10:26:00.001-04:002012-04-02T10:31:37.726-04:00About FaceA quick follow-up to <a href="http://clone2727.blogspot.com/2012/04/filler-post.html">my last post</a>: <a href="https://github.com/clone2727/scummvm/tree/pegasus">the code is now online</a>.clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com0tag:blogger.com,1999:blog-9348306.post-60606768171263078672012-04-02T00:51:00.009-04:002012-04-02T01:11:46.476-04:00Filler PostWhile I'm sure you're all waiting for a Pegasus Prime update, something completely useless will have to do in the meantime. Hopefully there will be a real update soon, stayed tuned! You can only get a sneak peek by seeing <a href="https://github.com/clone2727/scummvm-tools/tree/pegasus">my tool for allowing games made in ScummVM to be played in the original interpreter again</a>. In the meantime, you can hopefully appreciate the fact that <a href="https://github.com/scummvm/scummvm/commit/be8c557645bf73e96a463c60bd0422b39a3edfef">you can now properly hear Gehn singing in Riven</a>.<br /><br />Some more exciting news: I was able to grab a copy of the <a href="http://www.forcedperfect.net/hardware/cards/applempegmediasystem/">ultra-rare Return to Zork Macintosh MPEG edition</a>. Pretty much the same as the regular Mac version (and just as unsupported) but with a new MPEG-2 video layer of fun added on top. One day I'll finish RE'ing all those exotic versions of the game.<br /><br />Speaking of which, I wrote PSX stream decoder for use in Broken Sword 1 and 2 (and Return to Zork) so now one can play those videos in all their half-resolution glory. I know, you're all very excited!<br /><br />Switching gears.... For the one of you that may be interested, we did have a third idea for April Fools' this year that was replaced by <a href="http://www.scummvm.org/news/20120401b/">the C# port joke</a>. I came up with this idea after playing through Gabriel Knight: Sins of the Fathers last year and it manifested itself in a photoshop that I happened to like enough to not just outright toss out.<br /><br />Originally, there would have been a whole set of "advertisements in ScummVM" -- advertisements placed right into the games! The plan was going to insert a few things in such as making the soda machine in The Secret of Monkey Island a real Coca-Cola machine and using the pre-made "advertisement" of Foster's in a Beneath a Steel Sky.<br /><br />Only one prototype was made of GK1, and hopefully someone out there gets the joke.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbsde6RNbsy06dEUvTM7wa4vSeaN3lRVcjoJT9LmyYlPRcXf5sv1cGG71XCWeWzsoiGEWkBQebEUI8No4XtcscAXBWs5U_H99JDUE5OzXfmQi0ExwupVDERk9tbTdv2M9JM3llzA/s1600/zoidberg-shop.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbsde6RNbsy06dEUvTM7wa4vSeaN3lRVcjoJT9LmyYlPRcXf5sv1cGG71XCWeWzsoiGEWkBQebEUI8No4XtcscAXBWs5U_H99JDUE5OzXfmQi0ExwupVDERk9tbTdv2M9JM3llzA/s320/zoidberg-shop.png" alt="" id="BLOGGER_PHOTO_ID_5726663476555398146" border="0" /></a>clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com0tag:blogger.com,1999:blog-9348306.post-24918711760064715362011-12-15T20:39:00.001-05:002011-12-15T20:45:45.911-05:00ReminiscingWell, hello there. Been a few months since I posted here. Figured I'd post about something, y'know.<br /><br />Had a busy summer... busy fall too. Played a few games recently, including one classic game -- The Journeyman Project: Pegasus Prime. Let's reminisce a bit (WARNING: Contains spoilers; just skip to the very bottom for the good stuff).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8eNugt-tACtEneE-eF04qspP-iPml5eOZkK-Sl5bL9ugHGqpobUSNYFh_7TO-pG5tsI3TRGFf8YO9XTUdfgVc7e_t0s3SaOOdMGm_WNa4o29Rl23ZGvB4dWOlliJ2E8LTFBrAUg/s1600/title_screen.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8eNugt-tACtEneE-eF04qspP-iPml5eOZkK-Sl5bL9ugHGqpobUSNYFh_7TO-pG5tsI3TRGFf8YO9XTUdfgVc7e_t0s3SaOOdMGm_WNa4o29Rl23ZGvB4dWOlliJ2E8LTFBrAUg/s320/title_screen.png" alt="" id="BLOGGER_PHOTO_ID_5670097772709084882" border="0" /></a><br />The essential title screen; usually in most games. Let's move onto gameplay.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC0hT-UlSvVrGU2wa5JpcRR8DapMcyYKFgoGfcYcDzVyBHoMiqzQVDZttVtKdHJRyG-XVAL-EoMWl3J55dgkHxwpj58Z128osR_LM2oB5rqNppiLzjBfgA_xO9QwKo8LZ5ScmXGg/s1600/michelle_vidphone.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC0hT-UlSvVrGU2wa5JpcRR8DapMcyYKFgoGfcYcDzVyBHoMiqzQVDZttVtKdHJRyG-XVAL-EoMWl3J55dgkHxwpj58Z128osR_LM2oB5rqNppiLzjBfgA_xO9QwKo8LZ5ScmXGg/s320/michelle_vidphone.png" alt="" id="BLOGGER_PHOTO_ID_5670098123042034882" border="0" /></a><br />We should probably wake up, and not be late for work.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyxc7YDnJGsVUAegF5oXSvQJbiY7ZY3rXSQHf6BeGf6bdYyWWX2YMt8gwHvWLtYiKdtF4l3HvI4XlwfHQkB0YPZvN2yQfSVyA63ZpBlxKipJSOq02MSlgN_gOV9y9fFqTdVl3AqA/s1600/unhappy_boss.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyxc7YDnJGsVUAegF5oXSvQJbiY7ZY3rXSQHf6BeGf6bdYyWWX2YMt8gwHvWLtYiKdtF4l3HvI4XlwfHQkB0YPZvN2yQfSVyA63ZpBlxKipJSOq02MSlgN_gOV9y9fFqTdVl3AqA/s320/unhappy_boss.png" alt="" id="BLOGGER_PHOTO_ID_5670098358038418498" border="0" /></a><br />Too late! The commissioner doesn't look too happy. Also, bad temporal rip incoming and whatnot.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZaV0nOFe0CIpmr72adwjdlbkV4rLAkejnel48gDt5yKX1X47xmgqjXiIwmZlQLefxN3YupsQ1zVpbWghkHn6b1ShGOFcCyAn2CwmV0WOTrOt_kOx1oC5qVXftjck8RS4cslqoJg/s1600/first_interface_full.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZaV0nOFe0CIpmr72adwjdlbkV4rLAkejnel48gDt5yKX1X47xmgqjXiIwmZlQLefxN3YupsQ1zVpbWghkHn6b1ShGOFcCyAn2CwmV0WOTrOt_kOx1oC5qVXftjck8RS4cslqoJg/s320/first_interface_full.png" alt="" id="BLOGGER_PHOTO_ID_5670098656433148626" border="0" /></a><br />Time to go recover that log and not jump off the cliff though!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsNY6XK_JuSraLPHGrLqAgFt1KCui4w17L6M_Z25UXxrZ2SKyyQgxJnZbFIoGc7zI4EjcizwMukSs_y1y564pTx_RJfvxRUpIvvp0p8FOCxqV06lZYqErG-bXnjpH3aafxge-a4A/s1600/dinosaurs.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsNY6XK_JuSraLPHGrLqAgFt1KCui4w17L6M_Z25UXxrZ2SKyyQgxJnZbFIoGc7zI4EjcizwMukSs_y1y564pTx_RJfvxRUpIvvp0p8FOCxqV06lZYqErG-bXnjpH3aafxge-a4A/s320/dinosaurs.png" alt="" id="BLOGGER_PHOTO_ID_5670099017479838946" border="0" /></a><br />Avoid dinosaurs too, always good. Let's go to Mars instead.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmtHm5ZgF_HLWppCxBlx8Ib4wpW3pKm8uN2GydMAF2OVJnnw8bx3XC7INObfj-N_LjA_E3eezR4xw0RUIahZQHz4OwB7KNUshFjS_Dxl_aKcnHIhLMVehQ-xbgkPO8ZKFt9S_Baw/s1600/robot_attack.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmtHm5ZgF_HLWppCxBlx8Ib4wpW3pKm8uN2GydMAF2OVJnnw8bx3XC7INObfj-N_LjA_E3eezR4xw0RUIahZQHz4OwB7KNUshFjS_Dxl_aKcnHIhLMVehQ-xbgkPO8ZKFt9S_Baw/s320/robot_attack.png" alt="" id="BLOGGER_PHOTO_ID_5670099510551187394" border="0" /></a><br />Watch out! (Aside: For fun, you can try to attack this guy with any inventory item -- I bet you didn't know that!)<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzqljifep3QHLF4VlIDvfzBSRgadpB_lf7T9qu_-qAnWcr-haefa2GTLAaq3OrVyotAy6uI6Tprw5Utu3s4lmJf7F6PxXs23BXId7041b2WApfTjtpTOQbIbUk0jfBAyf_u52cA/s1600/freeze_lock.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFzqljifep3QHLF4VlIDvfzBSRgadpB_lf7T9qu_-qAnWcr-haefa2GTLAaq3OrVyotAy6uI6Tprw5Utu3s4lmJf7F6PxXs23BXId7041b2WApfTjtpTOQbIbUk0jfBAyf_u52cA/s320/freeze_lock.png" alt="" id="BLOGGER_PHOTO_ID_5670099699691490946" border="0" /></a><br />Freeze the lock, let's take a look at that bomb. Don't just pry it out though! Now, let's get out of here.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWAUFfDUVT0pyC50jzLljlvDJ39HX8POVZCihkn_WG5l3LmZdvNBFF5v6nGCAWx9P_c8qabeBFYjko3ta4Ov59IHT3TUdSoLBHby-9F_Icpcd2RaWCDkcH0ygAbjM6GJJJvWP8w/s1600/in_the_maze_of_mars.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWAUFfDUVT0pyC50jzLljlvDJ39HX8POVZCihkn_WG5l3LmZdvNBFF5v6nGCAWx9P_c8qabeBFYjko3ta4Ov59IHT3TUdSoLBHby-9F_Icpcd2RaWCDkcH0ygAbjM6GJJJvWP8w/s320/in_the_maze_of_mars.png" alt="" id="BLOGGER_PHOTO_ID_5670099905042530482" border="0" /></a><br />The maze isn't the same without the original music, but it's still enjoyable. Let's go catch that robot!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxLA3NklJLpw5TVMfSxsIVQm2_QFoTCLDzJWBawuUydSzDjMy28WcDpRXiFBW2ClabKzavvshodcAuhyphenhyphen3SDoRN9XBcvkUBy-SknAUkrtsaIK__4LZ7j9OIbx2L9dHU7Q5lsqbyGQ/s1600/space_chase.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxLA3NklJLpw5TVMfSxsIVQm2_QFoTCLDzJWBawuUydSzDjMy28WcDpRXiFBW2ClabKzavvshodcAuhyphenhyphen3SDoRN9XBcvkUBy-SknAUkrtsaIK__4LZ7j9OIbx2L9dHU7Q5lsqbyGQ/s320/space_chase.png" alt="" id="BLOGGER_PHOTO_ID_5670100095207570386" border="0" /></a><br />Bang bang! Pew pew! Now, tractor her in and board her!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpHnZ8HdjU8vbpmnLNEujQPOe0tbLc0DfuUBFrlnF3v5Ol3hmU5AiXz_qC9qU7pxyEHEsR2yeJ706CGdVavlQahM_j2tOZpnYRoJJynUoK1uh9bxLxaIst_sD3kMh3p-bjM3nKzw/s1600/morph.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpHnZ8HdjU8vbpmnLNEujQPOe0tbLc0DfuUBFrlnF3v5Ol3hmU5AiXz_qC9qU7pxyEHEsR2yeJ706CGdVavlQahM_j2tOZpnYRoJJynUoK1uh9bxLxaIst_sD3kMh3p-bjM3nKzw/s320/morph.png" alt="" id="BLOGGER_PHOTO_ID_5670100454904531010" border="0" /></a><br />Need to stop a robot down under too.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmQmIEmuXNKuMH3qGu4OycU1Aul-qCk4vwOw94fXf4ZKoZio76FFz6OOgoUddkkGknVmVnK_RNcQKWPS-tScgoqM_dh6HF4RsmaSzivlZK6OQ149DLy8NSIsXddgCaHcL5DbSc7Q/s1600/no_match.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmQmIEmuXNKuMH3qGu4OycU1Aul-qCk4vwOw94fXf4ZKoZio76FFz6OOgoUddkkGknVmVnK_RNcQKWPS-tScgoqM_dh6HF4RsmaSzivlZK6OQ149DLy8NSIsXddgCaHcL5DbSc7Q/s320/no_match.png" alt="" id="BLOGGER_PHOTO_ID_5670100739572236594" border="0" /></a><br />Being under the sea more to your liking? This guy doesn't seem to think you're much of a match for him, though. Probably should stay out of his way or maybe crush him or something.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-sa3gDJGNQLHs6Rr642Tfyge-t7lMjKyb3NeQewh_u7_roY0KgXEQJjM4eLfourTfRGovh_6lBwtdIZTkUGB1FApGmkqfB-O1-83LybxhPiTo78IebdedmEcrdo_AVSSTB8c_uQ/s1600/globe.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-sa3gDJGNQLHs6Rr642Tfyge-t7lMjKyb3NeQewh_u7_roY0KgXEQJjM4eLfourTfRGovh_6lBwtdIZTkUGB1FApGmkqfB-O1-83LybxhPiTo78IebdedmEcrdo_AVSSTB8c_uQ/s320/globe.png" alt="" id="BLOGGER_PHOTO_ID_5686230439009248802" border="0" /></a><br />I hope you don't need a map to solve this one.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicJSq8cBKmHRfJm4fUhDxwckP9eabVefRpgso2k3jqNoiNbaDcRss82xQtXgP9rPwuuw81Dw4XijlBlBsaHx5Po4dRwoqa4fmiakDsugfBEw3Hq7hBgbi7Stbhsa7bamkaYr83Aw/s1600/sub_controls.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicJSq8cBKmHRfJm4fUhDxwckP9eabVefRpgso2k3jqNoiNbaDcRss82xQtXgP9rPwuuw81Dw4XijlBlBsaHx5Po4dRwoqa4fmiakDsugfBEw3Hq7hBgbi7Stbhsa7bamkaYr83Aw/s320/sub_controls.png" alt="" id="BLOGGER_PHOTO_ID_5686230448995151714" border="0" /></a><br />Watch out! Robot on the loose!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxCodBfycq0rKvj_V6Wt9xWbx7s0IVNkv_Eho6V6l0nIXFriU1kLMmMnzvhjENAH3ujGeAPGvbPoxJfmWSMfvOmIpikx4OHcbS0NJqP9sFbcex72xqts7nBksl8N8CRtGO9eld9g/s1600/access_bomb.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxCodBfycq0rKvj_V6Wt9xWbx7s0IVNkv_Eho6V6l0nIXFriU1kLMmMnzvhjENAH3ujGeAPGvbPoxJfmWSMfvOmIpikx4OHcbS0NJqP9sFbcex72xqts7nBksl8N8CRtGO9eld9g/s320/access_bomb.png" alt="" id="BLOGGER_PHOTO_ID_5686230472813274210" border="0" /></a><br />Who needs lockpicks? Let's just blow the door open.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEovnhDuR6NEHcxnOiF1N-PWsY7jFc8O7OYzdWr_K7Jfdo0-FB-KUyM2Wl9FoBHDveJxR_CS-NqWXyTTM2U9V9AkGzejzonAkIQ9b6ZWCCbtjKVrK8fWQAfDm0viTobc1eNLvJ7w/s1600/slightly_stungunned.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEovnhDuR6NEHcxnOiF1N-PWsY7jFc8O7OYzdWr_K7Jfdo0-FB-KUyM2Wl9FoBHDveJxR_CS-NqWXyTTM2U9V9AkGzejzonAkIQ9b6ZWCCbtjKVrK8fWQAfDm0viTobc1eNLvJ7w/s320/slightly_stungunned.png" alt="" id="BLOGGER_PHOTO_ID_5686230480525397458" border="0" /></a><br />Why are there no tasers in the future?<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikz1BN8amx8miVIpROho5rYwdueI3HBbZaVDTnQtEr0oONooYfDfnXNN_5FwKuBlANf1dEoAkbCUi5U-787uLGM9F3VWkEk7hWF125F0VnBrfA3Qb7c4FC7Euj4S4-w8gjwa36DQ/s1600/gridiron.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikz1BN8amx8miVIpROho5rYwdueI3HBbZaVDTnQtEr0oONooYfDfnXNN_5FwKuBlANf1dEoAkbCUi5U-787uLGM9F3VWkEk7hWF125F0VnBrfA3Qb7c4FC7Euj4S4-w8gjwa36DQ/s320/gridiron.png" alt="" id="BLOGGER_PHOTO_ID_5686230502985607602" border="0" /></a><br />How come James Bond never had to go through this level of difficulty when diffusing a bomb?<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtyRl594erjM7YkyeTid56I8Oz1bftGODEeLght2ijpwE5jWENRAQnL1ishr1rlCfFv5Z_qgbSdNldDC2vLQ1ehprQMhyphenhyphenhqwe7uDJSJSkMuQzXbdCIUEDWFhdYuEmJGalfXEHuPQ/s1600/mission_accomplished.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtyRl594erjM7YkyeTid56I8Oz1bftGODEeLght2ijpwE5jWENRAQnL1ishr1rlCfFv5Z_qgbSdNldDC2vLQ1ehprQMhyphenhyphenhqwe7uDJSJSkMuQzXbdCIUEDWFhdYuEmJGalfXEHuPQ/s320/mission_accomplished.png" alt="" id="BLOGGER_PHOTO_ID_5686231415111521570" border="0" /></a><br />Mission Accomplished!<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />Well, that was a fun little aside don't you think! Talking about a classic adventure game randomly, just like that. Or was it really random? Maybe there's something common about those screenshots; no, not just in PNG format. They're all taken from within ScummVM. Yeah, you heard correctly. This is definitely happening, and I'll hopefully be done fairly soon. Ah, now you see what I'm getting at? There's still some graphical glitches with the videos, but it's in very good shape overall.<br /><br />Oh and it's even <span style="font-style: italic;">completable</span>.<br /><br />More updates to come soon (And no, this code isn't on my github account yet, but will be soon).<br /><br />And, of course, much thanks to Presto Studios for making all this possible and providing the original source code!clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com3tag:blogger.com,1999:blog-9348306.post-83467532029992396372011-06-17T02:09:00.004-04:002011-06-17T02:44:07.582-04:00Mac SCI1.1+ Games UpdateI really should update here more :P<br /><br />In an effort to catch up with stuff I've missed, I'll start by going over stuff I coded a few months ago. Remember last year when I wrote up two posts about SCI Mac code? Well, I don't. So, here's <a href="http://clone2727.blogspot.com/2010/05/sci-mac-craziness.html">two</a> <a href="http://clone2727.blogspot.com/2010/06/are-you-ready-for-summer.html">links</a> from last summer.<br /><br />Back in probably February, waltervn and myself tackled the resource compression of the non-King's Quest VI SCI1.1+ Mac games. King's Quest VI wasn't good enough to receive the compression of the other games. Then we found out that they changed the sprite compression routine again (runs now a word instead of a byte) for QFG1 VGA Mac. The Mac versions of Hoyle Classic Card Games and Freddy Pharkas became playable too, especially after waltervn put in a bunch of work on the hardcoded menu bar of KQ6 and Freddy Mac (though, still not complete).<br /><br />One of the problems we found with these Mac games is that they have their black and white palette indexes reversed from normal SCI (black = 0x00, white = 0xff). Why? Because on classic Mac OS, white is always at 0x00 and black is always at 0xff. Our solution was to swap black and white pixels so that our palette code from the DOS versions would still work and would keep the complexity down.<br /><br />Then, I took a look at the SCI2.1 Mac situation (GK1 Mac is SCI2.1 instead of SCI2 like the DOS version). The four SCI1.1 Mac games began to switch various resources to store multi-byte values in big endian order instead of the little endian order of their DOS counterparts. Starting with GK1, Sierra began to, as I like to put it, "big-endian-ify" the remaining resources. I also added support for the high-res GK1 Mac fonts that the DOS version doesn't have. It currently is probably on the same page of support as the DOS version (minus the sound driver and one skippable timing bug in the Day 1 intro). Gabriel Knight 2 Mac also has some small amount of support, but with some more weird transparency issues. The later SCI2.1 Mac games have some Sound class changes (the SCI class, that is) that causes games like Phantasmagoria to not start without a couple hacks.<br /><br />Going back even further, there's three SCI0 Mac games that we don't support yet either: Space Quest III, Hoyle's Book of Games I and Hoyle's Book of Games II. These three are special in that they run in a higher resolution than the usual 320x200 and have high-res views.<br /><br />And now for some screenshots:<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzMjk3QMlfePizPxVLkHf2HK5uCqVofDzKBi3iV8wEFUIxOPGwUKKP4vWHCyTG2T6EEzpnUnkAHI63TTq5pOOZ7_9OjtotvwrLTB0PBcUqOUGP3086ew8_y2nvRcf8VZXzrFVMQA/s1600/kq6-menu.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzMjk3QMlfePizPxVLkHf2HK5uCqVofDzKBi3iV8wEFUIxOPGwUKKP4vWHCyTG2T6EEzpnUnkAHI63TTq5pOOZ7_9OjtotvwrLTB0PBcUqOUGP3086ew8_y2nvRcf8VZXzrFVMQA/s320/kq6-menu.png" alt="" id="BLOGGER_PHOTO_ID_5619074958265343586" border="0" /></a><span style="font-style: italic;">Clicking on the KQ6 menu</span><br /></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9xMKiECrKb5ipQWT2sQc-leFx-_P5sTehAIYoyw1m_peCp-dJxC2P_yLEa84HteA_Vu96uYef5uNl1XDeK9SFWNDVLuEWmS-jgFdnJm2lJWoGT1S_rTuy66btAehscrNQJdkVKg/s1600/kq6-menu2.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 218px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9xMKiECrKb5ipQWT2sQc-leFx-_P5sTehAIYoyw1m_peCp-dJxC2P_yLEa84HteA_Vu96uYef5uNl1XDeK9SFWNDVLuEWmS-jgFdnJm2lJWoGT1S_rTuy66btAehscrNQJdkVKg/s320/kq6-menu2.png" alt="" id="BLOGGER_PHOTO_ID_5619074962135036578" border="0" /></a><span style="font-style: italic;">Looked at that awesome greyed out effect!</span><br /></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYzQ7xRcETgOqMcbN0oE9Z-bCOIwfEqCrWkdbmmJX1ghgoKqiDGQ1rPkHSTwvkeSdMvFlxEgSf-LI-jJ1fKxpE3eWpwJ9R301hnl9TTLh3WG3X1GLBsGyVgO4mH2duSI9SBhVVhQ/s1600/gk1-day1.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYzQ7xRcETgOqMcbN0oE9Z-bCOIwfEqCrWkdbmmJX1ghgoKqiDGQ1rPkHSTwvkeSdMvFlxEgSf-LI-jJ1fKxpE3eWpwJ9R301hnl9TTLh3WG3X1GLBsGyVgO4mH2duSI9SBhVVhQ/s320/gk1-day1.png" alt="" id="BLOGGER_PHOTO_ID_5619074972081236626" border="0" /></a><span style="font-style: italic;">GK1 high-res fonts = awesome </span><br /></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoiOEmDEhLhT3diJuBot21NCh65Ao0zUeghLmtg2tR5TU_k0hq7YUjJUwpwOKNyHddZoWNLMeuv6Y0Kn5-hCP5g6k8VSBg93yXHYN175XT94mP__bPIMTqjg-StXp9GYLmd20DZg/s1600/gk1-lake.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoiOEmDEhLhT3diJuBot21NCh65Ao0zUeghLmtg2tR5TU_k0hq7YUjJUwpwOKNyHddZoWNLMeuv6Y0Kn5-hCP5g6k8VSBg93yXHYN175XT94mP__bPIMTqjg-StXp9GYLmd20DZg/s320/gk1-lake.png" alt="" id="BLOGGER_PHOTO_ID_5619074976385179058" border="0" /></a><span style="font-style: italic;">Yeah, it's Mostly working (I am the king of lame puns)</span><br /></div>clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com2tag:blogger.com,1999:blog-9348306.post-88909906686590050922011-02-21T18:47:00.005-05:002011-02-21T19:10:44.594-05:00Just Some Code Lying Around...Well, as promised by <a href="http://clone2727.blogspot.com/2011/02/git-er-done.html">yesterday's post</a>, I would come back with some more code. Oh look! There's two new branches on <a href="https://github.com/clone2727/scummvm">my fork of ScummVM</a>.<br /><br />First off, is <a href="https://github.com/clone2727/scummvm/tree/jmp">jmp</a>, which was supposed to be an engine for the Windows versions of <a href="http://en.wikipedia.org/wiki/The_Journeyman_Project">The Journeyman Project (Turbo!)</a> and its sequel, <a href="http://en.wikipedia.org/wiki/The_Journeyman_Project_2:_Buried_in_Time">Buried in Time</a>. However, other than <a href="https://github.com/scummvm/scummvm/blob/master/video/avi_decoder.cpp">an AVI player</a> (KQ6 put this code to good use), not much was of use until recently when I added support for loading resources from the EXE/DLL. Both games are entirely hardcoded. Still not much is done, but it's got some good code in there for the Cinepak-based bitmaps I <a href="http://clone2727.blogspot.com/2010/03/march-madness.html">mentioned on my blog before</a>. The codebase here dates back to 2006, so be gentle with it.<br /><br />Probably the more important of the branches, at least to me, is <a href="https://github.com/clone2727/scummvm/tree/pegasus">pegasus</a>. Unlike their predecessors, <a href="http://en.wikipedia.org/wiki/The_Journeyman_Project:_Pegasus_Prime">The Journeyman Project: Pegasus Prime</a> (Mac only) is not hardcoded (minus some 'minigames'). It seemed like a better candidate to me. Well, it's a bit more functional than the others but still not much is done. You can traverse the menus a bit and the intro plays (with that recently-added QuickTime seeking), but not much else can be done yet. And thanks to <a href="http://blitter.net/">a fellow fan's</a> research, some of the resource types are also loaded in (but not all). I intend to continue on this when I'm done with Mohawk (at least the "core" Mohawk games :P).<br /><br />It feels good to get this all off my chest. Have I mentioned how much I love git?clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com4tag:blogger.com,1999:blog-9348306.post-44745250400053930232011-02-20T13:06:00.002-05:002011-02-20T13:11:17.846-05:00Git 'er doneNow that <a href="http://www.scummvm.org/news/20110212/">ScummVM has moved to git</a>, I figured I would do a couple things with <a href="https://github.com/clone2727/scummvm">a fork of the project</a>. I love git so far!<br /><br />First off, I brought my <a href="http://clone2727.blogspot.com/2011/01/feeling-rebellious.html">Rebel Assault changes mentioned recently</a> to <a href="https://github.com/clone2727/scummvm/tree/ra-smush">a fork called ra-smush</a>. I also got audio (mostly) working in it (there's a slightly different SAUD frame header). No, don't even think about asking support for it in ScummVM!<br /><br />Secondly, <a href="http://clone2727.blogspot.com/2009/09/boldly-going.html">my old Star Trek engine</a> (for 25th Anniversary and Judgment Rites) has found its way into<a href="https://github.com/clone2727/scummvm/tree/startrek"> another fork</a>.<br /><br />And maybe there will be more forks soon.......clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com0tag:blogger.com,1999:blog-9348306.post-41841065773188961822011-02-15T01:37:00.004-05:002011-02-15T01:41:56.559-05:00Monkey Island FM-Towns for Sale<a href="http://cgi.ebay.com/FM-Towns-Monkey-Island-very-Rare-Lucas-Arts-CD-Rom-/220618961625">...at the low low price of $1200!</a> <a href="http://cgi.ebay.com/FM-Towns-ZAK-MCKRACKEN-LUCASFILM-Free-Worldwide-Ship-/170532702673">Even Zak isn't going for that much.</a> You know a game is expensive when it's for sale at double the price of Zak McKracken FM-Towns.<br /><br />But, hey, look on the bright side: there's free shipping.<br /><br />And now back to our irregularly scheduled program.clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com0tag:blogger.com,1999:blog-9348306.post-47704503260822601182011-01-29T17:04:00.003-05:002011-01-29T17:21:36.190-05:00Riven iOSMy 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.<br /><br />No, I'm not going to reimplement this engine. But at least this would be a good starting point for anyone who wants to.<br /><br />It was pretty easy to figure out everything that was going on immediately. Ron Hayter already updated his <a href="http://homepage.mac.com/rshayter/Riveal.html">Riveal</a> tool to extract the images from the game. So, here's pretty much what's going on with those formats:<br /><br /><span style="font-size:180%;">Images</span><br />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.<br /><br /><span style="font-size:180%;">Sounds</span><br />CoreAudio Format in the main directory.<br /><br /><span style="font-size:180%;">Movies</span><br />MPEG-4 with h.264 video and AAC audio.<br /><br /><span style="font-size:180%;">Scripts</span><br />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:<br /><br /><a href="http://pastebin.com/GMTJM7GD">Riven iOS Script</a><br /><a href="http://pastebin.com/gi1zLXdj">Riven Win/Mac Script (dumped using ScummVM)</a><br /><br />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.<br /><br /><span style="font-size:180%;">Miscellaneous Observations</span><br />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.clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com2tag:blogger.com,1999:blog-9348306.post-74694617025427737602011-01-23T00:58:00.000-05:002011-01-23T00:59:14.002-05:00The Riven Easter Egg ShortcutHopefully the couple readers I have remember a post I did back in August entitled <a href="http://clone2727.blogspot.com/2010/08/riven-easter-egg-plus.html">Riven Easter Egg Plus</a>. For those who don't, it was about there being some script fragments on how to shortcut the <a href="http://riven.interiority.com/">full Riven easter egg</a>.<br /><br />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 <span style="font-weight: bold;">*not*</span> click on any red-shaded areas.<br /><br />1) After the intro videos, walk over to the handle and click it <span style="font-weight: bold;">*one*</span> time.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ2rgueSOmePYX4-IIIcWIoKqFONii7X8sJMOKdytJzaD_Wt3N0KHM2Ub4aVwpuB5dAgXGfvE9b440pi3azjHPYYD0GFEG2wt2VDPkulqKnWjakjjQsUQRtoxYcXbDTP7-5fHGMQ/s1600/cage.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ2rgueSOmePYX4-IIIcWIoKqFONii7X8sJMOKdytJzaD_Wt3N0KHM2Ub4aVwpuB5dAgXGfvE9b440pi3azjHPYYD0GFEG2wt2VDPkulqKnWjakjjQsUQRtoxYcXbDTP7-5fHGMQ/s320/cage.png" alt="" id="BLOGGER_PHOTO_ID_5565254454801140834" border="0" /></a><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2WfuY9n_62ENGkJjdG-giTyQzz_NWSmw7b4gbI5hi82PqReCeAibhJDPd507XcB3D45OhMW1jK16gdjznjjBVJhk1fQ0_4UaT8LFUgP-83sLS8fkKWFi6D3C_j62FBKDCst0poQ/s1600/overlook.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2WfuY9n_62ENGkJjdG-giTyQzz_NWSmw7b4gbI5hi82PqReCeAibhJDPd507XcB3D45OhMW1jK16gdjznjjBVJhk1fQ0_4UaT8LFUgP-83sLS8fkKWFi6D3C_j62FBKDCst0poQ/s320/overlook.png" alt="" id="BLOGGER_PHOTO_ID_5565254451352350450" border="0" /></a><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLoHkTkAbmB2QvZiVecFxZOVs4NS4YCNlq7su74JLTgCbZpChr7SLijf3KwaEOZc-wLM6owLdOUmvUfJY2-pJyTw7qwl5ZWIarcPMh6C6el6DpYlKyCG4_CxVq6ob-IN3PHrQ5TA/s1600/handle.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLoHkTkAbmB2QvZiVecFxZOVs4NS4YCNlq7su74JLTgCbZpChr7SLijf3KwaEOZc-wLM6owLdOUmvUfJY2-pJyTw7qwl5ZWIarcPMh6C6el6DpYlKyCG4_CxVq6ob-IN3PHrQ5TA/s320/handle.png" alt="" id="BLOGGER_PHOTO_ID_5565254456415870738" border="0" /></a><br /><br />2) Turn around to the cage (avoiding red spots) and look up. Then click the star on top of the helmet <span style="font-weight: bold;">*one*</span> time.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiphPnV0dol7_QajpfmhXw159mHWfCqiXjScOFaM0CBvQf8FAHPJpBONeHi6PKVN5Tdu-VBFynnW9ucbACjrMRt5-mUgf5znBv7ln7DpToci3OVZz608tBVGvGtbgGchSlRecKiWA/s1600/helmet.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiphPnV0dol7_QajpfmhXw159mHWfCqiXjScOFaM0CBvQf8FAHPJpBONeHi6PKVN5Tdu-VBFynnW9ucbACjrMRt5-mUgf5znBv7ln7DpToci3OVZz608tBVGvGtbgGchSlRecKiWA/s320/helmet.png" alt="" id="BLOGGER_PHOTO_ID_5565255332098051266" border="0" /></a><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggQSQQg47-i3a2pEtN8L4-yQawAQBwEtLfYgbBlo8sebu0sm6SkvBo015V-aRdJfVcxpO_yPB2LPEzkcdffLwQ0DWvuJFdk_GJbMnUsGEmllzGIEd2cwafvSaUit-lbJewe3WRMA/s1600/star.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggQSQQg47-i3a2pEtN8L4-yQawAQBwEtLfYgbBlo8sebu0sm6SkvBo015V-aRdJfVcxpO_yPB2LPEzkcdffLwQ0DWvuJFdk_GJbMnUsGEmllzGIEd2cwafvSaUit-lbJewe3WRMA/s320/star.png" alt="" id="BLOGGER_PHOTO_ID_5565255340380371922" border="0" /></a><br /><br />3) Turn right from the helmet and avoid red hotspots to walk over to Cho.<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3Y9QjWgy6lWe6bUftPBQmFvPX6_mer72qNHKVq8q1DnaaZWLWCRhiXepFAH-eNolHKKXok87AJvi5IT14kMPzmLaaVGKXPzNlh-RebeXdhk-lVryFVAy3eNaxAeFMVbHtHzrXJA/s1600/fissure.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3Y9QjWgy6lWe6bUftPBQmFvPX6_mer72qNHKVq8q1DnaaZWLWCRhiXepFAH-eNolHKKXok87AJvi5IT14kMPzmLaaVGKXPzNlh-RebeXdhk-lVryFVAy3eNaxAeFMVbHtHzrXJA/s320/fissure.png" alt="" id="BLOGGER_PHOTO_ID_5565255819941216562" border="0" /></a><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibtz9ul8IOL-BKOmLjxAAYoe4m2dZ57v-IceWClERWkCZW8ezAquf6aAytroWF_ZVVY-AyXjPXzqZcNVfNtHTuXJ00hosh7RZXn06DHCjqfsW2IAtaCIOeCRCx6NpQIhkDwMP_pw/s1600/telescope.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibtz9ul8IOL-BKOmLjxAAYoe4m2dZ57v-IceWClERWkCZW8ezAquf6aAytroWF_ZVVY-AyXjPXzqZcNVfNtHTuXJ00hosh7RZXn06DHCjqfsW2IAtaCIOeCRCx6NpQIhkDwMP_pw/s320/telescope.png" alt="" id="BLOGGER_PHOTO_ID_5565255823987188898" border="0" /></a><br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2WfuY9n_62ENGkJjdG-giTyQzz_NWSmw7b4gbI5hi82PqReCeAibhJDPd507XcB3D45OhMW1jK16gdjznjjBVJhk1fQ0_4UaT8LFUgP-83sLS8fkKWFi6D3C_j62FBKDCst0poQ/s1600/overlook.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2WfuY9n_62ENGkJjdG-giTyQzz_NWSmw7b4gbI5hi82PqReCeAibhJDPd507XcB3D45OhMW1jK16gdjznjjBVJhk1fQ0_4UaT8LFUgP-83sLS8fkKWFi6D3C_j62FBKDCst0poQ/s320/overlook.png" alt="" id="BLOGGER_PHOTO_ID_5565254451352350450" border="0" /></a><br /><br />4) Click the hotspots on Cho in this order:<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnJ4UvfFx5V17PwyDeh4T8pM1_z1oJZBOiADCkjPomaslBQRCXuqITN_WjApuuQmp55zEysocjcFEw5C9kw3REMz20tTnxaUZPyhPWbvdHXJdb8cD7luWnXRXK-eKCD4sU5H3JbA/s1600/cho.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnJ4UvfFx5V17PwyDeh4T8pM1_z1oJZBOiADCkjPomaslBQRCXuqITN_WjApuuQmp55zEysocjcFEw5C9kw3REMz20tTnxaUZPyhPWbvdHXJdb8cD7luWnXRXK-eKCD4sU5H3JbA/s320/cho.png" alt="" id="BLOGGER_PHOTO_ID_5565256162942171010" border="0" /></a><br /><br />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 <a href="http://riven.interiority.com/spot_five.htm">RAWA hotspot over by the maglev</a>.<br /><br />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! :)clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com1tag:blogger.com,1999:blog-9348306.post-86358661457808187592011-01-11T15:12:00.003-05:002011-01-11T15:19:57.539-05:00Riven UpdateBeen 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:<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3luwJUT346yG-E1wCLPgY3WmIADdIRzuN-3GNdQDs6KWccTe_kpGAhmRSy1tKfS3FJ1OVn3iSX0dPsdTWj3HizJBYQ3DxDQhJ7E2W-CC0KuhwSyVwNSsa3u7L0jlBqPqoVU3H8g/s1600/WharkNumbers1.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3luwJUT346yG-E1wCLPgY3WmIADdIRzuN-3GNdQDs6KWccTe_kpGAhmRSy1tKfS3FJ1OVn3iSX0dPsdTWj3HizJBYQ3DxDQhJ7E2W-CC0KuhwSyVwNSsa3u7L0jlBqPqoVU3H8g/s320/WharkNumbers1.png" alt="" id="BLOGGER_PHOTO_ID_5561025198575672210" border="0" /></a><span style="font-style: italic;">This is how I envision my death</span><br /></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZwvuF3i-I914CYx727JWXG6tQzc3VFLEix37tZDX1eCRc1xb4LGzpFG4_k7pdsX7E7_Pb9LhIV3dQygZa8lgGlV3hKsWQ-jEUxw8H79Qmoo-jY161HG7_-EMDnITchkZR_j70wA/s1600/WharkNumbers2.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZwvuF3i-I914CYx727JWXG6tQzc3VFLEix37tZDX1eCRc1xb4LGzpFG4_k7pdsX7E7_Pb9LhIV3dQygZa8lgGlV3hKsWQ-jEUxw8H79Qmoo-jY161HG7_-EMDnITchkZR_j70wA/s320/WharkNumbers2.png" alt="" id="BLOGGER_PHOTO_ID_5561025202610974018" border="0" /></a><span style="font-style: italic;">Need some aspirin?</span></div><br />Also, the telescope actually moves now instead of just jumping from place to place. Stay tuned for more updates soon, hopefully, maybe!clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com7tag:blogger.com,1999:blog-9348306.post-52154865687388731522011-01-11T15:03:00.005-05:002011-01-11T15:21:11.578-05:00Feeling RebelliousOut 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).<br /><br />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).<br /><br />So, minus audio, text, and palette changes, I was able to render a couple frames. A couple at any rate. Without further ado:<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtIPwBUMVYsZO7DkDsAR_z16QD2GE_aOaRMmIH8Kpl71pSbikfJZdGIQUqIjL4f8t3Zl_X7aNG10TIDKjHTc7wZIm1mqqQ65q4JCiGDZCJTjYJsMCH6trieERqNjZPnDgcrdoQPw/s1600/ra_smush_test.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtIPwBUMVYsZO7DkDsAR_z16QD2GE_aOaRMmIH8Kpl71pSbikfJZdGIQUqIjL4f8t3Zl_X7aNG10TIDKjHTc7wZIm1mqqQ65q4JCiGDZCJTjYJsMCH6trieERqNjZPnDgcrdoQPw/s320/ra_smush_test.png" alt="" id="BLOGGER_PHOTO_ID_5561023446159694258" border="0" /></a><span style="font-style: italic;">The cutscene after the hardest level in the game. Seriously, who makes a level that hard and difficult to navigate? Damn Kolaador...<br /></span></div><br /><br />Now someone should go implement the game (not in ScummVM)!clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com0tag:blogger.com,1999:blog-9348306.post-45671539236919040372010-12-15T09:44:00.006-05:002010-12-15T10:09:30.422-05:00Some Carmen ImagesWell, we don't support <i>Where in the World is Carmen Sandiego?</i> yet beyond showing images. But we added support for the DOS images of <i>Where in the World is Carmen Sandiego? Deluxe Edition</i> yesterday, so I figured I'd show it off. Also, I don't update my blog enough, so here's a post.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg49Cj9jb-Xk-MG-0yqL1UEER_6wx5-mXwqISi8EHVXSIMreVmnXhnTqecSDMnCTRlWMEMh2iHMkaoM7avR0JGsWYRprY7yi7qRGmrj2dB7eb5BlvfcGEN7vpBo63bG8Y2wcstoEQ/s1600/csworld_deluxe.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg49Cj9jb-Xk-MG-0yqL1UEER_6wx5-mXwqISi8EHVXSIMreVmnXhnTqecSDMnCTRlWMEMh2iHMkaoM7avR0JGsWYRprY7yi7qRGmrj2dB7eb5BlvfcGEN7vpBo63bG8Y2wcstoEQ/s320/csworld_deluxe.png" alt="" id="BLOGGER_PHOTO_ID_5550920796605978722" border="0" /></a><span style="font-style: italic;">Where Wile E. Coyote Shops</span></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd6VkPUanwGYnCFel-LArhFOomIrYVSVdNpfhDiPATKuhsXqHqYYkf1B8KsS8ibo9i188bQBxRXm0mhfBRU65h9OxOsAY1ucDTlr-Rs2ue7OrP-Zd2l6U9buXzL_GxNCD3a2-vww/s1600/csworld_v2.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhd6VkPUanwGYnCFel-LArhFOomIrYVSVdNpfhDiPATKuhsXqHqYYkf1B8KsS8ibo9i188bQBxRXm0mhfBRU65h9OxOsAY1ucDTlr-Rs2ue7OrP-Zd2l6U9buXzL_GxNCD3a2-vww/s320/csworld_v2.png" alt="" id="BLOGGER_PHOTO_ID_5550920865088423970" border="0" /></a><span style="font-style: italic;">Police Squad! ...In 256 Colors</span></div><br /><br />These are the same (well, similar) images from the intro of the two games. The former is in EGA from Deluxe and the latter in VGA from v2. They went full screen for Deluxe game and decided to size it down for Windows (The first image is actually three 640x160 images put together).<br /><br />Surprisingly (or I guess I shouldn't be surprised considering how much Brøderbund likes to reuse things), the CSWorld Deluxe archive format is the same one used in Prince of Persia 2!<br /><br />I cracked the archive format before I realized PoP2 used it, so I only found this info out afterward. Same with the simple SND resource format. I checked out the <a href="http://sdfg.com.ar/git/?p=fp-git.git;a=blob;f=FP/doc/FormatSpecifications">specs</a> for the bitmap decompressor and applied a modified version to the ScummVM source (thanks to fuzzie for helping figure out the data was EGA planar). And lo and behold, it uses the exact same modified LZ decompression that was used in all other Mohawk games (minus Riven). It looks like the planar part isn't in PoP, but I'm not sure.<br /><br />One last note: We will not support Prince of Persia 1/2 in ScummVM no matter how much you ask. ;)clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com3tag:blogger.com,1999:blog-9348306.post-26320912265248018242010-11-29T17:23:00.004-05:002010-11-29T17:37:08.769-05:00Surprise Update #2Poof again!<br /><br />bgK has finished coding the Selenitic age for Myst! Feast upon the glory that is the best looking (IMO) and also the hardest (by far). I cannot be paid to solve the maze runner puzzle with all the bleeps, sweeps, and creeps (Yes, I just went there) so I don't blame you if you cheat on the maze runner. If anyone wants to try, they'll need to use the debug console and run "changeStack Selenitic 1282".<br /><br />Screenshot time!<br /><br /><div style="text-align: center;"><a style="font-style: italic;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilGPfmlXJj1AkqAfiHeRpnwCdmnMfGyO_7bKGJQLU1HyBqefDvODYMHE4StqxahZW2_pk4lMLKuSZSzHgkZypw6XJCHH7a18zHg4WC4OMoEcCC8omo23Zv14aLpd9huBwleEfkmA/s1600/selenitic_1.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 196px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilGPfmlXJj1AkqAfiHeRpnwCdmnMfGyO_7bKGJQLU1HyBqefDvODYMHE4StqxahZW2_pk4lMLKuSZSzHgkZypw6XJCHH7a18zHg4WC4OMoEcCC8omo23Zv14aLpd9huBwleEfkmA/s320/selenitic_1.png" alt="" id="BLOGGER_PHOTO_ID_5545102997746728146" border="0" /></a><span style="font-style: italic;">Does the door really need to close behind you?</span><br /></div><br /><div style="text-align: center;"><a style="font-style: italic;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDqkHX_v4Bgi6qxYiI9P8sJkoHUqKqIVH2g4J-oC0VZWlluDWbPMYWeW7VQNMoIYkUML3pqW0L1veUCzbPyJJ_qFBgBMnvazhYeTciYandm0UbAAPJJwu1I24joKoXHS0_3YCspQ/s1600/selenitic_2.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 196px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDqkHX_v4Bgi6qxYiI9P8sJkoHUqKqIVH2g4J-oC0VZWlluDWbPMYWeW7VQNMoIYkUML3pqW0L1veUCzbPyJJ_qFBgBMnvazhYeTciYandm0UbAAPJJwu1I24joKoXHS0_3YCspQ/s320/selenitic_2.png" alt="" id="BLOGGER_PHOTO_ID_5545103002228414962" border="0" /></a><span style="font-style: italic;">Actually, this has always worked. I just like fire.</span><br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkAlkcC4forX7RTag62fE1sk6P4zL6Wq66koPDJCuU1-jPF5xQzLBuyaXA6kKj5aFktwa_DZown1aQ1nR10Kr7uZaZowff6LS7Cx23hWQgyVF-75qyY6b8VSlDdFC5rVNgbYWMPQ/s1600/selenitic_3.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 196px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkAlkcC4forX7RTag62fE1sk6P4zL6Wq66koPDJCuU1-jPF5xQzLBuyaXA6kKj5aFktwa_DZown1aQ1nR10Kr7uZaZowff6LS7Cx23hWQgyVF-75qyY6b8VSlDdFC5rVNgbYWMPQ/s320/selenitic_3.png" alt="" id="BLOGGER_PHOTO_ID_5545103011121746354" border="0" /></a><div style="text-align: center;"><span style="font-style: italic;">BRING ME THE PAGES</span><br /></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFX6oVpEyZwfIn_pwAofkXMIMHlOb3zjLHZO5PAfl8YRHNeGdytmUyPqdVd-drDOe2UdNeAVbaBviasQjKrfUvGbbATgSKIEXQFa_G8LedOh3H7c2rrjQ-RjAvE8d49_RxOg_qpQ/s1600/selenitic_4.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 196px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFX6oVpEyZwfIn_pwAofkXMIMHlOb3zjLHZO5PAfl8YRHNeGdytmUyPqdVd-drDOe2UdNeAVbaBviasQjKrfUvGbbATgSKIEXQFa_G8LedOh3H7c2rrjQ-RjAvE8d49_RxOg_qpQ/s320/selenitic_4.png" alt="" id="BLOGGER_PHOTO_ID_5545103018536623666" border="0" /></a><span style="font-style: italic;">In Your Tunnel<br /></span></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmxVECymYkL-RKFRAX1X1oD7g-5jLRrvgAQRgS54_GrqRiDYdG5TEPbRGz9dxthClXYK6D8ieAMQvC8tYNzHxyKQloRzOiod-xcBVGq5PgOY_bl43di2Upf1cQt4TbZA3qTC2v6w/s1600/selenitic_5.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 196px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmxVECymYkL-RKFRAX1X1oD7g-5jLRrvgAQRgS54_GrqRiDYdG5TEPbRGz9dxthClXYK6D8ieAMQvC8tYNzHxyKQloRzOiod-xcBVGq5PgOY_bl43di2Upf1cQt4TbZA3qTC2v6w/s320/selenitic_5.png" alt="" id="BLOGGER_PHOTO_ID_5545103018877824898" border="0" /></a><span style="font-style: italic;">Does anyone actually do this puzzle?<br /></span></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxmwtELkwWk5Tr9PiWpiaNdhSrzTuldE6ATOOMAZPbM42t4uus38IfkfOOu-7Kes_tjVEgZEqzAV0sJ2d_X_heWxPml3FAq_Bn0hraUjjNjmAQl9xuOjqcGQlb8q8yt9cOQkB_4w/s1600/selenitic_6.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 196px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxmwtELkwWk5Tr9PiWpiaNdhSrzTuldE6ATOOMAZPbM42t4uus38IfkfOOu-7Kes_tjVEgZEqzAV0sJ2d_X_heWxPml3FAq_Bn0hraUjjNjmAQl9xuOjqcGQlb8q8yt9cOQkB_4w/s320/selenitic_6.png" alt="" id="BLOGGER_PHOTO_ID_5545103096819434882" border="0" /></a><br /><div style="text-align: center;"><span style="font-style: italic;">What hell truly looks like</span><br /></div>clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com4tag:blogger.com,1999:blog-9348306.post-84615355506467257602010-11-28T20:47:00.000-05:002010-11-28T20:47:27.841-05:00Surprise Update #1Poof!<br /><br />fuzzie has done some great work on Living Books code for Mohawk in ScummVM and the games are very very very playable. Go try them out (along with our collection of <a href="http://demos.robertmegone.com/mohawk/">near-infinite demos</a>)! v1 games (the older, 512x384 ones) work near perfectly while the v3 games (640x480) have some new features that aren't fully supported yet. And now time for obligatory screenshots along with random semi-humorous subtitles provided by me.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjai97oZsYtQSdfmhrWjDZz0U65kgbPsGLVWf2GO5azF1fcZhyriAhvjqDulaqDXGBcJN0gvoyipcjS8d11Y5yqRDbup6EMkUxncGuzXBOSq90dFwrFZj933j30V5W7bCeUnYZJ_w/s1600/greeneggs-1.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjai97oZsYtQSdfmhrWjDZz0U65kgbPsGLVWf2GO5azF1fcZhyriAhvjqDulaqDXGBcJN0gvoyipcjS8d11Y5yqRDbup6EMkUxncGuzXBOSq90dFwrFZj933j30V5W7bCeUnYZJ_w/s320/greeneggs-1.png" alt="" id="BLOGGER_PHOTO_ID_5544779865175466786" border="0" /></a><span style="font-style: italic;">A Way-Too-Happy Book</span><br /></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDMphq6Aw7uVrEkwGrl7PPS1Qfg-qnd3FEcjg5RPvdLFeqf3lCyocexp2RUf62ocJzLIEg47jVRky_IRHydY88P6xiu9aML4M88VVQWydGp7uIIO5LCgrTl1UX31YLeW9TozSA0A/s1600/greeneggs-2.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDMphq6Aw7uVrEkwGrl7PPS1Qfg-qnd3FEcjg5RPvdLFeqf3lCyocexp2RUf62ocJzLIEg47jVRky_IRHydY88P6xiu9aML4M88VVQWydGp7uIIO5LCgrTl1UX31YLeW9TozSA0A/s320/greeneggs-2.png" alt="" id="BLOGGER_PHOTO_ID_5544779874489916562" border="0" /></a><span style="font-style: italic;">Fast Decaying Ham<br /></span></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjynv-MMOxj5am-7evDU6Lx97k99zzfU7_Ji5RmMe3RfUiZkcfuC91S85uvw3pM4Nh_WgcRZQyroyZkBbO5k476z1ko8ei8vUxWXUWrF4TuVvdNNb7R-3_GqETFcA-zjl65O6IIJA/s1600/greeneggs-3.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjynv-MMOxj5am-7evDU6Lx97k99zzfU7_Ji5RmMe3RfUiZkcfuC91S85uvw3pM4Nh_WgcRZQyroyZkBbO5k476z1ko8ei8vUxWXUWrF4TuVvdNNb7R-3_GqETFcA-zjl65O6IIJA/s320/greeneggs-3.png" alt="" id="BLOGGER_PHOTO_ID_5544779905463121282" border="0" /></a><span style="font-style: italic;">Riding a Dog<br /></span></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoefpNHLazKH7qCPSLqps9-XHdm_DKi-NIUBwrhK0xGKxJ93X6ecpqfVs1VSCu6gQk3hAkRqArG3pnQF7IH-ubJbrpcHGipSbPb1d-0zhqpiLMl9Jens68j4VNJkcIrFnOqzsASg/s1600/arthur-1.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoefpNHLazKH7qCPSLqps9-XHdm_DKi-NIUBwrhK0xGKxJ93X6ecpqfVs1VSCu6gQk3hAkRqArG3pnQF7IH-ubJbrpcHGipSbPb1d-0zhqpiLMl9Jens68j4VNJkcIrFnOqzsASg/s320/arthur-1.png" alt="" id="BLOGGER_PHOTO_ID_5544779924272591730" border="0" /></a><span style="font-style: italic;">Creeping Logo</span><br /></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2iW7A6ff2lzKnjbQg_Hk4YL_T599biip9n0rsoK_FAaztU0RueimWgHIMd89jz-jWIc187rXNJORUQOB3KISMCyxomW9fe0aWFXyGfv9sqKI-nxXWqJiFUWl1QVhOr6eRA71YEA/s1600/arthur-2.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2iW7A6ff2lzKnjbQg_Hk4YL_T599biip9n0rsoK_FAaztU0RueimWgHIMd89jz-jWIc187rXNJORUQOB3KISMCyxomW9fe0aWFXyGfv9sqKI-nxXWqJiFUWl1QVhOr6eRA71YEA/s320/arthur-2.png" alt="" id="BLOGGER_PHOTO_ID_5544779937285142450" border="0" /></a><span style="font-style: italic;">Arturo, por favor</span><br /><span style="font-style: italic;"></span></div><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyGo2e7-UR1ST-AE4mahINkjprrRv-9wQI6Zf-BrZEefyEk9r7-QsYwGgfm2V41mohIUSHAv2_nloGV6mesNERost-bIAtZeDS3pGnNyjKilAyVabjfL1eomr1UC7T-KUj_18SgQ/s1600/arthur-3.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyGo2e7-UR1ST-AE4mahINkjprrRv-9wQI6Zf-BrZEefyEk9r7-QsYwGgfm2V41mohIUSHAv2_nloGV6mesNERost-bIAtZeDS3pGnNyjKilAyVabjfL1eomr1UC7T-KUj_18SgQ/s320/arthur-3.png" alt="" id="BLOGGER_PHOTO_ID_5544780313114080626" border="0" /></a><span style="font-style: italic;">Eternal Third-Grade Punishment<br /></span></div><div style="text-align: center;"><br /></div>clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com0tag:blogger.com,1999:blog-9348306.post-83241908137307457342010-11-22T16:08:00.006-05:002010-11-22T16:34:03.245-05:00Near ThanksgivingIs this thing still on?<br /><br />I have (sadly) neglected this blog for far too long. But, fear not! I am not dead (much)!<br /><br />First off, the big kahuna. Riven is completable in the trunk. It actually has been for a while. I should have posted about it earlier... Ah well. It was a quiet night. August 31. I remember it as if it were only three months ago. At 11:47 PM, local time, I was able to complete the game in my local checkout without using the debug console (I did know the marble puzzle answer and Riven numerals previously, however). Soon after it became completable, I also implemented the marble puzzle itself.<br /><br />Is it a big accomplishment? Probably. Is Riven supported now? Hell no. I still have to implement a few of the puzzles that help give you the marble puzzle solution and Riven numeral meanings. There's also some visual things that need to be done (which have no effect on the actual gameplay). There should be no major bugs in the game right now either, just missing features, which is a definite plus. Also, please don't submit bug reports yet!<br /><br />Secondly, there is nothing else to report on. I found another SCI 1.1 Mac game (Hoyle 4) and did some other coding for stuff I can't really remember at this point. And I improved support for the Riven demo a bit so that the intro now plays when starting and you have the ability to hit that nice Exit button at the bottom of the screen.<br /><br />Screenshot time!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyG2TEec6J2g9xuJzdNOSupwPnfG1wMIGyfxaixcSg0q92nsvJUdNoyAeK4NeVTYZB8gzbcpbqEzCH2wl6cj1D45hhqo0eqQC4_qmK6knL4lv2waDdpJnDp841YXLupldWXlMOBA/s1600/demo-yay.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyG2TEec6J2g9xuJzdNOSupwPnfG1wMIGyfxaixcSg0q92nsvJUdNoyAeK4NeVTYZB8gzbcpbqEzCH2wl6cj1D45hhqo0eqQC4_qmK6knL4lv2waDdpJnDp841YXLupldWXlMOBA/s320/demo-yay.png" alt="" id="BLOGGER_PHOTO_ID_5542489204905760674" border="0" /></a><br /><div style="text-align: center;"><span style="font-style: italic;">Hot Demo Action</span><br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4IdAj6Li4Isd5acwad6iHRA6h4u90N4Qi0p2gKX_zapWmQ0_7ZZpyDW0oKDOLfohVgMnWuvD6_iJusiQF-D3awzLCmNzpHChUUA6-lJAbYkyiBYIZdNmJsfmLyBtsXCGWKHeAKw/s1600/yay-marbles.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4IdAj6Li4Isd5acwad6iHRA6h4u90N4Qi0p2gKX_zapWmQ0_7ZZpyDW0oKDOLfohVgMnWuvD6_iJusiQF-D3awzLCmNzpHChUUA6-lJAbYkyiBYIZdNmJsfmLyBtsXCGWKHeAKw/s320/yay-marbles.png" alt="" id="BLOGGER_PHOTO_ID_5542489449282006674" border="0" /></a><br /><div style="text-align: center; font-style: italic;">Some Fun with Marbles<br /></div><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlRMdUAZ-B-nloQgEGdCEj3cIILju8Odg2hPzxPq9ooowiPjfUC7tDaWT86wSBZcuXB9ayj7jKCntx0gfSqoFOlkNaZi_pRVPrfLgaIenoSuN6wJ5qeBW_XhkmL8xd5gAa7qZpA/s1600/riven-good-ending.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJlRMdUAZ-B-nloQgEGdCEj3cIILju8Odg2hPzxPq9ooowiPjfUC7tDaWT86wSBZcuXB9ayj7jKCntx0gfSqoFOlkNaZi_pRVPrfLgaIenoSuN6wJ5qeBW_XhkmL8xd5gAa7qZpA/s320/riven-good-ending.png" alt="" id="BLOGGER_PHOTO_ID_5542489574594440738" border="0" /></a><br /><div style="text-align: center;"><span style="font-style: italic;">"Care to join us?"</span><br /></div><br />Tune in soon for some updates on currently in-progress Mohawk code (some of which isn't written by me!). Until next time... Shablagoo!!!!clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com5tag:blogger.com,1999:blog-9348306.post-69532819307711248412010-08-23T10:40:00.008-04:002010-09-07T16:08:06.723-04:00Riven Easter Egg PlusWell, I'm sure anyone that has played Riven has at least heard of the <a href="http://riven.interiority.com/the_menu.htm">massive easter egg system</a> that is in there. (Yes, this will work in ScummVM :P). I was checking some scripts in Riven because there are some <a href="http://riven.interiority.com/secret_three.htm">other hotspots</a> that will make the cursor disappear in the original game but weren't really attached to the easter egg. Richard Watson ("RAWA") even said that they weren't related to the easter egg. Well, it seems that they were originally going to be part of the game, but were cut out - and the scripts prove it.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBopkN7MPl03QlmWFnCWy8VwviWJ0Xkav5GIUuV5MfVLjoGv8NzIraHrukqEBuZDFIU_XEizDnNyHqpjJN-nmrEWjiO2B-UCugVKSaBq3YEEgPk9Vmuf6tAJXswFY9L9dH0zUxnQ/s1600/Cage.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBopkN7MPl03QlmWFnCWy8VwviWJ0Xkav5GIUuV5MfVLjoGv8NzIraHrukqEBuZDFIU_XEizDnNyHqpjJN-nmrEWjiO2B-UCugVKSaBq3YEEgPk9Vmuf6tAJXswFY9L9dH0zUxnQ/s320/Cage.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5508618702234159426" /></a><br /><br />The first of the hotspots, is the one above the cage. When clicking on the hotspot, this code runs:<br /><pre><br />switch (tdl) {<br />case 2:<br /> tdl = 3;<br /> break;<br />default:<br /> tdl = 0;<br /> break;<br />}<br /></pre><br />Unfortunately, all the other hotspots set tdl to 0, so the variable can never truly be set here. <s>Not to mention tdl is also not set to 2 anywhere.</s> (EDIT: See below)<br /><br />Now for the Cho hotspots. It seems it was intended to have you click the hotspots in a specific order after tdl is set to 3 (from the above code segment). I have labeled them in the correct order here:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigy1THyUVCBvM4-cvyiUEHFuACUL0yKOHTRptGR_fMJku2-smrzozRkLBFwUHjX9LfSUUPTBpZJ9IqFvSqz6XadfWrmSiobq21luHehOwK2OK5PFiqYNITdojrXsBjQYR5x3nFmQ/s1600/cho.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigy1THyUVCBvM4-cvyiUEHFuACUL0yKOHTRptGR_fMJku2-smrzozRkLBFwUHjX9LfSUUPTBpZJ9IqFvSqz6XadfWrmSiobq21luHehOwK2OK5PFiqYNITdojrXsBjQYR5x3nFmQ/s320/cho.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5508617946104540658" /></a><br /><br />The hotspots labeled 1-6 will increase tdl by one if pressed in the right order. When you press the last hotspot, this segment of code is run:<br /><pre><br />switch (tdl) {<br />case 9:<br /> araw = 4;<br /> break;<br />}<br />tdl = 0;<br /></pre><br />araw is the variable used for the main Riven easter egg variable! aova is the other one. araw is normally set to 4 when you click the hotspot above the elevator on Garden Island:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqdyGd_A_i3ZwHyvCrAF1RdAZSGCsnB6kPv76sxnhBVYpfHcyhyphenhyphen3zLKlJ_CS_554wPI5bDc-A6bk40swEIPJNKc2Q-0onKDJvO6IJ0DeVOdaEJSn0JW23Oy6JTylSR4HLS-Atpig/s1600/gspit+elevator.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqdyGd_A_i3ZwHyvCrAF1RdAZSGCsnB6kPv76sxnhBVYpfHcyhyphenhyphen3zLKlJ_CS_554wPI5bDc-A6bk40swEIPJNKc2Q-0onKDJvO6IJ0DeVOdaEJSn0JW23Oy6JTylSR4HLS-Atpig/s320/gspit+elevator.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5508618945839509650" /></a><br /><br />So, it seems that this content was cut and replaced by the elevator hotspot. Or it could be that they changed the whole easter egg structure after having this initial "Cho code" in there.<br /><br />(NOTE: The green/red rectangles are part of the hotspot debugging mode I added to the engine in ScummVM. Green = enabled, red = disabled)<br /><br />EDIT: Well, turns out there's another piece of the puzzle. Clicking on the jammed lever outside of the cage in the beginning runs this code:<br /><pre><br />switch (tdl) {<br />case 1:<br /> tdl = 2;<br /> break;<br />default:<br /> tdl = 0;<br /> break;<br />}<br /></pre><br />Maybe there's a place where tdl is set to 1? The <i>myst</i>ery continues!clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com6tag:blogger.com,1999:blog-9348306.post-15263858710569789662010-08-22T00:12:00.007-04:002010-08-22T09:27:26.905-04:00Riven and CombinatoricsA short blog post today. I normally can't come up with something that's worthy of a full blog post anyway, so here's an attempt to post a bit more often. Take a look at <a href="http://www.mystellany.com/riven/combinatorics/">this</a> page which goes into detail of a lot of the combinations of puzzles in Riven. Gotta love that marble puzzle...<br /><br />In the programming realm, I added support for drawing the dome combination and telescope combination in the lab journal and Catherine's journal, respectively. Screenshots of course!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZvJfoLMD8XfdUGMujlrl2WGpUBZ5B3-ghBhC3bdkr9ruP5wBB9Y8hbe7VL4oFVaKOHm_3ZI5bYhJlOg68a4je8QLFyMCpLgm2EeLt7lGFOrsVjxrx_EPlHmeaLF434CA7wMOKWA/s1600/Dome+Combination.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZvJfoLMD8XfdUGMujlrl2WGpUBZ5B3-ghBhC3bdkr9ruP5wBB9Y8hbe7VL4oFVaKOHm_3ZI5bYhJlOg68a4je8QLFyMCpLgm2EeLt7lGFOrsVjxrx_EPlHmeaLF434CA7wMOKWA/s320/Dome+Combination.png" alt="" id="BLOGGER_PHOTO_ID_5508084496142093394" border="0" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS5YnHHBpcmDlsqcvzLEoae-HH23ICE93D-vMeIjmcPrLBX2IJmPNE_TiEOrjqZMhGhhd3UPFwjFBu9ZYZx5PKeO_wH1VeX3V-bse6wO8E5NTPv2uvjNC6PoSRFju4-zmVsnG8CQ/s1600/Telescope+Combination.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 230px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiS5YnHHBpcmDlsqcvzLEoae-HH23ICE93D-vMeIjmcPrLBX2IJmPNE_TiEOrjqZMhGhhd3UPFwjFBu9ZYZx5PKeO_wH1VeX3V-bse6wO8E5NTPv2uvjNC6PoSRFju4-zmVsnG8CQ/s320/Telescope+Combination.png" alt="" id="BLOGGER_PHOTO_ID_5508085047898558978" border="0" /></a><br /><br />Now you might say "But, clone, I can see where the numbers in Catherine's journal end and the page begins." Yes, you can. You also can in the original game. Nothing I can do to make it look better than what it does currently :P<br /><br />And for those who are really interested and have forgotten the D'ni number system, the dome combo here is 2-6-16-18-22 and the telescope combination is 1-5-5-2-3.<br /><br />EDIT: I forgot to mention that because Catherine's journal now displays the telescope combination, two more endings are now accessible from the beginning without using the debug console. \o/clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com2tag:blogger.com,1999:blog-9348306.post-26820305982605098772010-08-01T20:00:00.010-04:002010-08-03T10:47:23.557-04:00"You've already got me, you lucky devil"This blog post is a special one. Most of you know that <a href="http://wiki.scummvm.org/index.php/SCI/Testing">SCI testing</a> is going on already for all those boat loads of SCI games you have. That's for SCI0-SCI1.1, of course. I'm here to announce something different, though. No, not another LordHoto joke. No joke at all, actually!<br /><br />I'm here to announce that <span style="font-weight: bold; font-style: italic;">GABRIEL KNIGHT: SINS OF THE FATHERS</span> is completable in ScummVM. Not without bugs of course. And note that it will still <span>NOT</span> be tested in our current SCI testing nor be supported with the rest when they make it into a full release eventually.<br /><br /><s>EDIT: DrMcCoy has a quick trigger finger and found out that the hi-res (Windows) version is not completable. The DOS CD version is (and almost definitely the floppy version).</s> This should be fixed now.<br /><br />There are two major bugs with it still, but both are fixable if you use the fan made patches. In other words, both of these bugs were in the original game so they're not "our fault". You can download said patches from <a href="http://www.sierrahelp.com/Patches-Updates/Patches-Updates-Games/GabrielKnightSeriesUpdates.html">here</a>. You'll want the NRS patches for either floppy or CD. There will be some other problems too. The save/restore menu is not working 100%, the text wrapping isn't correct, and transparency does not work yet. You'll see what I mean about the transparency if you get to use the flashlight or arrive at Schloss Ritter.<br /><br /><span style="font-style: italic;">We do NOT want bugs submitted about Gabriel Knight, we know there's plenty of them still.</span><br /><br />Also, <span style="font-style: italic;">please</span> don't play Gabriel Knight if you still have other SCI0-SCI1.1 games to test. We really need you loyal ScummVM users concentrating on those. We love you guys! :D And thanks for all those SCI games you've already played through... and a seemingly neverending amount of bugs :P<br /><br />Last August, SCI32 games weren't even startable and look how far we've come in just under a year!<br /><br />Ah, and the obligatory screenshot. This was taken two days ago when I beat it for the first time. Yes, I missed 7 points. No idea where though...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIZyEzk5X0QBC4C-8v0kqF_XXR_VL_RMbwpADyZSNVic4DjTm8PeDsy5nziHZjrRESZtodMMolAnJ5D-UzFSUD7J4ECQ0djxMtJj6Hbz959qVQDoMDI3LL2Ejh-U-2LCf7w7mLbg/s1600/GK1+End+Screen.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 211px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIZyEzk5X0QBC4C-8v0kqF_XXR_VL_RMbwpADyZSNVic4DjTm8PeDsy5nziHZjrRESZtodMMolAnJ5D-UzFSUD7J4ECQ0djxMtJj6Hbz959qVQDoMDI3LL2Ejh-U-2LCf7w7mLbg/s320/GK1+End+Screen.png" alt="" id="BLOGGER_PHOTO_ID_5500598492494054178" border="0" /></a><br />PS - My apologies to pgr on #scummvm (IRC). We had decided not to reveal this, but changed our minds after discovering that the Day 5 lockup was indeed in the original too. It's also skippable using the spacebar. I'll be comparing both the good and bad scripts to add a workaround to the code for it soon. Hopefully I'll be able to figure out something clean ;) I hope you can forgive me! :)clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com1tag:blogger.com,1999:blog-9348306.post-28740791579054106762010-07-19T14:33:00.014-04:002010-07-19T15:12:46.475-04:00Spit-ShinedThe old "blue" theme was becoming old and dusty feeling. So, I've decided to use one of the new blogger templates. It's like stainless steel now. Not silver, I'm too cheap for that. OK, too poor for that. But you know what I'm getting at! Coming soon: "clone2727 Platinum" - where only followers who have purchased the "Clone2727's Blog Gold Package" can view the posts.<br /><br />You can look forward to no other new changes and the occasional posting. That is all.<br /><br />Also, if anyone dislikes the design (besides DrMcCoy), let me know! DrMcCoy will still be uploading those Halloween pictures somewhere. Thankfully, not here.<br /><br />NOTE: This post was edited about 50 times, so if you see a different version, just laugh at my bad jokes there and move on. And yes, we do love DrMcCoy (Paid for by the Don't Force DrMcCoy to Work on Urban Runner Foundation™).clone2727http://www.blogger.com/profile/17863901461297004343noreply@blogger.com5