<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://insidethelink.ortiche.net/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://insidethelink.ortiche.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Clone2727</id>
		<title>A look inside The Link @ wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://insidethelink.ortiche.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Clone2727"/>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Special:Contributions/Clone2727"/>
		<updated>2026-04-19T01:39:38Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.15</generator>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Mohawk_archive_format</id>
		<title>Mohawk archive format</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Mohawk_archive_format"/>
				<updated>2010-01-26T23:08:13Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* RSRC header */ fix the first four bytes of the RSRC header&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Riven}}&lt;br /&gt;
{{Myst}}&lt;br /&gt;
==General layout==&lt;br /&gt;
Mohawk archives are organized in chunks, and this is the chunk layout:&lt;br /&gt;
* IFF chunk&lt;br /&gt;
** IFF header&lt;br /&gt;
** RSRC header&lt;br /&gt;
** Resource dir&lt;br /&gt;
*** Type table&lt;br /&gt;
*** Name tables (one for each resource type)&lt;br /&gt;
*** Resource tables (one for each resource type)&lt;br /&gt;
*** Resource name list&lt;br /&gt;
*** File table&lt;br /&gt;
** Actual data (resource contents)&lt;br /&gt;
Note that the chunks may be found in a different order: never trust on them being at fixed locations, and use the offsets to reach them.&lt;br /&gt;
&lt;br /&gt;
Every integer is in big-endian (Motorola) byte order.&lt;br /&gt;
&lt;br /&gt;
==IFF header==&lt;br /&gt;
This is always at the beginning of the file.&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|4 bytes||chunk signature (MHWK), identifies Mohawk archive format&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||file size in bytes, '''not''' counting this IFF header (that is, file size - 8)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==RSRC header==&lt;br /&gt;
I think this is actually the &amp;quot;Resource Dir header&amp;quot;. Note that the Dir can be anywhere in file, but this header always follows the IFF Header.&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|4 bytes||chunk signature (RSRC)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||version (always 0x100)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||compaction (not used in reading from archives)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||total file size in bytes&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||absolute offset of the Resource Dir&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||offset in Resource Dir of the File Table&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||File Table size in bytes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Type table==&lt;br /&gt;
It lists resource types in the Mohawk file. This table is always at the beginning of the Resource Dir.&lt;br /&gt;
&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||offset in Resource Dir of the Resource Name List (maybe this should go with the RSRC Header)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||number of resource types in this file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry (one for each type):&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|4 bytes||resource type (tWAV, tBMP, NAME etc.)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||offset in Resource Dir of the Resource Table for this type&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||offset in Resource Dir of the Name Table for this type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Name table==&lt;br /&gt;
There is one name table for each resource type. Many types don't have resource names; usually only tBMP, tWAV and tMOV do. Each entry holds the name offset in the name list for a resource.&lt;br /&gt;
&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of name entries (can be zero)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||offset of the name string in Name List&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||resource index (equal to the resource's index in File Table)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Resource table==&lt;br /&gt;
Again, there is one resource table for each resource type. The resource table holds crucial information about each resource of this type.&lt;br /&gt;
&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of resources for this type (number of table entries)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource ID&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||index in file table (starting from 1). Also used to find the matching name table entry&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Resource name list==&lt;br /&gt;
This is a simple list of null-terminated strings (C strings), where each string is a resource name. Given a resource, you can get the offset to its name by looking in the name table entry for that resource.&lt;br /&gt;
&lt;br /&gt;
==File table==&lt;br /&gt;
This table holds other important data about each resource, notably the location and size of the resource content within the whole Mohawk file. I wonder why this information couldn't go directly inside the resource table entry.&lt;br /&gt;
&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||number of file table entries&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||absolute offset of resource data block&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||resource data size, bits 15-0&lt;br /&gt;
|-&lt;br /&gt;
|byte||resource data size, bits 23-16&lt;br /&gt;
|-&lt;br /&gt;
|byte||resource flags (unknown)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||unknown (usually zero in Riven files)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
It should be noted that the resource data size information is incorrect for all [[Riven tMOV resources|tMOV]]s in the Riven archives. One can compensate for this by computing file lengths using the resource offsets.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/User:Clone2727</id>
		<title>User:Clone2727</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/User:Clone2727"/>
				<updated>2009-10-01T04:56:21Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: update status&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi!&lt;br /&gt;
&lt;br /&gt;
== About Me ==&lt;br /&gt;
I'm currently working on an engine for [http://www.scummvm.org/ ScummVM] that will run [[Myst engine overview|Myst]], [[Riven engine overview|Riven]], and [[Other Games|other games]] that use the [[Mohawk archive format|Mohawk archives]]. My blog on my progress can be found [http://clone2727.blogspot.com/ here].&lt;br /&gt;
&lt;br /&gt;
While most of [[Riven resources|Riven's resources]] are known, I occasionally add information on them. My main work on the wiki is adding to the non-Riven games. I'll add information mostly as I find out about it.&lt;br /&gt;
&lt;br /&gt;
== Engine Progress ==&lt;br /&gt;
=== Myst ===&lt;br /&gt;
Myst is now partially playable. The ages are all explorable at least. No puzzles are completable yet, however.&lt;br /&gt;
&lt;br /&gt;
=== Riven ===&lt;br /&gt;
It is highly playable right now. Only a few minor bugs remain. Transitions have not been implemented. Background videos are not yet supported. Many external commands are also not implemented yet. Inventory is also supported.&lt;br /&gt;
&lt;br /&gt;
The game is currently playable up until the &amp;quot;Marble Puzzle.&amp;quot; This includes completing the Boiler Puzzle and Tay.&lt;br /&gt;
&lt;br /&gt;
=== Other Games ===&lt;br /&gt;
Images, palettes, and sounds of other Mohawk games (both old and new file formats) are supported. Images in the old games aren't supported yet.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Old_Mohawk_archive_format</id>
		<title>Old Mohawk archive format</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Old_Mohawk_archive_format"/>
				<updated>2009-09-10T20:45:45Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: minor cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some of the very old Mohawk games do not use exactly the [[Mohawk archive format|same format]] as the rest of the Mohawk games. However, it's really the same thing minus the MHWK headers and the resource table/file table merging. In fact, many of the games using the older format were just ported directly into Mohawk files later with only minor changes.&lt;br /&gt;
&lt;br /&gt;
The files are have the extension &amp;lt;tt&amp;gt;.ibm&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;.mac&amp;lt;/tt&amp;gt;, being PC and Mac versions, respectively. The biggest difference between these two are endianness, but there are some other minor differences as well. Throughout this, I will use the same wording as the [[Mohawk archive format|regular archive format]] to show where the differences are. The Name Table is always missing here, but it looks like they left room for it, hence the u0 in each type table entry.&lt;br /&gt;
&lt;br /&gt;
= Windows Format (.ibm) =&lt;br /&gt;
All values are in Little Endian format. Including the FourCC's! This is important so that it matches up.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||absolute offset of the Resource Dir&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||size of Resource Dir (analogous to the size of the File table)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The offset of the resource directory seems to be always 6.&lt;br /&gt;
&lt;br /&gt;
== Type Table ==&lt;br /&gt;
At the beginning of the Resource Dir is the Type table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of resource types in this file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry (one for each type):&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|4 bytes||resource type ([[Other Games#BMAP|BMAP]], [[Other Games#WAV|WAV ]] (with a space), [[Other Games#VRSN|VRSN]] etc.)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||offset in Resource Dir of the Resource Table for this type&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The offset is the offset within the Resource Dir, not the absolute offset. u0 appears to always be 0.&lt;br /&gt;
&lt;br /&gt;
== Resource Table ==&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of resources for this type (number of table entries)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource ID&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||absolute offset of resource data block&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||resource data size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This circumvents having the file table, as it stores the offset and length here. u0 appears to always be 0.&lt;br /&gt;
&lt;br /&gt;
= Macintosh Format (.mac) =&lt;br /&gt;
All values are in Big Endian format.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||absolute offset of the Resource Dir&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||size of Resource Dir (analogous to the size of the File table)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The offset of the resource directory seems to be always 6.&lt;br /&gt;
&lt;br /&gt;
== Type Table ==&lt;br /&gt;
At the beginning of the Resource Dir is the Type table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of resource types in this file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry (one for each type):&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|4 bytes||resource type ([[Other Games#BMAP|BMAP]], [[Other Games#WAV|WAV ]] (with a space), [[Other Games#VRSN|VRSN]] etc.)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||offset in Resource Dir of the Resource Table for this type&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The offset is the offset within the Resource Dir, not the absolute offset. u0 appears to always be 0.&lt;br /&gt;
&lt;br /&gt;
== Resource Table ==&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of resources for this type (number of table entries)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource ID&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||absolute offset of resource data block&lt;br /&gt;
|-&lt;br /&gt;
|byte||resource data size, bits 23-16&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||resource data size, bits 15-0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|byte||u1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This circumvents having the file table, as it stores the offset and length here. u0 and u1 appear to always be 0. u1 is probably for alignment.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-09-10T20:38:26Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* ASET */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the USA is Carmen Sandiego?&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
In addition, various Living Books titles use the format or the [[Old Mohawk archive format|&amp;quot;old&amp;quot; Mohawk format]].&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASSETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
This is a question set. This links questions together into sort of like a dialogue tree.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||count&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[count]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''count'' is the amount of values the follow.&lt;br /&gt;
* ''values'' is an array which is probably a list of QUES/ANSW (need to check).&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
This is a question. It appears to hold data for the text as well as the sound clip associated with it.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sound&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u3&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u4&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u5&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u6&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u7&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|char *||string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''u0'' appears to always be 1. Possibly question count?&lt;br /&gt;
* ''sound'' is the sound clip associated with this question.&lt;br /&gt;
* ''u1'' is unknown. Always 0?&lt;br /&gt;
* ''u2'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''u3'' is unknown. It's usually 2.&lt;br /&gt;
* ''u4'' is unknown. It's usually 100.&lt;br /&gt;
* ''u5'' is unknown. It's usually 100.&lt;br /&gt;
* ''u6'' is unknown. It's usually 100.&lt;br /&gt;
* ''u7'' is unknown. Always 0?&lt;br /&gt;
* ''u8'' is unknown. Always 0?&lt;br /&gt;
* ''u9'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''string'' is the null-terminated string representing text for this question.&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
All tBMP resources contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This is a palette. It is used outside of tBMP resources as a way to share palette information.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||color_start&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads. ''color_start'' is the index at which the RGBA quads start.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
These appear to also contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of MIDI Sysex's. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;br /&gt;
&lt;br /&gt;
==== BMAP ====&lt;br /&gt;
All BMAP resources contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
==== WAV ====&lt;br /&gt;
(Note that the FourCC ends with a space)&lt;br /&gt;
&lt;br /&gt;
There are two variants of the format, one in little endian and one in big endian. You can tell the difference just by looking at the header tag.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|2 bytes||tag&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sample_rate&lt;br /&gt;
|-&lt;br /&gt;
|10 bytes||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||sample_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''tag'' is '''Wv''' ('''vW''' if little endian).&lt;br /&gt;
* ''sample_rate'' is the sample rate, usually 11127.&lt;br /&gt;
* ''u0'' has only been observed as all zeroes, but this is likely analogous to the loop part of the [[Mohawk Sounds|Mohawk sound resource]].&lt;br /&gt;
* ''sample_size'' is the size of the sample, usually the rest of the resource&lt;br /&gt;
&lt;br /&gt;
Following this is ''sample_size'' bytes of raw, unsigned, 8-bit PCM data.&lt;br /&gt;
&lt;br /&gt;
==== CTBL ====&lt;br /&gt;
Unknown, possibly color table?&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts</id>
		<title>Myst scripts</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts"/>
				<updated>2009-09-10T18:12:26Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: commands 196, 197, 298, and 299 are found in the Myst demo, purpose unknown&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
This page describes Myst scripts, command lists used in record types 5, 6, 7, 8, 10, 11, and 12. Scripts always start with an unsigned short representing the command count. Each command has this structure:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||opcode&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||var&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||arg_count&lt;br /&gt;
|-&lt;br /&gt;
|short||args[arg_count]&lt;br /&gt;
|}&lt;br /&gt;
When a variable is not given, ''var'' is set to 0. So when the key below says that the variable is ''optional'', that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command.&lt;br /&gt;
&lt;br /&gt;
A histogram of command usage in Myst original RLST resources can be found [http://altivec.indivia.net/alitl/myst_rlst_cmd_hist.svg here].&lt;br /&gt;
&lt;br /&gt;
==Commands 0-99==&lt;br /&gt;
These are suspected to be general-purpose commands.&lt;br /&gt;
&lt;br /&gt;
===Command 0===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
In some cases it seems to toggle the associated variable between logical &amp;quot;0&amp;quot; and &amp;quot;1&amp;quot; (e.g. see the marker switches on MYST island). However, it's probably more complicated than this: for example, in Mechanical card 6267 it seems to ''increment'' the associated variable.&lt;br /&gt;
&lt;br /&gt;
===Command 1===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
Could mean &amp;quot;set variable to ''u0''&amp;quot;. ''u0'' takes on any number between 0 and 7 (maybe a bit field?)&lt;br /&gt;
&lt;br /&gt;
===Command 2: alternative destination===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''dest''&lt;br /&gt;
&lt;br /&gt;
This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359)&lt;br /&gt;
&lt;br /&gt;
===Command 3: change cursor===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''clrc_id''&lt;br /&gt;
&lt;br /&gt;
This is used when picking up pages. Seems to check the associated variable and, depending on its value, set the appropriate cursor and alter the variable itself. ''clrc_id'' is always 800, 801, or 802, which match the cursors of the hand holding the white, red, and blue pages respectively.&lt;br /&gt;
&lt;br /&gt;
===Command 4===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 6===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 7===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 8===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 9===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always either ''FFFF'' or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 12===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 13|command 13]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
===Command 13===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 12|command 12]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
===Command 14===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 1, or 2.&lt;br /&gt;
&lt;br /&gt;
===Command 15===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0 or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 16===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 0.&lt;br /&gt;
&lt;br /&gt;
===Command 17===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
===Command 18===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
===Command 19: enable hotspots===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''indexes''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to enable a list of hotspots, specified by ''indexes''.&lt;br /&gt;
&lt;br /&gt;
===Command 20: disable hotspots===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''indexes''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to disable a list of hotspots, specified by ''indexes''. These, unlike [[#Command 19|command 19]], can also be -1, which seems to disable the invoking hotspot.&lt;br /&gt;
&lt;br /&gt;
===Command 21===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5''&lt;br /&gt;
&lt;br /&gt;
There are this command is used 6 times.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 74, 76, 117, or 198.&lt;br /&gt;
*''u1'' is always 0, 48, 213, or 226.&lt;br /&gt;
*''u2'' is always 327, 406, 429, 459, or 544.&lt;br /&gt;
*''u3'' is always 257, 332, or 333.&lt;br /&gt;
*''u4'' is always 0, 1, 5, 6, or 11.&lt;br /&gt;
*''u5'' is always 5 or 25.&lt;br /&gt;
&lt;br /&gt;
===Command 22===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 23===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
The ''u0'' numbers are all 0, 4, or 5. Guess: toggle enable status for a list of hotspots.&lt;br /&gt;
&lt;br /&gt;
===Command 24: play sound, non-blocking===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''sound_id''&lt;br /&gt;
&lt;br /&gt;
Start sound with ID ''sound_id''. Script execution resumes immediately and the sound plays in the background.&lt;br /&gt;
&lt;br /&gt;
===Command 26===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 27: play sound, blocking===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''sound_id''&lt;br /&gt;
&lt;br /&gt;
Play sound with ID ''sound_id'', blocking script execution until done.&lt;br /&gt;
&lt;br /&gt;
===Command 28===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' (&amp;lt;''l t r b''&amp;gt;|''FFFF'')&lt;br /&gt;
&lt;br /&gt;
Often used after command 29. &amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources. Guess: update screen rectangle? See Mechanical card 6009.&lt;br /&gt;
&lt;br /&gt;
===Command 29: copy picture over the hotspot===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''pict_id'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''pict_id'' appears to be a picture ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0, 1, or -1).&lt;br /&gt;
&lt;br /&gt;
This command seems to copy picture ''pict_id'' over the hotspot, using &amp;lt;''l'' ''t'' ''r'' ''b''&amp;gt; as the source rect. Additional data is unknown.&lt;br /&gt;
&lt;br /&gt;
===Command 30: start background sounds===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' variable&lt;br /&gt;
&lt;br /&gt;
This seems to start a background sound combination. The arg list seems to follow the philosophy of the sounds section in VIEW resources. In most cases there are just 2 args, a positive ''msnd_id'' (background sound ID to play) and ''flags''. However, there is a single exception with 8 args (RLST ID 3225 in Channelwood) which can be correctly interpreted simply as a more complex sounds section.&lt;br /&gt;
&lt;br /&gt;
===Command 31===&lt;br /&gt;
*'''Variable:''' Yes (only ever 30)&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
&lt;br /&gt;
===Command 32===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 33: draw picture===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''id'' &amp;lt;''sl st sr sb''&amp;gt; &amp;lt;''dl'' ''dt''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Draw a picture, given the ID and source rect, at position &amp;lt;''dl'',''dt''&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Command 34===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''card'' ''u1''&lt;br /&gt;
&lt;br /&gt;
Seems to go to card ''card''. ''u1'' is always 0, 1, 4, 5, 6, 9, 10, or 11.&lt;br /&gt;
&lt;br /&gt;
===Command 35===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' is always 0, 6, or 10.&lt;br /&gt;
&lt;br /&gt;
===Command 36===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 900 or 903.&lt;br /&gt;
&lt;br /&gt;
===Command 37===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
Seems to form pairs with command 38, where it opens the script and command 38 ends it.&lt;br /&gt;
&lt;br /&gt;
===Command 38===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
Seems to form pairs with command 37, where it closes the script while command 37 opens it.&lt;br /&gt;
&lt;br /&gt;
===Command 39===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''u0'' is 100, 200, 400, 500, 1000, or 1100. Guess: pause execution for ''u0'' milliseconds?&lt;br /&gt;
&lt;br /&gt;
===Command 40: travel to destination age===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''dst_age_id'' ''src_msnd_id'' ''dst_msnd_id''&lt;br /&gt;
&lt;br /&gt;
*''dst_age_id'' is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny).&lt;br /&gt;
*''src_msnd_id'' is a sound ID to play in source age.&lt;br /&gt;
*''dst_msnd_id'' is a sound ID to play in destination age.&lt;br /&gt;
&lt;br /&gt;
===Command 41===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
*''u2'' is always 5 or 10.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u3'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
===Command 42===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
*''u1'' is always 5, 10, 15, or 20.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u2'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
===Command 43===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 44===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 46===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
Often found after commands 29 and 33. Guess: update the whole screen?&lt;br /&gt;
&lt;br /&gt;
==Commands 100-199==&lt;br /&gt;
These are suspected to be age-specific, as their syntax changes depending on the age.&lt;br /&gt;
===Command 100===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 6, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 101===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1''[6]]&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4225 or omitted.&lt;br /&gt;
*''u1'' is a series of 6 positive numbers.&lt;br /&gt;
&lt;br /&gt;
===Command 102===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'' ''u1'' [''u2'']]&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID (or 0).&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' looks like an (optional) bit field. (only 0x64 or 0)&lt;br /&gt;
&lt;br /&gt;
===Command 103===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''bit''&lt;br /&gt;
&lt;br /&gt;
This form of the command most likely negates bit ''bit'' of ''var''.&lt;br /&gt;
&lt;br /&gt;
*''bit'' is a power of 2 (bit mask).&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
This form of the command likely makes specified hotspot drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is a number between 13 and 18. It seems to refer to a hotspot index (see stone 2197).&lt;br /&gt;
*''u1'' is either 1 or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 104===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
This command likely makes specified hotspot not drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' can be 0, 1, omitted, or 13 to 20. It seems to refer to a hotspot index (see stone 2004 and 2197).&lt;br /&gt;
&lt;br /&gt;
===Command 105===&lt;br /&gt;
*'''Variable:''' Optional (set to 9 at one point, but usually not)&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 106===&lt;br /&gt;
*'''Variable:''' 10&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 107===&lt;br /&gt;
*'''Variable:''' 11&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 108===&lt;br /&gt;
*'''Variable:''' 12&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 109===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID).&lt;br /&gt;
&lt;br /&gt;
===Command 110===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 111===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
This command likely makes specified hotspot not drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 14 to 20 or omitted. It seems to refer to a hotspot index (see stone 2004).&lt;br /&gt;
&lt;br /&gt;
===Command 112===&lt;br /&gt;
*'''Variable:''' 29&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or 1800.&lt;br /&gt;
*''u1'' is 400 or 2000.&lt;br /&gt;
*''u2'' is 1.&lt;br /&gt;
&lt;br /&gt;
===Command 113===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 0 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 114===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 115===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' look like card ID's.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1139 1140 1140 10 6 204 64 343 279 6 50&lt;br /&gt;
&lt;br /&gt;
This form of the command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 116===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 6006.&lt;br /&gt;
&lt;br /&gt;
===Command 117===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1'' ''u2'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
*''u1'' and ''u2'' are 5698 and 6698 (only used once).&lt;br /&gt;
&lt;br /&gt;
In Channelwood, card 3012, this command is invoked by the buttons in Achenar's video device and ''u0'' is the button number.&lt;br /&gt;
&lt;br /&gt;
===Command 118===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [4707 5707 6707 7707 4705]&lt;br /&gt;
&lt;br /&gt;
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 119===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 120===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 121===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or a card ID.&lt;br /&gt;
*''u1'' is a card ID.&lt;br /&gt;
&lt;br /&gt;
===Command 122===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 123===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 960.&lt;br /&gt;
*''u1'' is 960, 1920, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 124===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 125===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' 21&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 13 or 14.&lt;br /&gt;
&lt;br /&gt;
===Command 126===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 127===&lt;br /&gt;
*'''Variable:''' no&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 1, 2, or 3.&lt;br /&gt;
*''u1'' is 0 or 1.&lt;br /&gt;
&lt;br /&gt;
===Command 129===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 133===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 6500&lt;br /&gt;
&lt;br /&gt;
This command is only used once. Value is a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 164===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 169===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 196===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
This command is only used in the demo.&lt;br /&gt;
&lt;br /&gt;
===Command 197===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
This command is only used in the demo.&lt;br /&gt;
&lt;br /&gt;
===Command 198===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 199===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Commands 200-299==&lt;br /&gt;
These are only seen in the [[Myst INIT resources|INIT]] scripts.&lt;br /&gt;
===Command 200===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' DUNNY, INTRO, MECHAN, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0 u1''[3]&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
*''u1'' appears to be three sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 201===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL, INTRO, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 0 4 5&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
===Command 202===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MECHAN, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 13&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
===Command 203===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL, MECHAN, MYST, SELEN&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count''] ''u1''&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like card IDs.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 204===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 205===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count''] ''u1''&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like card IDs.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[4]&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 206===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[6]&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 207===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' STONE&lt;br /&gt;
&lt;br /&gt;
===Command 208===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
===Command 209===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 210===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 211===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 212===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 213===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 214===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 215===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 216===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 217===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 218===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 219===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 220===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 221===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 222===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 298===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
This command is only used in the demo.&lt;br /&gt;
&lt;br /&gt;
===Command 299===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
This command is only used in the demo.&lt;br /&gt;
&lt;br /&gt;
==Commands 300-399==&lt;br /&gt;
These are only seen in the [[Myst EXIT resources|EXIT]] scripts.&lt;br /&gt;
===Command 300===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 301===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 302===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 303===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 304===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 305===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 306===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 307===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 308===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 309===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 312===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:'''&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Mohawk_Bitmaps</id>
		<title>Mohawk Bitmaps</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Mohawk_Bitmaps"/>
				<updated>2009-09-10T18:07:28Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: Minor correction and add values for two more (still unknown) compressions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
{{Riven}}&lt;br /&gt;
All observed Mohawk games use a common bitmap format, besides Myst (which uses [[WDIB]] and [[Myst PICT resources|PICT]] images). Mohawk bitmaps are always stored with a tBMP tag. All values are in big endian order. tBMP resources are divided into three chunks: the header, the palette, and the image. Note that the palette is not always present (such as non-Riven 8bpp images and Riven 24bpp images).&lt;br /&gt;
&lt;br /&gt;
== Bitmap Header ==&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||bitmap width&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bitmap height&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bytes per row&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||compression details&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''bitmap width'' is the width of the bitmap in pixels.&lt;br /&gt;
* ''bitmap height'' is the height of the bitmap in pixels.&lt;br /&gt;
* ''bytes per row'' is the pitch of the image (bytes in a scan line).&lt;br /&gt;
* For ''compression details'', see the next section.&lt;br /&gt;
&lt;br /&gt;
'''Note''': Both ''bitmap width'' and ''bitmap height'' are only valid for the bottom 10 bits (val &amp;amp; 0x3ff, in C). ''bytes per row'' is also the same, but has to remain even (val &amp;amp; 0x3fe, in C).&lt;br /&gt;
&lt;br /&gt;
=== Compression Details ===&lt;br /&gt;
''compression details'' is split up into different sections, depending on their purpose.&lt;br /&gt;
&lt;br /&gt;
==== Bits 0-2 (Bits Per Pixel) ====&lt;br /&gt;
The lower three bits represent the images' bit depth. It is chosen from this table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|Value||Bits Per Pixel&lt;br /&gt;
|-&lt;br /&gt;
|0||1&lt;br /&gt;
|-&lt;br /&gt;
|1||4&lt;br /&gt;
|-&lt;br /&gt;
|2||8&lt;br /&gt;
|-&lt;br /&gt;
|3||16&lt;br /&gt;
|-&lt;br /&gt;
|4||24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other values are undefined.&lt;br /&gt;
&lt;br /&gt;
==== Bit 3 (Palette) ====&lt;br /&gt;
Bit 3 represents whether or not a palette will occur. However, this is very unreliable, as Riven never has this bit set. If the game is Riven, and the bit depth is 8, you should assume there is a palette.&lt;br /&gt;
&lt;br /&gt;
==== Bits 4-7 (Secondary Compression) ====&lt;br /&gt;
Bits 4-7 represent the secondary compression on the image. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|Value||Secondary Compression&lt;br /&gt;
|-&lt;br /&gt;
|0||None&lt;br /&gt;
|-&lt;br /&gt;
|1||RLE8&lt;br /&gt;
|-&lt;br /&gt;
|3||Another (still unknown) RLE variant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For none, the image is raw pixels. However, there are ''bytes per row'' bytes per row, so you have to skip remaining bytes at the end of the row. In Riven, there is always no secondary compression. On the contrary, in almost all other games' images, the compression is RLE8.&lt;br /&gt;
&lt;br /&gt;
==== Bits 8-11 (Primary Compression) ====&lt;br /&gt;
Bits 8-11 represent the primary compression on the image.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|Value||Secondary Compression&lt;br /&gt;
|-&lt;br /&gt;
|0||None&lt;br /&gt;
|-&lt;br /&gt;
|1||LZ&lt;br /&gt;
|-&lt;br /&gt;
|2||Another (still unknown) LZ variant&lt;br /&gt;
|-&lt;br /&gt;
|4||Riven&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For none, there is nothing to do at this stage. See details later for the LZ and Riven compression schemes.&lt;br /&gt;
&lt;br /&gt;
== Palette ==&lt;br /&gt;
While bit 3 should represent whether a palette exists or not, all 8bpp Riven images have a palette regardless. The palette starts with a short header:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||table_size&lt;br /&gt;
|-&lt;br /&gt;
|byte||bits_per_color&lt;br /&gt;
|-&lt;br /&gt;
|byte||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''table_size'' is the size of the table, including the four byte header.&lt;br /&gt;
* ''bits_per_color'' is the bits that each color is (seems to be always 24)&lt;br /&gt;
* ''color_count'' is the amount of colors that the table contains (seems to be always 0xff)&lt;br /&gt;
&lt;br /&gt;
Following the header is ''color_count'' blocks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||blue_component&lt;br /&gt;
|-&lt;br /&gt;
|byte||green_component&lt;br /&gt;
|-&lt;br /&gt;
|byte||red_component&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Image ==&lt;br /&gt;
&lt;br /&gt;
The rest of the tBMP resource is made up of the image. To decode the image, you must first use the primary decompression and then the secondary decompression to have the correct output image.&lt;br /&gt;
&lt;br /&gt;
=== Primary Decompression ===&lt;br /&gt;
&lt;br /&gt;
If the image has no primary decompression you can skip this step.&lt;br /&gt;
&lt;br /&gt;
==== LZ Decompression ====&lt;br /&gt;
&lt;br /&gt;
The stream consists of two parts, the header and the compressed data.&lt;br /&gt;
&lt;br /&gt;
===== LZ Header =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||uncompressed_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||compressed_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||dictionary_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''uncompressed_size'' is the size of the data after decompressing.&lt;br /&gt;
* ''compressed_size'' is the size of the data before decompressing.&lt;br /&gt;
* ''dictionary_size'' is the size of the ring buffer to use in the decompressor. However, it is '''''always''''' 0x400, and if it's not 0x400, it should be thrown out.&lt;br /&gt;
&lt;br /&gt;
===== LZ Compression =====&lt;br /&gt;
Thanks to Petroff Heroj and Ron Hayter for working out this compression.&lt;br /&gt;
&lt;br /&gt;
Until the end of the resource, each run begins with a byte. Each bit of this byte defines what to do next, starting from the least significant one.&lt;br /&gt;
* A 1 means an absolute byte follows. Read a byte from the compressed data and store it directly into the uncompressed buffer.&lt;br /&gt;
* A 0 means a length/offset pair follows. Read two bytes ''b1'' and ''b2'' from the compressed data. The most significant 6 bits of ''b1'' represent the length of the run minus 3. The 2 least significant bits of ''b1'' and the whole ''b2'' form together a 10-bit offset into the ring buffer, minus 0x42. At this point copy ''length'' bytes from the ring buffer, starting at ''offset'', to the uncompressed buffer. If ''offset'' is over 0x400 make sure to subtract 0x400 after adding the 0x42, i.e. loop around to the beginning of the ring buffer.&lt;br /&gt;
The ring-buffer should be initialized to all zeroes. Remember to store the uncompressed bytes in the ring buffer as well, looping to the beginning after 0x400 bytes.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0xf7                     // decoder byte (11110111b)&lt;br /&gt;
0x87                     // absolute byte&lt;br /&gt;
0x73                     // absolute byte&lt;br /&gt;
0x27                     // absolute byte&lt;br /&gt;
0x0b                     // byte 1 of the run data: length = 2 + 3 = 5 (first 6 bits + 3)&lt;br /&gt;
0xa9                     // byte 2 of the run data: offset = 0x3a9 + 0x42 = 0x3eb&lt;br /&gt;
0x27                     // absolute byte&lt;br /&gt;
0x32                     // absolute byte&lt;br /&gt;
0x00                     // absolute byte&lt;br /&gt;
0x4e                     // absolute byte&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Riven Decompression ====&lt;br /&gt;
In compressed tBMP bitmaps, pixels are encoded as a data stream made of variable length commands. Pixels are always decoded in duplets: each command generates at least 2 pixels. The encoding is heavily based on what comes before each command, so even a little decoding bug can cripple the whole image. The commands can appear in any order inside the data stream. The first 4 bytes of the data stream are unknown and can be ignored. Many thanks to Arthur Muller for his precious help in decoding this format.&lt;br /&gt;
&lt;br /&gt;
Like the uncompressed format, sometimes duplets are generated beyond the edge of the image. Use the ''bytes per row'' value to see how many duplets are in each row.&lt;br /&gt;
&lt;br /&gt;
===== Main Commands =====&lt;br /&gt;
&lt;br /&gt;
They are all 1-byte commands, followed by a variable number of arguments.&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=4 cellspacing=0 style=&amp;quot;border:1px #000 solid;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! Action&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x00||End of stream: when reaching it, the decoding is complete. No additional bytes follow. I think some bitmaps don't have this, so just stop when you have decoded enough pixels to fill the image.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x01&amp;amp;nbsp;-0x3f||Output ''n'' pixel duplets, where ''n'' is the command value itself. Pixel data comes immediately after the command as 2*''n'' bytes representing direct indices in the 8-bit color table.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x40-0x7f||Repeat last 2 pixels ''n'' times, where ''n'' = ''command_value'' &amp;amp; 0x3F. No additional bytes follow.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x80-0xbf||Repeat last 4 pixels ''n'' times, where ''n'' = ''command_value'' &amp;amp; 0x3F. No additional bytes follow.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xc0-0xff||Begin of a subcommand stream. This is like the main command stream, but contains another set of commands which are somewhat more specific and a bit more complex. This command says that ''command_value'' &amp;amp; 0x3F subcommands will follow. It doesn't generate pixels itself.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Subcommands, part 1: arithmetic operations =====&lt;br /&gt;
Subcommands are not simply 1-byte values, but are somewhat mixed with their arguments, so the full byte pattern is reported.&lt;br /&gt;
{| border=1 cellpadding=4 cellspacing=0 style=&amp;quot;border:1px #000 solid;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! Byte pattern !! Action&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x01-0x0f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0000mmmm&lt;br /&gt;
|Repeat duplet at relative position -''m'', where ''m'' is given in duplets. So if ''m''=1, repeat the last duplet.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x10&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x10 p&lt;br /&gt;
|Repeat last duplet, but change second pixel to ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x11-0x1f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0001mmmm&lt;br /&gt;
|Output the first pixel of last duplet, then pixel at relative position -''m''. ''m'' is given in pixels.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x20-0x2f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0010xxxx&lt;br /&gt;
|Repeat last duplet, but add ''x'' to second pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x30-0x3f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0011xxxx&lt;br /&gt;
|Repeat last duplet, but subtract ''x'' to second pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x40&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x40 p&lt;br /&gt;
|Repeat last duplet, but change first pixel to ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x41-0x4f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0100mmmm&lt;br /&gt;
|Output pixel at relative position -''m'', then second pixel of last duplet.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x50&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x50 p1 p2&lt;br /&gt;
|Output two absolute pixel values, ''p1'' and ''p2''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x51-0x57&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|01010mmm p&lt;br /&gt;
|Output pixel at relative position -''m'', then absolute pixel value ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x59-0x5f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|01011mmm p&lt;br /&gt;
|Output absolute pixel value ''p'', then pixel at relative position -''m''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x60-0x6f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0110xxxx p&lt;br /&gt;
|Output absolute pixel value ''p'', then (second pixel of last duplet) + ''x''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x70-0x7f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0111xxxx p&lt;br /&gt;
|Output absolute pixel value ''p'', then (second pixel of last duplet) - ''x''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x80-0x8f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1000xxxx&lt;br /&gt;
|Repeat last duplet adding ''x'' to the first pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x90-0x9f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1001xxxx p&lt;br /&gt;
|Output (first pixel of last duplet) + ''x'', then absolute pixel value ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa0&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa0 xxxxyyyy&lt;br /&gt;
|Repeat last duplet, adding ''x'' to the first pixel and ''y'' to the second.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb0&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb0 xxxxyyyy&lt;br /&gt;
|Repeat last duplet, adding ''x'' to the first pixel and subtracting ''y'' from the second.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xc0-0xcf&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1100xxxx&lt;br /&gt;
|Repeat last duplet subtracting ''x'' from first pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xd0-0xdf&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1101xxxx p&lt;br /&gt;
|Output (first pixel of last duplet) - ''x'', then absolute pixel value ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe0&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe0 xxxxyyyy&lt;br /&gt;
|Repeat last duplet, subtracting ''x'' from first pixel and adding ''y'' to second.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xf0 and 0xff&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xfx xxxxyyyy&lt;br /&gt;
|Repeat last duplet, subtracting ''x'' from first pixel and ''y'' from second.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Subcommands, part 2: repeat operations =====&lt;br /&gt;
&lt;br /&gt;
Sometimes these repeat commands will try to copy more than what is available when the command is read. In those cases, the command repeats the available segment of data until the number of duplets needed is copied. Or, equivalently, the command starts copying data that it wrote earlier.&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=4 cellspacing=0 style=&amp;quot;border:1px #000 solid;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! Byte pattern !! Action&lt;br /&gt;
|-&lt;br /&gt;
|various&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1x1xxxmm mmmmmmmm&lt;br /&gt;
|&lt;br /&gt;
{| border=1 cellspacing=0 style=&amp;quot;float:right;border:none;border-collapse:collapse;padding:0px 3px;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! n !! r&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa4&amp;amp;nbsp;-&amp;amp;nbsp;0xa7||2||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa8 - 0xab||2||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xac - 0xaf||3||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb4 - 0xb7||3||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb8 - 0xbb||4||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xbc - 0xbf||4||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe4 - 0xe7||5||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe8 - 0xeb||5||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xec - 0xef||6||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xf4 - 0xf7||6||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xf8 - 0xfb||7||0&lt;br /&gt;
|}&lt;br /&gt;
Repeat n duplets from relative position -''m'' (given in pixels, not duplets). If ''r'' is 0, another byte follows and the last pixel is set to that value. ''n'' and ''r'' come from the table on the right.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xfc&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xfc nnnnnrmm mmmmmmmm (p)&lt;br /&gt;
|Repeat n+2 duplets from relative position -''m'' (given in pixels, not duplets). If ''r'' is 0, another byte ''p'' follows and the last pixel is set to absolute value ''p''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secondary Decompression ===&lt;br /&gt;
In all Riven images, and some other images, there is no secondary decompression. Instead, the remaining data is just the pixels. For 24bpp images, the pixels are in BGR order. For 8bpp images, there are ''bytes per row'' pixels, so you will have to cut off the remaining bytes at the end of the data (''bytes per row'' - ''bitmap width'').&lt;br /&gt;
&lt;br /&gt;
However, many non-Riven images use the RLE8 compression.&lt;br /&gt;
&lt;br /&gt;
==== RLE8 Compression ====&lt;br /&gt;
The RLE8 compression is a rather simple form of RLE. The decoder works by decoding one row at a time, so there will be ''bitmap height'' chunks of data. Each chunk '''''always''''' decodes one row of data. &lt;br /&gt;
&lt;br /&gt;
Per Row:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||byte_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''byte_count'' is the amount of bytes that will be used to decode the current row.&lt;br /&gt;
&lt;br /&gt;
The ''byte_count'' should be ignored until later. Until you have completed a row's length of pixels, you must continue decompressing the RLE data.&lt;br /&gt;
&lt;br /&gt;
Each RLE command starts with a byte. The high bit of the data represents whether or not to repeat a pixel or output direct pixels. The bottom 7 bits are the ''run_length'' minus one.&lt;br /&gt;
&lt;br /&gt;
If the high bit is set, read in another byte which represents the pixel to repeat and then output the pixel for the rest of the run. If the high bit is not set, output ''run_length'' absolute pixels from the input stream.&lt;br /&gt;
&lt;br /&gt;
Once you have outputted the correct amount of pixels, you should move ''byte_count'' bytes from the start of the row in the compressed stream.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-09-10T18:03:05Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: Add notes about old mohawk resource-based games and their resources (though, they usually contain the same as newer Mohawk ones).&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the USA is Carmen Sandiego?&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
In addition, various Living Books titles use the format or the [[Old Mohawk archive format|&amp;quot;old&amp;quot; Mohawk format]].&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASEETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
This is a question set. This links questions together into sort of like a dialogue tree.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||count&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[count]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''count'' is the amount of values the follow.&lt;br /&gt;
* ''values'' is an array which is probably a list of QUES/ANSW (need to check).&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
This is a question. It appears to hold data for the text as well as the sound clip associated with it.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sound&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u3&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u4&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u5&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u6&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u7&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|char *||string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''u0'' appears to always be 1. Possibly question count?&lt;br /&gt;
* ''sound'' is the sound clip associated with this question.&lt;br /&gt;
* ''u1'' is unknown. Always 0?&lt;br /&gt;
* ''u2'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''u3'' is unknown. It's usually 2.&lt;br /&gt;
* ''u4'' is unknown. It's usually 100.&lt;br /&gt;
* ''u5'' is unknown. It's usually 100.&lt;br /&gt;
* ''u6'' is unknown. It's usually 100.&lt;br /&gt;
* ''u7'' is unknown. Always 0?&lt;br /&gt;
* ''u8'' is unknown. Always 0?&lt;br /&gt;
* ''u9'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''string'' is the null-terminated string representing text for this question.&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
All tBMP resources contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This is a palette. It is used outside of tBMP resources as a way to share palette information.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||color_start&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads. ''color_start'' is the index at which the RGBA quads start.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
These appear to also contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of MIDI Sysex's. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;br /&gt;
&lt;br /&gt;
==== BMAP ====&lt;br /&gt;
All BMAP resources contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
==== WAV ====&lt;br /&gt;
(Note that the FourCC ends with a space)&lt;br /&gt;
&lt;br /&gt;
There are two variants of the format, one in little endian and one in big endian. You can tell the difference just by looking at the header tag.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|2 bytes||tag&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sample_rate&lt;br /&gt;
|-&lt;br /&gt;
|10 bytes||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||sample_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''tag'' is '''Wv''' ('''vW''' if little endian).&lt;br /&gt;
* ''sample_rate'' is the sample rate, usually 11127.&lt;br /&gt;
* ''u0'' has only been observed as all zeroes, but this is likely analogous to the loop part of the [[Mohawk Sounds|Mohawk sound resource]].&lt;br /&gt;
* ''sample_size'' is the size of the sample, usually the rest of the resource&lt;br /&gt;
&lt;br /&gt;
Following this is ''sample_size'' bytes of raw, unsigned, 8-bit PCM data.&lt;br /&gt;
&lt;br /&gt;
==== CTBL ====&lt;br /&gt;
Unknown, possibly color table?&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Old_Mohawk_archive_format</id>
		<title>Old Mohawk archive format</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Old_Mohawk_archive_format"/>
				<updated>2009-09-10T17:53:48Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: adding details of the &amp;quot;old&amp;quot; Mohawk archive format, which is clearly the predecessor to the regular ones&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some of the very old Mohawk games do not use exactly the [[Mohawk archive format|same format]] as the rest of the Mohawk games. However, it's really the same thing minus the MHWK headers and the resource table/file table merging. In fact, many of the games using the older format were just ported directly into Mohawk files later with only minor changes.&lt;br /&gt;
&lt;br /&gt;
The files are have the extension &amp;lt;tt&amp;gt;.ibm&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;.mac&amp;lt;/tt&amp;gt;, being PC and Mac versions, respectively. The biggest difference between these two are endianness, but there are some other minor differences as well. Throughout this, I will use the same wording as the [[Mohawk archive format|regular archive format]] to show where the differences are. The Name Table is always missing here, but it looks like they left room for it, hence the u0 in each type table entry.&lt;br /&gt;
&lt;br /&gt;
= Windows Format =&lt;br /&gt;
All values are in Little Endian format. Including the FourCC's! This is important so that it matches up.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||absolute offset of the Resource Dir&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||size of Resource Dir (analogous to the size of the File table)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The offset of the resource directory seems to be always 6.&lt;br /&gt;
&lt;br /&gt;
== Type Table ==&lt;br /&gt;
At the beginning of the Resource Dir is the Type table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of resource types in this file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry (one for each type):&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|4 bytes||resource type (BMAP, WAV (with a space), VRSN etc.)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||offset in Resource Dir of the Resource Table for this type&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The offset is the offset within the Resource Dir, not the absolute offset. u0 appears to always be 0.&lt;br /&gt;
&lt;br /&gt;
== Resource Table ==&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of resources for this type (number of table entries)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource ID&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||absolute offset of resource data block&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||resource data size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This circumvents having the file table, as it stores the offset and length here. u0 appears to always be 0.&lt;br /&gt;
&lt;br /&gt;
= Macintosh Format =&lt;br /&gt;
All values are in Big Endian format.&lt;br /&gt;
&lt;br /&gt;
== Header ==&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||absolute offset of the Resource Dir&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||size of Resource Dir (analogous to the size of the File table)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The offset of the resource directory seems to be always 6.&lt;br /&gt;
&lt;br /&gt;
== Type Table ==&lt;br /&gt;
At the beginning of the Resource Dir is the Type table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of resource types in this file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry (one for each type):&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|4 bytes||resource type (BMAP, WAV (with a space), VRSN etc.)&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||offset in Resource Dir of the Resource Table for this type&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The offset is the offset within the Resource Dir, not the absolute offset. u0 appears to always be 0.&lt;br /&gt;
&lt;br /&gt;
== Resource Table ==&lt;br /&gt;
Header:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||number of resources for this type (number of table entries)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Entry:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource ID&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||absolute offset of resource data block&lt;br /&gt;
|-&lt;br /&gt;
|byte||resource data size, bits 23-16&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||resource data size, bits 15-0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|byte||u1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This circumvents having the file table, as it stores the offset and length here. u0 and u1 appear to always be 0. u1 is probably for alignment.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Riven_variables</id>
		<title>Riven variables</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Riven_variables"/>
				<updated>2009-08-19T16:02:08Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* araw */ remove duplicate entry&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Riven}}&lt;br /&gt;
This page is an attempt to discern the function of every variable in the game.&lt;br /&gt;
&lt;br /&gt;
==a_Data==&lt;br /&gt;
====acathstate====&lt;br /&gt;
*p_Data var 15&lt;br /&gt;
====adoit====&lt;br /&gt;
*b_Data var 0, g_Data var 1, j_Data var 5, o_Data var 5, p_Data var 0, r_Data var 1, t_Data var 0&lt;br /&gt;
====agehn====&lt;br /&gt;
*o_Data var 2, r_Data var 0, t_Data var 7&lt;br /&gt;
====aova====&lt;br /&gt;
*b_Data var 25, g_Data var 28, j_Data var 12, o_Data var 6, t_Data var 14&lt;br /&gt;
====apower====&lt;br /&gt;
*b_Data var 45, g_Data var 16, j_Data var 32, t_Data var 31&lt;br /&gt;
State of the power provided by the fire-marbles in the huge golden dome. 0=no power, 1=power on. Makes the domes work when set to 1.&lt;br /&gt;
&lt;br /&gt;
====araw====&lt;br /&gt;
*b_Data var 24, g_Data var 2, j_Data var 29, r_Data var 4, t_Data var 13&lt;br /&gt;
&lt;br /&gt;
====atemp====&lt;br /&gt;
*j_Data var 26&lt;br /&gt;
====atrap====&lt;br /&gt;
*a_Data var 0&lt;br /&gt;
====atrapbook====&lt;br /&gt;
*a_Data var 1, o_Data var 3, p_Data var 14, r_Data var 3&lt;br /&gt;
====domecheck====&lt;br /&gt;
*b_Data var 46, g_Data var 17, j_Data var 35, p_Data var 22, t_Data var 37&lt;br /&gt;
Used in dome scope mechanisms. Apparently, *_domecheck() externals set this to let scripts know if the scope button was hit at the right time (0=no, 1=yes).&lt;br /&gt;
&lt;br /&gt;
==b_Data==&lt;br /&gt;
====bbacklock====&lt;br /&gt;
*b_Data var 21&lt;br /&gt;
====bbait====&lt;br /&gt;
*b_Data var 39&lt;br /&gt;
====bbigbridge====&lt;br /&gt;
*b_Data var 6, t_Data var 41&lt;br /&gt;
====bbirds====&lt;br /&gt;
*b_Data var 36&lt;br /&gt;
====bblrarm====&lt;br /&gt;
*b_Data var 2&lt;br /&gt;
====bblrdoor====&lt;br /&gt;
*b_Data var 3&lt;br /&gt;
====bblrgrt====&lt;br /&gt;
*b_Data var 4&lt;br /&gt;
====bblrsw====&lt;br /&gt;
*b_Data var 34&lt;br /&gt;
====bblrvalve====&lt;br /&gt;
*b_Data var 32&lt;br /&gt;
====bblrwtr====&lt;br /&gt;
*b_Data var 5&lt;br /&gt;
Presence of water in the boiler. 0 = empty, 1 = filled.&lt;br /&gt;
====bbook====&lt;br /&gt;
*b_Data var 44, o_Data var 13&lt;br /&gt;
====bbrlever====&lt;br /&gt;
*b_Data var 9, t_Data var 40&lt;br /&gt;
====bcavedoor====&lt;br /&gt;
*b_Data var 16&lt;br /&gt;
====bcpipegr====&lt;br /&gt;
*b_Data var 26&lt;br /&gt;
====bcratergg====&lt;br /&gt;
*b_Data var 1&lt;br /&gt;
====bdome====&lt;br /&gt;
*b_Data var 43&lt;br /&gt;
====bdrwr====&lt;br /&gt;
*b_Data var 23&lt;br /&gt;
====bfans====&lt;br /&gt;
*b_Data var 15&lt;br /&gt;
====bfmdoor====&lt;br /&gt;
*b_Data var 42&lt;br /&gt;
====bidvlv====&lt;br /&gt;
*b_Data var 30&lt;br /&gt;
====blab====&lt;br /&gt;
*b_Data var 11&lt;br /&gt;
====blabbook====&lt;br /&gt;
*b_Data var 28&lt;br /&gt;
====blabeye====&lt;br /&gt;
*b_Data var 27&lt;br /&gt;
====blabfrontdr====&lt;br /&gt;
*b_Data var 17&lt;br /&gt;
====blabbackdr====&lt;br /&gt;
*b_Data var 20&lt;br /&gt;
====bfrontlock====&lt;br /&gt;
*b_Data var 18&lt;br /&gt;
====bheat====&lt;br /&gt;
*b_Data var 33&lt;br /&gt;
====bmagcar====&lt;br /&gt;
*b_Data var 12, g_Data var 7, j_Data var 44&lt;br /&gt;
====bpipdr====&lt;br /&gt;
*b_Data var 47, j_Data var 43&lt;br /&gt;
====bprs====&lt;br /&gt;
*b_Data var 37&lt;br /&gt;
====bstove====&lt;br /&gt;
*b_Data var 29&lt;br /&gt;
====btrap====&lt;br /&gt;
*b_Data var 35&lt;br /&gt;
====bvalve====&lt;br /&gt;
*b_Data var 31&lt;br /&gt;
Position of the steam valve located at the center of the lake (card 415). 0: steam to the ytram mechanism; 1: steam to the boiler controls; 2: steam to the chipper.&lt;br /&gt;
&lt;br /&gt;
====bvise====&lt;br /&gt;
*b_Data var 19&lt;br /&gt;
====bytram====&lt;br /&gt;
*b_Data var 22&lt;br /&gt;
====bytramtime====&lt;br /&gt;
*b_Data var 40&lt;br /&gt;
====bytrap====&lt;br /&gt;
*b_Data var 38&lt;br /&gt;
====bytrapped====&lt;br /&gt;
*b_Data var 41&lt;br /&gt;
&lt;br /&gt;
==g_Data==&lt;br /&gt;
====gbook====&lt;br /&gt;
*g_Data var 15, o_Data var 12&lt;br /&gt;
====gcathtime====&lt;br /&gt;
*g_Data var 26&lt;br /&gt;
====gcathstate====&lt;br /&gt;
*g_Data var 27&lt;br /&gt;
====gdome====&lt;br /&gt;
*g_Data var 10&lt;br /&gt;
====gemagcar====&lt;br /&gt;
*g_Data var 19, j_Data var 39&lt;br /&gt;
====gimagecurr====&lt;br /&gt;
*g_Data var 13&lt;br /&gt;
====gimagemax====&lt;br /&gt;
*g_Data var 14&lt;br /&gt;
====glkbtns====&lt;br /&gt;
*g_Data var 8&lt;br /&gt;
====glkbridge====&lt;br /&gt;
*g_Data var 9&lt;br /&gt;
====glview====&lt;br /&gt;
*g_Data var 25&lt;br /&gt;
====glviewpos====&lt;br /&gt;
*j_Data var 33&lt;br /&gt;
====gnmagrot====&lt;br /&gt;
*b_Data var 13, g_Data var 4&lt;br /&gt;
====gnmagcar====&lt;br /&gt;
*b_Data var 14, g_Data var 3&lt;br /&gt;
====gpinup====&lt;br /&gt;
*g_Data var 11&lt;br /&gt;
====gpinpos====&lt;br /&gt;
*g_Data var 12&lt;br /&gt;
====grview====&lt;br /&gt;
*g_Data var 21&lt;br /&gt;
====grviewpos====&lt;br /&gt;
*g_Data var 22&lt;br /&gt;
====gscribe====&lt;br /&gt;
*g_Data var 18&lt;br /&gt;
====gsubelev====&lt;br /&gt;
*g_Data var 0&lt;br /&gt;
====gsubdr====&lt;br /&gt;
*g_Data var 5&lt;br /&gt;
====gwhark====&lt;br /&gt;
*g_Data var 6&lt;br /&gt;
====gwharktime====&lt;br /&gt;
*g_Data var 24&lt;br /&gt;
&lt;br /&gt;
==j_Data==&lt;br /&gt;
====jwmagcar====&lt;br /&gt;
*g_Data var 20&lt;br /&gt;
====jbeetle====&lt;br /&gt;
*j_Data var 1&lt;br /&gt;
====jbeetlepool====&lt;br /&gt;
*j_Data var 23&lt;br /&gt;
====jbook====&lt;br /&gt;
*j_Data var 31, o_Data var 11&lt;br /&gt;
====jbridge1====&lt;br /&gt;
*j_Data var 13&lt;br /&gt;
Status of the sub dock bridge beneath the village: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jbridge2====&lt;br /&gt;
*j_Data var 14&lt;br /&gt;
Status of the sub dock bridge on the path to the village: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jbridge3====&lt;br /&gt;
*j_Data var 15&lt;br /&gt;
Status of the sub dock bridge of the gallows: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jbridge4====&lt;br /&gt;
*j_Data var 17&lt;br /&gt;
Status of the sub dock bridge of the dock controls: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jbridge5====&lt;br /&gt;
*j_Data var 16&lt;br /&gt;
Status of the sub dock bridge of the schoolhouse: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jccb====&lt;br /&gt;
*j_Data var 0&lt;br /&gt;
Controls when to play some background bird animations.&lt;br /&gt;
&lt;br /&gt;
====jdome====&lt;br /&gt;
*j_Data var 3&lt;br /&gt;
====jdrain====&lt;br /&gt;
*j_Data var 27&lt;br /&gt;
====jgallows====&lt;br /&gt;
*j_Data var 9&lt;br /&gt;
State of the gallows floor: 0=closed, 1=open.&lt;br /&gt;
&lt;br /&gt;
====jgate====&lt;br /&gt;
*j_Data var 2&lt;br /&gt;
====jgirl====&lt;br /&gt;
*j_Data var 37&lt;br /&gt;
====jladder====&lt;br /&gt;
*j_Data var 30&lt;br /&gt;
====jleftpos====&lt;br /&gt;
*j_Data var 47&lt;br /&gt;
====jpeek====&lt;br /&gt;
*j_Data var 34&lt;br /&gt;
====jplaybeetle====&lt;br /&gt;
*j_Data var 4&lt;br /&gt;
Seems managed by a set of equivalent external commands to control when to play the random beetle movies in the jungle (it is set to 1 in that case).&lt;br /&gt;
&lt;br /&gt;
====jprebel====&lt;br /&gt;
*j_Data var 18&lt;br /&gt;
====jprisondr====&lt;br /&gt;
*j_Data var 11&lt;br /&gt;
====jprisonsecdr====&lt;br /&gt;
*j_Data var 19&lt;br /&gt;
====jrbook====&lt;br /&gt;
*j_Data var 22&lt;br /&gt;
====jrightpos====&lt;br /&gt;
*j_Data var 48&lt;br /&gt;
====jsouthpathdr====&lt;br /&gt;
*j_Data var 6&lt;br /&gt;
====jschooldr====&lt;br /&gt;
*j_Data var 42&lt;br /&gt;
====jsub====&lt;br /&gt;
*j_Data var 10&lt;br /&gt;
====jsubdir====&lt;br /&gt;
*j_Data var 24&lt;br /&gt;
====jsubhatch====&lt;br /&gt;
*j_Data var 25&lt;br /&gt;
====jsubsw====&lt;br /&gt;
*j_Data var 41&lt;br /&gt;
====jsunners====&lt;br /&gt;
*j_Data var 45, t_Data var 11&lt;br /&gt;
====jsunnertime====&lt;br /&gt;
*j_Data var 46&lt;br /&gt;
====jthronedr====&lt;br /&gt;
*j_Data var 7&lt;br /&gt;
====jtunneldr====&lt;br /&gt;
*j_Data var 21&lt;br /&gt;
====jtunnellamps====&lt;br /&gt;
*j_Data var 20&lt;br /&gt;
====jvillagepeople====&lt;br /&gt;
*j_Data var 40&lt;br /&gt;
====jwarning====&lt;br /&gt;
*j_Data var 8&lt;br /&gt;
====jwharkpos====&lt;br /&gt;
*j_Data var 49&lt;br /&gt;
====jwharkram====&lt;br /&gt;
*j_Data var 28&lt;br /&gt;
====jwmouth====&lt;br /&gt;
*j_Data var 36&lt;br /&gt;
State of the whark mouth in the jungle. 0=closed, 1=open.&lt;br /&gt;
&lt;br /&gt;
====jwmagcar====&lt;br /&gt;
*j_Data var 38&lt;br /&gt;
Presence (1) or absence (0) of the maglev leading to gspit.&lt;br /&gt;
&lt;br /&gt;
====jymagcar====&lt;br /&gt;
*j_Data var 50, t_Data var 10&lt;br /&gt;
&lt;br /&gt;
==o_Data==&lt;br /&gt;
====oambient====&lt;br /&gt;
*o_Data var 1, p_Data var 4&lt;br /&gt;
====obutton====&lt;br /&gt;
*o_Data var 4&lt;br /&gt;
====ocage====&lt;br /&gt;
*o_Data var 0, p_Data var 3&lt;br /&gt;
====odeskbook====&lt;br /&gt;
*o_Data var 7&lt;br /&gt;
====omusicplayer====&lt;br /&gt;
*o_Data var 8&lt;br /&gt;
====ostanddrawer====&lt;br /&gt;
*o_Data var 16&lt;br /&gt;
====ostove====&lt;br /&gt;
*o_Data var 15&lt;br /&gt;
&lt;br /&gt;
==p_Data==&lt;br /&gt;
====elevbtn1====&lt;br /&gt;
*p_Data var 19&lt;br /&gt;
====elevbtn2====&lt;br /&gt;
*p_Data var 20&lt;br /&gt;
====elevbtn3====&lt;br /&gt;
*p_Data var 21&lt;br /&gt;
====pbook====&lt;br /&gt;
*o_Data var 10, p_Data var 23&lt;br /&gt;
====pcage====&lt;br /&gt;
*o_Data var 9, p_Data var 2, t_Data var 12&lt;br /&gt;
====pcathtime====&lt;br /&gt;
*p_Data var 16&lt;br /&gt;
====pcathcheck====&lt;br /&gt;
*p_Data var 17&lt;br /&gt;
====pdome====&lt;br /&gt;
*p_Data var 1&lt;br /&gt;
====pelevcombo====&lt;br /&gt;
*p_Data var 18&lt;br /&gt;
====ptemp====&lt;br /&gt;
*g_Data var 23&lt;br /&gt;
&lt;br /&gt;
==r_Data==&lt;br /&gt;
====rrebel====&lt;br /&gt;
*r_Data var 2&lt;br /&gt;
&lt;br /&gt;
Tracks the evolution of events in the rebel age.&lt;br /&gt;
&lt;br /&gt;
====rrebelview====&lt;br /&gt;
*r_Data var 5&lt;br /&gt;
====rvillagetime====&lt;br /&gt;
*r_Data var 6&lt;br /&gt;
&lt;br /&gt;
==t_Data==&lt;br /&gt;
====tbars====&lt;br /&gt;
*t_Data var 2&lt;br /&gt;
====tbeetle====&lt;br /&gt;
*t_Data var 28&lt;br /&gt;
====tbook====&lt;br /&gt;
*o_Data var 14, t_Data var 38&lt;br /&gt;
====tbookvalve====&lt;br /&gt;
*t_Data var 33&lt;br /&gt;
====tcage====&lt;br /&gt;
*t_Data var 24&lt;br /&gt;
State of the prison at the beginning of the game. 0 = prison closed, 1 = open.&lt;br /&gt;
&lt;br /&gt;
====tcovercombo====&lt;br /&gt;
*t_Data var 23&lt;br /&gt;
====tdl====&lt;br /&gt;
*t_Data var 16&lt;br /&gt;
====tdome====&lt;br /&gt;
*t_Data var 29&lt;br /&gt;
====tdomeelev====&lt;br /&gt;
*p_Data var 8, t_Data var 34&lt;br /&gt;
====tdomeelevbtn====&lt;br /&gt;
*t_Data var 42&lt;br /&gt;
====tgatebrhandle====&lt;br /&gt;
*t_Data var 36&lt;br /&gt;
====tgatebridge====&lt;br /&gt;
*t_Data var 17&lt;br /&gt;
====tgatestate====&lt;br /&gt;
*p_Data var 5, t_Data var 15&lt;br /&gt;
====tgridoor====&lt;br /&gt;
*p_Data var 12, t_Data var 26&lt;br /&gt;
====tgrodoor====&lt;br /&gt;
*p_Data var 11, t_Data var 27&lt;br /&gt;
====tgrmdoor====&lt;br /&gt;
*p_Data var 7, t_Data var 25&lt;br /&gt;
====tguard====&lt;br /&gt;
*t_Data var 9&lt;br /&gt;
====timagedoor====&lt;br /&gt;
*t_Data var 1&lt;br /&gt;
====tmagcar====&lt;br /&gt;
*j_Data var 51, p_Data var 6, t_Data var 3&lt;br /&gt;
Presence of the maglev on temple island. 0 = absent, 1 = present.&lt;br /&gt;
&lt;br /&gt;
====tsecdoor====&lt;br /&gt;
*p_Data var 9, t_Data var 6&lt;br /&gt;
State of the door from the temple tunnel to the temple. 0 = closed, 1 = open.&lt;br /&gt;
&lt;br /&gt;
====tsubbridge====&lt;br /&gt;
*p_Data var 13, t_Data var 32&lt;br /&gt;
====ttelecover====&lt;br /&gt;
*t_Data var 19&lt;br /&gt;
State of the star fissure window cover under the telescope. 0 = closed, 1 = open.&lt;br /&gt;
&lt;br /&gt;
====ttelehandle====&lt;br /&gt;
*t_Data var 21&lt;br /&gt;
Position of the lever controlling telescope direction. 0 = up, 1 = down.&lt;br /&gt;
&lt;br /&gt;
====ttelepin====&lt;br /&gt;
*t_Data var 22&lt;br /&gt;
State of the telescope safety lever. 0 = locked, 1 = unlocked.&lt;br /&gt;
&lt;br /&gt;
====ttelescope====&lt;br /&gt;
*t_Data var 18&lt;br /&gt;
Position of the telescope. Seems to range from 1 to 5.&lt;br /&gt;
&lt;br /&gt;
====ttelevalve====&lt;br /&gt;
*t_Data var 20&lt;br /&gt;
State of the valve feeding steam to the telescope. 0 = off, 1 = on.&lt;br /&gt;
&lt;br /&gt;
====ttemple====&lt;br /&gt;
*t_Data var 8&lt;br /&gt;
====ttempledoor====&lt;br /&gt;
*p_Data var 10, t_Data var 4&lt;br /&gt;
State of the huge door from the temple to the maglev. 0 = closed, 1 = open.&lt;br /&gt;
&lt;br /&gt;
====ttunneldoor====&lt;br /&gt;
*t_Data var 39&lt;br /&gt;
====tviewer====&lt;br /&gt;
*t_Data var 5&lt;br /&gt;
====twabrvalve====&lt;br /&gt;
*t_Data var 35&lt;br /&gt;
====twaffle====&lt;br /&gt;
*t_Data var 30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Saved Game Variables==&lt;br /&gt;
====all_book====&lt;br /&gt;
====auservolume====&lt;br /&gt;
The volume set in the options.&lt;br /&gt;
====azip====&lt;br /&gt;
The state of zip mode. (0=off, 1=on)&lt;br /&gt;
====currentcardid====&lt;br /&gt;
Current card ID.&lt;br /&gt;
====currentstackid====&lt;br /&gt;
Current stack ID. See the [[Riven engine overview#Stack ID's in Saved Games|conversion table]].&lt;br /&gt;
====doingsetupscreens====&lt;br /&gt;
====newpos====&lt;br /&gt;
====playerhasbook====&lt;br /&gt;
====rivenambients====&lt;br /&gt;
====returncardid====&lt;br /&gt;
Card ID used to return to after viewing a book on aspit.&lt;br /&gt;
====returnstackid====&lt;br /&gt;
Stack ID used to return to after viewing a book on aspit. See the [[Riven engine overview#Stack ID's in Saved Games|conversion table]].&lt;br /&gt;
====stackvarsinitialized====&lt;br /&gt;
====tblue====&lt;br /&gt;
====tgreen====&lt;br /&gt;
====themarble====&lt;br /&gt;
====torange====&lt;br /&gt;
====transitionsenabled====&lt;br /&gt;
(0=transitions disabled, 1=transitions enabled)&lt;br /&gt;
====transitionmode====&lt;br /&gt;
Speed of the transitions.&lt;br /&gt;
====tred====&lt;br /&gt;
====tviolet====&lt;br /&gt;
====tyellow====&lt;br /&gt;
====waterenabled====&lt;br /&gt;
(0=water effects disabled, 1=water effects enabled)&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-08-17T20:52:29Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* tPAL */ complete the tPAL specification&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the USA is Carmen Sandiego?&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASEETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
This is a question set. This links questions together into sort of like a dialogue tree.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||count&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[count]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''count'' is the amount of values the follow.&lt;br /&gt;
* ''values'' is an array which is probably a list of QUES/ANSW (need to check).&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
This is a question. It appears to hold data for the text as well as the sound clip associated with it.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sound&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u3&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u4&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u5&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u6&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u7&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|char *||string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''u0'' appears to always be 1. Possibly question count?&lt;br /&gt;
* ''sound'' is the sound clip associated with this question.&lt;br /&gt;
* ''u1'' is unknown. Always 0?&lt;br /&gt;
* ''u2'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''u3'' is unknown. It's usually 2.&lt;br /&gt;
* ''u4'' is unknown. It's usually 100.&lt;br /&gt;
* ''u5'' is unknown. It's usually 100.&lt;br /&gt;
* ''u6'' is unknown. It's usually 100.&lt;br /&gt;
* ''u7'' is unknown. Always 0?&lt;br /&gt;
* ''u8'' is unknown. Always 0?&lt;br /&gt;
* ''u9'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''string'' is the null-terminated string representing text for this question.&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
All tBMP resources contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This is a palette. It is used outside of tBMP resources as a way to share palette information.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||color_start&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads. ''color_start'' is the index at which the RGBA quads start.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
These appear to also contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-08-17T20:50:34Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* tBMH */ Mohawk Bitmap here too :P&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the USA is Carmen Sandiego?&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASEETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
This is a question set. This links questions together into sort of like a dialogue tree.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||count&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[count]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''count'' is the amount of values the follow.&lt;br /&gt;
* ''values'' is an array which is probably a list of QUES/ANSW (need to check).&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
This is a question. It appears to hold data for the text as well as the sound clip associated with it.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sound&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u3&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u4&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u5&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u6&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u7&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|char *||string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''u0'' appears to always be 1. Possibly question count?&lt;br /&gt;
* ''sound'' is the sound clip associated with this question.&lt;br /&gt;
* ''u1'' is unknown. Always 0?&lt;br /&gt;
* ''u2'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''u3'' is unknown. It's usually 2.&lt;br /&gt;
* ''u4'' is unknown. It's usually 100.&lt;br /&gt;
* ''u5'' is unknown. It's usually 100.&lt;br /&gt;
* ''u6'' is unknown. It's usually 100.&lt;br /&gt;
* ''u7'' is unknown. Always 0?&lt;br /&gt;
* ''u8'' is unknown. Always 0?&lt;br /&gt;
* ''u9'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''string'' is the null-terminated string representing text for this question.&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
All tBMP resources contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This is a palette. Here's what I've worked out so far. It's tied together with tBMP and tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
These appear to also contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-08-17T20:49:28Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* tBMP */ tBMP's contain a Mohawk Bitmap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the USA is Carmen Sandiego?&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASEETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
This is a question set. This links questions together into sort of like a dialogue tree.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||count&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[count]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''count'' is the amount of values the follow.&lt;br /&gt;
* ''values'' is an array which is probably a list of QUES/ANSW (need to check).&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
This is a question. It appears to hold data for the text as well as the sound clip associated with it.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sound&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u3&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u4&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u5&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u6&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u7&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|char *||string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''u0'' appears to always be 1. Possibly question count?&lt;br /&gt;
* ''sound'' is the sound clip associated with this question.&lt;br /&gt;
* ''u1'' is unknown. Always 0?&lt;br /&gt;
* ''u2'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''u3'' is unknown. It's usually 2.&lt;br /&gt;
* ''u4'' is unknown. It's usually 100.&lt;br /&gt;
* ''u5'' is unknown. It's usually 100.&lt;br /&gt;
* ''u6'' is unknown. It's usually 100.&lt;br /&gt;
* ''u7'' is unknown. Always 0?&lt;br /&gt;
* ''u8'' is unknown. Always 0?&lt;br /&gt;
* ''u9'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''string'' is the null-terminated string representing text for this question.&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
All tBMP resources contain a [[Mohawk Bitmaps|Mohawk Bitmap]].&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This is a palette. Here's what I've worked out so far. It's tied together with tBMP and tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_WDIB_resources</id>
		<title>Myst WDIB resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_WDIB_resources"/>
				<updated>2009-08-17T20:48:13Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: the LZ decompression info has moved to the Mohawk Bitmaps page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
WDIB resources store compressed images in the original Windows version of Myst, some images in Myst Masterpiece Edition, and cursors.&lt;br /&gt;
&lt;br /&gt;
The data is laid out like this:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||uncompressed size&lt;br /&gt;
|-&lt;br /&gt;
|variable||compressed data&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For the compressed data, it uses the same [[Mohawk Bitmaps#LZ Compression|LZ Compression]] as some tBMP's!&lt;br /&gt;
&lt;br /&gt;
Once decoded, a plain uncompressed [http://en.wikipedia.org/wiki/BMP_file_format Windows BMP] is recovered. All in the original Myst are 8bpp. However, some in Myst ME are 24bpp (like the images in Help.dat) but the cursors are still 8bpp.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Mohawk_Bitmaps</id>
		<title>Mohawk Bitmaps</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Mohawk_Bitmaps"/>
				<updated>2009-08-17T20:45:37Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* LZ Compression */ add the &amp;quot;thanks&amp;quot; note back&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
{{Riven}}&lt;br /&gt;
All observed Mohawk games use a common bitmap format, besides Myst (which uses [[WDIB]] and [[Myst PICT resources|PICT]] images). Mohawk bitmaps are always stored with a tBMP tag. All values are in big endian order. tBMP resources are divided into three chunks: the header, the palette, and the image. Note that the palette is not always present (such as non-Riven 8bpp images and Riven 24bpp images).&lt;br /&gt;
&lt;br /&gt;
== Bitmap Header ==&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||bitmap width&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bitmap height&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bytes per row&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||compression details&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''bitmap width'' is the width of the bitmap in pixels.&lt;br /&gt;
* ''bitmap height'' is the height of the bitmap in pixels.&lt;br /&gt;
* ''bytes per row'' is the pitch of the image (bytes in a scan line).&lt;br /&gt;
* For ''compression details'', see the next section.&lt;br /&gt;
&lt;br /&gt;
'''Note''': Both ''bitmap width'' and ''bitmap height'' are only valid for the bottom 10 bits (val &amp;amp; 0x3fff, in C). ''bytes per row'' is also the same, but has to remain even (val &amp;amp; 0x3ffe, in C).&lt;br /&gt;
&lt;br /&gt;
=== Compression Details ===&lt;br /&gt;
''compression details'' is split up into different sections, depending on their purpose.&lt;br /&gt;
&lt;br /&gt;
==== Bits 0-2 (Bits Per Pixel) ====&lt;br /&gt;
The lower three bits represent the images' bit depth. It is chosen from this table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|Value||Bits Per Pixel&lt;br /&gt;
|-&lt;br /&gt;
|0||1&lt;br /&gt;
|-&lt;br /&gt;
|1||4&lt;br /&gt;
|-&lt;br /&gt;
|2||8&lt;br /&gt;
|-&lt;br /&gt;
|3||16&lt;br /&gt;
|-&lt;br /&gt;
|4||24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other values are undefined.&lt;br /&gt;
&lt;br /&gt;
==== Bit 3 (Palette) ====&lt;br /&gt;
Bit 3 represents whether or not a palette will occur. However, this is very unreliable, as Riven never has this bit set. If the game is Riven, and the bit depth is 8, you should assume there is a palette.&lt;br /&gt;
&lt;br /&gt;
==== Bits 4-7 (Secondary Compression) ====&lt;br /&gt;
Bits 4-7 represent the secondary compression on the image. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|Value||Secondary Compression&lt;br /&gt;
|-&lt;br /&gt;
|0||None&lt;br /&gt;
|-&lt;br /&gt;
|16||RLE8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For none, the image is raw pixels. However, there are ''bytes per row'' bytes per row, so you have to skip remaining bytes at the end of the row. In Riven, there is always no secondary compression. On the contrary, in almost all other games' images, the compression is RLE8.&lt;br /&gt;
&lt;br /&gt;
==== Bits 8-11 (Primary Compression) ====&lt;br /&gt;
Bits 8-11 represent the primary compression on the image.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|Value||Secondary Compression&lt;br /&gt;
|-&lt;br /&gt;
|0||None&lt;br /&gt;
|-&lt;br /&gt;
|1||LZ&lt;br /&gt;
|-&lt;br /&gt;
|4||Riven&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For none, there is nothing to do at this stage. See details later for the LZ and Riven compression schemes.&lt;br /&gt;
&lt;br /&gt;
== Palette ==&lt;br /&gt;
While bit 3 should represent whether a palette exists or not, all 8bpp Riven images have a palette regardless. The palette starts with a short header:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||table_size&lt;br /&gt;
|-&lt;br /&gt;
|byte||bits_per_color&lt;br /&gt;
|-&lt;br /&gt;
|byte||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''table_size'' is the size of the table, including the four byte header.&lt;br /&gt;
* ''bits_per_color'' is the bits that each color is (seems to be always 24)&lt;br /&gt;
* ''color_count'' is the amount of colors that the table contains (seems to be always 0xff)&lt;br /&gt;
&lt;br /&gt;
Following the header is ''color_count'' blocks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||blue_component&lt;br /&gt;
|-&lt;br /&gt;
|byte||green_component&lt;br /&gt;
|-&lt;br /&gt;
|byte||red_component&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Image ==&lt;br /&gt;
&lt;br /&gt;
The rest of the tBMP resource is made up of the image. To decode the image, you must first use the primary decompression and then the secondary decompression to have the correct output image.&lt;br /&gt;
&lt;br /&gt;
=== Primary Decompression ===&lt;br /&gt;
&lt;br /&gt;
If the image has no primary decompression you can skip this step.&lt;br /&gt;
&lt;br /&gt;
==== LZ Decompression ====&lt;br /&gt;
&lt;br /&gt;
The stream consists of two parts, the header and the compressed data.&lt;br /&gt;
&lt;br /&gt;
===== LZ Header =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||uncompressed_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||compressed_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||dictionary_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''uncompressed_size'' is the size of the data after decompressing.&lt;br /&gt;
* ''compressed_size'' is the size of the data before decompressing.&lt;br /&gt;
* ''dictionary_size'' is the size of the ring buffer to use in the decompressor. However, it is '''''always''''' 0x400, and if it's not 0x400, it should be thrown out.&lt;br /&gt;
&lt;br /&gt;
===== LZ Compression =====&lt;br /&gt;
Thanks to Petroff Heroj and Ron Hayter for working out this compression.&lt;br /&gt;
&lt;br /&gt;
Until the end of the resource, each run begins with a byte. Each bit of this byte defines what to do next, starting from the least significant one.&lt;br /&gt;
* A 1 means an absolute byte follows. Read a byte from the compressed data and store it directly into the uncompressed buffer.&lt;br /&gt;
* A 0 means a length/offset pair follows. Read two bytes ''b1'' and ''b2'' from the compressed data. The most significant 6 bits of ''b1'' represent the length of the run minus 3. The 2 least significant bits of ''b1'' and the whole ''b2'' form together a 10-bit offset into the ring buffer, minus 0x42. At this point copy ''length'' bytes from the ring buffer, starting at ''offset'', to the uncompressed buffer. If ''offset'' is over 0x400 make sure to subtract 0x400 after adding the 0x42, i.e. loop around to the beginning of the ring buffer.&lt;br /&gt;
The ring-buffer should be initialized to all zeroes. Remember to store the uncompressed bytes in the ring buffer as well, looping to the beginning after 0x400 bytes.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0xf7                     // decoder byte (11110111b)&lt;br /&gt;
0x87                     // absolute byte&lt;br /&gt;
0x73                     // absolute byte&lt;br /&gt;
0x27                     // absolute byte&lt;br /&gt;
0x0b                     // byte 1 of the run data: length = 2 + 3 = 5 (first 6 bits + 3)&lt;br /&gt;
0xa9                     // byte 2 of the run data: offset = 0x3a9 + 0x42 = 0x3eb&lt;br /&gt;
0x27                     // absolute byte&lt;br /&gt;
0x32                     // absolute byte&lt;br /&gt;
0x00                     // absolute byte&lt;br /&gt;
0x4e                     // absolute byte&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Riven Decompression ====&lt;br /&gt;
In compressed tBMP bitmaps, pixels are encoded as a data stream made of variable length commands. Pixels are always decoded in duplets: each command generates at least 2 pixels. The encoding is heavily based on what comes before each command, so even a little decoding bug can cripple the whole image. The commands can appear in any order inside the data stream. The first 4 bytes of the data stream are unknown and can be ignored. Many thanks to Arthur Muller for his precious help in decoding this format.&lt;br /&gt;
&lt;br /&gt;
Like the uncompressed format, sometimes duplets are generated beyond the edge of the image. Use the ''bytes per row'' value to see how many duplets are in each row.&lt;br /&gt;
&lt;br /&gt;
===== Main Commands =====&lt;br /&gt;
&lt;br /&gt;
They are all 1-byte commands, followed by a variable number of arguments.&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=4 cellspacing=0 style=&amp;quot;border:1px #000 solid;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! Action&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x00||End of stream: when reaching it, the decoding is complete. No additional bytes follow. I think some bitmaps don't have this, so just stop when you have decoded enough pixels to fill the image.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x01&amp;amp;nbsp;-0x3f||Output ''n'' pixel duplets, where ''n'' is the command value itself. Pixel data comes immediately after the command as 2*''n'' bytes representing direct indices in the 8-bit color table.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x40-0x7f||Repeat last 2 pixels ''n'' times, where ''n'' = ''command_value'' &amp;amp; 0x3F. No additional bytes follow.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x80-0xbf||Repeat last 4 pixels ''n'' times, where ''n'' = ''command_value'' &amp;amp; 0x3F. No additional bytes follow.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xc0-0xff||Begin of a subcommand stream. This is like the main command stream, but contains another set of commands which are somewhat more specific and a bit more complex. This command says that ''command_value'' &amp;amp; 0x3F subcommands will follow. It doesn't generate pixels itself.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Subcommands, part 1: arithmetic operations =====&lt;br /&gt;
Subcommands are not simply 1-byte values, but are somewhat mixed with their arguments, so the full byte pattern is reported.&lt;br /&gt;
{| border=1 cellpadding=4 cellspacing=0 style=&amp;quot;border:1px #000 solid;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! Byte pattern !! Action&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x01-0x0f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0000mmmm&lt;br /&gt;
|Repeat duplet at relative position -''m'', where ''m'' is given in duplets. So if ''m''=1, repeat the last duplet.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x10&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x10 p&lt;br /&gt;
|Repeat last duplet, but change second pixel to ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x11-0x1f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0001mmmm&lt;br /&gt;
|Output the first pixel of last duplet, then pixel at relative position -''m''. ''m'' is given in pixels.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x20-0x2f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0010xxxx&lt;br /&gt;
|Repeat last duplet, but add ''x'' to second pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x30-0x3f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0011xxxx&lt;br /&gt;
|Repeat last duplet, but subtract ''x'' to second pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x40&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x40 p&lt;br /&gt;
|Repeat last duplet, but change first pixel to ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x41-0x4f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0100mmmm&lt;br /&gt;
|Output pixel at relative position -''m'', then second pixel of last duplet.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x50&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x50 p1 p2&lt;br /&gt;
|Output two absolute pixel values, ''p1'' and ''p2''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x51-0x57&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|01010mmm p&lt;br /&gt;
|Output pixel at relative position -''m'', then absolute pixel value ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x59-0x5f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|01011mmm p&lt;br /&gt;
|Output absolute pixel value ''p'', then pixel at relative position -''m''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x60-0x6f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0110xxxx p&lt;br /&gt;
|Output absolute pixel value ''p'', then (second pixel of last duplet) + ''x''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x70-0x7f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0111xxxx p&lt;br /&gt;
|Output absolute pixel value ''p'', then (second pixel of last duplet) - ''x''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x80-0x8f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1000xxxx&lt;br /&gt;
|Repeat last duplet adding ''x'' to the first pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x90-0x9f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1001xxxx p&lt;br /&gt;
|Output (first pixel of last duplet) + ''x'', then absolute pixel value ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa0&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa0 xxxxyyyy&lt;br /&gt;
|Repeat last duplet, adding ''x'' to the first pixel and ''y'' to the second.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb0&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb0 xxxxyyyy&lt;br /&gt;
|Repeat last duplet, adding ''x'' to the first pixel and subtracting ''y'' from the second.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xc0-0xcf&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1100xxxx&lt;br /&gt;
|Repeat last duplet subtracting ''x'' from first pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xd0-0xdf&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1101xxxx p&lt;br /&gt;
|Output (first pixel of last duplet) - ''x'', then absolute pixel value ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe0&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe0 xxxxyyyy&lt;br /&gt;
|Repeat last duplet, subtracting ''x'' from first pixel and adding ''y'' to second.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xf0 and 0xff&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xfx xxxxyyyy&lt;br /&gt;
|Repeat last duplet, subtracting ''x'' from first pixel and ''y'' from second.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Subcommands, part 2: repeat operations =====&lt;br /&gt;
&lt;br /&gt;
Sometimes these repeat commands will try to copy more than what is available when the command is read. In those cases, the command repeats the available segment of data until the number of duplets needed is copied. Or, equivalently, the command starts copying data that it wrote earlier.&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=4 cellspacing=0 style=&amp;quot;border:1px #000 solid;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! Byte pattern !! Action&lt;br /&gt;
|-&lt;br /&gt;
|various&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1x1xxxmm mmmmmmmm&lt;br /&gt;
|&lt;br /&gt;
{| border=1 cellspacing=0 style=&amp;quot;float:right;border:none;border-collapse:collapse;padding:0px 3px;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! n !! r&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa4&amp;amp;nbsp;-&amp;amp;nbsp;0xa7||2||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa8 - 0xab||2||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xac - 0xaf||3||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb4 - 0xb7||3||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb8 - 0xbb||4||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xbc - 0xbf||4||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe4 - 0xe7||5||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe8 - 0xeb||5||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xec - 0xef||6||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xf4 - 0xf7||6||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xf8 - 0xfb||7||0&lt;br /&gt;
|}&lt;br /&gt;
Repeat n duplets from relative position -''m'' (given in pixels, not duplets). If ''r'' is 0, another byte follows and the last pixel is set to that value. ''n'' and ''r'' come from the table on the right.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xfc&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xfc nnnnnrmm mmmmmmmm (p)&lt;br /&gt;
|Repeat n+2 duplets from relative position -''m'' (given in pixels, not duplets). If ''r'' is 0, another byte ''p'' follows and the last pixel is set to absolute value ''p''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secondary Decompression ===&lt;br /&gt;
In all Riven images, and some other images, there is no secondary decompression. Instead, the remaining data is just the pixels. For 24bpp images, the pixels are in BGR order. For 8bpp images, there are ''bytes per row'' pixels, so you will have to cut off the remaining bytes at the end of the data (''bytes per row'' - ''bitmap width'').&lt;br /&gt;
&lt;br /&gt;
However, many non-Riven images use the RLE8 compression.&lt;br /&gt;
&lt;br /&gt;
==== RLE8 Compression ====&lt;br /&gt;
The RLE8 compression is a rather simple form of RLE. The decoder works by decoding one row at a time, so there will be ''bitmap height'' chunks of data. Each chunk '''''always''''' decodes one row of data. &lt;br /&gt;
&lt;br /&gt;
Per Row:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||byte_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''byte_count'' is the amount of bytes that will be used to decode the current row.&lt;br /&gt;
&lt;br /&gt;
The ''byte_count'' should be ignored until later. Until you have completed a row's length of pixels, you must continue decompressing the RLE data.&lt;br /&gt;
&lt;br /&gt;
Each RLE command starts with a byte. The high bit of the data represents whether or not to repeat a pixel or output direct pixels. The bottom 7 bits are the ''run_length'' minus one.&lt;br /&gt;
&lt;br /&gt;
If the high bit is set, read in another byte which represents the pixel to repeat and then output the pixel for the rest of the run. If the high bit is not set, output ''run_length'' absolute pixels from the input stream.&lt;br /&gt;
&lt;br /&gt;
Once you have outputted the correct amount of pixels, you should move ''byte_count'' bytes from the start of the row in the compressed stream.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Riven_tBMP_resources</id>
		<title>Riven tBMP resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Riven_tBMP_resources"/>
				<updated>2009-08-17T20:44:22Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: Most of the Riven tBMP info has been moved to the Mohawk Bitmaps page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Riven}}&lt;br /&gt;
Riven tBMP resources contain a [[Mohawk Bitmaps|Mohawk Bitmap]]. All images in Riven are 8bpp, except for tBMP 24 in b2_Data.mhk (which is used in the developer's slideshow, accessible from the [[Riven debug shell]]).&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Mohawk_Bitmaps</id>
		<title>Mohawk Bitmaps</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Mohawk_Bitmaps"/>
				<updated>2009-08-17T20:41:38Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: It's been a while... but here's the (mostly) complete Mohawk bitmap documentation! All tBMP's should be able to be correctly decoded using this information.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
{{Riven}}&lt;br /&gt;
All observed Mohawk games use a common bitmap format, besides Myst (which uses [[WDIB]] and [[Myst PICT resources|PICT]] images). Mohawk bitmaps are always stored with a tBMP tag. All values are in big endian order. tBMP resources are divided into three chunks: the header, the palette, and the image. Note that the palette is not always present (such as non-Riven 8bpp images and Riven 24bpp images).&lt;br /&gt;
&lt;br /&gt;
== Bitmap Header ==&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||bitmap width&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bitmap height&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bytes per row&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||compression details&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''bitmap width'' is the width of the bitmap in pixels.&lt;br /&gt;
* ''bitmap height'' is the height of the bitmap in pixels.&lt;br /&gt;
* ''bytes per row'' is the pitch of the image (bytes in a scan line).&lt;br /&gt;
* For ''compression details'', see the next section.&lt;br /&gt;
&lt;br /&gt;
'''Note''': Both ''bitmap width'' and ''bitmap height'' are only valid for the bottom 10 bits (val &amp;amp; 0x3fff, in C). ''bytes per row'' is also the same, but has to remain even (val &amp;amp; 0x3ffe, in C).&lt;br /&gt;
&lt;br /&gt;
=== Compression Details ===&lt;br /&gt;
''compression details'' is split up into different sections, depending on their purpose.&lt;br /&gt;
&lt;br /&gt;
==== Bits 0-2 (Bits Per Pixel) ====&lt;br /&gt;
The lower three bits represent the images' bit depth. It is chosen from this table.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|Value||Bits Per Pixel&lt;br /&gt;
|-&lt;br /&gt;
|0||1&lt;br /&gt;
|-&lt;br /&gt;
|1||4&lt;br /&gt;
|-&lt;br /&gt;
|2||8&lt;br /&gt;
|-&lt;br /&gt;
|3||16&lt;br /&gt;
|-&lt;br /&gt;
|4||24&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other values are undefined.&lt;br /&gt;
&lt;br /&gt;
==== Bit 3 (Palette) ====&lt;br /&gt;
Bit 3 represents whether or not a palette will occur. However, this is very unreliable, as Riven never has this bit set. If the game is Riven, and the bit depth is 8, you should assume there is a palette.&lt;br /&gt;
&lt;br /&gt;
==== Bits 4-7 (Secondary Compression) ====&lt;br /&gt;
Bits 4-7 represent the secondary compression on the image. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|Value||Secondary Compression&lt;br /&gt;
|-&lt;br /&gt;
|0||None&lt;br /&gt;
|-&lt;br /&gt;
|16||RLE8&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For none, the image is raw pixels. However, there are ''bytes per row'' bytes per row, so you have to skip remaining bytes at the end of the row. In Riven, there is always no secondary compression. On the contrary, in almost all other games' images, the compression is RLE8.&lt;br /&gt;
&lt;br /&gt;
==== Bits 8-11 (Primary Compression) ====&lt;br /&gt;
Bits 8-11 represent the primary compression on the image.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:silver&amp;quot;&lt;br /&gt;
|Value||Secondary Compression&lt;br /&gt;
|-&lt;br /&gt;
|0||None&lt;br /&gt;
|-&lt;br /&gt;
|1||LZ&lt;br /&gt;
|-&lt;br /&gt;
|4||Riven&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For none, there is nothing to do at this stage. See details later for the LZ and Riven compression schemes.&lt;br /&gt;
&lt;br /&gt;
== Palette ==&lt;br /&gt;
While bit 3 should represent whether a palette exists or not, all 8bpp Riven images have a palette regardless. The palette starts with a short header:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||table_size&lt;br /&gt;
|-&lt;br /&gt;
|byte||bits_per_color&lt;br /&gt;
|-&lt;br /&gt;
|byte||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''table_size'' is the size of the table, including the four byte header.&lt;br /&gt;
* ''bits_per_color'' is the bits that each color is (seems to be always 24)&lt;br /&gt;
* ''color_count'' is the amount of colors that the table contains (seems to be always 0xff)&lt;br /&gt;
&lt;br /&gt;
Following the header is ''color_count'' blocks:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||blue_component&lt;br /&gt;
|-&lt;br /&gt;
|byte||green_component&lt;br /&gt;
|-&lt;br /&gt;
|byte||red_component&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Image ==&lt;br /&gt;
&lt;br /&gt;
The rest of the tBMP resource is made up of the image. To decode the image, you must first use the primary decompression and then the secondary decompression to have the correct output image.&lt;br /&gt;
&lt;br /&gt;
=== Primary Decompression ===&lt;br /&gt;
&lt;br /&gt;
If the image has no primary decompression you can skip this step.&lt;br /&gt;
&lt;br /&gt;
==== LZ Decompression ====&lt;br /&gt;
&lt;br /&gt;
The stream consists of two parts, the header and the compressed data.&lt;br /&gt;
&lt;br /&gt;
===== LZ Header =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||uncompressed_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||compressed_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||dictionary_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''uncompressed_size'' is the size of the data after decompressing.&lt;br /&gt;
* ''compressed_size'' is the size of the data before decompressing.&lt;br /&gt;
* ''dictionary_size'' is the size of the ring buffer to use in the decompressor. However, it is '''''always''''' 0x400, and if it's not 0x400, it should be thrown out.&lt;br /&gt;
&lt;br /&gt;
===== LZ Compression =====&lt;br /&gt;
Until the end of the resource, each run begins with a byte. Each bit of this byte defines what to do next, starting from the least significant one.&lt;br /&gt;
* A 1 means an absolute byte follows. Read a byte from the compressed data and store it directly into the uncompressed buffer.&lt;br /&gt;
* A 0 means a length/offset pair follows. Read two bytes ''b1'' and ''b2'' from the compressed data. The most significant 6 bits of ''b1'' represent the length of the run minus 3. The 2 least significant bits of ''b1'' and the whole ''b2'' form together a 10-bit offset into the ring buffer, minus 0x42. At this point copy ''length'' bytes from the ring buffer, starting at ''offset'', to the uncompressed buffer. If ''offset'' is over 0x400 make sure to subtract 0x400 after adding the 0x42, i.e. loop around to the beginning of the ring buffer.&lt;br /&gt;
The ring-buffer should be initialized to all zeroes. Remember to store the uncompressed bytes in the ring buffer as well, looping to the beginning after 0x400 bytes.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0xf7                     // decoder byte (11110111b)&lt;br /&gt;
0x87                     // absolute byte&lt;br /&gt;
0x73                     // absolute byte&lt;br /&gt;
0x27                     // absolute byte&lt;br /&gt;
0x0b                     // byte 1 of the run data: length = 2 + 3 = 5 (first 6 bits + 3)&lt;br /&gt;
0xa9                     // byte 2 of the run data: offset = 0x3a9 + 0x42 = 0x3eb&lt;br /&gt;
0x27                     // absolute byte&lt;br /&gt;
0x32                     // absolute byte&lt;br /&gt;
0x00                     // absolute byte&lt;br /&gt;
0x4e                     // absolute byte&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Riven Decompression ====&lt;br /&gt;
In compressed tBMP bitmaps, pixels are encoded as a data stream made of variable length commands. Pixels are always decoded in duplets: each command generates at least 2 pixels. The encoding is heavily based on what comes before each command, so even a little decoding bug can cripple the whole image. The commands can appear in any order inside the data stream. The first 4 bytes of the data stream are unknown and can be ignored. Many thanks to Arthur Muller for his precious help in decoding this format.&lt;br /&gt;
&lt;br /&gt;
Like the uncompressed format, sometimes duplets are generated beyond the edge of the image. Use the ''bytes per row'' value to see how many duplets are in each row.&lt;br /&gt;
&lt;br /&gt;
===== Main Commands =====&lt;br /&gt;
&lt;br /&gt;
They are all 1-byte commands, followed by a variable number of arguments.&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=4 cellspacing=0 style=&amp;quot;border:1px #000 solid;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! Action&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x00||End of stream: when reaching it, the decoding is complete. No additional bytes follow. I think some bitmaps don't have this, so just stop when you have decoded enough pixels to fill the image.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x01&amp;amp;nbsp;-0x3f||Output ''n'' pixel duplets, where ''n'' is the command value itself. Pixel data comes immediately after the command as 2*''n'' bytes representing direct indices in the 8-bit color table.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x40-0x7f||Repeat last 2 pixels ''n'' times, where ''n'' = ''command_value'' &amp;amp; 0x3F. No additional bytes follow.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x80-0xbf||Repeat last 4 pixels ''n'' times, where ''n'' = ''command_value'' &amp;amp; 0x3F. No additional bytes follow.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xc0-0xff||Begin of a subcommand stream. This is like the main command stream, but contains another set of commands which are somewhat more specific and a bit more complex. This command says that ''command_value'' &amp;amp; 0x3F subcommands will follow. It doesn't generate pixels itself.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Subcommands, part 1: arithmetic operations =====&lt;br /&gt;
Subcommands are not simply 1-byte values, but are somewhat mixed with their arguments, so the full byte pattern is reported.&lt;br /&gt;
{| border=1 cellpadding=4 cellspacing=0 style=&amp;quot;border:1px #000 solid;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! Byte pattern !! Action&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x01-0x0f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0000mmmm&lt;br /&gt;
|Repeat duplet at relative position -''m'', where ''m'' is given in duplets. So if ''m''=1, repeat the last duplet.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x10&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x10 p&lt;br /&gt;
|Repeat last duplet, but change second pixel to ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x11-0x1f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0001mmmm&lt;br /&gt;
|Output the first pixel of last duplet, then pixel at relative position -''m''. ''m'' is given in pixels.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x20-0x2f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0010xxxx&lt;br /&gt;
|Repeat last duplet, but add ''x'' to second pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x30-0x3f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0011xxxx&lt;br /&gt;
|Repeat last duplet, but subtract ''x'' to second pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x40&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x40 p&lt;br /&gt;
|Repeat last duplet, but change first pixel to ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x41-0x4f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0100mmmm&lt;br /&gt;
|Output pixel at relative position -''m'', then second pixel of last duplet.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x50&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x50 p1 p2&lt;br /&gt;
|Output two absolute pixel values, ''p1'' and ''p2''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x51-0x57&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|01010mmm p&lt;br /&gt;
|Output pixel at relative position -''m'', then absolute pixel value ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x59-0x5f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|01011mmm p&lt;br /&gt;
|Output absolute pixel value ''p'', then pixel at relative position -''m''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x60-0x6f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0110xxxx p&lt;br /&gt;
|Output absolute pixel value ''p'', then (second pixel of last duplet) + ''x''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x70-0x7f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0111xxxx p&lt;br /&gt;
|Output absolute pixel value ''p'', then (second pixel of last duplet) - ''x''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x80-0x8f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1000xxxx&lt;br /&gt;
|Repeat last duplet adding ''x'' to the first pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0x90-0x9f&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1001xxxx p&lt;br /&gt;
|Output (first pixel of last duplet) + ''x'', then absolute pixel value ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa0&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa0 xxxxyyyy&lt;br /&gt;
|Repeat last duplet, adding ''x'' to the first pixel and ''y'' to the second.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb0&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb0 xxxxyyyy&lt;br /&gt;
|Repeat last duplet, adding ''x'' to the first pixel and subtracting ''y'' from the second.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xc0-0xcf&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1100xxxx&lt;br /&gt;
|Repeat last duplet subtracting ''x'' from first pixel.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xd0-0xdf&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1101xxxx p&lt;br /&gt;
|Output (first pixel of last duplet) - ''x'', then absolute pixel value ''p''.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe0&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe0 xxxxyyyy&lt;br /&gt;
|Repeat last duplet, subtracting ''x'' from first pixel and adding ''y'' to second.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xf0 and 0xff&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xfx xxxxyyyy&lt;br /&gt;
|Repeat last duplet, subtracting ''x'' from first pixel and ''y'' from second.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Subcommands, part 2: repeat operations =====&lt;br /&gt;
&lt;br /&gt;
Sometimes these repeat commands will try to copy more than what is available when the command is read. In those cases, the command repeats the available segment of data until the number of duplets needed is copied. Or, equivalently, the command starts copying data that it wrote earlier.&lt;br /&gt;
&lt;br /&gt;
{| border=1 cellpadding=4 cellspacing=0 style=&amp;quot;border:1px #000 solid;border-collapse:collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! Byte pattern !! Action&lt;br /&gt;
|-&lt;br /&gt;
|various&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|1x1xxxmm mmmmmmmm&lt;br /&gt;
|&lt;br /&gt;
{| border=1 cellspacing=0 style=&amp;quot;float:right;border:none;border-collapse:collapse;padding:0px 3px;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#CCC&amp;quot;&lt;br /&gt;
! Command !! n !! r&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa4&amp;amp;nbsp;-&amp;amp;nbsp;0xa7||2||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xa8 - 0xab||2||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xac - 0xaf||3||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb4 - 0xb7||3||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xb8 - 0xbb||4||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xbc - 0xbf||4||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe4 - 0xe7||5||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xe8 - 0xeb||5||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xec - 0xef||6||0&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xf4 - 0xf7||6||1&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xf8 - 0xfb||7||0&lt;br /&gt;
|}&lt;br /&gt;
Repeat n duplets from relative position -''m'' (given in pixels, not duplets). If ''r'' is 0, another byte follows and the last pixel is set to that value. ''n'' and ''r'' come from the table on the right.&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xfc&lt;br /&gt;
|style=&amp;quot;font-family:monospace&amp;quot;|0xfc nnnnnrmm mmmmmmmm (p)&lt;br /&gt;
|Repeat n+2 duplets from relative position -''m'' (given in pixels, not duplets). If ''r'' is 0, another byte ''p'' follows and the last pixel is set to absolute value ''p''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Secondary Decompression ===&lt;br /&gt;
In all Riven images, and some other images, there is no secondary decompression. Instead, the remaining data is just the pixels. For 24bpp images, the pixels are in BGR order. For 8bpp images, there are ''bytes per row'' pixels, so you will have to cut off the remaining bytes at the end of the data (''bytes per row'' - ''bitmap width'').&lt;br /&gt;
&lt;br /&gt;
However, many non-Riven images use the RLE8 compression.&lt;br /&gt;
&lt;br /&gt;
==== RLE8 Compression ====&lt;br /&gt;
The RLE8 compression is a rather simple form of RLE. The decoder works by decoding one row at a time, so there will be ''bitmap height'' chunks of data. Each chunk '''''always''''' decodes one row of data. &lt;br /&gt;
&lt;br /&gt;
Per Row:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||byte_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''byte_count'' is the amount of bytes that will be used to decode the current row.&lt;br /&gt;
&lt;br /&gt;
The ''byte_count'' should be ignored until later. Until you have completed a row's length of pixels, you must continue decompressing the RLE data.&lt;br /&gt;
&lt;br /&gt;
Each RLE command starts with a byte. The high bit of the data represents whether or not to repeat a pixel or output direct pixels. The bottom 7 bits are the ''run_length'' minus one.&lt;br /&gt;
&lt;br /&gt;
If the high bit is set, read in another byte which represents the pixel to repeat and then output the pixel for the rest of the run. If the high bit is not set, output ''run_length'' absolute pixels from the input stream.&lt;br /&gt;
&lt;br /&gt;
Once you have outputted the correct amount of pixels, you should move ''byte_count'' bytes from the start of the row in the compressed stream.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Riven_debug_shell</id>
		<title>Riven debug shell</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Riven_debug_shell"/>
				<updated>2009-06-07T21:08:04Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: some updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The original Riven engine features a built-in debug shell with useful capabilities.&lt;br /&gt;
&lt;br /&gt;
It can be activated by typing the string b3hn in the game and then pressing ctrl+tab. A green prompt should appear in the bottom left corner of the game window. This prompt accepts several commands, listed below. After each command the prompt disappears, but it comes out again by just pressing ctrl+tab.&lt;br /&gt;
&lt;br /&gt;
* g &amp;lt;id&amp;gt;: go to card &amp;lt;id&amp;gt;&lt;br /&gt;
* gc &amp;lt;id&amp;gt;: go to card, using its RMAP identifier&lt;br /&gt;
* gs &amp;lt;stack&amp;gt; [&amp;lt;id&amp;gt;]: go to stack &amp;lt;stack&amp;gt; (e.g. tspit) and to card &amp;lt;id&amp;gt;, if specified&lt;br /&gt;
* get &amp;lt;variable&amp;gt;: get the value of a variable&lt;br /&gt;
* set &amp;lt;variable&amp;gt; &amp;lt;value&amp;gt;: set the value of a variable&lt;br /&gt;
* undo: undoes actions on cur card (autosave must be enabled)&lt;br /&gt;
* enable &amp;lt;id&amp;gt;: enable an hotspot&lt;br /&gt;
* disable &amp;lt;id&amp;gt;: disable an hotspot&lt;br /&gt;
* p: purges all purgeable blocks&lt;br /&gt;
* c: compacts entire heap&lt;br /&gt;
* pc: purges, then compacts&lt;br /&gt;
* mem: returns total free memory&lt;br /&gt;
* free: returns physical free memory (excludes virtual)&lt;br /&gt;
* debug: toggles a line with useful debug info&lt;br /&gt;
* hs: toggle hotspot display&lt;br /&gt;
* autosave: toggles autosave-every-card feature&lt;br /&gt;
* dump: saves the current card picture to a bmp file&lt;br /&gt;
* ipmm: toggles impatient PM mode&lt;br /&gt;
* slideshow: show the images from b2_data.mhk with captions&lt;br /&gt;
* help: shows the list of commands available&lt;br /&gt;
&lt;br /&gt;
See also the [http://www.mystcommunity.com/board/lofiversion/index.php/t19142.html original source].&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Riven_VARS_resources</id>
		<title>Riven VARS resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Riven_VARS_resources"/>
				<updated>2009-06-04T21:03:05Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: fix size of value field&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Riven}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
The VARS resource is found in Riven saved game files (there is just one). It stores the state of every game variable. The data is just an array of 12-byte records, each representing a variable, with this structure:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0||&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1||&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||value||class=&amp;quot;comment&amp;quot;|Saved variable value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''u0'' starts from 2, and seems to grow when going on with the game; ''u1'' seems to be always 1 or 0. I don't know what these fields mean, they don't seem to be changed by scripts (i.e. they don't tell how many times the variable was written etc).&lt;br /&gt;
&lt;br /&gt;
Fortunately, saved games contain a [[Riven NAME resources|NAME]] resource that labels most variables in the VARS resource. The VARS record index simply matches the NAME one.&lt;br /&gt;
&lt;br /&gt;
The number of records is not constant. If you save different games in different places then new records will appear, usually with ''u1'' = 0 and strange values. However, &amp;quot;known&amp;quot; variables (dome combination, telescope levers state etc) are always at the same record.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-05-30T18:19:43Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: Where in the USA is Carmen Sandiego also uses Mohawk&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the USA is Carmen Sandiego?&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASEETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
This is a question set. This links questions together into sort of like a dialogue tree.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||count&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[count]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''count'' is the amount of values the follow.&lt;br /&gt;
* ''values'' is an array which is probably a list of QUES/ANSW (need to check).&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
This is a question. It appears to hold data for the text as well as the sound clip associated with it.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sound&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u3&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u4&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u5&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u6&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u7&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|char *||string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''u0'' appears to always be 1. Possibly question count?&lt;br /&gt;
* ''sound'' is the sound clip associated with this question.&lt;br /&gt;
* ''u1'' is unknown. Always 0?&lt;br /&gt;
* ''u2'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''u3'' is unknown. It's usually 2.&lt;br /&gt;
* ''u4'' is unknown. It's usually 100.&lt;br /&gt;
* ''u5'' is unknown. It's usually 100.&lt;br /&gt;
* ''u6'' is unknown. It's usually 100.&lt;br /&gt;
* ''u7'' is unknown. Always 0?&lt;br /&gt;
* ''u8'' is unknown. Always 0?&lt;br /&gt;
* ''u9'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''string'' is the null-terminated string representing text for this question.&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||uncompressed_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||compressed_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''compressed_size'' bytes. These bytes are LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]]. ''uncompressed_size'' seems to chop off extra bytes left over from decoding. ''u0'' and ''u1'' must have something to do with width/height, though I've not figured it out yet. Perhaps an xor encryption to mask its true purpose. ''buffer_size'' also seems to always be 0x400.&lt;br /&gt;
&lt;br /&gt;
The one thing still unknown is the &amp;quot;key&amp;quot; used for decoding. Myst uses the 0x42 key to add to its offsets. I think each game may use a different key. I am still looking into this.&lt;br /&gt;
&lt;br /&gt;
The palette for the image is stored in a tPAL resource.&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This is a palette. Here's what I've worked out so far. It's tied together with tBMP and tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/User:Clone2727</id>
		<title>User:Clone2727</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/User:Clone2727"/>
				<updated>2009-04-26T17:38:18Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi!&lt;br /&gt;
&lt;br /&gt;
== About Me ==&lt;br /&gt;
I'm currently working on an engine for [http://www.scummvm.org/ ScummVM] that will run [[Myst engine overview|Myst]], [[Riven engine overview|Riven]], and [[Other Games|other games]] that use the [[Mohawk archive format|Mohawk archives]]. My blog on my progress can be found [http://clone2727.blogspot.com/ here].&lt;br /&gt;
&lt;br /&gt;
While most of [[Riven resources|Riven's resources]] are known, I occasionally add information on them. My main work on the wiki is adding to the non-Riven games. I'll add information mostly as I find out about it.&lt;br /&gt;
&lt;br /&gt;
== Engine Progress ==&lt;br /&gt;
=== Myst ===&lt;br /&gt;
Can load images, play sounds, and use cursors. Not much else is usable. Myst ME's images are not yet supported (ScummVM can't handle more than 16bpp images anyway).&lt;br /&gt;
&lt;br /&gt;
=== Riven ===&lt;br /&gt;
It is highly playable right now. I have a few bugs (most of which I know the problem, I just need to code a solution). Transitions and zip mode have not been implemented. Video is not completely implemented yet (only the parser and decoders are). Some playback is supported. Most external commands are also not implemented yet.&lt;br /&gt;
&lt;br /&gt;
The game is currently playable up until the &amp;quot;Boiler Puzzle.&amp;quot; This includes completing Tay.&lt;br /&gt;
&lt;br /&gt;
=== Other Games ===&lt;br /&gt;
Only the ability to play their wave sounds are supported.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-04-25T13:08:45Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* Common Resources */ updates on tBMP/tBMH/tPAL in other games&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASEETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
This is a question set. This links questions together into sort of like a dialogue tree.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||count&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[count]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''count'' is the amount of values the follow.&lt;br /&gt;
* ''values'' is an array which is probably a list of QUES/ANSW (need to check).&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
This is a question. It appears to hold data for the text as well as the sound clip associated with it.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sound&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u3&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u4&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u5&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u6&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u7&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|char *||string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''u0'' appears to always be 1. Possibly question count?&lt;br /&gt;
* ''sound'' is the sound clip associated with this question.&lt;br /&gt;
* ''u1'' is unknown. Always 0?&lt;br /&gt;
* ''u2'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''u3'' is unknown. It's usually 2.&lt;br /&gt;
* ''u4'' is unknown. It's usually 100.&lt;br /&gt;
* ''u5'' is unknown. It's usually 100.&lt;br /&gt;
* ''u6'' is unknown. It's usually 100.&lt;br /&gt;
* ''u7'' is unknown. Always 0?&lt;br /&gt;
* ''u8'' is unknown. Always 0?&lt;br /&gt;
* ''u9'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''string'' is the null-terminated string representing text for this question.&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||uncompressed_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||compressed_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''compressed_size'' bytes. These bytes are LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]]. ''uncompressed_size'' seems to chop off extra bytes left over from decoding. ''u0'' and ''u1'' must have something to do with width/height, though I've not figured it out yet. Perhaps an xor encryption to mask its true purpose. ''buffer_size'' also seems to always be 0x400.&lt;br /&gt;
&lt;br /&gt;
The one thing still unknown is the &amp;quot;key&amp;quot; used for decoding. Myst uses the 0x42 key to add to its offsets. I think each game may use a different key. I am still looking into this.&lt;br /&gt;
&lt;br /&gt;
The palette for the image is stored in a tPAL resource.&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This is a palette. Here's what I've worked out so far. It's tied together with tBMP and tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Riven_tMOV_resources</id>
		<title>Riven tMOV resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Riven_tMOV_resources"/>
				<updated>2009-04-23T02:14:48Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: update link/cleanup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Riven}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
tMOV resources are QuickTime movies. For a complete reference of the format, please see [http://developer.apple.com/documentation/QuickTime/QTFF/index.html here].&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
All Riven movies use the Cinepak video codec and the Apple IMA 4:1 audio codec.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Note that all offsets in the stco chunk are absolute offsets in the Mohawk archive, not offsets within the video as the format specifies.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Riven_tMOV_resources</id>
		<title>Riven tMOV resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Riven_tMOV_resources"/>
				<updated>2009-04-22T22:46:27Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: Note about offsets. That just killed about 2 hours of my time figuring out...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Riven}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
tMOV resources are QuickTime movies. For a complete reference of the format, please see http://developer.apple.com/documentation/QuickTime/QTFF/QTFFPreface/chapter_1_section_1.html.&lt;br /&gt;
&lt;br /&gt;
== Codecs ==&lt;br /&gt;
&lt;br /&gt;
All Riven movies use the Cinepak video codec and the Apple IMA 4:1 audio codec.&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
&lt;br /&gt;
Note that all offsets in the stco chunk are absolute offsets in the Mohawk archive, not offsets within the video as the format specifies.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Talk:Riven_tBMP_resources</id>
		<title>Talk:Riven tBMP resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Talk:Riven_tBMP_resources"/>
				<updated>2009-02-26T11:42:00Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: A concurrence. And cleanup.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Aaron, I'm not entirely clear on your recent additions to the tBMP decode algorithms. Are you aware of specific images that exhibit the behaviors you describe to use a test cases, or a decoder implementation which respects those details?&lt;br /&gt;
&lt;br /&gt;
'''[ [[User:TitoDalCanton|TitoDalCanton]] 21:18, 24 February 2009 (CET) ]''' I think I've seen Aaron's effects in some compressed tBMPs. In particular, I recall being surprised by observing duplets repeating themselves, though I don't remember which tBMPs I was inspecting at the time.&lt;br /&gt;
&lt;br /&gt;
'''[ [[User:Aaron|Aaron]] 06:55, 23 February 2009 (CET) ]''' I mean to go back and check specifically for this, but I'm almost completely certain that this is true. Initially, in my algorithm, I used an unsigned integer to represent the number of pixels to look back from where I started, and decremented it each time I copied a pixel. This crippled all my images, and caused weird segfaults when it rolled over after 0. This was fixed when I used a signed integer type (ie let the command copy into newly-written pixels). This is basically an implementation detail, most people would do it a different way where this doesn't matter, or use a signed integer to begin with. [also, I think that pixel-based lookbacks ignore the extra space off the edge, while duplet-based ones do not, but I'm not certain on that. I'll verify that too, but it's too late now.] I didn't realize this was new information, I just thought it was left out.&lt;br /&gt;
&lt;br /&gt;
'''[ [[User:Aaron|Aaron]] 04:21, 24 February 2009 (CET) ]''' OK, I found specific examples. First of all, pixel lookbacks either never happen close enough to new rows to look back into the last row, or they take into account the extra info not in the final image (the bytes per row thing I mentioned in the article), so I'm glad I tried to confirm it before adding it. As for the others, all of these examples are from my original 5-cd riven set, and they're all from b_Data.MHK. tBMPs 99, 101, and 106 (and others) have a higher bytes per row than image width, and only appear correctly when rendered as if they were (bytes per row) wide, then cropped. tBMP 0 (and almost every other compressed image) has many repeat subcommands that ask for more data than there is available at the time. Specifically, byte 165 of the command stream of tBMP 0 is 0xEC followed by 0x08, meaning n = 6 and m = 8, so it needs 12 pixels copied from 8 pixels ago. These images only render correctly when they are allowed to read into themselves. This also happens with repeat command 0xFC. I hope this clarifies things.&lt;br /&gt;
&lt;br /&gt;
'''[ [[User:TitoDalCanton|TitoDalCanton]] 21:18, 24 February 2009 (CET) ]''' I checked my decoder implementation and I can confirm that your interpretation of row bytes is correct. In fact, I decode to a larger buffer (''rowbytes'' pixels wide) and then crop it to ''width'' pixels to get the final image.&lt;br /&gt;
&lt;br /&gt;
'''[ [[User:BahamutZERO|Jean-Francois Roy]] 23:37, 25 February 2009 (PST) ]''' Thanks everyone for the information. MHKKit also uses a row_bytes * height * bytes_per_pixel for image decoding. If Tito's decoder is &amp;quot;correct&amp;quot;, in that it produces correct images, I'll validate MHKKit against it. Perhaps post RGBA checksums for some of those tBMP resources for other people can unit test their decoders. Tito, is the source to maglev that you sent me a while ago still up to date?&lt;br /&gt;
&lt;br /&gt;
'''[ [[User:Clone2727|Clone2727]] 12:42, 26 February 2009 (CET) ]''' My decoder does it the way Tito describes above using rowbytes * height. I also have been doing the &amp;quot;overlapping&amp;quot; with commands reading into themselves that Aaron describes. It has a second pointer which looks back and increments as it gets pixel and the actual image pointer increments as well with each new duplet. The images look fine to me.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Riven_debug_shell</id>
		<title>Riven debug shell</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Riven_debug_shell"/>
				<updated>2009-01-28T23:55:12Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: add note about the slideshow command&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The original Riven engine features a built-in debug shell with useful capabilities.&lt;br /&gt;
&lt;br /&gt;
It can be activated by typing the string b3hn in the game and then pressing ctrl+tab. A green prompt should appear in the bottom left corner of the game window. This prompt accepts several commands, listed below. After each command the prompt disappears, but it comes out again by just pressing ctrl+tab.&lt;br /&gt;
&lt;br /&gt;
* g &amp;lt;id&amp;gt;: go to card &amp;lt;id&amp;gt;&lt;br /&gt;
* gc &amp;lt;id&amp;gt;: go to card, using its RMAP identifier&lt;br /&gt;
* gs &amp;lt;stack&amp;gt; [&amp;lt;id&amp;gt;]: go to stack &amp;lt;stack&amp;gt; (e.g. tspit) and to card &amp;lt;id&amp;gt;, if specified&lt;br /&gt;
* get &amp;lt;variable&amp;gt;: get the value of a variable&lt;br /&gt;
* set &amp;lt;variable&amp;gt; &amp;lt;value&amp;gt;: set the value of a variable&lt;br /&gt;
* undo&lt;br /&gt;
* enable &amp;lt;id&amp;gt;: enable an hotspot&lt;br /&gt;
* disable &amp;lt;id&amp;gt;: disable an hotspot&lt;br /&gt;
* p&lt;br /&gt;
* c&lt;br /&gt;
* pc&lt;br /&gt;
* mem: returns total free memory&lt;br /&gt;
* free: returns physical free memory (excludes virtual)&lt;br /&gt;
* debug: toggles a line with useful debug info&lt;br /&gt;
* hs: toggle hotspot display&lt;br /&gt;
* autosave&lt;br /&gt;
* dump: saves the current card picture to a bmp file&lt;br /&gt;
* ipmm&lt;br /&gt;
* slideshow: show the images from b2_data.mhk with captions&lt;br /&gt;
&lt;br /&gt;
See also the [http://www.mystcommunity.com/board/lofiversion/index.php/t19142.html original source].&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-01-23T22:11:25Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: basic outline of the QUES format (missing a lot of fields, however)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASEETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
This is a question set. This links questions together into sort of like a dialogue tree.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||count&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[count]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''count'' is the amount of values the follow.&lt;br /&gt;
* ''values'' is an array which is probably a list of QUES/ANSW (need to check).&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
This is a question. It appears to hold data for the text as well as the sound clip associated with it.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||sound&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u3&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u4&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u5&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u6&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u7&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u8&lt;br /&gt;
|-&lt;br /&gt;
|char *||string&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''u0'' appears to always be 1. Possibly question count?&lt;br /&gt;
* ''sound'' is the sound clip associated with this question.&lt;br /&gt;
* ''u1'' is unknown. Always 0?&lt;br /&gt;
* ''u2'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''u3'' is unknown. It's usually 2.&lt;br /&gt;
* ''u4'' is unknown. It's usually 100.&lt;br /&gt;
* ''u5'' is unknown. It's usually 100.&lt;br /&gt;
* ''u6'' is unknown. It's usually 100.&lt;br /&gt;
* ''u7'' is unknown. Always 0?&lt;br /&gt;
* ''u8'' is unknown. Always 0?&lt;br /&gt;
* ''u9'' is unknown. Possibly the answer to this question?&lt;br /&gt;
* ''string'' is the null-terminated string representing text for this question.&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||data_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''data_size'' bytes. u0 and u1 are normally close. u2 and data_size are normally close. Following this seems to be LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]].&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This appears to be a palette. Here's what I've worked out so far. I believe this may be tied together with tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources found in these games. I believe this may be tied together with tPAL. I also think this may be sprites. The characters in Carmen Sandiego use different palettes on the same sprites to make the look of the person appear different. For example, the palette could change to change hair color, skin color, and clothing.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-01-22T23:02:20Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: QSET is a question set&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASEETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
This is a question set. This links questions together into sort of like a dialogue tree.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||count&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[count]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* ''count'' is the amount of values the follow.&lt;br /&gt;
* ''values'' is an array which is probably a list of QUES/ANSW (need to check).&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
Question?&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||data_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''data_size'' bytes. u0 and u1 are normally close. u2 and data_size are normally close. Following this seems to be LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]].&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This appears to be a palette. Here's what I've worked out so far. I believe this may be tied together with tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources found in these games. I believe this may be tied together with tPAL. I also think this may be sprites. The characters in Carmen Sandiego use different palettes on the same sprites to make the look of the person appear different. For example, the palette could change to change hair color, skin color, and clothing.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-01-22T22:08:26Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: more updates for In the 1st Degree&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in ASEETLI1.MHK and ASSETLI2.MHK).&lt;br /&gt;
&lt;br /&gt;
==== ANSW ====&lt;br /&gt;
Answer?&lt;br /&gt;
&lt;br /&gt;
==== CLIP ====&lt;br /&gt;
Video clip?&lt;br /&gt;
&lt;br /&gt;
==== GADG ====&lt;br /&gt;
Gadget?&lt;br /&gt;
&lt;br /&gt;
==== MBAR ====&lt;br /&gt;
Menu bar?&lt;br /&gt;
&lt;br /&gt;
==== MENU ====&lt;br /&gt;
Menu?&lt;br /&gt;
&lt;br /&gt;
==== MITM ====&lt;br /&gt;
==== QSET ====&lt;br /&gt;
Question set?&lt;br /&gt;
&lt;br /&gt;
==== QUES ====&lt;br /&gt;
Question?&lt;br /&gt;
&lt;br /&gt;
==== TAPE ====&lt;br /&gt;
==== THST ====&lt;br /&gt;
==== THTR ====&lt;br /&gt;
==== WITN ====&lt;br /&gt;
Witness?&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||data_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''data_size'' bytes. u0 and u1 are normally close. u2 and data_size are normally close. Following this seems to be LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]].&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This appears to be a palette. Here's what I've worked out so far. I believe this may be tied together with tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', ''In the 1st Degree'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources found in these games. I believe this may be tied together with tPAL. I also think this may be sprites. The characters in Carmen Sandiego use different palettes on the same sprites to make the look of the person appear different. For example, the palette could change to change hair color, skin color, and clothing.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', ''In the 1st Degree'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in Zoombini (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical. In the 1st Degree has several more in MIDIMAP.DAT.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-01-22T21:01:03Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: some info on in the 1st degree&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* In the 1st Degree&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in the game (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
== In the 1st Degree ==&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== ASET ====&lt;br /&gt;
Unknown. Stands for asset (they are found in assetli1.mhk and assetli2.mhk).&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||data_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''data_size'' bytes. u0 and u1 are normally close. u2 and data_size are normally close. Following this seems to be LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]].&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This appears to be a palette. Here's what I've worked out so far. I believe this may be tied together with tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources found in these games. I believe this may be tied together with tPAL. I also think this may be sprites. The characters in Carmen Sandiego use different palettes on the same sprites to make the look of the person appear different. For example, the palette could change to change hair color, skin color, and clothing.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-01-17T03:49:56Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* VRSN */ add example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in the game (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||data_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''data_size'' bytes. u0 and u1 are normally close. u2 and data_size are normally close. Following this seems to be LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]].&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This appears to be a palette. Here's what I've worked out so far. I believe this may be tied together with tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources found in these games. I believe this may be tied together with tPAL. I also think this may be sprites. The characters in Carmen Sandiego use different palettes on the same sprites to make the look of the person appear different. For example, the palette could change to change hair color, skin color, and clothing.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
In Green Eggs and Ham, it contains these two bytes:&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot; style=&amp;quot;color:#008; font-family:monospace; margin:1em&amp;quot;&amp;gt;00 02&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-01-17T03:26:01Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: some more updates&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in the game (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||data_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''data_size'' bytes. u0 and u1 are normally close. u2 and data_size are normally close. Following this seems to be LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]].&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This appears to be a palette. Here's what I've worked out so far. I believe this may be tied together with tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', ''Green Eggs and Ham'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources found in these games. I believe this may be tied together with tPAL. I also think this may be sprites. The characters in Carmen Sandiego use different palettes on the same sprites to make the look of the person appear different. For example, the palette could change to change hair color, skin color, and clothing.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Green Eggs and Ham'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2009-01-17T03:19:56Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: Green Eggs and Ham uses the archives, and update a bit. (Gasp! I'm alive! :P)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* Green Eggs and Ham&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'QkBk' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer/ffmpeg can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in the game (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||data_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''data_size'' bytes. u0 and u1 are normally close. u2 and data_size are normally close. Following this seems to be LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]].&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This appears to be a palette. Here's what I've worked out so far. I believe this may be tied together with tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources found in these games. I believe this may be tied together with tPAL. I also think this may be sprites. The characters in Carmen Sandiego use different palettes on the same sprites to make the look of the person appear different. For example, the palette could change to change hair color, skin color, and clothing.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
This is found in ''Maggie's Barnyard Adventure'' and ''Green Eggs and Ham''.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts</id>
		<title>Myst scripts</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts"/>
				<updated>2008-10-22T23:18:51Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: replace some &amp;quot;node&amp;quot; usage with &amp;quot;card&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
This page describes Myst scripts, command lists used in record types 5, 6, 7, 8, 10, 11, and 12. Scripts always start with an unsigned short representing the command count. Each command has this structure:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||opcode&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||var&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||arg_count&lt;br /&gt;
|-&lt;br /&gt;
|short||args[arg_count]&lt;br /&gt;
|}&lt;br /&gt;
When a variable is not given, ''var'' is set to 0. So when the key below says that the variable is ''optional'', that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command.&lt;br /&gt;
&lt;br /&gt;
==Commands 0-99==&lt;br /&gt;
These are suspected to be general-purpose commands.&lt;br /&gt;
&lt;br /&gt;
===Command 0===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
In some cases it seems to toggle the associated variable between logical &amp;quot;0&amp;quot; and &amp;quot;1&amp;quot; (e.g. see the marker switches on MYST island). However, it's probably more complicated than this: for example, in Mechanical card 6267 it seems to ''increment'' the associated variable.&lt;br /&gt;
&lt;br /&gt;
===Command 1===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
Could mean &amp;quot;set variable to ''u0''&amp;quot;. ''u0'' takes on any number between 0 and 7 (maybe a bit field?)&lt;br /&gt;
&lt;br /&gt;
===Command 2: alternative destination===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''dest''&lt;br /&gt;
&lt;br /&gt;
This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359)&lt;br /&gt;
&lt;br /&gt;
===Command 3: change cursor===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''clrc_id''&lt;br /&gt;
&lt;br /&gt;
This is used when picking up pages. Seems to check the associated variable and, depending on its value, set the appropriate cursor and alter the variable itself. ''clrc_id'' is always 800, 801, or 802, which match the cursors of the hand holding the white, red, and blue pages respectively.&lt;br /&gt;
&lt;br /&gt;
===Command 4===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 6===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 7===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 8===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 9===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always either ''FFFF'' or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 12===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 13|command 13]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
===Command 13===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 12|command 12]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
===Command 14===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 1, or 2.&lt;br /&gt;
&lt;br /&gt;
===Command 15===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0 or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 16===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 0.&lt;br /&gt;
&lt;br /&gt;
===Command 17===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
===Command 18===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
===Command 19: enable hotspots===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''indexes''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to enable a list of hotspots, specified by ''indexes''.&lt;br /&gt;
&lt;br /&gt;
===Command 20: disable hotspots===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''indexes''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to disable a list of hotspots, specified by ''indexes''. These, unlike [[#Command 19|command 19]], can also be -1, which seems to disable the invoking hotspot.&lt;br /&gt;
&lt;br /&gt;
===Command 21===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5''&lt;br /&gt;
&lt;br /&gt;
There are this command is used 6 times.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 74, 76, 117, or 198.&lt;br /&gt;
*''u1'' is always 0, 48, 213, or 226.&lt;br /&gt;
*''u2'' is always 327, 406, 429, 459, or 544.&lt;br /&gt;
*''u3'' is always 257, 332, or 333.&lt;br /&gt;
*''u4'' is always 0, 1, 5, 6, or 11.&lt;br /&gt;
*''u5'' is always 5 or 25.&lt;br /&gt;
&lt;br /&gt;
===Command 22===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 23===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
The ''u0'' numbers are all 0, 4, or 5. Guess: toggle enable status for a list of hotspots.&lt;br /&gt;
&lt;br /&gt;
===Command 24: play sound, non-blocking===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''sound_id''&lt;br /&gt;
&lt;br /&gt;
Start sound with ID ''sound_id''. Script execution resumes immediately and the sound plays in the background.&lt;br /&gt;
&lt;br /&gt;
===Command 26===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 27: play sound, blocking===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''sound_id''&lt;br /&gt;
&lt;br /&gt;
Play sound with ID ''sound_id'', blocking script execution until done.&lt;br /&gt;
&lt;br /&gt;
===Command 28===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' (&amp;lt;''l t r b''&amp;gt;|''FFFF'')&lt;br /&gt;
&lt;br /&gt;
Often used after command 29. &amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources. Guess: update screen rectangle? See Mechanical card 6009.&lt;br /&gt;
&lt;br /&gt;
===Command 29: copy picture over the hotspot===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''pict_id'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''pict_id'' appears to be a picture ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0, 1, or -1).&lt;br /&gt;
&lt;br /&gt;
This command seems to copy picture ''pict_id'' over the hotspot, using &amp;lt;''l'' ''t'' ''r'' ''b''&amp;gt; as the source rect. Additional data is unknown.&lt;br /&gt;
&lt;br /&gt;
===Command 30: start background sounds===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' variable&lt;br /&gt;
&lt;br /&gt;
This seems to start a background sound combination. The arg list seems to follow the philosophy of the sounds section in VIEW resources. In most cases there are just 2 args, a positive ''msnd_id'' (background sound ID to play) and ''flags''. However, there is a single exception with 8 args (RLST ID 3225 in Channelwood) which can be correctly interpreted simply as a more complex sounds section.&lt;br /&gt;
&lt;br /&gt;
===Command 31===&lt;br /&gt;
*'''Variable:''' Yes (only ever 30)&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
&lt;br /&gt;
===Command 32===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 33: draw picture===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''id'' &amp;lt;''sl st sr sb''&amp;gt; &amp;lt;''dl'' ''dt''&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Draw a picture, given the ID and source rect, at position &amp;lt;''dl'',''dt''&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Command 34===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''card'' ''u1''&lt;br /&gt;
&lt;br /&gt;
Seems to go to card ''card''. ''u1'' is always 0, 1, 4, 5, 6, 9, 10, or 11.&lt;br /&gt;
&lt;br /&gt;
===Command 35===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' is always 0, 6, or 10.&lt;br /&gt;
&lt;br /&gt;
===Command 36===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 900 or 903.&lt;br /&gt;
&lt;br /&gt;
===Command 37===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
Seems to form pairs with command 38, where it opens the script and command 38 ends it.&lt;br /&gt;
&lt;br /&gt;
===Command 38===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
Seems to form pairs with command 37, where it closes the script while command 37 opens it.&lt;br /&gt;
&lt;br /&gt;
===Command 39===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''u0'' is 100, 200, 400, 500, 1000, or 1100. Guess: pause execution for ''u0'' milliseconds?&lt;br /&gt;
&lt;br /&gt;
===Command 40: travel to destination age===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''dst_age_id'' ''src_msnd_id'' ''dst_msnd_id''&lt;br /&gt;
&lt;br /&gt;
*''dst_age_id'' is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny).&lt;br /&gt;
*''src_msnd_id'' is a sound ID to play in source age.&lt;br /&gt;
*''dst_msnd_id'' is a sound ID to play in destination age.&lt;br /&gt;
&lt;br /&gt;
===Command 41===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
*''u2'' is always 5 or 10.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u3'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
===Command 42===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
*''u1'' is always 5, 10, 15, or 20.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u2'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
===Command 43===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 44===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 46===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
Often found after commands 29 and 33. Guess: update the whole screen?&lt;br /&gt;
&lt;br /&gt;
==Commands 100-199==&lt;br /&gt;
These are suspected to be age-specific, as their syntax changes depending on the age.&lt;br /&gt;
===Command 100===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 6, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 101===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1''[6]]&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4225 or omitted.&lt;br /&gt;
*''u1'' is a series of 6 positive numbers.&lt;br /&gt;
&lt;br /&gt;
===Command 102===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'' ''u1'' [''u2'']]&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID (or 0).&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' looks like an (optional) bit field. (only 0x64 or 0)&lt;br /&gt;
&lt;br /&gt;
===Command 103===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''bit''&lt;br /&gt;
&lt;br /&gt;
This form of the command most likely negates bit ''bit'' of ''var''.&lt;br /&gt;
&lt;br /&gt;
*''bit'' is a power of 2 (bit mask).&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
This form of the command likely makes specified hotspot drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is a number between 13 and 18. It seems to refer to a hotspot index (see stone 2197).&lt;br /&gt;
*''u1'' is either 1 or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 104===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
This command likely makes specified hotspot not drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' can be 0, 1, omitted, or 13 to 20. It seems to refer to a hotspot index (see stone 2004 and 2197).&lt;br /&gt;
&lt;br /&gt;
===Command 105===&lt;br /&gt;
*'''Variable:''' Optional (set to 9 at one point, but usually not)&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 106===&lt;br /&gt;
*'''Variable:''' 10&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 107===&lt;br /&gt;
*'''Variable:''' 11&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 108===&lt;br /&gt;
*'''Variable:''' 12&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 109===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID).&lt;br /&gt;
&lt;br /&gt;
===Command 110===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 111===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
This command likely makes specified hotspot not drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 14 to 20 or omitted. It seems to refer to a hotspot index (see stone 2004).&lt;br /&gt;
&lt;br /&gt;
===Command 112===&lt;br /&gt;
*'''Variable:''' 29&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or 1800.&lt;br /&gt;
*''u1'' is 400 or 2000.&lt;br /&gt;
*''u2'' is 1.&lt;br /&gt;
&lt;br /&gt;
===Command 113===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 0 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 114===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 115===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' look like card ID's.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1139 1140 1140 10 6 204 64 343 279 6 50&lt;br /&gt;
&lt;br /&gt;
This form of the command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 116===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 6006.&lt;br /&gt;
&lt;br /&gt;
===Command 117===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1'' ''u2'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
*''u1'' and ''u2'' are 5698 and 6698 (only used once).&lt;br /&gt;
&lt;br /&gt;
===Command 118===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [4707 5707 6707 7707 4705]&lt;br /&gt;
&lt;br /&gt;
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 119===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 120===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 121===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or a card ID.&lt;br /&gt;
*''u1'' is a card ID.&lt;br /&gt;
&lt;br /&gt;
===Command 122===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 123===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 960.&lt;br /&gt;
*''u1'' is 960, 1920, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 124===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 125===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' 21&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 13 or 14.&lt;br /&gt;
&lt;br /&gt;
===Command 126===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 127===&lt;br /&gt;
*'''Variable:''' no&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 1, 2, or 3.&lt;br /&gt;
*''u1'' is 0 or 1.&lt;br /&gt;
&lt;br /&gt;
===Command 129===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 133===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 6500&lt;br /&gt;
&lt;br /&gt;
This command is only used once. Value is a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 164===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 169===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 198===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 199===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Commands 200-299==&lt;br /&gt;
These are only seen in the [[Myst INIT resources|INIT]] scripts.&lt;br /&gt;
===Command 200===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' DUNNY, INTRO, MECHAN, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0 u1''[3]&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
*''u1'' appears to be three sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 201===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL, INTRO, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 0 4 5&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
===Command 202===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MECHAN, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 13&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
===Command 203===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL, MECHAN, MYST, SELEN&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count''] ''u1''&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like card IDs.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 204===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 205===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count''] ''u1''&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like card IDs.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[4]&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 206===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[6]&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 207===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' STONE&lt;br /&gt;
&lt;br /&gt;
===Command 208===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
===Command 209===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 210===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 211===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 212===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 213===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 214===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 215===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 216===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 217===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 218===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 219===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 220===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 221===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 222===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
==Commands 300-399==&lt;br /&gt;
These are only seen in the [[Myst EXIT resources|EXIT]] scripts.&lt;br /&gt;
===Command 300===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 301===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 302===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 303===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 304===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 305===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 306===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 307===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 308===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 309===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 312===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:'''&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Other_Games</id>
		<title>Other Games</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Other_Games"/>
				<updated>2008-10-16T10:54:22Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* tBMP */ more work on non-Riven tBMP's&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Myst and Riven aren't the only games to use the [[Mohawk archive format|Mohawk format]]. In fact, many Broderbund based games use it. Here is a (partial) list of games known to use it:&lt;br /&gt;
&lt;br /&gt;
* James Discovers Math&lt;br /&gt;
* James Explores Math&lt;br /&gt;
* Logical Journey of the Zoombinis (aka Zoombinis Logical Journey)&lt;br /&gt;
* Maggie's Barnyard Adventure&lt;br /&gt;
* The Treehouse&lt;br /&gt;
* Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)&lt;br /&gt;
* Where in the World is Carmen Sandiego? (Windows/Mac version)&lt;br /&gt;
&lt;br /&gt;
= Video =&lt;br /&gt;
All the videos of the original games are QuickTime movies. The later Zoombinis release has Bink videos instead.&lt;br /&gt;
&lt;br /&gt;
The audio codec is raw, signed, 16-bit data in Big Endian format. The video codec, however, is not standard. It has the FourCC 'Brod' and has description &amp;quot;CDToons&amp;quot;. Neither QuickTime nor mplayer can play this codec and its format is unknown. Some videos still use Cinepak (like &amp;quot;The Chief&amp;quot; videos in Carmen Sandiego).&lt;br /&gt;
&lt;br /&gt;
= Game Specific Information =&lt;br /&gt;
&lt;br /&gt;
== James Discovers/Explores Math ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tANM ====&lt;br /&gt;
Animation?&lt;br /&gt;
&lt;br /&gt;
==== tMFO ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Logical Journey of the Zoombinis ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== \0SND ====&lt;br /&gt;
These are [[Mohawk Sounds]]. Note that they begin with a NULL character.&lt;br /&gt;
&lt;br /&gt;
==== CURS ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== SCRB ====&lt;br /&gt;
==== SCRS ====&lt;br /&gt;
==== NODE ====&lt;br /&gt;
==== PATH ====&lt;br /&gt;
==== SHPL ====&lt;br /&gt;
==== SYSX ====&lt;br /&gt;
This appears to be a list of Adlib MIDI commands. There are only two resources in the game (which are found in MIDIMAP.DAT) and are 1 or 0xFFFF. They are identical.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Maggie's Barnyard Adventure ==&lt;br /&gt;
&lt;br /&gt;
=== Resources ===&lt;br /&gt;
==== tCUR ====&lt;br /&gt;
Cursor?&lt;br /&gt;
&lt;br /&gt;
==== BITL ====&lt;br /&gt;
==== SCRP ====&lt;br /&gt;
==== SPR# ====&lt;br /&gt;
Sprites?&lt;br /&gt;
&lt;br /&gt;
==== VRSN ====&lt;br /&gt;
Version?&lt;br /&gt;
&lt;br /&gt;
==== ANI ====&lt;br /&gt;
Animation? (Note: Ends in a space character)&lt;br /&gt;
&lt;br /&gt;
==== SHP# ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Common Resources ==&lt;br /&gt;
==== tBMP ====&lt;br /&gt;
Game bitmaps. However, they are not the same as [[Riven tBMP resources|Riven tBMP's]]! Here's what I figured out so far:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||u2&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||data_size&lt;br /&gt;
|- &lt;br /&gt;
|unsigned short||buffer_size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following this is ''data_size'' bytes. u0 and u1 are normally close. u2 and data_size are normally close. Following this seems to be LZSS compressed data using a buffer size of ''buffer_size'', perhaps similar to the encoding in [[Myst WDIB resources]].&lt;br /&gt;
&lt;br /&gt;
This is the same in all non-Riven (and non-Myst) games.&lt;br /&gt;
&lt;br /&gt;
==== tWAV ====&lt;br /&gt;
This is a [[Mohawk Sounds]] resource. (Found in all but ''Logical Journey of the Zoombinis'')&lt;br /&gt;
&lt;br /&gt;
==== tPAL ====&lt;br /&gt;
This appears to be a palette. Here's what I've worked out so far. I believe this may be tied together with tBMH.&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||color_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''color_count'' RGBA quads.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tCNT ====&lt;br /&gt;
Unknown. The data size is always 4 and follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||resource_id&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
''resource_id'' appears to always equal the tCNT that this belongs to.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', ''James Discovers Math'', and ''James Explores Math''.&lt;br /&gt;
&lt;br /&gt;
==== tSCR ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== STRL ====&lt;br /&gt;
This is a string list.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||string_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Following that is ''string_count'' NULL-terminated strings. This seems reminiscent of Riven's [[Riven_NAME_resources|NAME resources]].&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''Where in the World is Carmen Sandiego?'', and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== tBMH ====&lt;br /&gt;
This appears to be identical to the tBMP resources found in these games. I believe this may be tied together with tPAL. I also think this may be sprites. The characters in Carmen Sandiego use different palettes on the same sprites to make the look of the person appear different. For example, the palette could change to change hair color, skin color, and clothing.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'', ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== tMID ====&lt;br /&gt;
This is a [[Mohawk MIDI]] resource.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', ''James Discovers Math'', ''James Explores Math'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== REGS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Logical Journey of the Zoombinis'', and ''The Treehouse''.&lt;br /&gt;
&lt;br /&gt;
==== BYTS ====&lt;br /&gt;
This appears to be able to hold multiple things. In DATABASE.MHK, it holds database entries (one large null-terminated string), but elsewhere it appears to be something else.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== INTS ====&lt;br /&gt;
Unknown.&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;br /&gt;
&lt;br /&gt;
==== BBOX ====&lt;br /&gt;
Some sort of boxes? It follows this format:&lt;br /&gt;
&lt;br /&gt;
(Big Endian Order)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|byte||rect_count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
And then, it has ''rect_count'' rects:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||left&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||top&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||right&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||bottom&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is found in ''Where in the World is Carmen Sandiego?'' and ''Where in America is Carmen Sandiego? (The Great Amtrak Train Adventure)''.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Riven_variables</id>
		<title>Riven variables</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Riven_variables"/>
				<updated>2008-09-25T20:28:55Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: document jbridge* variables&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Riven}}&lt;br /&gt;
This page is an attempt to discern the function of every variable in the game.&lt;br /&gt;
&lt;br /&gt;
==a_Data==&lt;br /&gt;
====acathstate====&lt;br /&gt;
*p_Data var 15&lt;br /&gt;
====adoit====&lt;br /&gt;
*b_Data var 0, g_Data var 1, j_Data var 5, o_Data var 5, p_Data var 0, r_Data var 1, t_Data var 0&lt;br /&gt;
====agehn====&lt;br /&gt;
*o_Data var 2, r_Data var 0, t_Data var 7&lt;br /&gt;
====aova====&lt;br /&gt;
*b_Data var 25, g_Data var 28, j_Data var 12, o_Data var 6, t_Data var 14&lt;br /&gt;
====apower====&lt;br /&gt;
*b_Data var 45, g_Data var 16, j_Data var 32, t_Data var 31&lt;br /&gt;
State of the power provided by the fire-marbles in the huge golden dome. 0=no power, 1=power on. Makes the domes work when set to 1.&lt;br /&gt;
&lt;br /&gt;
====araw====&lt;br /&gt;
*b_Data var 24, g_Data var 2, j_Data var 29, r_Data var 4, t_Data var 13, t_Data var 13&lt;br /&gt;
====atemp====&lt;br /&gt;
*j_Data var 26&lt;br /&gt;
====atrap====&lt;br /&gt;
*a_Data var 0&lt;br /&gt;
====atrapbook====&lt;br /&gt;
*a_Data var 1, o_Data var 3, p_Data var 14, r_Data var 3&lt;br /&gt;
====domecheck====&lt;br /&gt;
*b_Data var 46, g_Data var 17, j_Data var 35, p_Data var 22, t_Data var 37&lt;br /&gt;
Used in dome scope mechanisms. Apparently, *_domecheck() externals set this to let scripts know if the scope button was hit at the right time (0=no, 1=yes).&lt;br /&gt;
&lt;br /&gt;
==b_Data==&lt;br /&gt;
====bbacklock====&lt;br /&gt;
*b_Data var 21&lt;br /&gt;
====bbait====&lt;br /&gt;
*b_Data var 39&lt;br /&gt;
====bbigbridge====&lt;br /&gt;
*b_Data var 6, t_Data var 41&lt;br /&gt;
====bbirds====&lt;br /&gt;
*b_Data var 36&lt;br /&gt;
====bblrarm====&lt;br /&gt;
*b_Data var 2&lt;br /&gt;
====bblrdoor====&lt;br /&gt;
*b_Data var 3&lt;br /&gt;
====bblrgrt====&lt;br /&gt;
*b_Data var 4&lt;br /&gt;
====bblrsw====&lt;br /&gt;
*b_Data var 34&lt;br /&gt;
====bblrvalve====&lt;br /&gt;
*b_Data var 32&lt;br /&gt;
====bblrwtr====&lt;br /&gt;
*b_Data var 5&lt;br /&gt;
Presence of water in the boiler. 0 = empty, 1 = filled.&lt;br /&gt;
====bbook====&lt;br /&gt;
*b_Data var 44, o_Data var 13&lt;br /&gt;
====bbrlever====&lt;br /&gt;
*b_Data var 9, t_Data var 40&lt;br /&gt;
====bcavedoor====&lt;br /&gt;
*b_Data var 16&lt;br /&gt;
====bcpipegr====&lt;br /&gt;
*b_Data var 26&lt;br /&gt;
====bcratergg====&lt;br /&gt;
*b_Data var 1&lt;br /&gt;
====bdome====&lt;br /&gt;
*b_Data var 43&lt;br /&gt;
====bdrwr====&lt;br /&gt;
*b_Data var 23&lt;br /&gt;
====bfans====&lt;br /&gt;
*b_Data var 15&lt;br /&gt;
====bfmdoor====&lt;br /&gt;
*b_Data var 42&lt;br /&gt;
====bidvlv====&lt;br /&gt;
*b_Data var 30&lt;br /&gt;
====blab====&lt;br /&gt;
*b_Data var 11&lt;br /&gt;
====blabbook====&lt;br /&gt;
*b_Data var 28&lt;br /&gt;
====blabeye====&lt;br /&gt;
*b_Data var 27&lt;br /&gt;
====blabfrontdr====&lt;br /&gt;
*b_Data var 17&lt;br /&gt;
====blabbackdr====&lt;br /&gt;
*b_Data var 20&lt;br /&gt;
====bfrontlock====&lt;br /&gt;
*b_Data var 18&lt;br /&gt;
====bheat====&lt;br /&gt;
*b_Data var 33&lt;br /&gt;
====bmagcar====&lt;br /&gt;
*b_Data var 12, g_Data var 7, j_Data var 44&lt;br /&gt;
====bpipdr====&lt;br /&gt;
*b_Data var 47, j_Data var 43&lt;br /&gt;
====bprs====&lt;br /&gt;
*b_Data var 37&lt;br /&gt;
====bstove====&lt;br /&gt;
*b_Data var 29&lt;br /&gt;
====btrap====&lt;br /&gt;
*b_Data var 35&lt;br /&gt;
====bvalve====&lt;br /&gt;
*b_Data var 31&lt;br /&gt;
Position of the steam valve located at the center of the lake (card 415). 0: steam to the ytram mechanism; 1: steam to the boiler controls; 2: steam to the chipper.&lt;br /&gt;
&lt;br /&gt;
====bvise====&lt;br /&gt;
*b_Data var 19&lt;br /&gt;
====bytram====&lt;br /&gt;
*b_Data var 22&lt;br /&gt;
====bytramtime====&lt;br /&gt;
*b_Data var 40&lt;br /&gt;
====bytrap====&lt;br /&gt;
*b_Data var 38&lt;br /&gt;
====bytrapped====&lt;br /&gt;
*b_Data var 41&lt;br /&gt;
&lt;br /&gt;
==g_Data==&lt;br /&gt;
====gbook====&lt;br /&gt;
*g_Data var 15, o_Data var 12&lt;br /&gt;
====gcathtime====&lt;br /&gt;
*g_Data var 26&lt;br /&gt;
====gcathstate====&lt;br /&gt;
*g_Data var 27&lt;br /&gt;
====gdome====&lt;br /&gt;
*g_Data var 10&lt;br /&gt;
====gemagcar====&lt;br /&gt;
*g_Data var 19, j_Data var 39&lt;br /&gt;
====gimagecurr====&lt;br /&gt;
*g_Data var 13&lt;br /&gt;
====gimagemax====&lt;br /&gt;
*g_Data var 14&lt;br /&gt;
====glkbtns====&lt;br /&gt;
*g_Data var 8&lt;br /&gt;
====glkbridge====&lt;br /&gt;
*g_Data var 9&lt;br /&gt;
====glview====&lt;br /&gt;
*g_Data var 25&lt;br /&gt;
====glviewpos====&lt;br /&gt;
*j_Data var 33&lt;br /&gt;
====gnmagrot====&lt;br /&gt;
*b_Data var 13, g_Data var 4&lt;br /&gt;
====gnmagcar====&lt;br /&gt;
*b_Data var 14, g_Data var 3&lt;br /&gt;
====gpinup====&lt;br /&gt;
*g_Data var 11&lt;br /&gt;
====gpinpos====&lt;br /&gt;
*g_Data var 12&lt;br /&gt;
====grview====&lt;br /&gt;
*g_Data var 21&lt;br /&gt;
====grviewpos====&lt;br /&gt;
*g_Data var 22&lt;br /&gt;
====gscribe====&lt;br /&gt;
*g_Data var 18&lt;br /&gt;
====gsubelev====&lt;br /&gt;
*g_Data var 0&lt;br /&gt;
====gsubdr====&lt;br /&gt;
*g_Data var 5&lt;br /&gt;
====gwhark====&lt;br /&gt;
*g_Data var 6&lt;br /&gt;
====gwharktime====&lt;br /&gt;
*g_Data var 24&lt;br /&gt;
&lt;br /&gt;
==j_Data==&lt;br /&gt;
====jwmagcar====&lt;br /&gt;
*g_Data var 20&lt;br /&gt;
====jbeetle====&lt;br /&gt;
*j_Data var 1&lt;br /&gt;
====jbeetlepool====&lt;br /&gt;
*j_Data var 23&lt;br /&gt;
====jbook====&lt;br /&gt;
*j_Data var 31, o_Data var 11&lt;br /&gt;
====jbridge1====&lt;br /&gt;
*j_Data var 13&lt;br /&gt;
Status of the sub dock bridge beneath the village: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jbridge2====&lt;br /&gt;
*j_Data var 14&lt;br /&gt;
Status of the sub dock bridge on the path to the village: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jbridge3====&lt;br /&gt;
*j_Data var 15&lt;br /&gt;
Status of the sub dock bridge of the gallows: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jbridge4====&lt;br /&gt;
*j_Data var 17&lt;br /&gt;
Status of the sub dock bridge of the dock controls: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jbridge5====&lt;br /&gt;
*j_Data var 16&lt;br /&gt;
Status of the sub dock bridge of the schoolhouse: 0=retracted, 1=extended&lt;br /&gt;
&lt;br /&gt;
====jccb====&lt;br /&gt;
*j_Data var 0&lt;br /&gt;
Controls when to play some background bird animations.&lt;br /&gt;
&lt;br /&gt;
====jdome====&lt;br /&gt;
*j_Data var 3&lt;br /&gt;
====jdrain====&lt;br /&gt;
*j_Data var 27&lt;br /&gt;
====jgallows====&lt;br /&gt;
*j_Data var 9&lt;br /&gt;
State of the gallows floor: 0=closed, 1=open.&lt;br /&gt;
&lt;br /&gt;
====jgate====&lt;br /&gt;
*j_Data var 2&lt;br /&gt;
====jgirl====&lt;br /&gt;
*j_Data var 37&lt;br /&gt;
====jladder====&lt;br /&gt;
*j_Data var 30&lt;br /&gt;
====jleftpos====&lt;br /&gt;
*j_Data var 47&lt;br /&gt;
====jpeek====&lt;br /&gt;
*j_Data var 34&lt;br /&gt;
====jplaybeetle====&lt;br /&gt;
*j_Data var 4&lt;br /&gt;
Seems managed by a set of equivalent external commands to control when to play the random beetle movies in the jungle (it is set to 1 in that case).&lt;br /&gt;
&lt;br /&gt;
====jprebel====&lt;br /&gt;
*j_Data var 18&lt;br /&gt;
====jprisondr====&lt;br /&gt;
*j_Data var 11&lt;br /&gt;
====jprisonsecdr====&lt;br /&gt;
*j_Data var 19&lt;br /&gt;
====jrbook====&lt;br /&gt;
*j_Data var 22&lt;br /&gt;
====jrightpos====&lt;br /&gt;
*j_Data var 48&lt;br /&gt;
====jsouthpathdr====&lt;br /&gt;
*j_Data var 6&lt;br /&gt;
====jschooldr====&lt;br /&gt;
*j_Data var 42&lt;br /&gt;
====jsub====&lt;br /&gt;
*j_Data var 10&lt;br /&gt;
====jsubdir====&lt;br /&gt;
*j_Data var 24&lt;br /&gt;
====jsubhatch====&lt;br /&gt;
*j_Data var 25&lt;br /&gt;
====jsubsw====&lt;br /&gt;
*j_Data var 41&lt;br /&gt;
====jsunners====&lt;br /&gt;
*j_Data var 45, t_Data var 11&lt;br /&gt;
====jsunnertime====&lt;br /&gt;
*j_Data var 46&lt;br /&gt;
====jthronedr====&lt;br /&gt;
*j_Data var 7&lt;br /&gt;
====jtunneldr====&lt;br /&gt;
*j_Data var 21&lt;br /&gt;
====jtunnellamps====&lt;br /&gt;
*j_Data var 20&lt;br /&gt;
====jvillagepeople====&lt;br /&gt;
*j_Data var 40&lt;br /&gt;
====jwarning====&lt;br /&gt;
*j_Data var 8&lt;br /&gt;
====jwharkpos====&lt;br /&gt;
*j_Data var 49&lt;br /&gt;
====jwharkram====&lt;br /&gt;
*j_Data var 28&lt;br /&gt;
====jwmouth====&lt;br /&gt;
*j_Data var 36&lt;br /&gt;
State of the whark mouth in the jungle. 0=closed, 1=open.&lt;br /&gt;
&lt;br /&gt;
====jwmagcar====&lt;br /&gt;
*j_Data var 38&lt;br /&gt;
Presence (1) or absence (0) of the maglev leading to gspit.&lt;br /&gt;
&lt;br /&gt;
====jymagcar====&lt;br /&gt;
*j_Data var 50, t_Data var 10&lt;br /&gt;
&lt;br /&gt;
==o_Data==&lt;br /&gt;
====oambient====&lt;br /&gt;
*o_Data var 1, p_Data var 4&lt;br /&gt;
====obutton====&lt;br /&gt;
*o_Data var 4&lt;br /&gt;
====ocage====&lt;br /&gt;
*o_Data var 0, p_Data var 3&lt;br /&gt;
====odeskbook====&lt;br /&gt;
*o_Data var 7&lt;br /&gt;
====omusicplayer====&lt;br /&gt;
*o_Data var 8&lt;br /&gt;
====ostanddrawer====&lt;br /&gt;
*o_Data var 16&lt;br /&gt;
====ostove====&lt;br /&gt;
*o_Data var 15&lt;br /&gt;
&lt;br /&gt;
==p_Data==&lt;br /&gt;
====elevbtn1====&lt;br /&gt;
*p_Data var 19&lt;br /&gt;
====elevbtn2====&lt;br /&gt;
*p_Data var 20&lt;br /&gt;
====elevbtn3====&lt;br /&gt;
*p_Data var 21&lt;br /&gt;
====pbook====&lt;br /&gt;
*o_Data var 10, p_Data var 23&lt;br /&gt;
====pcage====&lt;br /&gt;
*o_Data var 9, p_Data var 2, t_Data var 12&lt;br /&gt;
====pcathtime====&lt;br /&gt;
*p_Data var 16&lt;br /&gt;
====pcathcheck====&lt;br /&gt;
*p_Data var 17&lt;br /&gt;
====pdome====&lt;br /&gt;
*p_Data var 1&lt;br /&gt;
====pelevcombo====&lt;br /&gt;
*p_Data var 18&lt;br /&gt;
====ptemp====&lt;br /&gt;
*g_Data var 23&lt;br /&gt;
&lt;br /&gt;
==r_Data==&lt;br /&gt;
====rrebel====&lt;br /&gt;
*r_Data var 2&lt;br /&gt;
&lt;br /&gt;
Tracks the evolution of events in the rebel age.&lt;br /&gt;
&lt;br /&gt;
====rrebelview====&lt;br /&gt;
*r_Data var 5&lt;br /&gt;
====rvillagetime====&lt;br /&gt;
*r_Data var 6&lt;br /&gt;
&lt;br /&gt;
==t_Data==&lt;br /&gt;
====tbars====&lt;br /&gt;
*t_Data var 2&lt;br /&gt;
====tbeetle====&lt;br /&gt;
*t_Data var 28&lt;br /&gt;
====tbook====&lt;br /&gt;
*o_Data var 14, t_Data var 38&lt;br /&gt;
====tbookvalve====&lt;br /&gt;
*t_Data var 33&lt;br /&gt;
====tcage====&lt;br /&gt;
*t_Data var 24&lt;br /&gt;
State of the prison at the beginning of the game. 0 = prison closed, 1 = open.&lt;br /&gt;
&lt;br /&gt;
====tcovercombo====&lt;br /&gt;
*t_Data var 23&lt;br /&gt;
====tdl====&lt;br /&gt;
*t_Data var 16&lt;br /&gt;
====tdome====&lt;br /&gt;
*t_Data var 29&lt;br /&gt;
====tdomeelev====&lt;br /&gt;
*p_Data var 8, t_Data var 34&lt;br /&gt;
====tdomeelevbtn====&lt;br /&gt;
*t_Data var 42&lt;br /&gt;
====tgatebrhandle====&lt;br /&gt;
*t_Data var 36&lt;br /&gt;
====tgatebridge====&lt;br /&gt;
*t_Data var 17&lt;br /&gt;
====tgatestate====&lt;br /&gt;
*p_Data var 5, t_Data var 15&lt;br /&gt;
====tgridoor====&lt;br /&gt;
*p_Data var 12, t_Data var 26&lt;br /&gt;
====tgrodoor====&lt;br /&gt;
*p_Data var 11, t_Data var 27&lt;br /&gt;
====tgrmdoor====&lt;br /&gt;
*p_Data var 7, t_Data var 25&lt;br /&gt;
====tguard====&lt;br /&gt;
*t_Data var 9&lt;br /&gt;
====timagedoor====&lt;br /&gt;
*t_Data var 1&lt;br /&gt;
====tmagcar====&lt;br /&gt;
*j_Data var 51, p_Data var 6, t_Data var 3&lt;br /&gt;
Presence of the maglev on temple island. 0 = absent, 1 = present.&lt;br /&gt;
&lt;br /&gt;
====tsecdoor====&lt;br /&gt;
*p_Data var 9, t_Data var 6&lt;br /&gt;
State of the door from the temple tunnel to the temple. 0 = closed, 1 = open.&lt;br /&gt;
&lt;br /&gt;
====tsubbridge====&lt;br /&gt;
*p_Data var 13, t_Data var 32&lt;br /&gt;
====ttelecover====&lt;br /&gt;
*t_Data var 19&lt;br /&gt;
State of the star fissure window cover under the telescope. 0 = closed, 1 = open.&lt;br /&gt;
&lt;br /&gt;
====ttelehandle====&lt;br /&gt;
*t_Data var 21&lt;br /&gt;
Position of the lever controlling telescope direction. 0 = up, 1 = down.&lt;br /&gt;
&lt;br /&gt;
====ttelepin====&lt;br /&gt;
*t_Data var 22&lt;br /&gt;
State of the telescope safety lever. 0 = locked, 1 = unlocked.&lt;br /&gt;
&lt;br /&gt;
====ttelescope====&lt;br /&gt;
*t_Data var 18&lt;br /&gt;
Position of the telescope. Seems to range from 1 to 5.&lt;br /&gt;
&lt;br /&gt;
====ttelevalve====&lt;br /&gt;
*t_Data var 20&lt;br /&gt;
State of the valve feeding steam to the telescope. 0 = off, 1 = on.&lt;br /&gt;
&lt;br /&gt;
====ttemple====&lt;br /&gt;
*t_Data var 8&lt;br /&gt;
====ttempledoor====&lt;br /&gt;
*p_Data var 10, t_Data var 4&lt;br /&gt;
State of the huge door from the temple to the maglev. 0 = closed, 1 = open.&lt;br /&gt;
&lt;br /&gt;
====ttunneldoor====&lt;br /&gt;
*t_Data var 39&lt;br /&gt;
====tviewer====&lt;br /&gt;
*t_Data var 5&lt;br /&gt;
====twabrvalve====&lt;br /&gt;
*t_Data var 35&lt;br /&gt;
====twaffle====&lt;br /&gt;
*t_Data var 30&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Saved Game Variables==&lt;br /&gt;
====all_book====&lt;br /&gt;
====auservolume====&lt;br /&gt;
The volume set in the options.&lt;br /&gt;
====azip====&lt;br /&gt;
The state of zip mode. (0=off, 1=on)&lt;br /&gt;
====currentcardid====&lt;br /&gt;
Current card ID.&lt;br /&gt;
====currentstackid====&lt;br /&gt;
Current stack ID. See the [[Riven engine overview#Stack ID's in Saved Games|conversion table]].&lt;br /&gt;
====doingsetupscreens====&lt;br /&gt;
====newpos====&lt;br /&gt;
====playerhasbook====&lt;br /&gt;
====rivenambients====&lt;br /&gt;
====returncardid====&lt;br /&gt;
Card ID used to return to after viewing a book on aspit.&lt;br /&gt;
====returnstackid====&lt;br /&gt;
Stack ID used to return to after viewing a book on aspit. See the [[Riven engine overview#Stack ID's in Saved Games|conversion table]].&lt;br /&gt;
====stackvarsinitialized====&lt;br /&gt;
====tblue====&lt;br /&gt;
====tgreen====&lt;br /&gt;
====themarble====&lt;br /&gt;
====torange====&lt;br /&gt;
====transitionsenabled====&lt;br /&gt;
(0=transitions disabled, 1=transitions enabled)&lt;br /&gt;
====transitionmode====&lt;br /&gt;
Speed of the transitions.&lt;br /&gt;
====tred====&lt;br /&gt;
====tviolet====&lt;br /&gt;
====tyellow====&lt;br /&gt;
====waterenabled====&lt;br /&gt;
(0=water effects disabled, 1=water effects enabled)&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts</id>
		<title>Myst scripts</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts"/>
				<updated>2008-09-23T21:36:56Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: 300+ are for EXIT, not INIT&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
This page contains, or will contain, a list of all known commands in Myst, as used in record types 5, 6, 7, 8, 10, 11, and 12. The script format always starts with an unsigned short representing the command count, and then per command has this structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||opcode&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||var&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||num_values&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[num_values]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The way scripts are stored, they each contain a command number, a variable number, and any number of arguments. When a variable number is not given, a &amp;quot;0&amp;quot; is used. So when the key below says that the variable is &amp;quot;optional&amp;quot;, that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command.&lt;br /&gt;
&lt;br /&gt;
==Commands 0-99==&lt;br /&gt;
These are suspected to be general-purpose commands.&lt;br /&gt;
===Command 0===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
Seems to toggle a variable between 0 and 1. For example, see the marker switches on MYST island.&lt;br /&gt;
&lt;br /&gt;
===Command 1===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
Could mean &amp;quot;set variable to ''u0''&amp;quot;. ''u0'' takes on any number between 0 and 7 (maybe a bit field?)&lt;br /&gt;
&lt;br /&gt;
===Command 2: alternative destination===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''dest''&lt;br /&gt;
&lt;br /&gt;
This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359)&lt;br /&gt;
&lt;br /&gt;
===Command 3: change cursor===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''clrc_id''&lt;br /&gt;
&lt;br /&gt;
*''clrc_id'' is always 800, 801, or 802. (Only 5 different cases). These are the &amp;quot;animated&amp;quot; cursors of dropping the white, red, and blue pages, respectively.&lt;br /&gt;
&lt;br /&gt;
This command seems to change cursor to ''clrc_id'' if var is a certain (unknown) value.&lt;br /&gt;
&lt;br /&gt;
===Command 4===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 6===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 7===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 8===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 9===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always either ''FFFF'' or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 12===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 13|command 13]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
===Command 13===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 12|command 12]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
===Command 14===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 1, or 2.&lt;br /&gt;
&lt;br /&gt;
===Command 15===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0 or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 16===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 0.&lt;br /&gt;
&lt;br /&gt;
===Command 17===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
===Command 18===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
===Command 19: enable hotspots===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to enable a list of hotspots. All of the ''u0'' numbers are small (0-13, 21).&lt;br /&gt;
&lt;br /&gt;
===Command 20: disable hotspots===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to disable a list of hotspots. All of the ''u0'' numbers are small (0-13, 21). These, unlike [[#Command 19|command 19]], can also be -1, which seems to disable the invoking hotspot.&lt;br /&gt;
&lt;br /&gt;
===Command 21===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5''&lt;br /&gt;
&lt;br /&gt;
There are this command is used 6 times.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 74, 76, 117, or 198.&lt;br /&gt;
*''u1'' is always 0, 48, 213, or 226.&lt;br /&gt;
*''u2'' is always 327, 406, 429, 459, or 544.&lt;br /&gt;
*''u3'' is always 257, 332, or 333.&lt;br /&gt;
*''u4'' is always 0, 1, 5, 6, or 11.&lt;br /&gt;
*''u5'' is always 5 or 25.&lt;br /&gt;
&lt;br /&gt;
===Command 22===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 23===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' numbers are all 0, 4, or 5.&lt;br /&gt;
&lt;br /&gt;
===Command 24===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 26===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 27===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 28===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' (&amp;lt;''l t r b''&amp;gt;|''FFFF'')&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
&lt;br /&gt;
===Command 29===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''pict_id'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''pict_id'' appears to be a picture ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0, 1, or -1).&lt;br /&gt;
&lt;br /&gt;
This command seems to copy picture ''pict_id'' over the hotspot, using &amp;lt;''l'' ''t'' ''r'' ''b''&amp;gt; as the source rect. Additional data is unknown.&lt;br /&gt;
&lt;br /&gt;
===Command 30===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' &amp;lt;''msnd_id'' ''flags''&amp;gt; [...]&lt;br /&gt;
&lt;br /&gt;
*''msnd_id'' looks like background sound ID to play.&lt;br /&gt;
*''flags'' looks like a bit field.&lt;br /&gt;
&lt;br /&gt;
Normally there is only one pair of above values, with a single exception: CHANNEL.3225 has 4 pairs.&lt;br /&gt;
&lt;br /&gt;
===Command 31===&lt;br /&gt;
*'''Variable:''' Yes (only ever 30)&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
&lt;br /&gt;
===Command 32===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 33===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''card'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''card'' appears to be a card ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0).&lt;br /&gt;
&lt;br /&gt;
===Command 34===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' is always 0, 1, 4, 5, 6, 9, 10, or 11.&lt;br /&gt;
&lt;br /&gt;
===Command 35===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' is always 0, 6, or 10.&lt;br /&gt;
&lt;br /&gt;
===Command 36===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 900 or 903.&lt;br /&gt;
&lt;br /&gt;
===Command 37===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 38===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 39===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 100, 200, 400, 500, 1000, or 1100.&lt;br /&gt;
&lt;br /&gt;
===Command 40: travel to destination age===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''dst_age_id'' ''src_msnd_id'' ''dst_msnd_id''&lt;br /&gt;
&lt;br /&gt;
*''dst_age_id'' is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny).&lt;br /&gt;
*''src_msnd_id'' is a sound ID to play in source age.&lt;br /&gt;
*''dst_msnd_id'' is a sound ID to play in destination age.&lt;br /&gt;
&lt;br /&gt;
===Command 41===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
*''u2'' is always 5 or 10.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u3'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
===Command 42===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
*''u1'' is always 5, 10, 15, or 20.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u2'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
===Command 43===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 44===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 46===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Commands 100-199==&lt;br /&gt;
These are suspected to be age-specific, as their syntax changes depending on the age.&lt;br /&gt;
===Command 100===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 6, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 101===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1''[6]]&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4225 or omitted.&lt;br /&gt;
*''u1'' is a series of 6 positive numbers.&lt;br /&gt;
&lt;br /&gt;
===Command 102===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'' ''u1'' [''u2'']]&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID (or 0).&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' looks like an (optional) bit field. (only 0x64 or 0)&lt;br /&gt;
&lt;br /&gt;
===Command 103===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''bit''&lt;br /&gt;
&lt;br /&gt;
This form of the command most likely negates bit ''bit'' of ''var''.&lt;br /&gt;
&lt;br /&gt;
*''bit'' is a power of 2 (bit mask).&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
This form of the command likely makes specified hotspot drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is a number between 13 and 18. It seems to refer to a hotspot index (see stone 2197).&lt;br /&gt;
*''u1'' is either 1 or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 104===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
This command likely makes specified hotspot not drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' can be 0, 1, omitted, or 13 to 20. It seems to refer to a hotspot index (see stone 2004 and 2197).&lt;br /&gt;
&lt;br /&gt;
===Command 105===&lt;br /&gt;
*'''Variable:''' Optional (set to 9 at one point, but usually not)&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 106===&lt;br /&gt;
*'''Variable:''' 10&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 107===&lt;br /&gt;
*'''Variable:''' 11&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 108===&lt;br /&gt;
*'''Variable:''' 12&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 109===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID).&lt;br /&gt;
&lt;br /&gt;
===Command 110===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 111===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
This command likely makes specified hotspot not drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 14 to 20 or omitted. It seems to refer to a hotspot index (see stone 2004).&lt;br /&gt;
&lt;br /&gt;
===Command 112===&lt;br /&gt;
*'''Variable:''' 29&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or 1800.&lt;br /&gt;
*''u1'' is 400 or 2000.&lt;br /&gt;
*''u2'' is 1.&lt;br /&gt;
&lt;br /&gt;
===Command 113===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 0 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 114===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 115===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' look like card ID's.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1139 1140 1140 10 6 204 64 343 279 6 50&lt;br /&gt;
&lt;br /&gt;
This form of the command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 116===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 6006.&lt;br /&gt;
&lt;br /&gt;
===Command 117===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1'' ''u2'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
*''u1'' and ''u2'' are 5698 and 6698 (only used once).&lt;br /&gt;
&lt;br /&gt;
===Command 118===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [4707 5707 6707 7707 4705]&lt;br /&gt;
&lt;br /&gt;
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 119===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 120===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 121===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or a card ID.&lt;br /&gt;
*''u1'' is a card ID.&lt;br /&gt;
&lt;br /&gt;
===Command 122===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 123===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 960.&lt;br /&gt;
*''u1'' is 960, 1920, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 124===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 125===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' 21&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 13 or 14.&lt;br /&gt;
&lt;br /&gt;
===Command 126===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 127===&lt;br /&gt;
*'''Variable:''' no&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 1, 2, or 3.&lt;br /&gt;
*''u1'' is 0 or 1.&lt;br /&gt;
&lt;br /&gt;
===Command 129===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 133===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 6500&lt;br /&gt;
&lt;br /&gt;
This command is only used once. Value is a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 164===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 169===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 198===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 199===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Commands 200-299==&lt;br /&gt;
These are only seen in the [[Myst INIT resources|INIT]] scripts.&lt;br /&gt;
===Command 200===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' DUNNY, INTRO, MECHAN, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0 u1''[3]&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
*''u1'' appears to be three sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 201===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL, INTRO, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 0 4 5&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
===Command 202===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MECHAN, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 13&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
===Command 203===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL, MECHAN, MYST, SELEN&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count''] ''u1''&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like node IDs.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 204===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 205===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count''] ''u1''&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like node IDs.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[4]&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 206===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[6]&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 207===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' STONE&lt;br /&gt;
&lt;br /&gt;
===Command 208===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
===Command 209===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 210===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 211===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 212===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 213===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 214===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 215===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 216===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 217===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 218===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 219===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 220===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 221===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 222===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
==Commands 300-399==&lt;br /&gt;
These are only seen in the [[Myst EXIT resources|EXIT]] scripts.&lt;br /&gt;
===Command 300===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 301===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 302===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 303===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 304===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 305===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 306===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 307===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 308===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 309===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 312===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:'''&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts</id>
		<title>Myst scripts</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts"/>
				<updated>2008-09-23T21:29:35Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
This page contains, or will contain, a list of all known commands in Myst, as used in record types 5, 6, 7, 8, 10, 11, and 12. The script format always starts with an unsigned short representing the command count, and then per command has this structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||opcode&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||var&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||num_values&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[num_values]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The way scripts are stored, they each contain a command number, a variable number, and any number of arguments. When a variable number is not given, a &amp;quot;0&amp;quot; is used. So when the key below says that the variable is &amp;quot;optional&amp;quot;, that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command.&lt;br /&gt;
&lt;br /&gt;
==Commands 0-99==&lt;br /&gt;
These are suspected to be general-purpose commands.&lt;br /&gt;
===Command 0===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
Seems to toggle a variable between 0 and 1. For example, see the marker switches on MYST island.&lt;br /&gt;
&lt;br /&gt;
===Command 1===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
Could mean &amp;quot;set variable to ''u0''&amp;quot;. ''u0'' takes on any number between 0 and 7 (maybe a bit field?)&lt;br /&gt;
&lt;br /&gt;
===Command 2: alternative destination===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''dest''&lt;br /&gt;
&lt;br /&gt;
This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359)&lt;br /&gt;
&lt;br /&gt;
===Command 3: change cursor===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''clrc_id''&lt;br /&gt;
&lt;br /&gt;
*''clrc_id'' is always 800, 801, or 802. (Only 5 different cases). These are the &amp;quot;animated&amp;quot; cursors of dropping the white, red, and blue pages, respectively.&lt;br /&gt;
&lt;br /&gt;
This command seems to change cursor to ''clrc_id'' if var is a certain (unknown) value.&lt;br /&gt;
&lt;br /&gt;
===Command 4===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 6===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 7===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 8===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 9===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always either ''FFFF'' or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 12===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 13|command 13]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
===Command 13===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 12|command 12]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
===Command 14===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 1, or 2.&lt;br /&gt;
&lt;br /&gt;
===Command 15===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0 or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 16===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 0.&lt;br /&gt;
&lt;br /&gt;
===Command 17===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
===Command 18===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
===Command 19: enable hotspots===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to enable a list of hotspots. All of the ''u0'' numbers are small (0-13, 21).&lt;br /&gt;
&lt;br /&gt;
===Command 20: disable hotspots===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to disable a list of hotspots. All of the ''u0'' numbers are small (0-13, 21). These, unlike [[#Command 19|command 19]], can also be -1, which seems to disable the invoking hotspot.&lt;br /&gt;
&lt;br /&gt;
===Command 21===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5''&lt;br /&gt;
&lt;br /&gt;
There are this command is used 6 times.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 74, 76, 117, or 198.&lt;br /&gt;
*''u1'' is always 0, 48, 213, or 226.&lt;br /&gt;
*''u2'' is always 327, 406, 429, 459, or 544.&lt;br /&gt;
*''u3'' is always 257, 332, or 333.&lt;br /&gt;
*''u4'' is always 0, 1, 5, 6, or 11.&lt;br /&gt;
*''u5'' is always 5 or 25.&lt;br /&gt;
&lt;br /&gt;
===Command 22===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 23===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' numbers are all 0, 4, or 5.&lt;br /&gt;
&lt;br /&gt;
===Command 24===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 26===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 27===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 28===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' (&amp;lt;''l t r b''&amp;gt;|''FFFF'')&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
&lt;br /&gt;
===Command 29===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''pict_id'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''pict_id'' appears to be a picture ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0, 1, or -1).&lt;br /&gt;
&lt;br /&gt;
This command seems to copy picture ''pict_id'' over the hotspot, using &amp;lt;''l'' ''t'' ''r'' ''b''&amp;gt; as the source rect. Additional data is unknown.&lt;br /&gt;
&lt;br /&gt;
===Command 30===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' &amp;lt;''msnd_id'' ''flags''&amp;gt; [...]&lt;br /&gt;
&lt;br /&gt;
*''msnd_id'' looks like background sound ID to play.&lt;br /&gt;
*''flags'' looks like a bit field.&lt;br /&gt;
&lt;br /&gt;
Normally there is only one pair of above values, with a single exception: CHANNEL.3225 has 4 pairs.&lt;br /&gt;
&lt;br /&gt;
===Command 31===&lt;br /&gt;
*'''Variable:''' Yes (only ever 30)&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
&lt;br /&gt;
===Command 32===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 33===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''card'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''card'' appears to be a card ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0).&lt;br /&gt;
&lt;br /&gt;
===Command 34===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' is always 0, 1, 4, 5, 6, 9, 10, or 11.&lt;br /&gt;
&lt;br /&gt;
===Command 35===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' is always 0, 6, or 10.&lt;br /&gt;
&lt;br /&gt;
===Command 36===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 900 or 903.&lt;br /&gt;
&lt;br /&gt;
===Command 37===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 38===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 39===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 100, 200, 400, 500, 1000, or 1100.&lt;br /&gt;
&lt;br /&gt;
===Command 40: travel to destination age===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''dst_age_id'' ''src_msnd_id'' ''dst_msnd_id''&lt;br /&gt;
&lt;br /&gt;
*''dst_age_id'' is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny).&lt;br /&gt;
*''src_msnd_id'' is a sound ID to play in source age.&lt;br /&gt;
*''dst_msnd_id'' is a sound ID to play in destination age.&lt;br /&gt;
&lt;br /&gt;
===Command 41===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
*''u2'' is always 5 or 10.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u3'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
===Command 42===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
*''u1'' is always 5, 10, 15, or 20.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u2'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
===Command 43===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 44===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 46===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Commands 100-199==&lt;br /&gt;
These are suspected to be age-specific, as their syntax changes depending on the age.&lt;br /&gt;
===Command 100===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 6, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 101===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1''[6]]&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4225 or omitted.&lt;br /&gt;
*''u1'' is a series of 6 positive numbers.&lt;br /&gt;
&lt;br /&gt;
===Command 102===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'' ''u1'' [''u2'']]&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID (or 0).&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' looks like an (optional) bit field. (only 0x64 or 0)&lt;br /&gt;
&lt;br /&gt;
===Command 103===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''bit''&lt;br /&gt;
&lt;br /&gt;
This form of the command most likely negates bit ''bit'' of ''var''.&lt;br /&gt;
&lt;br /&gt;
*''bit'' is a power of 2 (bit mask).&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
This form of the command likely makes specified hotspot drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is a number between 13 and 18. It seems to refer to a hotspot index (see stone 2197).&lt;br /&gt;
*''u1'' is either 1 or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 104===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
This command likely makes specified hotspot not drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' can be 0, 1, omitted, or 13 to 20. It seems to refer to a hotspot index (see stone 2004 and 2197).&lt;br /&gt;
&lt;br /&gt;
===Command 105===&lt;br /&gt;
*'''Variable:''' Optional (set to 9 at one point, but usually not)&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 106===&lt;br /&gt;
*'''Variable:''' 10&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 107===&lt;br /&gt;
*'''Variable:''' 11&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 108===&lt;br /&gt;
*'''Variable:''' 12&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 109===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID).&lt;br /&gt;
&lt;br /&gt;
===Command 110===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 111===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
This command likely makes specified hotspot not drawable.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 14 to 20 or omitted. It seems to refer to a hotspot index (see stone 2004).&lt;br /&gt;
&lt;br /&gt;
===Command 112===&lt;br /&gt;
*'''Variable:''' 29&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or 1800.&lt;br /&gt;
*''u1'' is 400 or 2000.&lt;br /&gt;
*''u2'' is 1.&lt;br /&gt;
&lt;br /&gt;
===Command 113===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 0 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 114===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 115===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' look like card ID's.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1139 1140 1140 10 6 204 64 343 279 6 50&lt;br /&gt;
&lt;br /&gt;
This form of the command is only used once.&lt;br /&gt;
&lt;br /&gt;
===Command 116===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 6006.&lt;br /&gt;
&lt;br /&gt;
===Command 117===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1'' ''u2'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
*''u1'' and ''u2'' are 5698 and 6698 (only used once).&lt;br /&gt;
&lt;br /&gt;
===Command 118===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [4707 5707 6707 7707 4705]&lt;br /&gt;
&lt;br /&gt;
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 119===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 120===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 121===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or a card ID.&lt;br /&gt;
*''u1'' is a card ID.&lt;br /&gt;
&lt;br /&gt;
===Command 122===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 123===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 960.&lt;br /&gt;
*''u1'' is 960, 1920, or omitted.&lt;br /&gt;
&lt;br /&gt;
===Command 124===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 125===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' 21&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 13 or 14.&lt;br /&gt;
&lt;br /&gt;
===Command 126===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 127===&lt;br /&gt;
*'''Variable:''' no&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 1, 2, or 3.&lt;br /&gt;
*''u1'' is 0 or 1.&lt;br /&gt;
&lt;br /&gt;
===Command 129===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 133===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 6500&lt;br /&gt;
&lt;br /&gt;
This command is only used once. Value is a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 164===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 169===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 198===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 199===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Commands 200-299==&lt;br /&gt;
These are only seen in the [[Myst INIT resources|INIT]] scripts.&lt;br /&gt;
===Command 200===&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' DUNNY, INTRO, MECHAN, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0 u1''[3]&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
*''u1'' appears to be three sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 201===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL, INTRO, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 0 4 5&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
===Command 202===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MECHAN, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 13&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
===Command 203===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' CHANNEL, MECHAN, MYST, SELEN&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count''] ''u1''&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like node IDs.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 204===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
===Command 205===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count''] ''u1''&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like node IDs.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[4]&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 206===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST, SELEN, STONE&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[6]&lt;br /&gt;
*'''Seen:''' MECHAN&lt;br /&gt;
&lt;br /&gt;
*''u0'' look like sound IDs.&lt;br /&gt;
&lt;br /&gt;
===Command 207===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' STONE&lt;br /&gt;
&lt;br /&gt;
===Command 208===&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' MYST&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
*'''Seen:''' STONE&lt;br /&gt;
&lt;br /&gt;
===Command 209===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 210===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 211===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 212===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 213===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 214===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 215===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 216===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 217===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 218===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 219===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 220===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 221===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 222===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
==Commands 300-399==&lt;br /&gt;
These are only seen in the [[Myst INIT resources|INIT]] scripts.&lt;br /&gt;
===Command 300===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 301===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 302===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 303===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 304===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
===Command 305===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 306===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 307===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 308===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 309===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:''' &lt;br /&gt;
&lt;br /&gt;
===Command 312===&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
*'''Seen:'''&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_INIT_resources</id>
		<title>Myst INIT resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_INIT_resources"/>
				<updated>2008-09-18T19:19:59Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: updating and removing the old case studies&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
&lt;br /&gt;
Each INIT resource contains a [[Myst scripts|script]] used when entering a card.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
{|class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|[[Myst scripts|Myst Script]]||script&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*''u0'' is usually 0-9.&lt;br /&gt;
*''script'' is the script ran when entering the card.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_EXIT_resources</id>
		<title>Myst EXIT resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_EXIT_resources"/>
				<updated>2008-09-18T19:18:09Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: updating and removing old case studies&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
&lt;br /&gt;
Each EXIT resource contains a [[Myst scripts|script]] used when leaving a card.&lt;br /&gt;
&lt;br /&gt;
== Format ==&lt;br /&gt;
{|class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|[[Myst scripts|Myst Script]]||script&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*''u0'' is usually 0-9.&lt;br /&gt;
*''script'' is the script used when exiting the card.&lt;br /&gt;
*''u1'' is always 1.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Mohawk_MIDI</id>
		<title>Mohawk MIDI</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Mohawk_MIDI"/>
				<updated>2008-09-17T22:03:59Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* The Header */ oops!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Mohawk MIDI format. It resembles the [[Mohawk archive format]] and [[Mohawk Sounds]] format. And, it's just a wrapper around the [http://faydoc.tripod.com/formats/mid.htm standard MIDI format]. It is in Big Endian order.&lt;br /&gt;
&lt;br /&gt;
== The Header ==&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|4 bytes||mhwk_magic&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||size&lt;br /&gt;
|-&lt;br /&gt;
|4 bytes||midi_magic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*''mhwk_magic'' is the string 'MHWK'. It's equal to the [[Mohawk archive format#IFF header|Mohawk format signature]]!&lt;br /&gt;
*''size'' is the effective resource size.&lt;br /&gt;
*''midi_magic'' is the string 'MIDI'.&lt;br /&gt;
&lt;br /&gt;
After this header come the chunks. Until now, 3 chunk types have been identified: '[[#The MThd Chunk|MThd]]', '[[#The Prg.23 Chunk|Prg#]]' and '[[#The MTrk Chunk|MTrk]]'.&lt;br /&gt;
&lt;br /&gt;
== The MThd Chunk ==&lt;br /&gt;
See [http://faydoc.tripod.com/formats/mid.htm here] for information on this chunk.&lt;br /&gt;
&lt;br /&gt;
== The Prg# Chunk ==&lt;br /&gt;
''(MIDI Programs?)''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||chunk_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The MTrk Chunk ==&lt;br /&gt;
See [http://faydoc.tripod.com/formats/mid.htm here] for information on this chunk.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Mohawk_MIDI</id>
		<title>Mohawk MIDI</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Mohawk_MIDI"/>
				<updated>2008-09-17T22:03:36Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: documenting the rest of the format (it's really the standard MIDI format...)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Mohawk MIDI format. It resembles the [[Mohawk archive format]] and [[Mohawk Sounds]] format. And, it's just a wrapper around the [http://faydoc.tripod.com/formats/mid.htm standard MIDI format]. It is in Big Endian order.&lt;br /&gt;
&lt;br /&gt;
== The Header ==&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|4 bytes||mhwk_magic&lt;br /&gt;
|-&lt;br /&gt;
|unsigned long||size&lt;br /&gt;
|-&lt;br /&gt;
|4 bytes||midi_magic&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*''mhwk_magic'' is the string 'MHWK'. It's equal to the [[Mohawk archive format#IFF header|Mohawk format signature]]!&lt;br /&gt;
*''size'' is the effective resource size, minus the ADPC chunk size, minus 2.&lt;br /&gt;
*''midi_magic'' is the string 'MIDI'.&lt;br /&gt;
&lt;br /&gt;
After this header come the chunks. Until now, 3 chunk types have been identified: '[[#The MThd Chunk|MThd]]', '[[#The Prg.23 Chunk|Prg#]]' and '[[#The MTrk Chunk|MTrk]]'.&lt;br /&gt;
&lt;br /&gt;
== The MThd Chunk ==&lt;br /&gt;
See [http://faydoc.tripod.com/formats/mid.htm here] for information on this chunk.&lt;br /&gt;
&lt;br /&gt;
== The Prg# Chunk ==&lt;br /&gt;
''(MIDI Programs?)''&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned long||chunk_size&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u0&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u1&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||u2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== The MTrk Chunk ==&lt;br /&gt;
See [http://faydoc.tripod.com/formats/mid.htm here] for information on this chunk.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_EXIT_resources</id>
		<title>Myst EXIT resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_EXIT_resources"/>
				<updated>2008-09-17T10:49:37Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: exit resources also contain scripts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
&lt;br /&gt;
Each EXIT resource contains a [[Myst scripts|script]] used when leaving a card.&lt;br /&gt;
&lt;br /&gt;
==Case studies (all of them)==&lt;br /&gt;
Note: these are presented as ''resource_index''.''length short...'' where the data is broken into shorts and displayed in decimal.&lt;br /&gt;
====CHANNEL====&lt;br /&gt;
*0.12 1 0 300 0 0 1&lt;br /&gt;
====DUNNY====&lt;br /&gt;
*0.22 2 0 300 0 0 1 0 100 0 0 1&lt;br /&gt;
====INTRO====&lt;br /&gt;
*0.22 2 0 300 0 0 1 0 38 0 0 1&lt;br /&gt;
*1.12 1 0 38 0 0 1&lt;br /&gt;
====MECHAN====&lt;br /&gt;
*0.24 2 0 27 0 1 7044 1 0 4 0 0 1&lt;br /&gt;
*1.12 1 0 300 0 0 1&lt;br /&gt;
*2.12 1 0 32 0 0 1&lt;br /&gt;
====MYST====&lt;br /&gt;
*0.12 1 0 301 0 0 1&lt;br /&gt;
*1.12 1 0 301 0 0 1&lt;br /&gt;
*2.12 1 0 301 0 0 1&lt;br /&gt;
*3.12 1 0 301 0 0 1&lt;br /&gt;
*4.12 1 0 301 0 0 1&lt;br /&gt;
*5.12 1 1 306 0 0 1&lt;br /&gt;
*6.12 1 1 306 0 0 1&lt;br /&gt;
*7.12 1 0 302 0 0 1&lt;br /&gt;
*8.12 1 0 303 0 0 1&lt;br /&gt;
*9.12 1 0 303 0 0 1&lt;br /&gt;
*10.36 3 [0 1 302 1 1 1] [0 309 0 0 1 0] [1 309 1 0 1]&lt;br /&gt;
*11.12 1 0 307 0 0 1&lt;br /&gt;
*12.24 2 [0 300 100 0 2 0] [1 309 1 0 1]&lt;br /&gt;
*13.24 2 [0 300 101 0 2 0] [1 309 1 0 1]&lt;br /&gt;
*14.12 1 [0 303 0 0 1]&lt;br /&gt;
*15.14 1 0 308 0 0 1 0&lt;br /&gt;
*16.12 1 [0 304 0 0 1]&lt;br /&gt;
*17.12 1 [0 304 0 0 1]&lt;br /&gt;
*18.22 2 [0 304 0 0 1] [0 305 0 0 1]&lt;br /&gt;
*19.12 1 [1 304 0 0 1]&lt;br /&gt;
*20.22 2 [0 304 0 0 1] [0 305 0 0 1]&lt;br /&gt;
*21.12 1 [0 304 0 0 1]&lt;br /&gt;
*22.22 2 [0 304 0 0 1] [0 305 0 0 1]&lt;br /&gt;
*23.12 1 [0 304 0 0 1]&lt;br /&gt;
*24.12 1 [0 312 0 0 1]&lt;br /&gt;
*25.66&lt;br /&gt;
 3 0 29 0 7 8708 0 0 152 165 198 107&lt;br /&gt;
 1 0 42 0 9 8707 10 6 216 129 368 294&lt;br /&gt;
 5 50 1 0 24 0 1 9707 1&lt;br /&gt;
====STONE====&lt;br /&gt;
*0.14 1 0 125 21 1 14 1&lt;br /&gt;
*1.14 1 0 125 21 1 13 1&lt;br /&gt;
*2.12 1 0 300 0 0 1&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_INIT_resources</id>
		<title>Myst INIT resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_INIT_resources"/>
				<updated>2008-09-17T10:48:27Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: init resources contain scripts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
&lt;br /&gt;
Each INIT resource contains a [[Myst scripts|script]] used when entering a card.&lt;br /&gt;
&lt;br /&gt;
==Old Case Studies==&lt;br /&gt;
====CHANNEL====&lt;br /&gt;
*0.12 1 0 1 30 1 0&lt;br /&gt;
*1.10 1 6 201 0 0&lt;br /&gt;
====DUNNY====&lt;br /&gt;
*1.18 2 0 26 0 0 0 200 0 0&lt;br /&gt;
====MYST====&lt;br /&gt;
*2.30 2 1 209 0 0 0 206 0 6 6044 7044 8044 9044 10044 11044&lt;br /&gt;
*4.18 1 0 205 0 4 6156 7156 8156 9156&lt;br /&gt;
*5.16 1 0 201 0 3 0 4 5&lt;br /&gt;
*6.12 1 0 204 0 1 6180&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_RLST_resources</id>
		<title>Myst RLST resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_RLST_resources"/>
				<updated>2008-09-17T01:52:30Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* Hotspot types */ move script structure to the scripts page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
&lt;br /&gt;
These contain Myst's hotspot descriptions.&lt;br /&gt;
&lt;br /&gt;
The data is a list of records, each record describing one of the hotspots:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|short||record_count&lt;br /&gt;
|-&lt;br /&gt;
|variable||records&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The record length is variable, depending on the hotspot type. The record structure is:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||type&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||flags&lt;br /&gt;
|-&lt;br /&gt;
|short||left&lt;br /&gt;
|-&lt;br /&gt;
|short||top&lt;br /&gt;
|-&lt;br /&gt;
|short||right&lt;br /&gt;
|-&lt;br /&gt;
|short||bottom&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||destination&lt;br /&gt;
|-&lt;br /&gt;
|variable||additional data&lt;br /&gt;
|}&lt;br /&gt;
*''type'' seems to specify the hotspot action in a wide sense. Every value between 0 and 14 except for 9 has been observed. See below for the meaning.&lt;br /&gt;
*''flags'' seems to be a bit field. Observed values are 0, 1, 2, 3, 5, 6, 8 and 10. The value seems related to when the hotspot actions should be executed. For example, regular clickable hotspots usually have ''flags'' = 2 while hotspots that run background movies (e.g. the Channelwood windmill) have ''flags'' = 0. Bit 3 is suspected to flag Zip Mode hotspots.&lt;br /&gt;
*The following 4 fields define the hotspot rectangle. Note that &amp;quot;weird&amp;quot; rectangles are found, like (-32000, -32000, 32000, 32000).&lt;br /&gt;
*''destination'' contains a destination card ID for hotspots that change card, or zero.&lt;br /&gt;
*Additional data follows when ''type'' &amp;gt; 3 (complex hotspots), clearly representing lists of actions to perform. We have yet to figure out how to calculate the length of those complex records.&lt;br /&gt;
&lt;br /&gt;
==Hotspot types==&lt;br /&gt;
Types from 0 to 4 are associated with &amp;quot;simple&amp;quot; hotspots that usually just change card. In these cases, ''type'' indicates the movement direction: forward, left, right, down and up respectively. There is no additional data in the hotspot record for these simple cases.&lt;br /&gt;
&lt;br /&gt;
Type 5 hotspots have a script attached to them. See the [[Myst_scripts|page about scripts]] for the structure of scripts.&lt;br /&gt;
&lt;br /&gt;
Type 6 hotspots play a video when activated. The record starts with a full type 5 record. Then comes a zero-terminated string (C string) which defines the path to the video file without extension. Note that after the string is read, input stream position should be padded to the next 2-byte boundary. Finally come 7 shorts whose purpose is still unknown.&lt;br /&gt;
&lt;br /&gt;
Type 7 record serves as some kind of switch statement, executing one of several action lists (or cases) indexed by the value of a variable:&lt;br /&gt;
&lt;br /&gt;
 (var_index} {num_cases} [record_type &amp;lt;record_data&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Each case itself begins with a record type, followed by additional record contents (without common prefix). Only type 5 and 6 records used in a switch statement have been observed.&lt;br /&gt;
&lt;br /&gt;
Type 8 record is like type 7, but additionally it specifies a list of subimages to draw over main WDIB. The particular subimage is chosen depending on the value of variable. This record includes the type 7 record at start.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;type_7_record&amp;gt; (var_index) {num_subs} [wdib_id &amp;lt;rectangle&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Here, each subimage record defines a source WDIB ID and a source rectangle inside this WDIB. Rectangle is defined in the usual (''left'', ''top'', ''right'', ''bottom'') format, with one exception: empty rectangle is defined as the single short -1. This is probably the case when source rectangle equals destination rectangle. Also, ''wdib_id'' itself can be -1, this probably means original WDIB for this card should be used as source WDIB.&lt;br /&gt;
&lt;br /&gt;
The remaining types are being investigated.&lt;br /&gt;
&lt;br /&gt;
==Case studies==&lt;br /&gt;
Note: these are simply the data in little-endian shorts and line-broken where patterns are found. &amp;lt;l t b r&amp;gt; is the hotspot rect. count [entry]... are guesses at when there are lists of entries. The number in parentheses before the data is the card number (not the resource number).&lt;br /&gt;
&lt;br /&gt;
The following hotspots replace part of the image (in this case &amp;lt;417 260 544 333&amp;gt;) with part of another image (in this case 3004 &amp;lt;0 0 127 73&amp;gt;) based on a variable (103 2 plays in here somewhere):&lt;br /&gt;
 8 1 &amp;lt; 31 276 163 333&amp;gt; 0 FFFF 0 103 2 3006 &amp;lt;0 0 132 57&amp;gt; 3005 FFFF&lt;br /&gt;
 8 1 &amp;lt;417 260 544 333&amp;gt; 0 FFFF 0 103 2 3004 &amp;lt;0 0 127 73&amp;gt; 3003 FFFF&lt;br /&gt;
&lt;br /&gt;
Case studies from Channelwood:&lt;br /&gt;
 (CHANNEL 3001) 2&lt;br /&gt;
 1 2   &amp;lt;1 0 110 332&amp;gt; 3002&lt;br /&gt;
 2 2 &amp;lt;455 2 544 332&amp;gt; 3003&lt;br /&gt;
&lt;br /&gt;
 (CHANNEL 3002) 2&lt;br /&gt;
 1 2   &amp;lt;0 1 100 332&amp;gt; 3005&lt;br /&gt;
 2 2 &amp;lt;431 0 544 332&amp;gt; 3001&lt;br /&gt;
&lt;br /&gt;
 (CHANNEL 3003) 4&lt;br /&gt;
 5 2 &amp;lt;213 90 343 290&amp;gt; 3494 2 [6 0 0] [24 0 1 {3494}] (the door)&lt;br /&gt;
 1 2 &amp;lt;0 0 81 332&amp;gt; 3001 (left)&lt;br /&gt;
 2 2 &amp;lt;463 0 544 332&amp;gt; 3005 (right)&lt;br /&gt;
 8 1 &amp;lt;417 260 544 333&amp;gt; 0 FFFF 0 103 2 [3004 &amp;lt;0 0 127 73&amp;gt;] [3003 &amp;lt;FFFF&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
 (CHANNEL 3005) 4&lt;br /&gt;
 0 2 &amp;lt;76 152 196 330&amp;gt; 3012&lt;br /&gt;
 1 2  &amp;lt;0   0 106 332&amp;gt; 3003&lt;br /&gt;
 2 2 &amp;lt;438  0 544 332&amp;gt; 3002&lt;br /&gt;
 8 1 &amp;lt;31 276 163 333&amp;gt; 0 FFFF 0 103 2 [3006 &amp;lt;0 0 132 57&amp;gt;] [3005 &amp;lt;FFFF&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
 (CHANNEL 3012) 8&lt;br /&gt;
 8 3 &amp;lt;101 243 214 343&amp;gt; 0 FFFF 1 5 (1 [3 103 1 {802}]) 103 2 [3013 &amp;lt;0 0 113 100&amp;gt;] [3012 &amp;lt;FFFF&amp;gt;]&lt;br /&gt;
 5 2 &amp;lt;255 193 269 208&amp;gt; 0 1 [117 0 1 {0}]&lt;br /&gt;
 5 2 &amp;lt;268 193 282 208&amp;gt; 0 1 [117 0 1 {1}]&lt;br /&gt;
 5 2 &amp;lt;281 193 295 208&amp;gt; 0 1 [117 0 1 {2}]&lt;br /&gt;
 5 2 &amp;lt;294 193 308 208&amp;gt; 0 1 [117 0 1 {3}]&lt;br /&gt;
 8 1 &amp;lt;252 190 310 210&amp;gt; 0 FFFF 0 17 4 [3008 &amp;lt;0 0 58 20&amp;gt;] [3009 &amp;lt;0 0 58 20&amp;gt;] [3010 &amp;lt;0 0 58 20&amp;gt;] [3011 &amp;lt;0 0 58 20&amp;gt;]&lt;br /&gt;
 0 4 &amp;lt;180 31 379 305&amp;gt; 0&lt;br /&gt;
 5 2 &amp;lt;0 0 544 332&amp;gt; 0 1 [34 0 2 {3005 0}]&lt;br /&gt;
&lt;br /&gt;
 (MYST 4368) 3&lt;br /&gt;
 8 3 &amp;lt;305 148 375 238&amp;gt; 0 FFFF 1 5 (1 [3 103 1 {802}]) 103 2 [FFFF &amp;lt;FFFF&amp;gt;] [4369 &amp;lt;0 0 70 90&amp;gt;]&lt;br /&gt;
 7 2 &amp;lt;216 110 304 235&amp;gt; 0 106 5&lt;br /&gt;
   5 (1 [115 101 3 {4741 4370 4368}])&lt;br /&gt;
   5 (1 [115 101 3 {4741 4370 4368}])&lt;br /&gt;
   5 (1 [115 101 3 {4741 4370 4368}])&lt;br /&gt;
   5 (1 [115 101 3 {4741 4370 4368}])&lt;br /&gt;
   5 (0)&lt;br /&gt;
 0 2 &amp;lt;0 0 544 332&amp;gt; 4345&lt;br /&gt;
&lt;br /&gt;
==== Intro Case Study ====&lt;br /&gt;
 (INTRO 1) 1&lt;br /&gt;
 0 2 &amp;lt;-32000 -32000 32000 32000&amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
INTRO 1 is supposed to be the card which shows the opening movies and then switches to card 2.&lt;br /&gt;
&lt;br /&gt;
 (INTRO 2) 1&lt;br /&gt;
 5 2 &amp;lt;245 202 304 253&amp;gt; 4 2 [37 0 0] [34 0 2 {3 11}]&lt;br /&gt;
&lt;br /&gt;
INTRO 2 is the first interactive part of the game, the part where you can pick up the Myst book. The rect correctly corresponds to where the book is on screen. But, look at the &amp;quot;destination&amp;quot; -- 4. There is no VIEW/RLST 4! However, there is a WDIB 4 and it is the open book with the water. Where this ''should'' go is to card 3 and show the Myst book cover before showing image 4 and then playing the video. And, there is a 3 in this chunk, but I'm not sure if that's the purpose. I have no idea what commands 37/34 could be. There is a WDIB 11, but it's of D'ni, so I doubt it's that. ;)&lt;br /&gt;
&lt;br /&gt;
 (INTRO 3) 2&lt;br /&gt;
 0 2 &amp;lt;-32000 -32000 32000 32000&amp;gt; 5&lt;br /&gt;
 6 0 &amp;lt;312 70 441 159&amp;gt; 0 0 &amp;quot;\qtw\intro\intro2&amp;quot; 0x2848 0x2756 0 1 0 0 0&lt;br /&gt;
&lt;br /&gt;
Note that this one has a string for the video (null-terminated). This obviously calls that video which is the Myst fly-by for the linking book. And, that rect perfectly matches where the video should be displayed on screen. However, this also clearly breaks the format specified above for &amp;quot;type 2 hotspots&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
WDIB 3 is the cover of the Myst linking book. But, this doesn't match up with the video mentioned here which should be for WDIB 4 (or 10, they are identical)(the open linking book with the water image) and eventually ending at WDIB 12 (the open linking book with the dock image). The 5 after the very large numbers is the target card for the open linking book which seems correct. 0x2848 is 10,312 and 0x2756 is 10,070. The rate of the audio is 11,025. Not sure if this has any correlation.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts</id>
		<title>Myst scripts</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts"/>
				<updated>2008-09-17T01:50:59Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: document the opcode structure on this page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
This page contains, or will contain, a list of all known commands in Myst, as used in record types 5, 6, 7, 8, 10, 11, and 12. The script format always starts with an unsigned short representing the command count, and then per command has this structure:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||opcode&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||var&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||num_values&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||values[num_values]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The way scripts are stored, they each contain a command number, a variable number, and any number of arguments. When a variable number is not given, a &amp;quot;0&amp;quot; is used. So when the key below says that the variable is &amp;quot;optional&amp;quot;, that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Command 0==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
Seems to toggle a variable between 0 and 1. For example, see the marker switches on MYST island.&lt;br /&gt;
&lt;br /&gt;
==Command 1==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
Could mean &amp;quot;set variable to ''u0''&amp;quot;. ''u0'' takes on any number between 0 and 7 (maybe a bit field?)&lt;br /&gt;
&lt;br /&gt;
==Command 2: alternative destination==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''dest''&lt;br /&gt;
&lt;br /&gt;
This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359)&lt;br /&gt;
&lt;br /&gt;
==Command 3: change cursor==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''clrc_id''&lt;br /&gt;
&lt;br /&gt;
*''clrc_id'' is always 800, 801, or 802. (Only 5 different cases). These are the &amp;quot;animated&amp;quot; cursors of dropping the white, red, and blue pages, respectively.&lt;br /&gt;
&lt;br /&gt;
This command seems to change cursor to ''clrc_id'' if var is a certain (unknown) value.&lt;br /&gt;
&lt;br /&gt;
==Command 4==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 6==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 7==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 8==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 9==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always either ''FFFF'' or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 12==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 13|command 13]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
==Command 13==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 12|command 12]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
==Command 14==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 1, or 2.&lt;br /&gt;
&lt;br /&gt;
==Command 15==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 16==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 0.&lt;br /&gt;
&lt;br /&gt;
==Command 17==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
==Command 18==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
==Command 19: enable hotspots==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to enable a list of hotspots. All of the ''u0'' numbers are small (0-13, 21).&lt;br /&gt;
&lt;br /&gt;
==Command 20: disable hotspots==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
This seems to disable a list of hotspots. All of the ''u0'' numbers are small (0-13, 21). These, unlike [[#Command 19|command 19]], can also be -1, which seems to disable the invoking hotspot.&lt;br /&gt;
&lt;br /&gt;
==Command 21==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5''&lt;br /&gt;
&lt;br /&gt;
There are this command is used 6 times.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 74, 76, 117, or 198.&lt;br /&gt;
*''u1'' is always 0, 48, 213, or 226.&lt;br /&gt;
*''u2'' is always 327, 406, 429, 459, or 544.&lt;br /&gt;
*''u3'' is always 257, 332, or 333.&lt;br /&gt;
*''u4'' is always 0, 1, 5, 6, or 11.&lt;br /&gt;
*''u5'' is always 5 or 25.&lt;br /&gt;
&lt;br /&gt;
==Command 22==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 23==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' numbers are all 0, 4, or 5.&lt;br /&gt;
&lt;br /&gt;
==Command 24==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 26==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 27==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 28==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' (&amp;lt;''l t r b''&amp;gt;|''FFFF'')&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
&lt;br /&gt;
==Command 29==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''pict_id'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''pict_id'' appears to be a picture ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0, 1, or -1).&lt;br /&gt;
&lt;br /&gt;
This command seems to copy picture ''pict_id'' over the hotspot, using &amp;lt;''l'' ''t'' ''r'' ''b''&amp;gt; as the source rect. Additional data is unknown.&lt;br /&gt;
&lt;br /&gt;
==Command 30==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' &amp;lt;''msnd_id'' ''flags''&amp;gt; [...]&lt;br /&gt;
&lt;br /&gt;
*''msnd_id'' looks like background sound ID to play.&lt;br /&gt;
*''flags'' looks like a bit field.&lt;br /&gt;
&lt;br /&gt;
Normally there is only one pair of above values, with a single exception: CHANNEL.3225 has 4 pairs.&lt;br /&gt;
&lt;br /&gt;
==Command 31==&lt;br /&gt;
*'''Variable:''' Yes (only ever 30)&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
&lt;br /&gt;
==Command 32==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 33==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''card'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''card'' appears to be a card ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0).&lt;br /&gt;
&lt;br /&gt;
==Command 34==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' is always 0, 1, 4, 5, 6, 9, 10, or 11.&lt;br /&gt;
&lt;br /&gt;
==Command 35==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' is always 0, 6, or 10.&lt;br /&gt;
&lt;br /&gt;
==Command 36==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 900 or 903.&lt;br /&gt;
&lt;br /&gt;
==Command 37==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 38==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 39==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 100, 200, 400, 500, 1000, or 1100.&lt;br /&gt;
&lt;br /&gt;
==Command 40: travel to destination age==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''dst_age_id'' ''src_msnd_id'' ''dst_msnd_id''&lt;br /&gt;
&lt;br /&gt;
*''dst_age_id'' is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny).&lt;br /&gt;
*''src_msnd_id'' is a sound ID to play in source age.&lt;br /&gt;
*''dst_msnd_id'' is a sound ID to play in destination age.&lt;br /&gt;
&lt;br /&gt;
==Command 41==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
*''u2'' is always 5 or 10.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u3'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
==Command 42==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
*''u1'' is always 5, 10, 15, or 20.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u2'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
==Command 43==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 44==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 46==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 100==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 6, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 101==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1''[6]]&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4225 or omitted.&lt;br /&gt;
*''u1'' is a series of 6 positive numbers.&lt;br /&gt;
&lt;br /&gt;
==Command 102==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'' ''u1'' [''u2'']]&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID (or 0).&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' looks like an (optional) bit field. (only 0x64 or 0)&lt;br /&gt;
&lt;br /&gt;
==Command 103==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''bit''&lt;br /&gt;
&lt;br /&gt;
This form of the command most likely negates bit ''bit'' of ''var''.&lt;br /&gt;
&lt;br /&gt;
*''bit'' is a power of 2 (bit mask).&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
This form of the command is unknown.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is a number between 13 and 18.&lt;br /&gt;
*''u1'' is either 1 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 104==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' can be 0, 1, omitted, or 13 to 20. It seems to refer to a hotspot index (see stone 2004).&lt;br /&gt;
&lt;br /&gt;
==Command 105==&lt;br /&gt;
*'''Variable:''' Optional (set to 9 at one point, but usually not)&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 106==&lt;br /&gt;
*'''Variable:''' 10&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 107==&lt;br /&gt;
*'''Variable:''' 11&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 108==&lt;br /&gt;
*'''Variable:''' 12&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 109==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID).&lt;br /&gt;
&lt;br /&gt;
==Command 110==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 111==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 14 to 20 or omitted. It seems to refer to a hotspot index (see stone 2004).&lt;br /&gt;
&lt;br /&gt;
==Command 112==&lt;br /&gt;
*'''Variable:''' 29&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or 1800.&lt;br /&gt;
*''u1'' is 400 or 2000.&lt;br /&gt;
*''u2'' is 1.&lt;br /&gt;
&lt;br /&gt;
==Command 113==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 0 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 114==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 115==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' look like card ID's.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1139 1140 1140 10 6 204 64 343 279 6 50&lt;br /&gt;
&lt;br /&gt;
This form of the command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 116==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 6006.&lt;br /&gt;
&lt;br /&gt;
==Command 117==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1'' ''u2'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
*''u1'' and ''u2'' are 5698 and 6698 (only used once).&lt;br /&gt;
&lt;br /&gt;
==Command 118==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [4707 5707 6707 7707 4705]&lt;br /&gt;
&lt;br /&gt;
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs.&lt;br /&gt;
&lt;br /&gt;
==Command 119==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 120==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 121==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or a card ID.&lt;br /&gt;
*''u1'' is a card ID.&lt;br /&gt;
&lt;br /&gt;
==Command 122==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 123==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 960.&lt;br /&gt;
*''u1'' is 960, 1920, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 124==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 125==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' 21&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 13 or 14.&lt;br /&gt;
&lt;br /&gt;
==Command 126==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 127==&lt;br /&gt;
*'''Variable:''' no&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 1, 2, or 3.&lt;br /&gt;
*''u1'' is 0 or 1.&lt;br /&gt;
&lt;br /&gt;
==Command 129==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 133==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 6500&lt;br /&gt;
&lt;br /&gt;
This command is only used once. Value is a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 164==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 169==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 198==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 199==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts</id>
		<title>Myst scripts</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts"/>
				<updated>2008-09-10T20:17:46Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: use the term &amp;quot;card&amp;quot; instead of &amp;quot;node&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
This page contains, or will contain, a list of all known commands in Myst, as used in record types 5, 6, 7, 8, 10, 11, and 12. Specifics on the format itself can be found at [[Myst RLST resources]]. The way scripts are stored, they each contain a command number, a variable number, and any number of arguments. When a variable number is not given, a &amp;quot;0&amp;quot; is used. So when the key below says that the variable is &amp;quot;optional&amp;quot;, that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command.&lt;br /&gt;
&lt;br /&gt;
==Command 0==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 1==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' takes on any number between 0 and 7 (maybe a bit field?)&lt;br /&gt;
&lt;br /&gt;
==Command 2: alternative destination==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''dest''&lt;br /&gt;
&lt;br /&gt;
This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359)&lt;br /&gt;
&lt;br /&gt;
==Command 3: change cursor==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''clrc_id''&lt;br /&gt;
&lt;br /&gt;
*''clrc_id'' is always 800, 801, or 802. (Only 5 different cases). These are the &amp;quot;animated&amp;quot; cursors of dropping the white, red, and blue pages, respectively.&lt;br /&gt;
&lt;br /&gt;
This command seems to change cursor to ''clrc_id'' if var is a certain (unknown) value.&lt;br /&gt;
&lt;br /&gt;
==Command 4==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 6==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 7==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 8==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 9==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always either ''FFFF'' or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 12==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 13|command 13]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
==Command 13==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 12|command 12]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
==Command 14==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 1, or 2.&lt;br /&gt;
&lt;br /&gt;
==Command 15==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 16==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 0.&lt;br /&gt;
&lt;br /&gt;
==Command 17==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby card.&lt;br /&gt;
*''u1'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
==Command 18==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
==Command 19==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*All of the ''u0'' numbers are small (0-13, 21).&lt;br /&gt;
&lt;br /&gt;
==Command 20==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*All of the ''u0'' numbers are small (0-13, 21). These, unlike [[#Command 19|command 19]], can also be ''FFFF''.&lt;br /&gt;
&lt;br /&gt;
==Command 21==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5''&lt;br /&gt;
&lt;br /&gt;
There are this command is used 6 times.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 74, 76, 117, or 198.&lt;br /&gt;
*''u1'' is always 0, 48, 213, or 226.&lt;br /&gt;
*''u2'' is always 327, 406, 429, 459, or 544.&lt;br /&gt;
*''u3'' is always 257, 332, or 333.&lt;br /&gt;
*''u4'' is always 0, 1, 5, 6, or 11.&lt;br /&gt;
*''u5'' is always 5 or 25.&lt;br /&gt;
&lt;br /&gt;
==Command 22==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 23==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' numbers are all 0, 4, or 5.&lt;br /&gt;
&lt;br /&gt;
==Command 24==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 26==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 27==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 28==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' (&amp;lt;''l t r b''&amp;gt;|''FFFF'')&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
&lt;br /&gt;
==Command 29==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''card'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''card'' appears to be a card ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0, 1, or ''FFFF'').&lt;br /&gt;
&lt;br /&gt;
==Command 30==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' &amp;lt;''msnd_id'' ''flags''&amp;gt; [...]&lt;br /&gt;
&lt;br /&gt;
*''msnd_id'' looks like background sound ID to play.&lt;br /&gt;
*''flags'' looks like a bit field.&lt;br /&gt;
&lt;br /&gt;
Normally there is only one pair of above values, with a single exception: CHANNEL.3225 has 4 pairs.&lt;br /&gt;
&lt;br /&gt;
==Command 31==&lt;br /&gt;
*'''Variable:''' Yes (only ever 30)&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
&lt;br /&gt;
==Command 32==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 33==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''card'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''card'' appears to be a card ID.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0).&lt;br /&gt;
&lt;br /&gt;
==Command 34==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' is always 0, 1, 4, 5, 6, 9, 10, or 11.&lt;br /&gt;
&lt;br /&gt;
==Command 35==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' is always 0, 6, or 10.&lt;br /&gt;
&lt;br /&gt;
==Command 36==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 900 or 903.&lt;br /&gt;
&lt;br /&gt;
==Command 37==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 38==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 39==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 100, 200, 400, 500, 1000, or 1100.&lt;br /&gt;
&lt;br /&gt;
==Command 40: travel to destination age==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''dst_age_id'' ''src_msnd_id'' ''dst_msnd_id''&lt;br /&gt;
&lt;br /&gt;
*''dst_age_id'' is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny).&lt;br /&gt;
*''src_msnd_id'' is a sound ID to play in source age.&lt;br /&gt;
*''dst_msnd_id'' is a sound ID to play in destination age.&lt;br /&gt;
&lt;br /&gt;
==Command 41==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
*''u2'' is always 5 or 10.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u3'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
==Command 42==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
*''u1'' is always 5, 10, 15, or 20.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u2'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
==Command 43==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 44==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 46==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 100==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 6, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 101==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1''[6]]&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4225 or omitted.&lt;br /&gt;
*''u1'' is a series of 6 positive numbers.&lt;br /&gt;
&lt;br /&gt;
==Command 102==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'' ''u1'' [''u2'']]&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a card ID (or 0).&lt;br /&gt;
*''u1'' looks like a card ID.&lt;br /&gt;
*''u2'' looks like an (optional) bit field. (only 0x64 or 0)&lt;br /&gt;
&lt;br /&gt;
==Command 103==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''bit''&lt;br /&gt;
&lt;br /&gt;
This form of the command most likely negates bit ''bit'' of ''var''.&lt;br /&gt;
&lt;br /&gt;
*''bit'' is a power of 2 (bit mask).&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
This form of the command is unknown.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is a number between 13 and 18.&lt;br /&gt;
*''u1'' is either 1 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 104==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' can be 0, 1, omitted, or 13 to 20.&lt;br /&gt;
&lt;br /&gt;
==Command 105==&lt;br /&gt;
*'''Variable:''' Optional (set to 9 at one point, but usually not)&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 106==&lt;br /&gt;
*'''Variable:''' 10&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 107==&lt;br /&gt;
*'''Variable:''' 11&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 108==&lt;br /&gt;
*'''Variable:''' 12&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 109==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID).&lt;br /&gt;
&lt;br /&gt;
==Command 110==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 111==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 14 to 20 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 112==&lt;br /&gt;
*'''Variable:''' 29&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or 1800.&lt;br /&gt;
*''u1'' is 400 or 2000.&lt;br /&gt;
*''u2'' is 1.&lt;br /&gt;
&lt;br /&gt;
==Command 113==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 0 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 114==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 115==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' look like card ID's.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1139 1140 1140 10 6 204 64 343 279 6 50&lt;br /&gt;
&lt;br /&gt;
This form of the command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 116==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 6006.&lt;br /&gt;
&lt;br /&gt;
==Command 117==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1'' ''u2'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
*''u1'' and ''u2'' are 5698 and 6698 (only used once).&lt;br /&gt;
&lt;br /&gt;
==Command 118==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [4707 5707 6707 7707 4705]&lt;br /&gt;
&lt;br /&gt;
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs.&lt;br /&gt;
&lt;br /&gt;
==Command 119==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 120==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 121==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or a card ID.&lt;br /&gt;
*''u1'' is a card ID.&lt;br /&gt;
&lt;br /&gt;
==Command 122==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 123==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 960.&lt;br /&gt;
*''u1'' is 960, 1920, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 124==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 125==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' 21&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 13 or 14.&lt;br /&gt;
&lt;br /&gt;
==Command 126==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 127==&lt;br /&gt;
*'''Variable:''' no&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 1, 2, or 3.&lt;br /&gt;
*''u1'' is 0 or 1.&lt;br /&gt;
&lt;br /&gt;
==Command 129==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 133==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 6500&lt;br /&gt;
&lt;br /&gt;
This command is only used once. Value is a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 164==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 169==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 198==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 199==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts</id>
		<title>Myst scripts</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts"/>
				<updated>2008-09-10T20:09:57Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* Command 30 */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
This page contains, or will contain, a list of all known commands in Myst, as used in record types 5, 6, 7, 8, 10, 11, and 12. Specifics on the format itself can be found at [[Myst RLST resources]]. The way scripts are stored, they each contain a command number, a variable number, and any number of arguments. When a variable number is not given, a &amp;quot;0&amp;quot; is used. So when the key below says that the variable is &amp;quot;optional&amp;quot;, that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command.&lt;br /&gt;
&lt;br /&gt;
==Command 0==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 1==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' takes on any number between 0 and 7 (maybe a bit field?)&lt;br /&gt;
&lt;br /&gt;
==Command 2: alternative destination==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''dest''&lt;br /&gt;
&lt;br /&gt;
This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359)&lt;br /&gt;
&lt;br /&gt;
==Command 3: change cursor==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''clrc_id''&lt;br /&gt;
&lt;br /&gt;
*''clrc_id'' is always 800, 801, or 802. (Only 5 different cases). These are the &amp;quot;animated&amp;quot; cursors of dropping the white, red, and blue pages, respectively.&lt;br /&gt;
&lt;br /&gt;
This command seems to change cursor to ''clrc_id'' if var is a certain (unknown) value.&lt;br /&gt;
&lt;br /&gt;
==Command 4==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 6==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 7==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 8==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 9==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always either ''FFFF'' or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 12==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 13|command 13]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby node.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
==Command 13==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 12|command 12]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby node.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
==Command 14==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 1, or 2.&lt;br /&gt;
&lt;br /&gt;
==Command 15==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 16==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby node.&lt;br /&gt;
*''u1'' is always 0.&lt;br /&gt;
&lt;br /&gt;
==Command 17==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby node.&lt;br /&gt;
*''u1'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
==Command 18==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
==Command 19==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*All of the ''u0'' numbers are small (0-13, 21).&lt;br /&gt;
&lt;br /&gt;
==Command 20==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*All of the ''u0'' numbers are small (0-13, 21). These, unlike [[#Command 19|command 19]], can also be ''FFFF''.&lt;br /&gt;
&lt;br /&gt;
==Command 21==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5''&lt;br /&gt;
&lt;br /&gt;
There are this command is used 6 times.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 74, 76, 117, or 198.&lt;br /&gt;
*''u1'' is always 0, 48, 213, or 226.&lt;br /&gt;
*''u2'' is always 327, 406, 429, 459, or 544.&lt;br /&gt;
*''u3'' is always 257, 332, or 333.&lt;br /&gt;
*''u4'' is always 0, 1, 5, 6, or 11.&lt;br /&gt;
*''u5'' is always 5 or 25.&lt;br /&gt;
&lt;br /&gt;
==Command 22==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 23==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' numbers are all 0, 4, or 5.&lt;br /&gt;
&lt;br /&gt;
==Command 24==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 26==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 27==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 28==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' (&amp;lt;''l t r b''&amp;gt;|''FFFF'')&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
&lt;br /&gt;
==Command 29==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''node'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''node'' appears to be a node number.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0, 1, or ''FFFF'').&lt;br /&gt;
&lt;br /&gt;
==Command 30==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' &amp;lt;''msnd_id'' ''flags''&amp;gt; [...]&lt;br /&gt;
&lt;br /&gt;
*''msnd_id'' looks like background sound ID to play.&lt;br /&gt;
*''flags'' looks like a bit field.&lt;br /&gt;
&lt;br /&gt;
Normally there is only one pair of above values, with a single exception: CHANNEL.3225 has 4 pairs.&lt;br /&gt;
&lt;br /&gt;
==Command 31==&lt;br /&gt;
*'''Variable:''' Yes (only ever 30)&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0.&lt;br /&gt;
*''u1'' looks like a node number.&lt;br /&gt;
&lt;br /&gt;
==Command 32==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 33==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''node'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''node'' appears to be a node number.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0).&lt;br /&gt;
&lt;br /&gt;
==Command 34==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a node number.&lt;br /&gt;
*''u1'' is always 0, 1, 4, 5, 6, 9, 10, or 11.&lt;br /&gt;
&lt;br /&gt;
==Command 35==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a node number.&lt;br /&gt;
*''u1'' looks like a node number.&lt;br /&gt;
*''u2'' is always 0, 6, or 10.&lt;br /&gt;
&lt;br /&gt;
==Command 36==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 900 or 903.&lt;br /&gt;
&lt;br /&gt;
==Command 37==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 38==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 39==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 100, 200, 400, 500, 1000, or 1100.&lt;br /&gt;
&lt;br /&gt;
==Command 40: travel to destination age==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''dst_age_id'' ''src_msnd_id'' ''dst_msnd_id''&lt;br /&gt;
&lt;br /&gt;
*''dst_age_id'' is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny).&lt;br /&gt;
*''src_msnd_id'' is a sound ID to play in source age.&lt;br /&gt;
*''dst_msnd_id'' is a sound ID to play in destination age.&lt;br /&gt;
&lt;br /&gt;
==Command 41==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a node number.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
*''u2'' is always 5 or 10.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u3'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
==Command 42==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
*''u1'' is always 5, 10, 15, or 20.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u2'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
==Command 43==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 44==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 46==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 100==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 6, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 101==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1''[6]]&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4225 or omitted.&lt;br /&gt;
*''u1'' is a series of 6 positive numbers.&lt;br /&gt;
&lt;br /&gt;
==Command 102==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'' ''u1'' [''u2'']]&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a node number (or 0).&lt;br /&gt;
*''u1'' looks like a node number.&lt;br /&gt;
*''u2'' looks like an (optional) bit field. (only 0x64 or 0)&lt;br /&gt;
&lt;br /&gt;
==Command 103==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''bit''&lt;br /&gt;
&lt;br /&gt;
This form of the command most likely negates bit ''bit'' of ''var''.&lt;br /&gt;
&lt;br /&gt;
*''bit'' is a power of 2 (bit mask).&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
This form of the command is unknown.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is a number between 13 and 18.&lt;br /&gt;
*''u1'' is either 1 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 104==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' can be 0, 1, omitted, or 13 to 20.&lt;br /&gt;
&lt;br /&gt;
==Command 105==&lt;br /&gt;
*'''Variable:''' Optional (set to 9 at one point, but usually not)&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 106==&lt;br /&gt;
*'''Variable:''' 10&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 107==&lt;br /&gt;
*'''Variable:''' 11&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 108==&lt;br /&gt;
*'''Variable:''' 12&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 109==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID).&lt;br /&gt;
&lt;br /&gt;
==Command 110==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 111==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 14 to 20 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 112==&lt;br /&gt;
*'''Variable:''' 29&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or 1800.&lt;br /&gt;
*''u1'' is 400 or 2000.&lt;br /&gt;
*''u2'' is 1.&lt;br /&gt;
&lt;br /&gt;
==Command 113==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 0 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 114==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 115==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' look like node numbers.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1139 1140 1140 10 6 204 64 343 279 6 50&lt;br /&gt;
&lt;br /&gt;
This form of the command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 116==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 6006.&lt;br /&gt;
&lt;br /&gt;
==Command 117==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1'' ''u2'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
*''u1'' and ''u2'' are 5698 and 6698 (only used once).&lt;br /&gt;
&lt;br /&gt;
==Command 118==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [4707 5707 6707 7707 4705]&lt;br /&gt;
&lt;br /&gt;
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs.&lt;br /&gt;
&lt;br /&gt;
==Command 119==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 120==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 121==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or a node number.&lt;br /&gt;
*''u1'' is a node number.&lt;br /&gt;
&lt;br /&gt;
==Command 122==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 123==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 960.&lt;br /&gt;
*''u1'' is 960, 1920, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 124==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 125==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' 21&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 13 or 14.&lt;br /&gt;
&lt;br /&gt;
==Command 126==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 127==&lt;br /&gt;
*'''Variable:''' no&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 1, 2, or 3.&lt;br /&gt;
*''u1'' is 0 or 1.&lt;br /&gt;
&lt;br /&gt;
==Command 129==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 133==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 6500&lt;br /&gt;
&lt;br /&gt;
This command is only used once. Value is a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 164==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 169==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 198==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 199==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Talk:Myst_scripts</id>
		<title>Talk:Myst scripts</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Talk:Myst_scripts"/>
				<updated>2008-09-10T20:07:08Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: comment on command 40&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Command 40 ==&lt;br /&gt;
The Age ID makes sense, but what about the destination card? Perhaps that second MSND id is really the card id. -[[User:Clone2727|Clone2727]] 22:07, 10 September 2008 (CEST)&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts</id>
		<title>Myst scripts</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_scripts"/>
				<updated>2008-09-10T19:55:54Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: mention about the cursors being &amp;quot;animated&amp;quot; cursors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
This page contains, or will contain, a list of all known commands in Myst, as used in record types 5, 6, 7, 8, 10, 11, and 12. Specifics on the format itself can be found at [[Myst RLST resources]]. The way scripts are stored, they each contain a command number, a variable number, and any number of arguments. When a variable number is not given, a &amp;quot;0&amp;quot; is used. So when the key below says that the variable is &amp;quot;optional&amp;quot;, that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command.&lt;br /&gt;
&lt;br /&gt;
==Command 0==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 1==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' takes on any number between 0 and 7 (maybe a bit field?)&lt;br /&gt;
&lt;br /&gt;
==Command 2: alternative destination==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''dest''&lt;br /&gt;
&lt;br /&gt;
This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359)&lt;br /&gt;
&lt;br /&gt;
==Command 3: change cursor==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''clrc_id''&lt;br /&gt;
&lt;br /&gt;
*''clrc_id'' is always 800, 801, or 802. (Only 5 different cases). These are the &amp;quot;animated&amp;quot; cursors of dropping the white, red, and blue pages, respectively.&lt;br /&gt;
&lt;br /&gt;
This command seems to change cursor to ''clrc_id'' if var is a certain (unknown) value.&lt;br /&gt;
&lt;br /&gt;
==Command 4==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 6==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 7==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 8==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 9==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always either ''FFFF'' or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 12==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 13|command 13]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby node.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
==Command 13==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
''Related to [[#Command 12|command 12]]''.&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby node.&lt;br /&gt;
&lt;br /&gt;
This may have similar function to [[#Command 2|command 2]].&lt;br /&gt;
&lt;br /&gt;
==Command 14==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 1, or 2.&lt;br /&gt;
&lt;br /&gt;
==Command 15==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 16==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby node.&lt;br /&gt;
*''u1'' is always 0.&lt;br /&gt;
&lt;br /&gt;
==Command 17==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a nearby node.&lt;br /&gt;
*''u1'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
==Command 18==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 5, or 6.&lt;br /&gt;
&lt;br /&gt;
==Command 19==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*All of the ''u0'' numbers are small (0-13, 21).&lt;br /&gt;
&lt;br /&gt;
==Command 20==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*All of the ''u0'' numbers are small (0-13, 21). These, unlike [[#Command 19|command 19]], can also be ''FFFF''.&lt;br /&gt;
&lt;br /&gt;
==Command 21==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5''&lt;br /&gt;
&lt;br /&gt;
There are this command is used 6 times.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0, 74, 76, 117, or 198.&lt;br /&gt;
*''u1'' is always 0, 48, 213, or 226.&lt;br /&gt;
*''u2'' is always 327, 406, 429, 459, or 544.&lt;br /&gt;
*''u3'' is always 257, 332, or 333.&lt;br /&gt;
*''u4'' is always 0, 1, 5, 6, or 11.&lt;br /&gt;
*''u5'' is always 5 or 25.&lt;br /&gt;
&lt;br /&gt;
==Command 22==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 23==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''count'' ''u0''[''count'']&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' numbers are all 0, 4, or 5.&lt;br /&gt;
&lt;br /&gt;
==Command 24==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 26==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 27==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' appears to be a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 28==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' (&amp;lt;''l t r b''&amp;gt;|''FFFF'')&lt;br /&gt;
&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
&lt;br /&gt;
==Command 29==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''node'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''node'' appears to be a node number.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0, 1, or ''FFFF'').&lt;br /&gt;
&lt;br /&gt;
==Command 30==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' &amp;lt;''msnd_id'' ''flags''&amp;gt; [...]&lt;br /&gt;
&lt;br /&gt;
*''msnd_id'' looks like background sound ID to play.&lt;br /&gt;
*''flags'' looks like a bit field.&lt;br /&gt;
&lt;br /&gt;
Normally the is only one pair of above values, with a single exception: CHANNEL.3225 has 4 pairs.&lt;br /&gt;
&lt;br /&gt;
==Command 31==&lt;br /&gt;
*'''Variable:''' Yes (only ever 30)&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 0.&lt;br /&gt;
*''u1'' looks like a node number.&lt;br /&gt;
&lt;br /&gt;
==Command 32==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 33==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''node'' &amp;lt;''l t r b''&amp;gt; ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''node'' appears to be a node number.&lt;br /&gt;
*&amp;lt;''l t r b''&amp;gt; often corresponds with the intended location of one of the sub-images in the VIEW resources.&lt;br /&gt;
*''u0'' appears to be a variable number (it is sometimes 0).&lt;br /&gt;
*''u1'' may also be a variable number (it is sometimes 0).&lt;br /&gt;
&lt;br /&gt;
==Command 34==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a node number.&lt;br /&gt;
*''u1'' is always 0, 1, 4, 5, 6, 9, 10, or 11.&lt;br /&gt;
&lt;br /&gt;
==Command 35==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a node number.&lt;br /&gt;
*''u1'' looks like a node number.&lt;br /&gt;
*''u2'' is always 0, 6, or 10.&lt;br /&gt;
&lt;br /&gt;
==Command 36==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 900 or 903.&lt;br /&gt;
&lt;br /&gt;
==Command 37==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 38==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 39==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 100, 200, 400, 500, 1000, or 1100.&lt;br /&gt;
&lt;br /&gt;
==Command 40: travel to destination age==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''dst_age_id'' ''src_msnd_id'' ''dst_msnd_id''&lt;br /&gt;
&lt;br /&gt;
*''dst_age_id'' is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny).&lt;br /&gt;
*''src_msnd_id'' is a sound ID to play in source age.&lt;br /&gt;
*''dst_msnd_id'' is a sound ID to play in destination age.&lt;br /&gt;
&lt;br /&gt;
==Command 41==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a node number.&lt;br /&gt;
*''u1'' looks like a sound ID.&lt;br /&gt;
*''u2'' is always 5 or 10.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u3'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
==Command 42==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
*''u1'' is always 5, 10, 15, or 20.&lt;br /&gt;
*''count'' is only ever 6 or 12.&lt;br /&gt;
*''u2'' may be divided into groups of sixes.&lt;br /&gt;
&lt;br /&gt;
==Command 43==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 44==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 46==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 100==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4, 6, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 101==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1''[6]]&lt;br /&gt;
&lt;br /&gt;
*''u0'' is always 4225 or omitted.&lt;br /&gt;
*''u1'' is a series of 6 positive numbers.&lt;br /&gt;
&lt;br /&gt;
==Command 102==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'' ''u1'' [''u2'']]&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a node number (or 0).&lt;br /&gt;
*''u1'' looks like a node number.&lt;br /&gt;
*''u2'' looks like an (optional) bit field. (only 0x64 or 0)&lt;br /&gt;
&lt;br /&gt;
==Command 103==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''bit''&lt;br /&gt;
&lt;br /&gt;
This form of the command most likely negates bit ''bit'' of ''var''.&lt;br /&gt;
&lt;br /&gt;
*''bit'' is a power of 2 (bit mask).&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
This form of the command is unknown.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is a number between 13 and 18.&lt;br /&gt;
*''u1'' is either 1 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 104==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' can be 0, 1, omitted, or 13 to 20.&lt;br /&gt;
&lt;br /&gt;
==Command 105==&lt;br /&gt;
*'''Variable:''' Optional (set to 9 at one point, but usually not)&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 106==&lt;br /&gt;
*'''Variable:''' 10&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 107==&lt;br /&gt;
*'''Variable:''' 11&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 108==&lt;br /&gt;
*'''Variable:''' 12&lt;br /&gt;
*'''Arguments:''' 2287 (looks like sound ID)&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 109==&lt;br /&gt;
*'''Variable:''' Optional&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID).&lt;br /&gt;
&lt;br /&gt;
==Command 110==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 111==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 14 to 20 or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 112==&lt;br /&gt;
*'''Variable:''' 29&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1'' ''u2''&lt;br /&gt;
&lt;br /&gt;
This command is only used twice.&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or 1800.&lt;br /&gt;
*''u1'' is 400 or 2000.&lt;br /&gt;
*''u2'' is 1.&lt;br /&gt;
&lt;br /&gt;
==Command 113==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 0 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 114==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 115==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' ''u0''[3]&lt;br /&gt;
&lt;br /&gt;
*The ''u0'' look like node numbers.&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 1139 1140 1140 10 6 204 64 343 279 6 50&lt;br /&gt;
&lt;br /&gt;
This form of the command is only used once.&lt;br /&gt;
&lt;br /&gt;
==Command 116==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 6006.&lt;br /&gt;
&lt;br /&gt;
==Command 117==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0''|''u1'' ''u2'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
*''u1'' and ''u2'' are 5698 and 6698 (only used once).&lt;br /&gt;
&lt;br /&gt;
==Command 118==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [4707 5707 6707 7707 4705]&lt;br /&gt;
&lt;br /&gt;
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs.&lt;br /&gt;
&lt;br /&gt;
==Command 119==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 120==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' [''u0'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, 2, 3, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 121==&lt;br /&gt;
*'''Variable:''' Yes&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0 or a node number.&lt;br /&gt;
*''u1'' is a node number.&lt;br /&gt;
&lt;br /&gt;
==Command 122==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 123==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0'' [''u1'']&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 0, 1, or 960.&lt;br /&gt;
*''u1'' is 960, 1920, or omitted.&lt;br /&gt;
&lt;br /&gt;
==Command 124==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 125==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
*'''Variable:''' 21&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 13 or 14.&lt;br /&gt;
&lt;br /&gt;
==Command 126==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 127==&lt;br /&gt;
*'''Variable:''' no&lt;br /&gt;
*'''Arguments:''' ''u0'' ''u1''&lt;br /&gt;
&lt;br /&gt;
*''u0'' is 1, 2, or 3.&lt;br /&gt;
*''u1'' is 0 or 1.&lt;br /&gt;
&lt;br /&gt;
==Command 129==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' ''u0''&lt;br /&gt;
&lt;br /&gt;
*''u0'' looks like a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 133==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 6500&lt;br /&gt;
&lt;br /&gt;
This command is only used once. Value is a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 164==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 169==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;br /&gt;
&lt;br /&gt;
==Command 198==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10&lt;br /&gt;
&lt;br /&gt;
This command is only used once. 5143 is likely a sound ID.&lt;br /&gt;
&lt;br /&gt;
==Command 199==&lt;br /&gt;
*'''Variable:''' No&lt;br /&gt;
*'''Arguments:''' None&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	<entry>
		<id>http://insidethelink.ortiche.net/wiki/index.php/Myst_RLST_resources</id>
		<title>Myst RLST resources</title>
		<link rel="alternate" type="text/html" href="http://insidethelink.ortiche.net/wiki/index.php/Myst_RLST_resources"/>
				<updated>2008-09-10T19:53:19Z</updated>
		
		<summary type="html">&lt;p&gt;Clone2727: /* Hotspot types */ typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Myst}}&lt;br /&gt;
&lt;br /&gt;
These contain Myst's hotspot descriptions.&lt;br /&gt;
&lt;br /&gt;
The data is a list of records, each record describing one of the hotspots:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|short||record_count&lt;br /&gt;
|-&lt;br /&gt;
|variable||records&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The record length is variable, depending on the hotspot type. The record structure is:&lt;br /&gt;
{| class=&amp;quot;structure&amp;quot;&lt;br /&gt;
|unsigned short||type&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||flags&lt;br /&gt;
|-&lt;br /&gt;
|short||left&lt;br /&gt;
|-&lt;br /&gt;
|short||top&lt;br /&gt;
|-&lt;br /&gt;
|short||right&lt;br /&gt;
|-&lt;br /&gt;
|short||bottom&lt;br /&gt;
|-&lt;br /&gt;
|unsigned short||destination&lt;br /&gt;
|-&lt;br /&gt;
|variable||additional data&lt;br /&gt;
|}&lt;br /&gt;
*''type'' seems to specify the hotspot action in a wide sense. Every value between 0 and 14 except for 9 has been observed. See below for the meaning.&lt;br /&gt;
*''flags'' seems to be a bit field. Observed values are 0, 1, 2, 3, 5, 6 and 8. Bit 3 is suspected to flag Zip Mode hotspots.&lt;br /&gt;
*The following 4 fields define the hotspot rectangle. Note that &amp;quot;weird&amp;quot; rectangles are found, like (-32000, -32000, 32000, 32000).&lt;br /&gt;
*''destination'' contains a destination card ID for hotspots that change card, or zero.&lt;br /&gt;
*Additional data follows when ''type'' &amp;gt; 3 (complex hotspots), clearly representing lists of actions to perform. We have yet to figure out how to calculate the length of those complex records.&lt;br /&gt;
&lt;br /&gt;
==Hotspot types==&lt;br /&gt;
Types from 0 to 4 are associated with &amp;quot;simple&amp;quot; hotspots that usually just change card. In these cases, ''type'' indicates the movement direction: forward, left, right, down and up respectively. There is no additional data in the hotspot record for these simple cases.&lt;br /&gt;
&lt;br /&gt;
Type 5 hotspots seems to define some sort of action list to execute when the hotspot is clicked. The additional data takes this form:&lt;br /&gt;
&lt;br /&gt;
 {num_actions} [opcode (var_index) {num_values} [values]]&lt;br /&gt;
&lt;br /&gt;
See the [[Myst_scripts|page about scripts]] for more info.&lt;br /&gt;
&lt;br /&gt;
Type 6 hotspots play a video when activated. The record starts with a full type 5 record. Then comes a zero-terminated string (C string) which defines the path to the video file without extension. Note that after the string is read, input stream position should be padded to the next 2-byte boundary. Finally come 7 shorts whose purpose is still unknown.&lt;br /&gt;
&lt;br /&gt;
Type 7 record serves as some kind of switch statement, executing one of several action lists (or cases) indexed by the value of a variable:&lt;br /&gt;
&lt;br /&gt;
 (var_index} {num_cases} [record_type &amp;lt;record_data&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Each case itself begins with a record type, followed by additional record contents (without common prefix). Only type 5 and 6 records used in a switch statement have been observed.&lt;br /&gt;
&lt;br /&gt;
Type 8 record specifies a list of subimages to draw over main WDIB. Particular subimage is chosen depending on the value of variable. This record also includes type 7 record at start (which in turn includes type 5 record and more).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;type_7_record&amp;gt; (var_index) {num_subs} [wdib_id &amp;lt;rectangle&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
Here, each subimage record defines a source WDIB ID and a source rectangle inside this WDIB. Rectangle is defined in the usual (''left'', ''top'', ''right'', ''bottom'') format, with one exception: empty rectangle is defined as the single short -1. This is probably the case when source rectangle equals destination rectangle. Also, ''wdib_id'' itself can be -1, this probably means original WDIB for this card should be used as source WDIB.&lt;br /&gt;
&lt;br /&gt;
The remaining types are being investigated.&lt;br /&gt;
&lt;br /&gt;
==Case studies==&lt;br /&gt;
Note: these are simply the data in little-endian shorts and line-broken where patterns are found. &amp;lt;l t b r&amp;gt; is the hotspot rect. count [entry]... are guesses at when there are lists of entries. The number in parentheses before the data is the card number (not the resource number).&lt;br /&gt;
&lt;br /&gt;
The following hotspots replace part of the image (in this case &amp;lt;417 260 544 333&amp;gt;) with part of another image (in this case 3004 &amp;lt;0 0 127 73&amp;gt;) based on a variable (103 2 plays in here somewhere):&lt;br /&gt;
 8 1 &amp;lt; 31 276 163 333&amp;gt; 0 FFFF 0 103 2 3006 &amp;lt;0 0 132 57&amp;gt; 3005 FFFF&lt;br /&gt;
 8 1 &amp;lt;417 260 544 333&amp;gt; 0 FFFF 0 103 2 3004 &amp;lt;0 0 127 73&amp;gt; 3003 FFFF&lt;br /&gt;
&lt;br /&gt;
Case studies from Channelwood:&lt;br /&gt;
 (CHANNEL 3001) 2&lt;br /&gt;
 1 2   &amp;lt;1 0 110 332&amp;gt; 3002&lt;br /&gt;
 2 2 &amp;lt;455 2 544 332&amp;gt; 3003&lt;br /&gt;
&lt;br /&gt;
 (CHANNEL 3002) 2&lt;br /&gt;
 1 2   &amp;lt;0 1 100 332&amp;gt; 3005&lt;br /&gt;
 2 2 &amp;lt;431 0 544 332&amp;gt; 3001&lt;br /&gt;
&lt;br /&gt;
 (CHANNEL 3003) 4&lt;br /&gt;
 5 2 &amp;lt;213 90 343 290&amp;gt; 3494 2 [6 0 0] [24 0 1 {3494}] (the door)&lt;br /&gt;
 1 2 &amp;lt;0 0 81 332&amp;gt; 3001 (left)&lt;br /&gt;
 2 2 &amp;lt;463 0 544 332&amp;gt; 3005 (right)&lt;br /&gt;
 8 1 &amp;lt;417 260 544 333&amp;gt; 0 FFFF 0 103 2 [3004 &amp;lt;0 0 127 73&amp;gt;] [3003 &amp;lt;FFFF&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
 (CHANNEL 3005) 4&lt;br /&gt;
 0 2 &amp;lt;76 152 196 330&amp;gt; 3012&lt;br /&gt;
 1 2  &amp;lt;0   0 106 332&amp;gt; 3003&lt;br /&gt;
 2 2 &amp;lt;438  0 544 332&amp;gt; 3002&lt;br /&gt;
 8 1 &amp;lt;31 276 163 333&amp;gt; 0 FFFF 0 103 2 [3006 &amp;lt;0 0 132 57&amp;gt;] [3005 &amp;lt;FFFF&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
 (CHANNEL 3012) 8&lt;br /&gt;
 8 3 &amp;lt;101 243 214 343&amp;gt; 0 FFFF 1 5 (1 [3 103 1 {802}]) 103 2 [3013 &amp;lt;0 0 113 100&amp;gt;] [3012 &amp;lt;FFFF&amp;gt;]&lt;br /&gt;
 5 2 &amp;lt;255 193 269 208&amp;gt; 0 1 [117 0 1 {0}]&lt;br /&gt;
 5 2 &amp;lt;268 193 282 208&amp;gt; 0 1 [117 0 1 {1}]&lt;br /&gt;
 5 2 &amp;lt;281 193 295 208&amp;gt; 0 1 [117 0 1 {2}]&lt;br /&gt;
 5 2 &amp;lt;294 193 308 208&amp;gt; 0 1 [117 0 1 {3}]&lt;br /&gt;
 8 1 &amp;lt;252 190 310 210&amp;gt; 0 FFFF 0 17 4 [3008 &amp;lt;0 0 58 20&amp;gt;] [3009 &amp;lt;0 0 58 20&amp;gt;] [3010 &amp;lt;0 0 58 20&amp;gt;] [3011 &amp;lt;0 0 58 20&amp;gt;]&lt;br /&gt;
 0 4 &amp;lt;180 31 379 305&amp;gt; 0&lt;br /&gt;
 5 2 &amp;lt;0 0 544 332&amp;gt; 0 1 [34 0 2 {3005 0}]&lt;br /&gt;
&lt;br /&gt;
 (MYST 4368) 3&lt;br /&gt;
 8 3 &amp;lt;305 148 375 238&amp;gt; 0 FFFF 1 5 (1 [3 103 1 {802}]) 103 2 [FFFF &amp;lt;FFFF&amp;gt;] [4369 &amp;lt;0 0 70 90&amp;gt;]&lt;br /&gt;
 7 2 &amp;lt;216 110 304 235&amp;gt; 0 106 5&lt;br /&gt;
   5 (1 [115 101 3 {4741 4370 4368}])&lt;br /&gt;
   5 (1 [115 101 3 {4741 4370 4368}])&lt;br /&gt;
   5 (1 [115 101 3 {4741 4370 4368}])&lt;br /&gt;
   5 (1 [115 101 3 {4741 4370 4368}])&lt;br /&gt;
   5 (0)&lt;br /&gt;
 0 2 &amp;lt;0 0 544 332&amp;gt; 4345&lt;br /&gt;
&lt;br /&gt;
==== Intro Case Study ====&lt;br /&gt;
See a bit below for where the game starts, INTRO 0. Here's INTRO 1, because it's more deciphered than that.&lt;br /&gt;
&lt;br /&gt;
 (INTRO 1) 1&lt;br /&gt;
 5 2 &amp;lt;245 202 304 253&amp;gt; 4 2 [37 0 0] [34 0 2 {3 11}]&lt;br /&gt;
&lt;br /&gt;
INTRO 1 is the first interactive part of the game, the part where you can pick up the Myst book. The rect correctly corresponds to where the book is on screen. But, look at the &amp;quot;destination&amp;quot; -- 4. There is no VIEW/RLST 4! However, there is a WDIB 4 and it is the open book with the water. Where this ''should'' go is to card 3 and show the Myst book cover before showing image 4 and then playing the video. And, there is a 3 in this chunk, but I'm not sure if that's the purpose. I have no idea what commands 37/34 could be. There is a WDIB 11, but it's of D'ni, so I doubt it's that. ;)&lt;br /&gt;
&lt;br /&gt;
 (INTRO 2) 2&lt;br /&gt;
 0 2 &amp;lt;-32000 -32000 32000 32000&amp;gt; 5&lt;br /&gt;
 6 0 &amp;lt;312 70 441 159&amp;gt; 0 0 &amp;quot;\qtw\intro\intro2&amp;quot; 0x2848 0x2756 0 1 0 0 0&lt;br /&gt;
&lt;br /&gt;
Note that this one has a string for the video (null-terminated). This obviously calls that video which is the Myst fly-by for the linking book. And, that rect perfectly matches where the video should be displayed on screen. However, this also clearly breaks the format specified above for &amp;quot;type 2 hotspots&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
WDIB 3 is the cover of the Myst linking book. But, this doesn't match up with the video mentioned here which should be for WDIB 4 (or 10, they are identical)(the open linking book with the water image) and eventually ending at WDIB 12 (the open linking book with the dock image). The 5 after the very large numbers is the target card for the open linking book which seems correct. 0x2848 is 10,312 and 0x2756 is 10,070. The rate of the audio is 11,025. Not sure if this has any correlation.&lt;br /&gt;
&lt;br /&gt;
 (INTRO 0) 1&lt;br /&gt;
 0 2 &amp;lt;-32000 -32000 32000 32000&amp;gt; 5&lt;br /&gt;
&lt;br /&gt;
This is the same as the first record of INTRO 2. My guess is that this is some sort of call to an external command. INTRO 0 is supposed to be the card which shows the opening movies and then switches to card 2.&lt;/div&gt;</summary>
		<author><name>Clone2727</name></author>	</entry>

	</feed>