Difference between revisions of "Myst VIEW resources"
m (cosmetic fixes) |
(new format 1) |
||
Line 1: | Line 1: | ||
{{Myst}} | {{Myst}} | ||
− | VIEW resources are the candidate Myst card representations, as they | + | 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. | Original hints by Petroff Heroj. | ||
− | = Basic Format = | + | =Basic Format= |
− | The data | + | The data is split into five sections with variable size and different meanings: |
+ | *card flags | ||
+ | *pictures | ||
+ | *sounds | ||
+ | *element list | ||
+ | *other resources | ||
+ | |||
+ | ==Card flags== | ||
+ | This is just | ||
+ | {| class="structure" | ||
+ | |unsigned short||card_flags | ||
+ | |} | ||
+ | ''card_flags'' seems either 0 or 1. It's 0 for regular cards, while 1 is suspected to disable game saving in that card. | ||
== Conditional Images == | == Conditional Images == |
Revision as of 13:14, 15 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 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.
Contents
Basic Format
The data is split into five sections with variable size and different meanings:
- card flags
- pictures
- sounds
- element list
- other resources
Card flags
This is just
unsigned short | card_flags |
card_flags seems either 0 or 1. It's 0 for regular cards, while 1 is suspected to disable game saving in that card.
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 (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:
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). 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.
Glue segment
The final section points to associated resources that further describe the card, namely RLST, HINT, INIT and EXIT:
unsigned short | rlst_id |
unsigned short | hint_id |
unsigned short | init_id |
unsigned short | exit_id |
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)
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 |