Myst VIEW resources
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.
The data seems split into four sections with different meanings: conditional images, main section and two unknown sections.
The first section seems to provide lists of pictures, and the value of specified variables should define which pictures to show.
- u0 is unknown (always either 0 or 1).
- image_count is the number of conditional image blocks (always either 0 or 1).
- conditional_images are the conditional image blocks.
The image blocks have the following structure:
- 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.
The main section seems to provide basic info about the card:
- 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.
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).
The final block is four unsigned shorts, whose meaning is not yet established. Every short here is either 0 or the card ID. In addition, the first short in this section is always the card ID, never 0.
- 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.
- Tito thinks that they are respectively the associated RLST, HINT, INIT and EXIT resource IDs, which happen to always share the VIEW ID if they exist. If one of these resources does not exist, its field is set to zero. The first field would always be the VIEW ID because no cards exist without hotspots.
Old Case Studies
image name and sub-images (akin to Riven PLSTs)
|name||neg.||bytes||(name name 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.
|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|
|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|
|116||1||1||40||2||4292||4294||FFFC 40 2 4292 00_50||4292||x0060||2||1 4293||2 5292||4292||4292||0||0|
|287||1||1||34||3||4698||4701||4702||xFFFD||4||1 4699||2 4698||2 5698||2 6698||4698||4698||4698||4698|