Difference between revisions of "Myst RLST resources"
m (sorted up the intro) |
(restyle based on new knowledge) |
||
Line 3: | Line 3: | ||
These seem to contain Myst's hotspot data. | These seem to contain Myst's hotspot data. | ||
− | There are the same number of RLST and [[Myst_VIEW_resources|VIEW]] resources in all Myst packages and we suspect RLST resources are associated | + | There are the same number of RLST and [[Myst_VIEW_resources|VIEW]] resources in all Myst packages and we suspect RLST resources are associated with their cards by sharing the ID with the corresponding VIEW, similarly to what happens in Riven with CARDs and HSPTs. |
+ | The data represents a list of records, each record describing one of the hotspots: | ||
{| class="structure" | {| class="structure" | ||
− | |short|| | + | |short||record_count |
+ | |- | ||
+ | |variable||records | ||
|} | |} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | The record content and length seems to depend on the leading fields of the record. However, there seems to be a common structure: | ||
{| class="structure" | {| class="structure" | ||
− | |short|| | + | |unsigned short||action |
|- | |- | ||
− | |short|| | + | |unsigned short||flags |
|- | |- | ||
|short||left | |short||left | ||
Line 28: | Line 26: | ||
|short||bottom | |short||bottom | ||
|- | |- | ||
− | |short||destination | + | |unsigned short||destination |
+ | |- | ||
+ | |variable||additional data | ||
|} | |} | ||
+ | *''action'' seems to specify the hotspot action in a wide sense. Observed values are 0, 1, 2, 3, 5, 6 and 8. Low values (under 5) seem associated with "simple" hotspots that usually just change card. Higher values indicate complex actions (movies, picking up pages etc.) | ||
+ | *''flags'' seems to be a bit field. It is usually set to 2, 3 or 4. Bit 3 is suspected to flag Zip Mode hotspots. | ||
+ | *The following 4 fields define the hotspot rectangle. Note that "weird" rectangles are found, like (-32000, -32000, 32000, 32000). | ||
+ | *''destination'' contains a destination card ID for hotspots that change card, or zero. | ||
+ | *Additional data follows when ''action'' > 3 (complex hotspots), clearly representing lists of actions to perform. We have yet to figure out how to calculare the length of those complex records. | ||
====Case studies==== | ====Case studies==== | ||
− | + | Note: these are simply the data in little-endian shorts and line-broken where patterns are found. <l t b r> 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). | |
+ | |||
+ | The following hotspots replacee part of the image (in this case <417 260 544 333>) with part of another image (in this case 3004 <0 0 127 73>) based on a variable (103 2 plays in here somewhere): | ||
+ | 8 1 < 31 276 163 333> 0 FFFF 0 103 2 3006 <0 0 132 57> 3005 FFFF | ||
+ | 8 1 <417 260 544 333> 0 FFFF 0 103 2 3004 <0 0 127 73> 3003 FFFF | ||
+ | |||
(CHANNEL 3001) 2 | (CHANNEL 3001) 2 | ||
1 2 <1 0 110 332> 3002 | 1 2 <1 0 110 332> 3002 |
Revision as of 09:38, 8 September 2008
Myst | |||
Mohawk | Overview | ||
CLRC | EXIT | HINT | INIT |
MJMP | MSND | PICT | RLST |
VIEW | WDIB | HELP | RSFL |
Scripts | Variables |
These seem to contain Myst's hotspot data.
There are the same number of RLST and VIEW resources in all Myst packages and we suspect RLST resources are associated with their cards by sharing the ID with the corresponding VIEW, similarly to what happens in Riven with CARDs and HSPTs.
The data represents a list of records, each record describing one of the hotspots:
short | record_count |
variable | records |
The record content and length seems to depend on the leading fields of the record. However, there seems to be a common structure:
unsigned short | action |
unsigned short | flags |
short | left |
short | top |
short | right |
short | bottom |
unsigned short | destination |
variable | additional data |
- action seems to specify the hotspot action in a wide sense. Observed values are 0, 1, 2, 3, 5, 6 and 8. Low values (under 5) seem associated with "simple" hotspots that usually just change card. Higher values indicate complex actions (movies, picking up pages etc.)
- flags seems to be a bit field. It is usually set to 2, 3 or 4. Bit 3 is suspected to flag Zip Mode hotspots.
- The following 4 fields define the hotspot rectangle. Note that "weird" rectangles are found, like (-32000, -32000, 32000, 32000).
- destination contains a destination card ID for hotspots that change card, or zero.
- Additional data follows when action > 3 (complex hotspots), clearly representing lists of actions to perform. We have yet to figure out how to calculare the length of those complex records.
Case studies
Note: these are simply the data in little-endian shorts and line-broken where patterns are found. <l t b r> 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).
The following hotspots replacee part of the image (in this case <417 260 544 333>) with part of another image (in this case 3004 <0 0 127 73>) based on a variable (103 2 plays in here somewhere):
8 1 < 31 276 163 333> 0 FFFF 0 103 2 3006 <0 0 132 57> 3005 FFFF 8 1 <417 260 544 333> 0 FFFF 0 103 2 3004 <0 0 127 73> 3003 FFFF
(CHANNEL 3001) 2 1 2 <1 0 110 332> 3002 2 2 <455 2 544 332> 3003
(CHANNEL 3002) 2 1 2 <0 1 100 332> 3005 2 2 <431 0 544 332> 3001
(CHANNEL 3003) 4 5 2 <213 90 343 290> 3494 (the door) 2 6 0 0 24 0 1 3494 1 2 <0 0 81 332> 3001 (left) 2 2 <463 0 544 332> 3005 (right) 8 1 <417 260 544 333> 0 FFFF 0 103 2 3004 <0 0 127 73> 3003 FFFF
(CHANNEL 3005) 4 0 2 <76 152 196 330> 3012 1 2 <0 0 106 332> 3003 2 2 <438 0 544 332> 3002 8 1 <31 276 163 333> 0 FFFF 0 103 2 3006 <0 0 132 57> 3005 FFFF
(CHANNEL 3012) 8 8 3 <101 243 214 343> 0 FFFF 1 5 1 3 <103 1 802 103> 2 3013 <0 0 113 100> 3012 FFFF 5 2 <255 193 269 208> 0 1 117 0 1 0 5 2 <268 193 282 208> 0 1 117 0 1 1 5 2 <281 193 295 208> 0 1 117 0 1 2 5 2 <294 193 308 208> 0 1 117 0 1 3 8 1 <252 190 310 210> 0 FFFF 0 17 4 [3008 <0 0 58 20>] [3009 <0 0 58 20>] [3010 <0 0 58 20>] [3011 <0 0 58 20>] 0 4 <180 31 379 305> 0 5 2 <0 0 544 332> 0 1 34 0 2 3005 0
(MYST 4368) 3 8 3 <305 148 375 238> 0 FFFF 1 [5 1 3 103 1 802] 103 2 FFFF FFFF 4369 <0 0 70 90> 7 2 <216 110 304 235> 0 106 5 5 1 115 101 3 4741 4370 4368 5 1 115 101 3 4741 4370 4368 5 1 115 101 3 4741 4370 4368 5 1 115 101 3 4741 4370 4368 5 0 0 2 <0 0 544 332> 4345
Intro Case Study
See a bit below for where the game starts, INTRO 0. Here's INTRO 1, because it's more deciphered than that.
(INTRO 1) 1 5 2 <245 202 304 253> 4 2 37 0 0 34 0 2 3 11
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 "destination" -- 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 the 37/34 could mean. There is a WDIB 11, but it's of D'ni, so I doubt it's that. ;)
(INTRO 2) 2 0 2 -32000 -32000 32000 32000 5 6 0 <312 70 441 159> "\qtw\intro\intro2" 0x2848 0x2756 0 1 0 0 0
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 "type 2 hotspots".
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.
(INTRO 0) 1 0 2 -32000 -32000 32000 32000 5
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.