Difference between revisions of "Myst scripts"
m (→Command 40: travel between ages) |
(commands 196, 197, 298, and 299 are found in the Myst demo, purpose unknown) |
||
(45 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Myst}} | {{Myst}} | ||
− | This page | + | This page describes Myst scripts, command lists used in record types 5, 6, 7, 8, 10, 11, and 12. Scripts always start with an unsigned short representing the command count. Each command has this structure: |
+ | {| class="structure" | ||
+ | |unsigned short||opcode | ||
+ | |- | ||
+ | |unsigned short||var | ||
+ | |- | ||
+ | |unsigned short||arg_count | ||
+ | |- | ||
+ | |short||args[arg_count] | ||
+ | |} | ||
+ | When a variable is not given, ''var'' is set to 0. So when the key below says that the variable is ''optional'', that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command. | ||
− | ==Command 0== | + | A histogram of command usage in Myst original RLST resources can be found [http://altivec.indivia.net/alitl/myst_rlst_cmd_hist.svg here]. |
+ | |||
+ | ==Commands 0-99== | ||
+ | These are suspected to be general-purpose commands. | ||
+ | |||
+ | ===Command 0=== | ||
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 1== | + | In some cases it seems to toggle the associated variable between logical "0" and "1" (e.g. see the marker switches on MYST island). However, it's probably more complicated than this: for example, in Mechanical card 6267 it seems to ''increment'' the associated variable. |
+ | |||
+ | ===Command 1=== | ||
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' ''u0'' | *'''Arguments:''' ''u0'' | ||
− | + | Could mean "set variable to ''u0''". ''u0'' takes on any number between 0 and 7 (maybe a bit field?) | |
− | ==Command 2: alternative destination== | + | ===Command 2: alternative destination=== |
*'''Variable:''' Yes | *'''Variable:''' Yes | ||
*'''Arguments:''' ''dest'' | *'''Arguments:''' ''dest'' | ||
Line 18: | Line 35: | ||
This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359) | This command goes to ''dest'' instead of the regular destination if ''var'' is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359) | ||
− | ==Command 3: change cursor== | + | ===Command 3: change cursor=== |
*'''Variable:''' Yes | *'''Variable:''' Yes | ||
*'''Arguments:''' ''clrc_id'' | *'''Arguments:''' ''clrc_id'' | ||
− | + | This is used when picking up pages. Seems to check the associated variable and, depending on its value, set the appropriate cursor and alter the variable itself. ''clrc_id'' is always 800, 801, or 802, which match the cursors of the hand holding the white, red, and blue pages respectively. | |
− | + | ||
− | ==Command 4== | + | ===Command 4=== |
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 6== | + | ===Command 6=== |
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 7== | + | ===Command 7=== |
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 8== | + | ===Command 8=== |
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 9== | + | ===Command 9=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' [''u0''] | *'''Arguments:''' [''u0''] | ||
Line 47: | Line 63: | ||
*''u0'' is always either ''FFFF'' or omitted. | *''u0'' is always either ''FFFF'' or omitted. | ||
− | ==Command 12== | + | ===Command 12=== |
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' ''u0'' | *'''Arguments:''' ''u0'' | ||
Line 53: | Line 69: | ||
''Related to [[#Command 13|command 13]]''. | ''Related to [[#Command 13|command 13]]''. | ||
− | *''u0'' appears to be a nearby | + | *''u0'' appears to be a nearby card. |
This may have similar function to [[#Command 2|command 2]]. | This may have similar function to [[#Command 2|command 2]]. | ||
− | ==Command 13== | + | ===Command 13=== |
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' ''u0'' | *'''Arguments:''' ''u0'' | ||
Line 63: | Line 79: | ||
''Related to [[#Command 12|command 12]]''. | ''Related to [[#Command 12|command 12]]''. | ||
− | *''u0'' appears to be a nearby | + | *''u0'' appears to be a nearby card. |
This may have similar function to [[#Command 2|command 2]]. | This may have similar function to [[#Command 2|command 2]]. | ||
− | ==Command 14== | + | ===Command 14=== |
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' ''u0'' | *'''Arguments:''' ''u0'' | ||
Line 73: | Line 89: | ||
*''u0'' is always 0, 1, or 2. | *''u0'' is always 0, 1, or 2. | ||
− | ==Command 15== | + | ===Command 15=== |
*'''Variable:''' Yes | *'''Variable:''' Yes | ||
*'''Arguments:''' [''u0''] | *'''Arguments:''' [''u0''] | ||
Line 79: | Line 95: | ||
*''u0'' is always 0 or omitted. | *''u0'' is always 0 or omitted. | ||
− | ==Command 16== | + | ===Command 16=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' ''u1'' | *'''Arguments:''' ''u0'' ''u1'' | ||
− | *''u0'' appears to be a nearby | + | *''u0'' appears to be a nearby card. |
*''u1'' is always 0. | *''u1'' is always 0. | ||
− | ==Command 17== | + | ===Command 17=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' ''u1'' | *'''Arguments:''' ''u0'' ''u1'' | ||
− | *''u0'' appears to be a nearby | + | *''u0'' appears to be a nearby card. |
*''u1'' is always 4, 5, or 6. | *''u1'' is always 4, 5, or 6. | ||
− | ==Command 18== | + | ===Command 18=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' | *'''Arguments:''' ''u0'' | ||
Line 99: | Line 115: | ||
*''u0'' is always 4, 5, or 6. | *''u0'' is always 4, 5, or 6. | ||
− | ==Command 19== | + | ===Command 19: enable hotspots=== |
*'''Variable:''' No | *'''Variable:''' No | ||
− | *'''Arguments:''' ''count'' '' | + | *'''Arguments:''' ''count'' ''indexes''[''count''] |
− | + | This seems to enable a list of hotspots, specified by ''indexes''. | |
− | ==Command 20== | + | ===Command 20: disable hotspots=== |
*'''Variable:''' No | *'''Variable:''' No | ||
− | *'''Arguments:''' ''count'' '' | + | *'''Arguments:''' ''count'' ''indexes''[''count''] |
− | + | This seems to disable a list of hotspots, specified by ''indexes''. These, unlike [[#Command 19|command 19]], can also be -1, which seems to disable the invoking hotspot. | |
− | ==Command 21== | + | ===Command 21=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5'' | *'''Arguments:''' ''u0'' ''u1'' ''u2'' ''u3'' ''u4'' ''u5'' | ||
Line 124: | Line 140: | ||
*''u5'' is always 5 or 25. | *''u5'' is always 5 or 25. | ||
− | ==Command 22== | + | ===Command 22=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 23== | + | ===Command 23=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''count'' ''u0''[''count''] | *'''Arguments:''' ''count'' ''u0''[''count''] | ||
− | + | The ''u0'' numbers are all 0, 4, or 5. Guess: toggle enable status for a list of hotspots. | |
− | ==Command 24== | + | ===Command 24: play sound, non-blocking=== |
*'''Variable:''' No | *'''Variable:''' No | ||
− | *'''Arguments:''' '' | + | *'''Arguments:''' ''sound_id'' |
− | + | Start sound with ID ''sound_id''. Script execution resumes immediately and the sound plays in the background. | |
− | ==Command 26== | + | ===Command 26=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 27== | + | ===Command 27: play sound, blocking=== |
*'''Variable:''' No | *'''Variable:''' No | ||
− | *'''Arguments:''' '' | + | *'''Arguments:''' ''sound_id'' |
− | + | Play sound with ID ''sound_id'', blocking script execution until done. | |
− | ==Command 28== | + | ===Command 28=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' (<''l t r b''>|''FFFF'') | *'''Arguments:''' (<''l t r b''>|''FFFF'') | ||
− | + | Often used after command 29. <''l t r b''> often corresponds with the intended location of one of the sub-images in the VIEW resources. Guess: update screen rectangle? See Mechanical card 6009. | |
− | ==Command 29== | + | ===Command 29: copy picture over the hotspot=== |
*'''Variable:''' No | *'''Variable:''' No | ||
− | *'''Arguments:''' '' | + | *'''Arguments:''' ''pict_id'' <''l t r b''> ''u0'' ''u1'' |
− | *'' | + | *''pict_id'' appears to be a picture ID. |
*<''l t r b''> often corresponds with the intended location of one of the sub-images in the VIEW resources. | *<''l t r b''> often corresponds with the intended location of one of the sub-images in the VIEW resources. | ||
*''u0'' appears to be a variable number (it is sometimes 0). | *''u0'' appears to be a variable number (it is sometimes 0). | ||
− | *''u1'' may also be a variable number (it is sometimes 0, 1, or | + | *''u1'' may also be a variable number (it is sometimes 0, 1, or -1). |
− | ==Command 30== | + | This command seems to copy picture ''pict_id'' over the hotspot, using <''l'' ''t'' ''r'' ''b''> as the source rect. Additional data is unknown. |
+ | |||
+ | ===Command 30: start background sounds=== | ||
*'''Variable:''' No | *'''Variable:''' No | ||
− | *'''Arguments:''' | + | *'''Arguments:''' variable |
− | + | This seems to start a background sound combination. The arg list seems to follow the philosophy of the sounds section in VIEW resources. In most cases there are just 2 args, a positive ''msnd_id'' (background sound ID to play) and ''flags''. However, there is a single exception with 8 args (RLST ID 3225 in Channelwood) which can be correctly interpreted simply as a more complex sounds section. | |
− | + | ||
− | + | ===Command 31=== | |
− | + | ||
− | ==Command 31== | + | |
*'''Variable:''' Yes (only ever 30) | *'''Variable:''' Yes (only ever 30) | ||
*'''Arguments:''' ''u0'' ''u1'' | *'''Arguments:''' ''u0'' ''u1'' | ||
*''u0'' is always 0. | *''u0'' is always 0. | ||
− | *''u1'' looks like a | + | *''u1'' looks like a card ID. |
− | ==Command 32== | + | ===Command 32=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 33== | + | ===Command 33: draw picture=== |
*'''Variable:''' No | *'''Variable:''' No | ||
− | *'''Arguments:''' '' | + | *'''Arguments:''' ''id'' <''sl st sr sb''> <''dl'' ''dt''> |
− | + | Draw a picture, given the ID and source rect, at position <''dl'',''dt''>. | |
− | + | ||
− | + | ||
− | + | ||
− | ==Command 34== | + | ===Command 34=== |
*'''Variable:''' No | *'''Variable:''' No | ||
− | *'''Arguments:''' '' | + | *'''Arguments:''' ''card'' ''u1'' |
− | + | Seems to go to card ''card''. ''u1'' is always 0, 1, 4, 5, 6, 9, 10, or 11. | |
− | + | ||
− | ==Command 35== | + | ===Command 35=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' ''u1'' ''u2'' | *'''Arguments:''' ''u0'' ''u1'' ''u2'' | ||
− | *''u0'' looks like a | + | *''u0'' looks like a card ID. |
− | *''u1'' looks like a | + | *''u1'' looks like a card ID. |
*''u2'' is always 0, 6, or 10. | *''u2'' is always 0, 6, or 10. | ||
− | ==Command 36== | + | ===Command 36=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' | *'''Arguments:''' ''u0'' | ||
Line 217: | Line 228: | ||
*''u0'' is 900 or 903. | *''u0'' is 900 or 903. | ||
− | ==Command 37== | + | ===Command 37=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 38== | + | Seems to form pairs with command 38, where it opens the script and command 38 ends it. |
+ | |||
+ | ===Command 38=== | ||
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 39== | + | Seems to form pairs with command 37, where it closes the script while command 37 opens it. |
+ | |||
+ | ===Command 39=== | ||
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' | *'''Arguments:''' ''u0'' | ||
− | + | ''u0'' is 100, 200, 400, 500, 1000, or 1100. Guess: pause execution for ''u0'' milliseconds? | |
− | ==Command 40: travel | + | ===Command 40: travel to destination age=== |
*'''Variable:''' No | *'''Variable:''' No | ||
− | *'''Arguments:''' '' | + | *'''Arguments:''' ''dst_age_id'' ''src_msnd_id'' ''dst_msnd_id'' |
− | *'' | + | *''dst_age_id'' is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny). |
− | *''src_msnd_id'' is sound ID to play in source age. | + | *''src_msnd_id'' is a sound ID to play in source age. |
− | *''dst_msnd_id'' is sound ID to play in destination age. | + | *''dst_msnd_id'' is a sound ID to play in destination age. |
− | ==Command 41== | + | ===Command 41=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count''] | *'''Arguments:''' ''u0'' ''u1'' ''u2'' ''count'' ''u3''[''count''] | ||
− | *''u0'' looks like a | + | *''u0'' looks like a card ID. |
*''u1'' looks like a sound ID. | *''u1'' looks like a sound ID. | ||
*''u2'' is always 5 or 10. | *''u2'' is always 5 or 10. | ||
Line 249: | Line 264: | ||
*''u3'' may be divided into groups of sixes. | *''u3'' may be divided into groups of sixes. | ||
− | ==Command 42== | + | ===Command 42=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count''] | *'''Arguments:''' ''u0'' ''u1'' ''count'' ''u2''[''count''] | ||
Line 258: | Line 273: | ||
*''u2'' may be divided into groups of sixes. | *''u2'' may be divided into groups of sixes. | ||
− | ==Command 43== | + | ===Command 43=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 44== | + | ===Command 44=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 46== | + | ===Command 46=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 100== | + | Often found after commands 29 and 33. Guess: update the whole screen? |
+ | |||
+ | ==Commands 100-199== | ||
+ | These are suspected to be age-specific, as their syntax changes depending on the age. | ||
+ | ===Command 100=== | ||
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' [''u0''] | *'''Arguments:''' [''u0''] | ||
Line 276: | Line 295: | ||
*''u0'' is always 4, 6, or omitted. | *''u0'' is always 4, 6, or omitted. | ||
− | ==Command 101== | + | ===Command 101=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' [''u0''|''u1''[6]] | *'''Arguments:''' [''u0''|''u1''[6]] | ||
Line 283: | Line 302: | ||
*''u1'' is a series of 6 positive numbers. | *''u1'' is a series of 6 positive numbers. | ||
− | ==Command 102== | + | ===Command 102=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' [''u0'' ''u1'' [''u2'']] | *'''Arguments:''' [''u0'' ''u1'' [''u2'']] | ||
− | *''u0'' looks like a | + | *''u0'' looks like a card ID (or 0). |
− | *''u1'' looks like a | + | *''u1'' looks like a card ID. |
*''u2'' looks like an (optional) bit field. (only 0x64 or 0) | *''u2'' looks like an (optional) bit field. (only 0x64 or 0) | ||
− | ==Command 103== | + | ===Command 103=== |
*'''Variable:''' Yes | *'''Variable:''' Yes | ||
*'''Arguments:''' ''bit'' | *'''Arguments:''' ''bit'' | ||
Line 302: | Line 321: | ||
*'''Arguments:''' ''u0'' [''u1''] | *'''Arguments:''' ''u0'' [''u1''] | ||
− | This form of the command | + | This form of the command likely makes specified hotspot drawable. |
− | *''u0'' is a number between 13 and 18. | + | *''u0'' is a number between 13 and 18. It seems to refer to a hotspot index (see stone 2197). |
*''u1'' is either 1 or omitted. | *''u1'' is either 1 or omitted. | ||
− | ==Command 104== | + | ===Command 104=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' [''u0''] | *'''Arguments:''' [''u0''] | ||
− | *''u0'' can be 0, 1, omitted, or 13 to 20. | + | This command likely makes specified hotspot not drawable. |
+ | |||
+ | *''u0'' can be 0, 1, omitted, or 13 to 20. It seems to refer to a hotspot index (see stone 2004 and 2197). | ||
− | ==Command 105== | + | ===Command 105=== |
*'''Variable:''' Optional (set to 9 at one point, but usually not) | *'''Variable:''' Optional (set to 9 at one point, but usually not) | ||
*'''Arguments:''' [''u0''] | *'''Arguments:''' [''u0''] | ||
Line 319: | Line 340: | ||
*''u0'' looks like a sound ID. | *''u0'' looks like a sound ID. | ||
− | ==Command 106== | + | ===Command 106=== |
*'''Variable:''' 10 | *'''Variable:''' 10 | ||
*'''Arguments:''' 2287 (looks like sound ID) | *'''Arguments:''' 2287 (looks like sound ID) | ||
Line 325: | Line 346: | ||
This command is only used once. | This command is only used once. | ||
− | ==Command 107== | + | ===Command 107=== |
*'''Variable:''' 11 | *'''Variable:''' 11 | ||
*'''Arguments:''' 2287 (looks like sound ID) | *'''Arguments:''' 2287 (looks like sound ID) | ||
Line 331: | Line 352: | ||
This command is only used once. | This command is only used once. | ||
− | ==Command 108== | + | ===Command 108=== |
*'''Variable:''' 12 | *'''Variable:''' 12 | ||
*'''Arguments:''' 2287 (looks like sound ID) | *'''Arguments:''' 2287 (looks like sound ID) | ||
Line 337: | Line 358: | ||
This command is only used once. | This command is only used once. | ||
− | ==Command 109== | + | ===Command 109=== |
*'''Variable:''' Optional | *'''Variable:''' Optional | ||
*'''Arguments:''' [''u0''] | *'''Arguments:''' [''u0''] | ||
Line 343: | Line 364: | ||
*''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID). | *''u0'' is ''FFFF'', 1, omitted, or 2287 (looks like sound ID). | ||
− | ==Command 110== | + | ===Command 110=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10 | *'''Arguments:''' 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10 | ||
Line 349: | Line 370: | ||
This command is only used once. | This command is only used once. | ||
− | ==Command 111== | + | ===Command 111=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' [''u0''] | *'''Arguments:''' [''u0''] | ||
− | + | This command likely makes specified hotspot not drawable. | |
− | ==Command 112== | + | *''u0'' is 14 to 20 or omitted. It seems to refer to a hotspot index (see stone 2004). |
+ | |||
+ | ===Command 112=== | ||
*'''Variable:''' 29 | *'''Variable:''' 29 | ||
*'''Arguments:''' ''u0'' ''u1'' ''u2'' | *'''Arguments:''' ''u0'' ''u1'' ''u2'' | ||
Line 365: | Line 388: | ||
*''u2'' is 1. | *''u2'' is 1. | ||
− | ==Command 113== | + | ===Command 113=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' 5143 10 6 339 237 423 333 0 10 | *'''Arguments:''' 5143 10 6 339 237 423 333 0 10 | ||
Line 371: | Line 394: | ||
This command is only used once. 5143 is likely sound ID. | This command is only used once. 5143 is likely sound ID. | ||
− | ==Command 114== | + | ===Command 114=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10 | *'''Arguments:''' 5143 10 6 339 237 423 333 1 10 | ||
Line 377: | Line 400: | ||
This command is only used once. 5143 is likely sound ID. | This command is only used once. 5143 is likely sound ID. | ||
− | ==Command 115== | + | ===Command 115=== |
*'''Variable:''' Yes | *'''Variable:''' Yes | ||
*'''Arguments:''' ''u0''[3] | *'''Arguments:''' ''u0''[3] | ||
− | *The ''u0'' look like | + | *The ''u0'' look like card ID's. |
*'''Variable:''' No | *'''Variable:''' No | ||
Line 388: | Line 411: | ||
This form of the command is only used once. | This form of the command is only used once. | ||
− | ==Command 116== | + | ===Command 116=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' | *'''Arguments:''' ''u0'' | ||
Line 394: | Line 417: | ||
*''u0'' is 0, 1, or 6006. | *''u0'' is 0, 1, or 6006. | ||
− | ==Command 117== | + | ===Command 117=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' [''u0''|''u1'' ''u2''] | *'''Arguments:''' [''u0''|''u1'' ''u2''] | ||
Line 401: | Line 424: | ||
*''u1'' and ''u2'' are 5698 and 6698 (only used once). | *''u1'' and ''u2'' are 5698 and 6698 (only used once). | ||
− | ==Command 118== | + | In Channelwood, card 3012, this command is invoked by the buttons in Achenar's video device and ''u0'' is the button number. |
+ | |||
+ | ===Command 118=== | ||
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' [4707 5707 6707 7707 4705] | *'''Arguments:''' [4707 5707 6707 7707 4705] | ||
Line 407: | Line 432: | ||
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs. | This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs. | ||
− | ==Command 119== | + | ===Command 119=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' [''u0''] | *'''Arguments:''' [''u0''] | ||
Line 413: | Line 438: | ||
*''u0'' is 0, 1, or omitted. | *''u0'' is 0, 1, or omitted. | ||
− | ==Command 120== | + | ===Command 120=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' [''u0''] | *'''Arguments:''' [''u0''] | ||
Line 419: | Line 444: | ||
*''u0'' is 0, 1, 2, 3, or omitted. | *''u0'' is 0, 1, 2, 3, or omitted. | ||
− | ==Command 121== | + | ===Command 121=== |
*'''Variable:''' Yes | *'''Variable:''' Yes | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
Line 426: | Line 451: | ||
*'''Arguments:''' ''u0'' ''u1'' | *'''Arguments:''' ''u0'' ''u1'' | ||
− | *''u0'' is 0 or a | + | *''u0'' is 0 or a card ID. |
− | *''u1'' is a | + | *''u1'' is a card ID. |
− | ==Command 122== | + | ===Command 122=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 123== | + | ===Command 123=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' [''u1''] | *'''Arguments:''' ''u0'' [''u1''] | ||
Line 440: | Line 465: | ||
*''u1'' is 960, 1920, or omitted. | *''u1'' is 960, 1920, or omitted. | ||
− | ==Command 124== | + | ===Command 124=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 125== | + | ===Command 125=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
Line 453: | Line 478: | ||
*''u0'' is 13 or 14. | *''u0'' is 13 or 14. | ||
− | ==Command 126== | + | ===Command 126=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 127== | + | ===Command 127=== |
*'''Variable:''' no | *'''Variable:''' no | ||
*'''Arguments:''' ''u0'' ''u1'' | *'''Arguments:''' ''u0'' ''u1'' | ||
Line 464: | Line 489: | ||
*''u1'' is 0 or 1. | *''u1'' is 0 or 1. | ||
− | ==Command 129== | + | ===Command 129=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' ''u0'' | *'''Arguments:''' ''u0'' | ||
Line 470: | Line 495: | ||
*''u0'' looks like a sound ID. | *''u0'' looks like a sound ID. | ||
− | ==Command 133== | + | ===Command 133=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' 6500 | *'''Arguments:''' 6500 | ||
Line 476: | Line 501: | ||
This command is only used once. Value is a sound ID. | This command is only used once. Value is a sound ID. | ||
− | ==Command 164== | + | ===Command 164=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 169== | + | ===Command 169=== |
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
− | ==Command 198== | + | ===Command 196=== |
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | |||
+ | This command is only used in the demo. | ||
+ | |||
+ | ===Command 197=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | |||
+ | This command is only used in the demo. | ||
+ | |||
+ | ===Command 198=== | ||
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' 5143 10 6 339 237 423 333 1 10 | *'''Arguments:''' 5143 10 6 339 237 423 333 1 10 | ||
Line 490: | Line 527: | ||
This command is only used once. 5143 is likely a sound ID. | This command is only used once. 5143 is likely a sound ID. | ||
− | ==Command 199== | + | ===Command 199=== |
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | |||
+ | ==Commands 200-299== | ||
+ | These are only seen in the [[Myst INIT resources|INIT]] scripts. | ||
+ | ===Command 200=== | ||
+ | *'''Variable:''' Optional | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' DUNNY, INTRO, MECHAN, SELEN, STONE | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' ''u0 u1''[3] | ||
+ | *'''Seen:''' MYST | ||
+ | |||
+ | *''u1'' appears to be three sound IDs. | ||
+ | |||
+ | ===Command 201=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' CHANNEL, INTRO, SELEN, STONE | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' ''u0'' | ||
+ | *'''Seen:''' MYST | ||
+ | *''u0'' looks like a sound ID. | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' 0 4 5 | ||
+ | *'''Seen:''' MECHAN | ||
+ | |||
+ | ===Command 202=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' MECHAN, SELEN, STONE | ||
+ | |||
+ | *'''Variable:''' Yes | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' CHANNEL | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' 13 | ||
+ | *'''Seen:''' MYST | ||
+ | |||
+ | ===Command 203=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' CHANNEL, MECHAN, MYST, SELEN | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' ''count'' ''u0''[''count''] ''u1'' | ||
+ | *'''Seen:''' STONE | ||
+ | |||
+ | *''u0'' look like card IDs. | ||
+ | *''u1'' looks like a sound ID. | ||
+ | |||
+ | ===Command 204=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' MYST, SELEN, STONE | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' ''u0'' | ||
+ | *'''Seen:''' MECHAN | ||
+ | |||
+ | *''u0'' looks like a sound ID. | ||
+ | |||
+ | ===Command 205=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' MYST, SELEN | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' ''count'' ''u0''[''count''] ''u1'' | ||
+ | *'''Seen:''' STONE | ||
+ | |||
+ | *''u0'' look like card IDs. | ||
+ | *''u1'' looks like a sound ID. | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' ''u0''[4] | ||
+ | *'''Seen:''' MECHAN | ||
+ | |||
+ | *''u0'' look like sound IDs. | ||
+ | |||
+ | ===Command 206=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' MYST, SELEN, STONE | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' ''u0''[6] | ||
+ | *'''Seen:''' MECHAN | ||
+ | |||
+ | *''u0'' look like sound IDs. | ||
+ | |||
+ | ===Command 207=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' STONE | ||
+ | |||
+ | ===Command 208=== | ||
+ | *'''Variable:''' Yes | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' MYST | ||
+ | |||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' ''u0''[3] | ||
+ | *'''Seen:''' STONE | ||
+ | |||
+ | ===Command 209=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 210=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 211=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 212=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | |||
+ | ===Command 213=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | |||
+ | ===Command 214=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 215=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 216=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 217=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | |||
+ | ===Command 218=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 219=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 220=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 221=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 222=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 298=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | |||
+ | This command is only used in the demo. | ||
+ | |||
+ | ===Command 299=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | |||
+ | This command is only used in the demo. | ||
+ | |||
+ | ==Commands 300-399== | ||
+ | These are only seen in the [[Myst EXIT resources|EXIT]] scripts. | ||
+ | ===Command 300=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 301=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 302=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 303=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 304=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | |||
+ | ===Command 305=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 306=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 307=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 308=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 309=== | ||
+ | *'''Variable:''' No | ||
+ | *'''Arguments:''' None | ||
+ | *'''Seen:''' | ||
+ | |||
+ | ===Command 312=== | ||
*'''Variable:''' No | *'''Variable:''' No | ||
*'''Arguments:''' None | *'''Arguments:''' None | ||
+ | *'''Seen:''' |
Latest revision as of 19:12, 10 September 2009
Myst | |||
Mohawk | Overview | ||
CLRC | EXIT | HINT | INIT |
MJMP | MSND | PICT | RLST |
VIEW | WDIB | HELP | RSFL |
Scripts | Variables |
This page describes Myst scripts, command lists used in record types 5, 6, 7, 8, 10, 11, and 12. Scripts always start with an unsigned short representing the command count. Each command has this structure:
unsigned short | opcode |
unsigned short | var |
unsigned short | arg_count |
short | args[arg_count] |
When a variable is not given, var is set to 0. So when the key below says that the variable is optional, that means that it has been found both with and without a variable being passed in. In some cases, the syntax of the arguments depends on whether a variable was passed in. In this case, the variable/arguments header is repeated for each form of the command.
A histogram of command usage in Myst original RLST resources can be found here.
Contents
- 1 Commands 0-99
- 1.1 Command 0
- 1.2 Command 1
- 1.3 Command 2: alternative destination
- 1.4 Command 3: change cursor
- 1.5 Command 4
- 1.6 Command 6
- 1.7 Command 7
- 1.8 Command 8
- 1.9 Command 9
- 1.10 Command 12
- 1.11 Command 13
- 1.12 Command 14
- 1.13 Command 15
- 1.14 Command 16
- 1.15 Command 17
- 1.16 Command 18
- 1.17 Command 19: enable hotspots
- 1.18 Command 20: disable hotspots
- 1.19 Command 21
- 1.20 Command 22
- 1.21 Command 23
- 1.22 Command 24: play sound, non-blocking
- 1.23 Command 26
- 1.24 Command 27: play sound, blocking
- 1.25 Command 28
- 1.26 Command 29: copy picture over the hotspot
- 1.27 Command 30: start background sounds
- 1.28 Command 31
- 1.29 Command 32
- 1.30 Command 33: draw picture
- 1.31 Command 34
- 1.32 Command 35
- 1.33 Command 36
- 1.34 Command 37
- 1.35 Command 38
- 1.36 Command 39
- 1.37 Command 40: travel to destination age
- 1.38 Command 41
- 1.39 Command 42
- 1.40 Command 43
- 1.41 Command 44
- 1.42 Command 46
- 2 Commands 100-199
- 2.1 Command 100
- 2.2 Command 101
- 2.3 Command 102
- 2.4 Command 103
- 2.5 Command 104
- 2.6 Command 105
- 2.7 Command 106
- 2.8 Command 107
- 2.9 Command 108
- 2.10 Command 109
- 2.11 Command 110
- 2.12 Command 111
- 2.13 Command 112
- 2.14 Command 113
- 2.15 Command 114
- 2.16 Command 115
- 2.17 Command 116
- 2.18 Command 117
- 2.19 Command 118
- 2.20 Command 119
- 2.21 Command 120
- 2.22 Command 121
- 2.23 Command 122
- 2.24 Command 123
- 2.25 Command 124
- 2.26 Command 125
- 2.27 Command 126
- 2.28 Command 127
- 2.29 Command 129
- 2.30 Command 133
- 2.31 Command 164
- 2.32 Command 169
- 2.33 Command 196
- 2.34 Command 197
- 2.35 Command 198
- 2.36 Command 199
- 3 Commands 200-299
- 3.1 Command 200
- 3.2 Command 201
- 3.3 Command 202
- 3.4 Command 203
- 3.5 Command 204
- 3.6 Command 205
- 3.7 Command 206
- 3.8 Command 207
- 3.9 Command 208
- 3.10 Command 209
- 3.11 Command 210
- 3.12 Command 211
- 3.13 Command 212
- 3.14 Command 213
- 3.15 Command 214
- 3.16 Command 215
- 3.17 Command 216
- 3.18 Command 217
- 3.19 Command 218
- 3.20 Command 219
- 3.21 Command 220
- 3.22 Command 221
- 3.23 Command 222
- 3.24 Command 298
- 3.25 Command 299
- 4 Commands 300-399
Commands 0-99
These are suspected to be general-purpose commands.
Command 0
- Variable: Optional
- Arguments: None
In some cases it seems to toggle the associated variable between logical "0" and "1" (e.g. see the marker switches on MYST island). However, it's probably more complicated than this: for example, in Mechanical card 6267 it seems to increment the associated variable.
Command 1
- Variable: Optional
- Arguments: u0
Could mean "set variable to u0". u0 takes on any number between 0 and 7 (maybe a bit field?)
Command 2: alternative destination
- Variable: Yes
- Arguments: dest
This command goes to dest instead of the regular destination if var is a certain (unknown) value. (Only used for SELEN 1240 and CHANNEL 3359)
Command 3: change cursor
- Variable: Yes
- Arguments: clrc_id
This is used when picking up pages. Seems to check the associated variable and, depending on its value, set the appropriate cursor and alter the variable itself. clrc_id is always 800, 801, or 802, which match the cursors of the hand holding the white, red, and blue pages respectively.
Command 4
- Variable: Optional
- Arguments: None
Command 6
- Variable: Optional
- Arguments: None
Command 7
- Variable: Optional
- Arguments: None
Command 8
- Variable: Optional
- Arguments: None
Command 9
- Variable: No
- Arguments: [u0]
- u0 is always either FFFF or omitted.
Command 12
- Variable: Optional
- Arguments: u0
Related to command 13.
- u0 appears to be a nearby card.
This may have similar function to command 2.
Command 13
- Variable: Optional
- Arguments: u0
Related to command 12.
- u0 appears to be a nearby card.
This may have similar function to command 2.
Command 14
- Variable: Optional
- Arguments: u0
- u0 is always 0, 1, or 2.
Command 15
- Variable: Yes
- Arguments: [u0]
- u0 is always 0 or omitted.
Command 16
- Variable: No
- Arguments: u0 u1
- u0 appears to be a nearby card.
- u1 is always 0.
Command 17
- Variable: No
- Arguments: u0 u1
- u0 appears to be a nearby card.
- u1 is always 4, 5, or 6.
Command 18
- Variable: No
- Arguments: u0
- u0 is always 4, 5, or 6.
Command 19: enable hotspots
- Variable: No
- Arguments: count indexes[count]
This seems to enable a list of hotspots, specified by indexes.
Command 20: disable hotspots
- Variable: No
- Arguments: count indexes[count]
This seems to disable a list of hotspots, specified by indexes. These, unlike command 19, can also be -1, which seems to disable the invoking hotspot.
Command 21
- Variable: No
- Arguments: u0 u1 u2 u3 u4 u5
There are this command is used 6 times.
- u0 is always 0, 74, 76, 117, or 198.
- u1 is always 0, 48, 213, or 226.
- u2 is always 327, 406, 429, 459, or 544.
- u3 is always 257, 332, or 333.
- u4 is always 0, 1, 5, 6, or 11.
- u5 is always 5 or 25.
Command 22
- Variable: No
- Arguments: None
Command 23
- Variable: No
- Arguments: count u0[count]
The u0 numbers are all 0, 4, or 5. Guess: toggle enable status for a list of hotspots.
Command 24: play sound, non-blocking
- Variable: No
- Arguments: sound_id
Start sound with ID sound_id. Script execution resumes immediately and the sound plays in the background.
Command 26
- Variable: No
- Arguments: None
Command 27: play sound, blocking
- Variable: No
- Arguments: sound_id
Play sound with ID sound_id, blocking script execution until done.
Command 28
- Variable: No
- Arguments: (<l t r b>|FFFF)
Often used after command 29. <l t r b> often corresponds with the intended location of one of the sub-images in the VIEW resources. Guess: update screen rectangle? See Mechanical card 6009.
Command 29: copy picture over the hotspot
- Variable: No
- Arguments: pict_id <l t r b> u0 u1
- pict_id appears to be a picture ID.
- <l t r b> often corresponds with the intended location of one of the sub-images in the VIEW resources.
- u0 appears to be a variable number (it is sometimes 0).
- u1 may also be a variable number (it is sometimes 0, 1, or -1).
This command seems to copy picture pict_id over the hotspot, using <l t r b> as the source rect. Additional data is unknown.
Command 30: start background sounds
- Variable: No
- Arguments: variable
This seems to start a background sound combination. The arg list seems to follow the philosophy of the sounds section in VIEW resources. In most cases there are just 2 args, a positive msnd_id (background sound ID to play) and flags. However, there is a single exception with 8 args (RLST ID 3225 in Channelwood) which can be correctly interpreted simply as a more complex sounds section.
Command 31
- Variable: Yes (only ever 30)
- Arguments: u0 u1
- u0 is always 0.
- u1 looks like a card ID.
Command 32
- Variable: No
- Arguments: None
Command 33: draw picture
- Variable: No
- Arguments: id <sl st sr sb> <dl dt>
Draw a picture, given the ID and source rect, at position <dl,dt>.
Command 34
- Variable: No
- Arguments: card u1
Seems to go to card card. u1 is always 0, 1, 4, 5, 6, 9, 10, or 11.
Command 35
- Variable: No
- Arguments: u0 u1 u2
- u0 looks like a card ID.
- u1 looks like a card ID.
- u2 is always 0, 6, or 10.
Command 36
- Variable: No
- Arguments: u0
This command is only used twice.
- u0 is 900 or 903.
Command 37
- Variable: No
- Arguments: None
Seems to form pairs with command 38, where it opens the script and command 38 ends it.
Command 38
- Variable: No
- Arguments: None
Seems to form pairs with command 37, where it closes the script while command 37 opens it.
Command 39
- Variable: No
- Arguments: u0
u0 is 100, 200, 400, 500, 1000, or 1100. Guess: pause execution for u0 milliseconds?
Command 40: travel to destination age
- Variable: No
- Arguments: dst_age_id src_msnd_id dst_msnd_id
- dst_age_id is one of 0 (selen), 1 (stone), 2 (myst), 3 (mechan), 4 (channel) or 6 (dunny).
- src_msnd_id is a sound ID to play in source age.
- dst_msnd_id is a sound ID to play in destination age.
Command 41
- Variable: No
- Arguments: u0 u1 u2 count u3[count]
- u0 looks like a card ID.
- u1 looks like a sound ID.
- u2 is always 5 or 10.
- count is only ever 6 or 12.
- u3 may be divided into groups of sixes.
Command 42
- Variable: No
- Arguments: u0 u1 count u2[count]
- u0 looks like a sound ID.
- u1 is always 5, 10, 15, or 20.
- count is only ever 6 or 12.
- u2 may be divided into groups of sixes.
Command 43
- Variable: No
- Arguments: None
Command 44
- Variable: No
- Arguments: None
Command 46
- Variable: No
- Arguments: None
Often found after commands 29 and 33. Guess: update the whole screen?
Commands 100-199
These are suspected to be age-specific, as their syntax changes depending on the age.
Command 100
- Variable: Optional
- Arguments: [u0]
- u0 is always 4, 6, or omitted.
Command 101
- Variable: No
- Arguments: [u0|u1[6]]
- u0 is always 4225 or omitted.
- u1 is a series of 6 positive numbers.
Command 102
- Variable: No
- Arguments: [u0 u1 [u2]]
- u0 looks like a card ID (or 0).
- u1 looks like a card ID.
- u2 looks like an (optional) bit field. (only 0x64 or 0)
Command 103
- Variable: Yes
- Arguments: bit
This form of the command most likely negates bit bit of var.
- bit is a power of 2 (bit mask).
- Variable: No
- Arguments: u0 [u1]
This form of the command likely makes specified hotspot drawable.
- u0 is a number between 13 and 18. It seems to refer to a hotspot index (see stone 2197).
- u1 is either 1 or omitted.
Command 104
- Variable: No
- Arguments: [u0]
This command likely makes specified hotspot not drawable.
- u0 can be 0, 1, omitted, or 13 to 20. It seems to refer to a hotspot index (see stone 2004 and 2197).
Command 105
- Variable: Optional (set to 9 at one point, but usually not)
- Arguments: [u0]
- u0 looks like a sound ID.
Command 106
- Variable: 10
- Arguments: 2287 (looks like sound ID)
This command is only used once.
Command 107
- Variable: 11
- Arguments: 2287 (looks like sound ID)
This command is only used once.
Command 108
- Variable: 12
- Arguments: 2287 (looks like sound ID)
This command is only used once.
Command 109
- Variable: Optional
- Arguments: [u0]
- u0 is FFFF, 1, omitted, or 2287 (looks like sound ID).
Command 110
- Variable: No
- Arguments: 1180 1179 12 203 78 345 167 6 10 203 166 345 306 5 10
This command is only used once.
Command 111
- Variable: No
- Arguments: [u0]
This command likely makes specified hotspot not drawable.
- u0 is 14 to 20 or omitted. It seems to refer to a hotspot index (see stone 2004).
Command 112
- Variable: 29
- Arguments: u0 u1 u2
This command is only used twice.
- u0 is 0 or 1800.
- u1 is 400 or 2000.
- u2 is 1.
Command 113
- Variable: No
- Arguments: 5143 10 6 339 237 423 333 0 10
This command is only used once. 5143 is likely sound ID.
Command 114
- Variable: No
- Arguments: 5143 10 6 339 237 423 333 1 10
This command is only used once. 5143 is likely sound ID.
Command 115
- Variable: Yes
- Arguments: u0[3]
- The u0 look like card ID's.
- Variable: No
- Arguments: 1139 1140 1140 10 6 204 64 343 279 6 50
This form of the command is only used once.
Command 116
- Variable: No
- Arguments: u0
- u0 is 0, 1, or 6006.
Command 117
- Variable: No
- Arguments: [u0|u1 u2]
- u0 is 0, 1, 2, 3, or omitted.
- u1 and u2 are 5698 and 6698 (only used once).
In Channelwood, card 3012, this command is invoked by the buttons in Achenar's video device and u0 is the button number.
Command 118
- Variable: No
- Arguments: [4707 5707 6707 7707 4705]
This command is only used 3 times (once with values and twice omitted). Values are likely sound IDs.
Command 119
- Variable: No
- Arguments: [u0]
- u0 is 0, 1, or omitted.
Command 120
- Variable: No
- Arguments: [u0]
- u0 is 0, 1, 2, 3, or omitted.
Command 121
- Variable: Yes
- Arguments: None
- Variable: No
- Arguments: u0 u1
- u0 is 0 or a card ID.
- u1 is a card ID.
Command 122
- Variable: No
- Arguments: None
Command 123
- Variable: No
- Arguments: u0 [u1]
- u0 is 0, 1, or 960.
- u1 is 960, 1920, or omitted.
Command 124
- Variable: No
- Arguments: None
Command 125
- Variable: No
- Arguments: None
- Variable: 21
- Arguments: u0
- u0 is 13 or 14.
Command 126
- Variable: No
- Arguments: None
Command 127
- Variable: no
- Arguments: u0 u1
- u0 is 1, 2, or 3.
- u1 is 0 or 1.
Command 129
- Variable: No
- Arguments: u0
- u0 looks like a sound ID.
Command 133
- Variable: No
- Arguments: 6500
This command is only used once. Value is a sound ID.
Command 164
- Variable: No
- Arguments: None
Command 169
- Variable: No
- Arguments: None
Command 196
- Variable: No
- Arguments: None
This command is only used in the demo.
Command 197
- Variable: No
- Arguments: None
This command is only used in the demo.
Command 198
- Variable: No
- Arguments: 5143 10 6 339 237 423 333 1 10
This command is only used once. 5143 is likely a sound ID.
Command 199
- Variable: No
- Arguments: None
Commands 200-299
These are only seen in the INIT scripts.
Command 200
- Variable: Optional
- Arguments: None
- Seen: DUNNY, INTRO, MECHAN, SELEN, STONE
- Variable: No
- Arguments: u0 u1[3]
- Seen: MYST
- u1 appears to be three sound IDs.
Command 201
- Variable: No
- Arguments: None
- Seen: CHANNEL, INTRO, SELEN, STONE
- Variable: No
- Arguments: u0
- Seen: MYST
- u0 looks like a sound ID.
- Variable: No
- Arguments: 0 4 5
- Seen: MECHAN
Command 202
- Variable: No
- Arguments: None
- Seen: MECHAN, SELEN, STONE
- Variable: Yes
- Arguments: None
- Seen: CHANNEL
- Variable: No
- Arguments: 13
- Seen: MYST
Command 203
- Variable: No
- Arguments: None
- Seen: CHANNEL, MECHAN, MYST, SELEN
- Variable: No
- Arguments: count u0[count] u1
- Seen: STONE
- u0 look like card IDs.
- u1 looks like a sound ID.
Command 204
- Variable: No
- Arguments: None
- Seen: MYST, SELEN, STONE
- Variable: No
- Arguments: u0
- Seen: MECHAN
- u0 looks like a sound ID.
Command 205
- Variable: No
- Arguments: None
- Seen: MYST, SELEN
- Variable: No
- Arguments: count u0[count] u1
- Seen: STONE
- u0 look like card IDs.
- u1 looks like a sound ID.
- Variable: No
- Arguments: u0[4]
- Seen: MECHAN
- u0 look like sound IDs.
Command 206
- Variable: No
- Arguments: None
- Seen: MYST, SELEN, STONE
- Variable: No
- Arguments: u0[6]
- Seen: MECHAN
- u0 look like sound IDs.
Command 207
- Variable: No
- Arguments: STONE
Command 208
- Variable: Yes
- Arguments: None
- Seen: MYST
- Variable: No
- Arguments: u0[3]
- Seen: STONE
Command 209
- Variable: No
- Arguments: None
- Seen:
Command 210
- Variable: No
- Arguments: None
- Seen:
Command 211
- Variable: No
- Arguments: None
- Seen:
Command 212
- Variable: No
- Arguments: None
Command 213
- Variable: No
- Arguments: None
Command 214
- Variable: No
- Arguments: None
- Seen:
Command 215
- Variable: No
- Arguments: None
- Seen:
Command 216
- Variable: No
- Arguments: None
- Seen:
Command 217
- Variable: No
- Arguments: None
Command 218
- Variable: No
- Arguments: None
- Seen:
Command 219
- Variable: No
- Arguments: None
- Seen:
Command 220
- Variable: No
- Arguments: None
- Seen:
Command 221
- Variable: No
- Arguments: None
- Seen:
Command 222
- Variable: No
- Arguments: None
- Seen:
Command 298
- Variable: No
- Arguments: None
This command is only used in the demo.
Command 299
- Variable: No
- Arguments: None
This command is only used in the demo.
Commands 300-399
These are only seen in the EXIT scripts.
Command 300
- Variable: No
- Arguments: None
- Seen:
Command 301
- Variable: No
- Arguments: None
- Seen:
Command 302
- Variable: No
- Arguments: None
- Seen:
Command 303
- Variable: No
- Arguments: None
- Seen:
Command 304
- Variable: No
- Arguments: None
Command 305
- Variable: No
- Arguments: None
- Seen:
Command 306
- Variable: No
- Arguments: None
- Seen:
Command 307
- Variable: No
- Arguments: None
- Seen:
Command 308
- Variable: No
- Arguments: None
- Seen:
Command 309
- Variable: No
- Arguments: None
- Seen:
Command 312
- Variable: No
- Arguments: None
- Seen: