Myst VIEW resources
VIEW resources are the candidate Myst card representations, as they glue other resources together. In particular they seem to describe what to show on screen, what sound to play and where to find additional data about the card.
Original hints by Petroff Heroj.
The data is split into five sections with variable size and different meanings:
- card flags
- element list
- other resources
This is just
card_flags seems either 0 or 1. It's 0 for regular cards, while 1 is suspected to disable game saving in that card.
This section defines the card background picture, which may be static or dependent on the values of variables. The section starts with
If count = 0 then there is a single, static background picture and the whole section reduces to
|unsigned short||count = 0|
where picture_id is the WDIB (or PICT) resource ID.
Otherwise, if count > 0, the section contains count conditional blocks:
Each conditional block associates a variable with an array of picture IDs:
The card will use the value of the specified variable to index the ID array and display that picture.
This section specifies ambient sounds for the card.
If sound is -1 or -3, the section stops here.
If sound is not negative or -2, the section includes a second field:
Finally, if sound is -4, there is a conditional block similar to those in the picture section:
|short||sound = -4|
Each sound specification is a single short, followed by a second one if it's not negative or -2, similarly to what happens for the first field of the section.
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). A 1 would mean a single WDIB, a 2 would mean a single MSND and each of these follows with an unsigned short representing the resource ID. 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 4 has also been observed, but that does not have any other shorts attached to it.
The final section points to associated resources that further describe the card, namely RLST, HINT, INIT and EXIT:
These values can be zero, indicating that the corresponding resource does not exist (i.e. a card might not have an associated HINT). It happens that all the IDs match the VIEW ID when they are not zero. Furthermore, rlst_id is always set: no cards exist without hotspot descriptions.
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|