<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gobsmacked</title>
	<atom:link href="http://drmccoy.de/gobsmacked/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://drmccoy.de/gobsmacked</link>
	<description>Notes about ScummVM&#039;s Gob engine</description>
	<lastBuildDate>Tue, 24 Aug 2010 11:46:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fascination is alive!</title>
		<link>http://drmccoy.de/gobsmacked/?p=395</link>
		<comments>http://drmccoy.de/gobsmacked/?p=395#comments</comments>
		<pubDate>Mon, 23 Aug 2010 13:51:45 +0000</pubDate>
		<dc:creator>Strangerke</dc:creator>
				<category><![CDATA[Fascination]]></category>
		<category><![CDATA[Gob]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[Coktel Vision]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=395</guid>
		<description><![CDATA[In the previous post, I wrote that I&#8217;ll try to give some news about Fascination progress before the summer. I tried  
More seriously, the good news came very recently: in less than two weeks, with the impressive help of SylvainTV, all the versions of Fascination became playable and completable, or at least all the [...]]]></description>
			<content:encoded><![CDATA[<p>In the previous post, I wrote that I&#8217;ll try to give some news about Fascination progress before the summer. I tried <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>More seriously, the good news came very recently: in less than two weeks, with the impressive help of SylvainTV, all the versions of Fascination became playable and completable, or at least all the ones I possess.</p>
<p>The main thing missing currently, only used by PC versions of the game, is the AdLib player (and IMHO, the SoundBlaster sounds a lot better). There&#8217;s a wrong delay (too short) between rooms in several places of most versions. This seems to be caused by the delay required at the time to load from the floppies, and it&#8217;s easily patchable.</p>
<p>Last detail, the (rare) CD version still requires a tool for the STK extraction. joostp is cleaning it up, and will commit it when it&#8217;ll be in a good state.</p>
<p>Maybe it&#8217;s a good time now to grab your originals and send us some feedback on the game, specially if you find some of those too short delays!</p>

<a href='http://drmccoy.de/gobsmacked/?attachment_id=396' title='You&#039;ll suffer...'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2010/08/scummvm00008-150x150.png" class="attachment-thumbnail" alt="" title="You&#039;ll suffer..." /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=397' title='That&#039;s all folks...'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2010/08/scummvm00000-150x150.png" class="attachment-thumbnail" alt="" title="That&#039;s all folks..." /></a>

]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=395</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some progress with Fascination</title>
		<link>http://drmccoy.de/gobsmacked/?p=376</link>
		<comments>http://drmccoy.de/gobsmacked/?p=376#comments</comments>
		<pubDate>Fri, 05 Feb 2010 23:46:21 +0000</pubDate>
		<dc:creator>Strangerke</dc:creator>
				<category><![CDATA[Fascination]]></category>
		<category><![CDATA[Gob]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[Coktel Vision]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=376</guid>
		<description><![CDATA[Finally, the support of Fascination is showing some interesting progress! These last two weeks, the window behavior has been fixed, the hotspots correctly handled in them, and it&#8217;s now even possible to play through some levels. DrMcCoy even added a save/load function that works perfectly! There are still a lot of glitches in the floppy [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, the support of Fascination is showing some interesting progress! These last two weeks, the window behavior has been fixed, the hotspots correctly handled in them, and it&#8217;s now even possible to play through some levels. DrMcCoy even added a save/load function that works perfectly! There are still a lot of glitches in the floppy versions (almost none in the CD version) and it&#8217;s not completable for various reasons, depending on the platform and language concerned.</p>
<p>Here are some screenshots of the CD version.</p>

<a href='http://drmccoy.de/gobsmacked/?attachment_id=381' title='Intro'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2010/02/scummvm00001-150x150.png" class="attachment-thumbnail" alt="" title="Intro" /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=382' title='Some windows opened...'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2010/02/scummvm00002-150x150.png" class="attachment-thumbnail" alt="" title="Some windows opened..." /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=383' title='Window interaction and hotspots'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2010/02/scummvm00003-150x150.png" class="attachment-thumbnail" alt="" title="Window interaction and hotspots" /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=384' title='Second screen, showing the censored book'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2010/02/scummvm00004-150x150.png" class="attachment-thumbnail" alt="" title="Second screen, showing the censored book" /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=385' title='By the pool...'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2010/02/scummvm00005-150x150.png" class="attachment-thumbnail" alt="" title="By the pool..." /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=386' title='Closet view'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2010/02/scummvm00006-150x150.png" class="attachment-thumbnail" alt="" title="Closet view" /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=387' title='Q.U.L. headquarter'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2010/02/scummvm00007-150x150.png" class="attachment-thumbnail" alt="" title="Q.U.L. headquarter" /></a>

<p>Stay tuned for further news! I promise I&#8217;ll try to give some before this summer <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=376</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Another Dark Seed II video&#8230;</title>
		<link>http://drmccoy.de/gobsmacked/?p=365</link>
		<comments>http://drmccoy.de/gobsmacked/?p=365#comments</comments>
		<pubDate>Fri, 01 Jan 2010 15:19:42 +0000</pubDate>
		<dc:creator>DrMcCoy</dc:creator>
				<category><![CDATA[Dark Seed II]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[walk]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=365</guid>
		<description><![CDATA[Hey, here&#8217;s another small video, this time with Mike walking in-game (without pathfinding) and talking to Hank in the diner. Also a nice showcase for most of the remaining graphical glitches (highlighted in the annotations)   :

]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Hey, here&#8217;s another small video, this time with Mike walking in-game (without pathfinding) and talking to Hank in the diner. Also a nice showcase for most of the remaining graphical glitches (highlighted in the annotations) <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  :</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/hf3yZtccX3g&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/hf3yZtccX3g&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=365</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>I can walk! It&#8217;s a miracle!</title>
		<link>http://drmccoy.de/gobsmacked/?p=356</link>
		<comments>http://drmccoy.de/gobsmacked/?p=356#comments</comments>
		<pubDate>Tue, 29 Dec 2009 15:46:04 +0000</pubDate>
		<dc:creator>DrMcCoy</dc:creator>
				<category><![CDATA[Dark Seed II]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[walk]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=356</guid>
		<description><![CDATA[Instead of continuing working, I&#8217;ll rather goof and play around with video capturing  . So you can now gaze at some working Mike walking animations:

]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Instead of continuing working, I&#8217;ll rather goof and play around with video capturing <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . So you can now gaze at some working Mike walking animations:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/HIwDEhVjrdc&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/HIwDEhVjrdc&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=356</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An inconvenience solved</title>
		<link>http://drmccoy.de/gobsmacked/?p=345</link>
		<comments>http://drmccoy.de/gobsmacked/?p=345#comments</comments>
		<pubDate>Sun, 27 Dec 2009 22:28:32 +0000</pubDate>
		<dc:creator>DrMcCoy</dc:creator>
				<category><![CDATA[Dark Seed II]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[Cursor]]></category>
		<category><![CDATA[New Executable]]></category>
		<category><![CDATA[Resource Table]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=345</guid>
		<description><![CDATA[Just a minor update: Thanks to sev, who pointed me to the right place in the wine sources, I managed to solve the cursor inconvenience  .
The problem was, of course, my own damn fault; I misunderstood the nature of cursor resources. They&#8217;re not, as I assumed, plain cursors, one by one each taking up [...]]]></description>
			<content:encoded><![CDATA[<p>Just a minor update: Thanks to <a href="http://sev-notes.blogspot.com/">sev</a>, who pointed me to the right place in the wine sources, I managed to solve the <a href="?p=328">cursor inconvenience</a> <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>The problem was, of course, my own damn fault; I misunderstood the nature of cursor resources. They&#8217;re not, as I assumed, plain cursors, one by one each taking up a resource entry. Instead, there are cursor groups, each capable of possessing a variable amount of cursor images. That isn&#8217;t even a quirk of NE files, it&#8217;s like that in PE files as we well, so my complaining about the executables being in that old format doesn&#8217;t apply either. Mea culpa.</p>
]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=345</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The aforementioned cursor inconvenience</title>
		<link>http://drmccoy.de/gobsmacked/?p=328</link>
		<comments>http://drmccoy.de/gobsmacked/?p=328#comments</comments>
		<pubDate>Sat, 26 Dec 2009 00:04:40 +0000</pubDate>
		<dc:creator>DrMcCoy</dc:creator>
				<category><![CDATA[Dark Seed II]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[Cursor]]></category>
		<category><![CDATA[New Executable]]></category>
		<category><![CDATA[Resource Table]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=328</guid>
		<description><![CDATA[In the previous post, I mentioned an inconvenience with the cursors. Here&#8217;s the gist of it:
In Dark Seed II, the cursors are embedded into the resource part of the Windows 3.x (NE, &#8220;New Executable&#8221;) executable dark0001.exe. Specs are available on the Microsoft website, but they don&#8217;t quite match the executable, which claims that each cursor [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a href="?p=268">previous post</a>, I mentioned an inconvenience with the cursors. Here&#8217;s the gist of it:</p>
<p>In Dark Seed II, the cursors are embedded into the resource part of the Windows 3.x (NE, &#8220;New Executable&#8221;) executable dark0001.exe. Specs are available on the Microsoft website, but they don&#8217;t quite match the executable, which claims that each cursor is only 32 byte big.<span id="more-328"></span></p>
<p>I did manage to extract the cursors in the end, with the help of the great tool &#8220;Multi Ripper&#8221; (a project that sadly appears to be dead). But when I then began to look for the resulting cursors in the Dark Seed executable, I couldn&#8217;t find them there, at least not directly: The headers are, only partly though, in the resource table, where you would expect them. However, the cursors&#8217; data are at a completely different place, a place that I couldn&#8217;t construct with any of the offsets I read from the various tables. So I am completely at a loss.</p>
<p>Running Multi Ripper through a disassembler didn&#8217;t really help either, since it&#8217;s either deliberately obfuscated, or just completely unreadable due to it being written mostly in Clipper (yeah o_O). The link to a wine resource compiler <a href="http://blog.quendi.de/">Fingolfin</a> send me didn&#8217;t help either (thanks again for looking, though); that compiler agrees with neither the specs, nor with the executable.</p>
<p>Since I was able to at least extract the cursors, I did what I had to do: hard-code the cursor data. So right now, the Dark Seed II engine comes with about 10kb of static cursor data. Not much of a problem, but certainly not as &#8220;nice&#8221; and clean as I&#8217;d like.</p>
<p>Well, if any of you happens to know a thing or two about resource tables in New Executables, please, pipe in and tell me what I did horribly wrong. <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=328</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A non-gob-y Squidmas</title>
		<link>http://drmccoy.de/gobsmacked/?p=268</link>
		<comments>http://drmccoy.de/gobsmacked/?p=268#comments</comments>
		<pubDate>Fri, 25 Dec 2009 20:45:40 +0000</pubDate>
		<dc:creator>DrMcCoy</dc:creator>
				<category><![CDATA[Dark Seed II]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[Reversing]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=268</guid>
		<description><![CDATA[Just on time for this blog&#8217;s first anniversary (quite scary, especially considering that there weren&#8217;t that many posts ^^) and ChristSquidmas, I come to you with a status update.
So, what have I been doing the past months? Apart from some RL stuff I&#8217;d rather not talk about, and playing Dominion (seriously, check that out, it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Just on time for this blog&#8217;s first anniversary (quite scary, especially considering that there weren&#8217;t that many posts ^^) and <span style="text-decoration: line-through;">Christ</span><a href="http://www.youtube.com/watch?v=1ftld7Ohojg">Squidmas</a>, I come to you with a status update.</p>
<p>So, what have I been doing the past months? Apart from some RL stuff I&#8217;d rather not talk about, and playing <a href="http://en.wikipedia.org/wiki/Dominion_%28game%29">Dominion</a> (seriously, check that out, it&#8217;s really great), I didn&#8217;t do much concerning gob. Sorry. Instead, I started a new ScummVM engine, for <a href="http://www.mobygames.com/game/dark-seed-ii">Dark Seed II</a>.<span id="more-268"></span></p>
<p>For those of you not familiar with Dark Seed II, it&#8217;s a fun (in my eyes, at least <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) little horror-ish adventure game, using graphics by the great <a href="http://en.wikipedia.org/wiki/H._R._Giger">H. R. Giger</a>. In fact, it&#8217;s been one of my favourite adventures, despite some flaws, and I always wanted ScummVM to run it <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>So, one day, 1.5 months ago, I, just for the heck of it, looked at the files on my Dark Seed II CD: The videos were immediately apparent to be standard AVIs, using MSVideo1, MSRLE and Indeo3 codecs, the music standard MIDIs. No problems on that front. There were some other files, following the name convention &#8220;gl00*.000&#8243; that looked suspiciously like resource archives. So I checked gl00__da.000 with an hexeditor:</p>
<p style="text-align: center;"><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_01.png"><img class="aligncenter size-full wp-image-279" title="gl00__da.000" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_01.png" alt="" width="580" height="364" /></a></p>
<p style="text-align: center;">
<p>Now, that looked rather simple. This looks like a file name:</p>
<p style="text-align: center;"><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_03.png"><img class="aligncenter size-full wp-image-281" title="gl00__da.000" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_03.png" alt="" width="580" height="44" /></a></p>
<p style="text-align: center;">
<p>This number, read as a little-endian 16bit value, correspondents with the number of visible file names at the start of the file:</p>
<p style="text-align: center;"><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_04.png"><img class="aligncenter size-full wp-image-282" title="gl00__da.000" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_04.png" alt="" width="580" height="44" /></a></p>
<p style="text-align: center;">
<p>Since the files in this archives are apparently WAVs, I expected to find fitting magic bytes:</p>
<p style="text-align: center;"><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_06.png"><img class="aligncenter size-full wp-image-284" title="gl00__da.000" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_06.png" alt="" width="580" height="364" /></a></p>
<p style="text-align: center;">
<p>And the offset within the file fits with one of the numbers at the beginning of the file:</p>
<p style="text-align: center;"><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_08.png"><img class="aligncenter size-full wp-image-286" title="gl00__da.000" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_08.png" alt="" width="580" height="44" /></a><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_09.png"><img class="aligncenter size-full wp-image-287" title="gl00__da.000" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00da_09.png" alt="" width="580" height="44" /></a></p>
<p style="text-align: center;">
<p>A quick calculation showed that the other number is apparently the size of the resource file within the archive.<br />
It seems that I managed to guess the archive format in a few minutes. Nice <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . I hacked together an extractor and it actually worked, giving me loads of standard WAV files, the dialog lines.</p>
<p>Extracting gl00_sys.000 yielded a file OBJ_9999.DAT, which looked like a game script for the inventory objects <strong>in plain text</strong>. That came as quite a surprise. However, it would make a possible reimplementation a lot easier.</p>
<p>One problem crept up, though: Some archives files didn&#8217;t fit with my guessed format. For example, gl00_001.000:</p>
<p style="text-align: center;"><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00_001.png"><img class="aligncenter size-full wp-image-307" title="gl00_001" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/gl00_001.png" alt="" width="580" height="364" /></a></p>
<p style="text-align: center;">
<p>A sole file name was readable, then some garbage. Might be a compression. Some digging in the disassembled executable and I had that down too. And what I saw made me hopeful: Script and conversations are really plain text, images BMPs (+ WAVs, MIDs and AVIs for sound, music and videos).<br />
After thinking about it for a bit, I decided to implement a <a href="http://github.com/DrMcCoy/scummvm-darkseed2">ScummVM engine</a> <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>As I went along, the engine began taking form:</p>
<p style="text-align: center;"><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_01.png"><img class="aligncenter size-full wp-image-312" title="darkseed2_01" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_01.png" alt="" width="580" height="435" /></a><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_02.png"><img class="aligncenter size-full wp-image-313" title="darkseed2_02" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_02.png" alt="" width="580" height="435" /></a><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_03.png"><img class="aligncenter size-full wp-image-314" title="darkseed2_03" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_03.png" alt="" width="580" height="435" /></a><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_04.png"><img class="aligncenter size-full wp-image-315" title="darkseed2_04" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_04.png" alt="" width="580" height="435" /></a><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_05.png"><img class="aligncenter size-full wp-image-316" title="darkseed2_05" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_05.png" alt="" width="580" height="435" /></a><a href="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_06.png"><img class="aligncenter size-full wp-image-317" title="darkseed2_06" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/12/darkseed2_06.png" alt="" width="580" height="435" /></a></p>
<p>In the current state, the game is already basically playable, with the following caveats:</p>
<ul>
<li>No pathfinding</li>
<li>No walking, Mike teleports</li>
<li>Several unimplemented special variables, like SysRandom</li>
<li>Some script lock-ups in the carnival</li>
<li>Siamese twins conversation doesn&#8217;t start (some unknown command)</li>
<li>No saving/loading yet</li>
<li> Graphical glitches:
<ul>
<li>Wrong drawing order</li>
<li>Sprite clear/stay</li>
<li>Animation speed</li>
<li>Unimplemented scaling</li>
</ul>
</li>
</ul>
<p>Also, there&#8217;s still an inconvenience with the cursor, but that&#8217;ll have to wait for <a href="?p=328">another post</a>.</p>
<p>Next up, I&#8217;ll probably tackle walking and pathfinding (I&#8217;m thinking of implementing <a href="http://en.wikipedia.org/wiki/IDA*">IDA*</a>), then I&#8217;ll look into the drawing order stuff (I have an idea there, which needs another rewrite of the rendering queue), and <em>then</em> appears to me the right time for saving/loading. I might have Dark Seed II working completely relatively soon <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=268</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Some more titles based on the Gob engine</title>
		<link>http://drmccoy.de/gobsmacked/?p=248</link>
		<comments>http://drmccoy.de/gobsmacked/?p=248#comments</comments>
		<pubDate>Wed, 09 Sep 2009 12:40:35 +0000</pubDate>
		<dc:creator>Strangerke</dc:creator>
				<category><![CDATA[Gob]]></category>
		<category><![CDATA[Playtoons]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[Bambou]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=248</guid>
		<description><![CDATA[During these last months, some titles have been added to the list of Gob-based games: Adi2, Adi4 (Addy4 in Deutsch), Adibou 2 and Playtoons games were identified as using the same engine, with various modifications of course. Documentation on the Adi educational games can be found in this wiki page.
Let&#8217;s focus on the Playtoons games! [...]]]></description>
			<content:encoded><![CDATA[<p>During these last months, some titles have been added to the list of Gob-based games: Adi2, Adi4 (Addy4 in Deutsch), Adibou 2 and Playtoons games were identified as using the same engine, with various modifications of course. Documentation on the Adi educational games can be found in this <a href="http://wiki.scummvm.org/index.php/Adibou_Games">wiki page</a>.</p>
<p>Let&#8217;s focus on the Playtoons games! They can be separate in three categories:</p>
<p>- <strong>Playtoons</strong> (5 titles) contain an interactive story, an intro of some other stories available and  a construction kit. A bundle exists : it contains Playtoons 1, 3 and 5.</p>
<p>- <strong>Playtoons Construction Kits</strong> (3 titles) contain an intro of the 5 stories and a construction kit</p>
<p>- <strong>Bambou </strong>is&#8230; Bambou! <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  It&#8217;s some kind of Limited Edition of Playtoons developed by a subsidiary of Coktel (CUC Software International) and as far as I know only released in French (nevertheless we are still searching for localized versions). It contain no construction kit.</p>
<p>So far, the interactive stories are fully playable (when available), with some non-blocking issues (imperfect animated icons behavior, incorrect video behavior when skipped, text not showing in some part of the Playtoons titles), and Bambou is the less imperfect of all those titles.</p>
<p>Hereafter are some screenshots from ScummVM. Hopefully the story modes will be fixed soon, &#8230; the construction kit will be <strong>&#8220;</strong>a bit<strong>&#8220;</strong> harder/longer. Adi 2 too, by the way <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<a href='http://drmccoy.de/gobsmacked/?attachment_id=250' title='Bambou intro'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/09/scummvm00000-150x150.png" class="attachment-thumbnail" alt="" title="Bambou intro" /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=251' title='Bambou - in the village'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/09/scummvm00001-150x150.png" class="attachment-thumbnail" alt="" title="Bambou - in the village" /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=252' title='Bambou - in game animation'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/09/scummvm00002-150x150.png" class="attachment-thumbnail" alt="" title="Bambou - in game animation" /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=253' title='Bambou - in game animation'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/09/scummvm00005-150x150.png" class="attachment-thumbnail" alt="" title="Bambou - in game animation" /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=255' title='Bambou - in game'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/09/scummvm00006-150x150.png" class="attachment-thumbnail" alt="" title="Bambou - in game" /></a>
<a href='http://drmccoy.de/gobsmacked/?attachment_id=256' title='Adi2'><img width="150" height="150" src="http://drmccoy.de/gobsmacked/wp-content/uploads/2009/09/Adi2-150x150.jpg" class="attachment-thumbnail" alt="" title="Adi2" /></a>

<p>If you want some other Playtoons screenshoots, just ask: DrMcCoy and I already bought all the French titles, 3 Deutsch titles and 2 English ones. Spanish and italian titles exist too but are either not for sell or far too expensive.</p>
<p>To give some other (old) news, Fascination plays now until the first screen, which is more or less playable but not achievable due to the missing implementation of the unique window system used. So it&#8217;s not hopeless, even if there was no progress during this last 2 months.</p>
<p>One last word concerning  Myst/Riven in general and clone2727 in particular: <a href="http://clone2727.blogspot.com/">clone2727</a> thinks that nobody (except me) is interested in his splendid in-game videos. Show him he&#8217;s wrong! Show him <strong>you</strong> care and add a video request <strong><a href="https://www.blogger.com/comment.g?blogID=9348306&amp;postID=2308024197762045839">here</a></strong>!</p>
]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=248</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;I know it&#8217;s too late I can&#8217;t be saved&#8221;</title>
		<link>http://drmccoy.de/gobsmacked/?p=229</link>
		<comments>http://drmccoy.de/gobsmacked/?p=229#comments</comments>
		<pubDate>Sat, 13 Jun 2009 13:27:40 +0000</pubDate>
		<dc:creator>DrMcCoy</dc:creator>
				<category><![CDATA[Gob]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[Saving]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=229</guid>
		<description><![CDATA[Recently, I completely revamped the save system in the gob engine. To explain why that was necessary and what that means for old saves, I have to start with how script variables are handled, how saving works in the original games and how the old save system worked.
Script variables
From the engine&#8217;s viewpoint, the whole of [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I completely revamped the save system in the gob engine. To explain why that was necessary and what that means for old saves, I have to start with how script variables are handled, how saving works in the original games and how the old save system worked.<span id="more-229"></span></p>
<h4>Script variables</h4>
<p>From the engine&#8217;s viewpoint, the whole of the script variables is just one huge blob of memory. The scripts can then ask the engine to write into or read out of this memory area either:</p>
<ul>
<li>a 4 byte value at an offset divisible by 4</li>
<li>a 2 byte value at an offset divisible by 2</li>
<li>a 1 byte value at any offset</li>
<li>a string at any offset</li>
<li>a multi-dimensional array of any of these above</li>
</ul>
<p>Moreover, some variables are also indirectly accessed by the engine, by having some structs overlain with the variables memory. For example, the objects&#8217; animation parameter structs are directly mapped onto the variables memory, so that both the engine and the scripts can easily change the current animation frame of any object.</p>
<p>No index for which offsets are used how exists, so the engine only knows the type of a variable when it&#8217;s accessed.</p>
<h4>Saving in the original engine</h4>
<p>Like the variables organisation, saving is almost exclusively handled by the scripts. The scripts assemble the save name, which saves are already there and the like and give simple read and write orders to the engine. All save slots are written one after the other into one file. All screen shots, if the game made them, into another file.</p>
<p>Saving commonly looks like that then:</p>
<ol>
<li>Write 500 bytes out of variables offset 1234 into file &#8220;CAT.INF&#8221; offset 0 (header, containing stuff like used joker count</li>
<li>Write 1200 bytes out of variables offset 5678 into file &#8220;CAT.INF&#8221; offset 500 (slot names)</li>
<li>Write 50000 bytes out of variables offset 0 into file &#8220;CAT.INF&#8221; offset 51700 (save the whole variables blob, second slot)</li>
</ol>
<h4>The old save system in ScummVM</h4>
<p>Since for ScummVM, we don&#8217;t want all slots pasted into one big file, but one file per slot, including screen shots and the like, I had to hook into the reading and writing opcodes. Generally, ScummVM now looks for know file names, caches the header and index, calculates the slot number from the whole block dump offset and then saves everything into a slot file.</p>
<p>Special care is given for reading the index, which the original already loads for determining which slots are filled. ScummVM simply iterates over all slot files and reads the name.</p>
<p>I messed up there, though. I didn&#8217;t think I had to change the format any time in the future, so I didn&#8217;t add an own header into the slot files. For Gobliins 2, they&#8217;re simple the slot name and the variables afterwards, for example.</p>
<p>The first problem I faced was that of big endian systems. The single variables are always written in native endian into the variables memory, so it was not possible to exchange saves made on differently endianed systems. So make that work, I encapsulated variables access, noting the size of each variable. Then, at saving time, I used these sizes to force all variables to little endian. This seemed to work, at first.</p>
<p>The second problem I noticed was that of Mac and Amiga versions of gob games, i.e. ones that run natively on big endian systems. Sometimes, the scripts depend on variables being written in big endian, breaking support in ScummVM on little endian systems. I then saw that it&#8217;s better to change variables access to always write them in the endianness of the original game. Not wanting to break save game compatibility, I still kept the variable sizes.</p>
<p>Unfortunately, I must have messed up there as well, since these two systems didn&#8217;t work together correctly, creating save files that couldn&#8217;t be exchanged between differently endianed systems anymore. Which was the main reason for me to finally create a better, non-broken save system.</p>
<h4>The new save system</h4>
<p>The new save system brings in some big changes:</p>
<ul>
<li>Save parts (variables, name, &#8230;) are now in an IFF-like container</li>
<li>There&#8217;s a header, noting the game and game&#8217;s endianness</li>
<li>Variable sizes don&#8217;t exist anymore</li>
</ul>
<p>Basically, the new system fixes all problem that existed in the old ones. Saves can now be freely exchanged between different systems again. It&#8217;s quite a lot bigger in code size, though.</p>
<h4>Old saves in the new system</h4>
<p>And what does it mean for old saves? I&#8217;ve included a converter, that tried to convert old saves on-the-fly while loading. The old saves aren&#8217;t touched, but most of them can be loaded and then saved in the new format. Did I just say &#8220;most&#8221; of them? Yes, unfortunately, saves made on big endian systems are fundamentally broken and can&#8217;t be used anymore. There&#8217;s no header in the old saves, so I can&#8217;t even tell whether it&#8217;s broken beforehand and try to fix it too.</p>
<p>The marginally good side is that you can&#8217;t accidentally keep using a broken save: if it&#8217;s broken, it&#8217;s broken completely and you can&#8217;t even access the menus anymore. You will have to restart ScummVM.</p>
<p>In conclusion, I&#8217;m sorry for the inconvenience brought in by my short-sightedness when I implemented saving at first. I should be fixed now, and if there&#8217;s again something broken, it can be more easily changed without breaking compatibility.</p>
]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=229</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PSA: Real Name of the Gob Engine Found</title>
		<link>http://drmccoy.de/gobsmacked/?p=218</link>
		<comments>http://drmccoy.de/gobsmacked/?p=218#comments</comments>
		<pubDate>Sat, 13 Jun 2009 11:10:53 +0000</pubDate>
		<dc:creator>DrMcCoy</dc:creator>
				<category><![CDATA[Gob]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[Coktel Vision]]></category>

		<guid isPermaLink="false">http://drmccoy.de/gobsmacked/?p=218</guid>
		<description><![CDATA[For anyone following #scummvm, this is old news: Strangerke, who&#8217;s been in contact with the original Coktel Vision developers, has found out the real name of their engine. &#8220;DEV&#8221;.
Now, I happen to think that this is a bloody stupid name (no offence to the original team meant, of course). People around me seem to agree.
Also, [...]]]></description>
			<content:encoded><![CDATA[<p>For anyone following <a href="irc://irc.freenode.net/scummvm">#scummvm</a>, this is old news: Strangerke, who&#8217;s been in contact with the original Coktel Vision developers, has found out the real name of their engine. &#8220;DEV&#8221;.</p>
<p>Now, I happen to think that this is a <a href="http://en.wikipedia.org/wiki/Thief_4">bloody stupid name</a> (no offence to the original team meant, of course). People around me seem to agree.</p>
<p>Also, I&#8217;ve gotten used to &#8220;gob&#8221; and this blog&#8217;s name wouldn&#8217;t work with &#8220;DEV&#8221; <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Therefore, the engine in ScummVM will keep being called &#8220;gob&#8221;. For now, anyway <img src='http://drmccoy.de/gobsmacked/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
]]></content:encoded>
			<wfw:commentRss>http://drmccoy.de/gobsmacked/?feed=rss2&amp;p=218</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
