|
|
(18 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| {{Myst}} | | {{Myst}} |
− | This page contains or will contain a comprehensive analysis of the 8 resources in Myst (and the two added in Myst ME). | + | This page lists resource types used by the Myst and Myst ME engines. |
| | | |
− | Both Myst and Myst ME use little-endian byte order in the files (by contrast to the big-endian byte order used in Riven and the Mohawk format), although the data itself is stored in properly formatted Mohawk format (don't let the .dni or .dat file extension fool you). The packages in Myst ME are:
| + | The original Myst uses the following resource types: |
− | *CHANNEL | + | * [[Myst_CLRC_resources|CLRC]] |
− | *CREDITS | + | * [[Myst_EXIT_resources|EXIT]] |
− | *DUNNY | + | * [[Myst_HINT_resources|HINT]] |
− | *INTRO | + | * [[Myst_INIT_resources|INIT]] |
− | *MECHAN | + | * [[Myst_MSND_resources|MSND]] |
− | *MYST | + | * [[Myst_RLST_resources|RLST]] |
− | *SELEN | + | * [[Myst_RSFL_resources|RSFL]] |
− | *STONE | + | * [[Myst_VIEW_resources|VIEW]] |
− | *SYSTEM | + | * [[Myst_WDIB_resources|WDIB]] |
− | The resources are on the left (MJMP and PICT are new in ME). None of the resources are named except for the MSND/MJMP resources.
| + | |
| | | |
− | ==CLRC==
| + | Myst Masterpiece Edition introduces three new types: |
− | All CLRC resources follow the pattern:
| + | * [[Myst_HELP_resources|HELP]] |
− | {| class="structure"
| + | * [[Myst_MJMP_resources|MJMP]] |
− | |short||u1 | + | * [[Myst_PICT_resources|PICT]] |
− | |- | + | |
− | |short||u2
| + | |
− | |}
| + | |
− | *''u1'' and ''u2'' are both 1, 6, 7, 8, 9, or 14 for all files
| + | |
| | | |
− | ==EXIT==
| + | None of the resources are named except for MSND and MJMP. |
− | I think these are variables, although that seems unlikely because SELEN has no EXIT resources.
| + | |
− | <noinclude>===Case studies (all of them)===
| + | |
− | Note: these are presented as ''resource_index''.''length short...'' where the data is broken into shorts and displayed in decimal.
| + | |
− | ====CHANNEL====
| + | |
− | *0.12 1 0 300 0 0 1
| + | |
− | ====DUNNY====
| + | |
− | *0.22 2 0 300 0 0 1 0 100 0 0 1
| + | |
− | ====INTRO====
| + | |
− | *0.22 2 0 300 0 0 1 0 38 0 0 1
| + | |
− | *1.12 1 0 38 0 0 1
| + | |
− | ====MECHAN====
| + | |
− | *0.24 2 0 27 0 1 7044 1 0 4 0 0 1
| + | |
− | *1.12 1 0 300 0 0 1
| + | |
− | *2.12 1 0 32 0 0 1
| + | |
− | ====MYST====
| + | |
− | *0.12 1 0 301 0 0 1
| + | |
− | *1.12 1 0 301 0 0 1
| + | |
− | *2.12 1 0 301 0 0 1
| + | |
− | *3.12 1 0 301 0 0 1
| + | |
− | *4.12 1 0 301 0 0 1
| + | |
− | *5.12 1 1 306 0 0 1
| + | |
− | *6.12 1 1 306 0 0 1
| + | |
− | *7.12 1 0 302 0 0 1
| + | |
− | *8.12 1 0 303 0 0 1
| + | |
− | *9.12 1 0 303 0 0 1
| + | |
− | *10.36 3 [0 1 302 1 1 1] [0 309 0 0 1 0] [1 309 1 0 1]
| + | |
− | *11.12 1 0 307 0 0 1
| + | |
− | *12.24 2 [0 300 100 0 2 0] [1 309 1 0 1]
| + | |
− | *13.24 2 [0 300 101 0 2 0] [1 309 1 0 1]
| + | |
− | *14.12 1 [0 303 0 0 1]
| + | |
− | *15.14 1 0 308 0 0 1 0
| + | |
− | *16.12 1 [0 304 0 0 1]
| + | |
− | *17.12 1 [0 304 0 0 1]
| + | |
− | *18.22 2 [0 304 0 0 1] [0 305 0 0 1]
| + | |
− | *19.12 1 [1 304 0 0 1]
| + | |
− | *20.22 2 [0 304 0 0 1] [0 305 0 0 1]
| + | |
− | *21.12 1 [0 304 0 0 1]
| + | |
− | *22.22 2 [0 304 0 0 1] [0 305 0 0 1]
| + | |
− | *23.12 1 [0 304 0 0 1]
| + | |
− | *24.12 1 [0 312 0 0 1]
| + | |
− | *25.66
| + | |
− | 3 0 29 0 7 8708 0 0 152 165 198 107
| + | |
− | 1 0 42 0 9 8707 10 6 216 129 368 294
| + | |
− | 5 50 1 0 24 0 1 9707 1
| + | |
− | ====STONE====
| + | |
− | *0.14 1 0 125 21 1 14 1
| + | |
− | *1.14 1 0 125 21 1 13 1
| + | |
− | *2.12 1 0 300 0 0 1
| + | |
− | | + | |
− | ==INIT==
| + | |
− | These are more likely variables. They do not have names like in Riven.
| + | |
− | ===Case studies===
| + | |
− | ====CHANNEL====
| + | |
− | *0.12 1 0 1 30 1 0
| + | |
− | *1.10 1 6 201 0 0
| + | |
− | ====DUNNY====
| + | |
− | *1.18 2 0 26 0 0 0 200 0 0
| + | |
− | ====MYST====
| + | |
− | *2.30 2 1 209 0 0 0 206 0 6 6044 7044 8044 9044 10044 11044
| + | |
− | *4.18 1 0 205 0 4 6156 7156 8156 9156
| + | |
− | *5.16 1 0 201 0 3 0 4 5
| + | |
− | *6.12 1 0 204 0 1 6180
| + | |
− | | + | |
− | | + | |
− | ==HINT==
| + | |
− | {| class="structure"
| + | |
− | |short||rc||class="comment|record count
| + | |
− | |}
| + | |
− | *rc is wrong in:
| + | |
− | **CHANNEL 78 231
| + | |
− | **MECHAN 109
| + | |
− | **MYST 2 28 38 43 45 49 106 109 149 150 173 175 206 231
| + | |
− | **SELEN 172
| + | |
− | **STONE 10 12 18 59 89 91 106
| + | |
− | records are
| + | |
− | {| class="structure"
| + | |
− | |short||rid||class="comment|record index
| + | |
− | |-
| + | |
− | |short||u1||
| + | |
− | |}
| + | |
− | *the ''rid'''s start at zero and go up, but there are exceptions.
| + | |
− | **CHANNEL 78 144 231
| + | |
− | **DUNNY all minus 1 5 7 18 19
| + | |
− | **MECHAN 109
| + | |
− | **Myst 2 28 43 45 49 78 111 171 173 175 184 206 229 235
| + | |
− | **STONE 10 12 18 59 89 91 106
| + | |
− | *the ''u1'''s all appear to be one of 0, 2, 3, 200, 300, 400, 500, 600, 904, 905, 999, or FFFF (-1)
| + | |
− | | + | |
− | ==MSND==
| + | |
− | It is interesting to note that all MSND resources in the whole game are named except for INTRO 1 (the linking sound). In all the other packages, this sound is labeled "transprt7" (in MYST) or "transprt1" and "transprt2" (which all appear to be the same, although transprt1 and transprt2 are separate resources in the package).
| + | |
− | | + | |
− | ==RLST and VIEW==
| + | |
− | There are the same number of RLST and VIEW resources in all packages, which leads me to believe that they are locked together by index like HSPT and CARD resources in Riven.
| + | |
− | | + | |
− | ===RLST===
| + | |
− | I think these contain hotspot data (i.e. HSPT).
| + | |
− | | + | |
− | {| class="structure"
| + | |
− | |short||count_of_records
| + | |
− | |}
| + | |
− | ====record type 1====
| + | |
− | 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
| + | |
− | *this replaces 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)
| + | |
− | ====record type 2: (simple hotspot)====
| + | |
− | {| class="structure"
| + | |
− | |short||dir 1=left, 2=right, 5=forward
| + | |
− | |-
| + | |
− | |short||type=2
| + | |
− | |-
| + | |
− | |short||left
| + | |
− | |-
| + | |
− | |short||top
| + | |
− | |-
| + | |
− | |short||right
| + | |
− | |-
| + | |
− | |short||bottom
| + | |
− | |-
| + | |
− | |short||destination
| + | |
− | |}
| + | |
− | | + | |
− | ====Case studies====
| + | |
− | (Note: these are simply the data in (little-endian) shorts and line-broken where I saw patterns. <l t b r> are (I think) areas on-screen. 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).)
| + | |
− | (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
| + | |
− | | + | |
− | ===VIEW===
| + | |
− | image name and sub-images (akin to Riven PLSTs)
| + | |
− | {| border=1 style="border-collapse:collapse"
| + | |
− | |0||0||3001||-1||0/0||3001||3001||0||0
| + | |
− | |-
| + | |
− | | || ||name||neg.||bytes||colspan=4|(name name 0 0)
| + | |
− | |}
| + | |
− | | + | |
− | {| border=1 style="border-collapse:collapse"
| + | |
− | |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||colspan=4|(name name 0 0)
| + | |
− | |}
| + | |
− | *I think ''3004'' is the name of a sub-image (small image to be placed in another) of ''3003'' here.
| + | |
− | {| border=1 style="border-collapse:collapse"
| + | |
− | |0||0||3005||3005||0/144||1||[1 3006]||3005||3005||0||0
| + | |
− | |-
| + | |
− | | || ||colspan=2|name twice|| || ||colspan=4|(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 ? | ------ ------ ------ ------ ------(name 0 0 name)
| + | |
− | count entries
| + | |
− | | + | |
− | *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
| + | |
This page lists resource types used by the Myst and Myst ME engines.
None of the resources are named except for MSND and MJMP.