Difference between revisions of "Myst VIEW resources"

From A look inside The Link @ wiki
Jump to: navigation, search
m (sorted up the intro)
m (small cosmetic things)
Line 6: Line 6:
  
 
= Basic Format =
 
= Basic Format =
 +
The data seems split into four sections with different meanings: conditional images, main section and two unknown sections.
  
 
== Conditional Images ==
 
== Conditional Images ==
 +
The first section seems to provide lists of pictures, and the value of specified variables should define which pictures to show.
 
{| class="structure"
 
{| class="structure"
 
|unsigned short||u0
 
|unsigned short||u0
Line 15: Line 17:
 
|variable||conditional_images
 
|variable||conditional_images
 
|}
 
|}
 
 
*''u0'' is unknown.
 
*''u0'' is unknown.
*''image_count'' is the amount of images to check against.  
+
*''image_count'' is the number of conditional image blocks.  
 
+
*''conditional_images'' are the conditional image blocks.
*''conditional_images'' is a count of these records:
+
The image blocks have the following structure:
 
+
 
{| class="structure"
 
{| class="structure"
|unsigned short||var
+
|unsigned short||variable
 
|-
 
|-
 
|unsigned short||num_states
 
|unsigned short||num_states
 +
|-
 +
|unsigned short||image_ids[num_states]
 
|}
 
|}
 
+
*''variable'' is the variable to check against.
*''var'' is the variable to check against.
+
*''image_ids'' is an array of ''num_states'' unsigned shorts representing WDIB (or PICT) IDs.
*''num_states'' is the number of image id's.
+
The variable value is the index of what image to use in the ''image_ids'' array.
 
+
Then, there are ''num_states'' unsigned shorts representing an image id. The variable is the index of what to use in the table.  
+
  
 
== Main Segment ==
 
== Main Segment ==
 
+
The main section seems to provide basic info about the card:
Following that, is this structure:
+
 
+
 
{| class="structure"
 
{| class="structure"
 
|unsigned short||main_image
 
|unsigned short||main_image
Line 43: Line 41:
 
|unsigned short||flags
 
|unsigned short||flags
 
|}
 
|}
 
 
*''main_image'' is the main image to show on the screen. (Kind of like the default case).
 
*''main_image'' is the main image to show on the screen. (Kind of like the default case).
 
*''sound'' is the sound id to play. If it is less than 0, it acts like a flag to pause, continue sound (-1?), or stop the current sound (what means what still needs to be checked).
 
*''sound'' is the sound id to play. If it is less than 0, it acts like a flag to pause, continue sound (-1?), or stop the current sound (what means what still needs to be checked).
Line 49: Line 46:
  
 
== Unknown Segment ==
 
== Unknown Segment ==
 
 
TODO: I haven't completely figured this out. Petroff's guess was that it preloaded resources. However, it doesn't make sense that it is like that. It starts with an unsigned short representing the count. Then, following that is an unsigned short (which he believed to be the resource type to load). If it was 3 then there would be an array of WDIB's (an array of unsigned shorts, starting with a count and an unknown -- each unsigned shorts). A 1 would mean a single WDIB, a 2 would mean a single MSND (each represented by an unsigned short).
 
TODO: I haven't completely figured this out. Petroff's guess was that it preloaded resources. However, it doesn't make sense that it is like that. It starts with an unsigned short representing the count. Then, following that is an unsigned short (which he believed to be the resource type to load). If it was 3 then there would be an array of WDIB's (an array of unsigned shorts, starting with a count and an unknown -- each unsigned shorts). A 1 would mean a single WDIB, a 2 would mean a single MSND (each represented by an unsigned short).
  

Revision as of 21:49, 7 September 2008

Myst
Mohawk Overview
CLRC EXIT HINT INIT
MJMP MSND PICT RLST
VIEW WDIB HELP RSFL
Scripts Variables

VIEW resources are the candidate Myst card representations, as they seem to glue other resources together like WDIB and MSND. In particular they seem to describe what to show on screen and what sound to play.

Original hints by Petroff Heroj.

Basic Format

The data seems split into four sections with different meanings: conditional images, main section and two unknown sections.

Conditional Images

The first section seems to provide lists of pictures, and the value of specified variables should define which pictures to show.

unsigned short u0
unsigned short image_count
variable conditional_images
  • u0 is unknown.
  • image_count is the number of conditional image blocks.
  • conditional_images are the conditional image blocks.

The image blocks have the following structure:

unsigned short variable
unsigned short num_states
unsigned short image_ids[num_states]
  • variable is the variable to check against.
  • image_ids is an array of num_states unsigned shorts representing WDIB (or PICT) IDs.

The variable value is the index of what image to use in the image_ids array.

Main Segment

The main section seems to provide basic info about the card:

unsigned short main_image
signed short sound
unsigned short flags
  • main_image is the main image to show on the screen. (Kind of like the default case).
  • sound is the sound id to play. If it is less than 0, it acts like a flag to pause, continue sound (-1?), or stop the current sound (what means what still needs to be checked).
  • flags appears to be flags.

Unknown Segment

TODO: I haven't completely figured this out. Petroff's guess was that it preloaded resources. However, it doesn't make sense that it is like that. It starts with an unsigned short representing the count. Then, following that is an unsigned short (which he believed to be the resource type to load). If it was 3 then there would be an array of WDIB's (an array of unsigned shorts, starting with a count and an unknown -- each unsigned shorts). A 1 would mean a single WDIB, a 2 would mean a single MSND (each represented by an unsigned short).

More Unknown

Following that is four unsigned shorts. Petroff's guess was that they represented RLST, HINT, EXIT, and INIT respectively. But, that doesn't line up with the resources that exist in the files. More likely, those resources are dependent upon the card id.

Old Case Studies

image name and sub-images (akin to Riven PLSTs)

0 0 3001 -1 0/0 3001 3001 0 0
name neg. bytes (name name 0 0)
0 0 3002 -2 0/144 0 3002 3002 0 0
0 0 3003 -2 0/144 1 [1 3004] 3003 3003 0 0
name ? count entry (name name 0 0)
  • I think 3004 is the name of a sub-image (small image to be placed in another) of 3003 here.
0 0 3005 3005 0/144 1 [1 3006] 3005 3005 0 0
name twice (name name 0 0)
0 0 3012 -2 0/50 5 [1 3013] [1 3008] [1 3009] [1 3010] [1 3011] 3012 0 0 3012
name ? count entries (name 0 0 name)
14 1 1 5 2 3030 3031 FFFC 3 2 3031 00_A0 4031 x00A0 2 2 4030 1 3030 3031 3031 0 0
44 1 1 2 2 3095 3096 FFFC 15 2 3095 00_A0 4095 x00A0 4 2 4095 1 3562 1 3097 2 5095 3095 3095 3095 0
348 1 1 16 2 3536 3535 3535 x0060 0 3535 3535 0 0
359 1 1 5 2 3550 3552 FFFC 3 2 6552 00_80 3552 x0080 4 4 3550 4 3552 2 4552 2 5552 3552 3552 0 0
47 1 1 10 2 4140 4141 5141 x0090 1 2 4141 4141 4141 4141 4141
50 1 1 10 2 4148 4149 4149 x0090 0 4149 4149 4149 0
51 1 1 10 2 4150 4151 FFFE x0070 0 4150 4150 0 0
94 1 1 10 2 4243 4244 4244 x0050 0 4244 4244 0 0
116 1 1 40 2 4292 4294 FFFC 40 2 4292 00_50 4292 x0060 2 1 4293 2 5292 4292 4292 0 0
145 1 1 0 2 4358 4357 FFFE x0030 0 4357 4357 0 0
287 1 1 34 3 4698 4701 4702 xFFFD 4 1 4699 2 4698 2 5698 2 6698 4698 4698 4698 4698
295 1 1 10 2 4717 4719 4717 x0040 1 1 4718 4717 4717 0 0