List of Opcodes: Difference between revisions

Adex (talk | contribs)
m Reverted edits by Adex (talk) to last revision by Capypara
Tags: Rollback Reverted
Adex (talk | contribs)
m accidental rollback moment, very professional
Tags: Manual revert Visual edit
Line 209: Line 209:
|}
|}
=== 0x8 - back_SetDungeonBanner ===
=== 0x8 - back_SetDungeonBanner ===
Displays a specific string using the <code>FONT/banner.bin:FONT/b_pal.bin</code> font, editable in the Misc. Graphics tab of SkyTemple. The text chosen is defined in Dungeons tab as a dungeon's <code>back_SetDunegonBanner</code> string. This opcode will delete any actors, objects, and performers that are currently loaded.
Displays a specific string using the <code>FONT/banner.bin:FONT/b_pal.bin</code> font, editable in the Misc. Graphics tab of SkyTemple. The text chosen is defined in Dungeons tab as a dungeon's <code>back_SetDungeonBanner</code> string. This opcode will delete any actors, objects, and performers that are currently loaded.


{| class="wikitable"
{| class="wikitable"
Line 230: Line 230:
|}
|}
=== 0x9 - back_SetGround ===
=== 0x9 - back_SetGround ===
Sets the Map Background from a Level. Upon using this opcode, the variable $GROUND_MAP will be updated to match the ID of the chosen Level. This opcode will delete any actors, objects, and performers that are currently loaded.
Sets the Map Background from a Level. Upon using this opcode, the variable <code>$GROUND_MAP</code> will be updated to match the ID of the chosen Level. This opcode will delete any actors, objects, and performers that are currently loaded.


{| class="wikitable"
{| class="wikitable"
Line 327: Line 327:
|String
|String
|title
|title
|The title displayed onscreen.
|The title displayed on the Touch Screen.
|}
|}
=== 0xe - back_SetWeather ===
=== 0xe - back_SetWeather ===
Line 580: Line 580:
|1
|1
|sint
|sint
|mode_id
|mode
|A value of 0 is no mode. A negative value seems to set the Top Screen to the overworld's current Top Screen setting.
|A value of 0 is no mode. A negative value seems to set the Top Screen to the overworld's current Top Screen setting.


Line 779: Line 779:
|uint
|uint
|duration
|duration
|The number of frames to change the BGM's volume.
|The number of frames used to change the BGM's volume.
|-
|-
|2
|2
Line 836: Line 836:
|uint
|uint
|duration
|duration
|The number of frames to fade in the BGM.
|The number of frames used to fade in the BGM.
|-
|-
|3
|3
Line 1,674: Line 1,674:
|GameVar
|GameVar
|var
|var
|One of the 115 possible script variables. A two-indexed variable (e.g., $SCENARIO_MAIN) is encouraged to use.
|One of the 115 possible script variables. A two-indexed variable (e.g., <code>$SCENARIO_MAIN</code>) is encouraged to use.
|-
|-
|2
|2
Line 1,925: Line 1,925:
|uint
|uint
|duration
|duration
|The number of frames to fade out the screens.
|The number of frames used to fade out the screens.
|}
|}
=== 0x8e - main_EnterGround ===
=== 0x8e - main_EnterGround ===
Line 1,955: Line 1,955:
|uint
|uint
|duration
|duration
|The number of frames to fade out the screens.
|The number of frames used to fade out the screens.
|}
|}
=== 0x8f - main_EnterGroundMulti ===
=== 0x8f - main_EnterGroundMulti ===
Line 1,985: Line 1,985:
|uint
|uint
|duration
|duration
|The number of frames to fade out the screens.
|The number of frames used to fade out the screens.
|-
|-
|3
|3
Line 2,006: Line 2,006:
|uint
|uint
|duration
|duration
|The number of frames to fade out the screens.
|The number of frames used to fade out the screens.
|}
|}
=== 0x91 - main_EnterTraining ===
=== 0x91 - main_EnterTraining ===
Line 2,120: Line 2,120:
No parameters.
No parameters.
=== 0x98 - message_Explanation ===
=== 0x98 - message_Explanation ===
Displays the string defined in the ''txt'' parameter centered in the middle of the Touch Screen. The string will appear without any frame defined in FONT/frameX.wte (as seen in the Misc. Graphics tab of SkyTemple). This opcode does not need <code>message_Close</code> to suspend the routine.
Displays the string defined in the ''txt'' parameter centered in the middle of the Touch Screen. The string will appear without any frame defined in <code>FONT/frameX.wte</code> (as seen in the Misc. Graphics tab of SkyTemple). This opcode does not need <code>message_Close</code> to suspend the routine.


This opcode does not support displaying a portrait. No sound will emit from the text scrolling.
This opcode does not support displaying a portrait. No sound will emit from the text scrolling.
Line 2,159: Line 2,159:
|}
|}
=== 0x9a - message_ImitationSound ===
=== 0x9a - message_ImitationSound ===
Displays the string defined in the ''txt'' parameter at the bottom of the Touch Screen. The string will appear surrounded by a player-chosen frame defined in FONT/frameX.wte (as seen in the Misc. Graphics tab of SkyTemple).
Displays the string defined in the ''txt'' parameter at the bottom of the Touch Screen. The string will appear surrounded by a player-chosen frame defined in <code>FONT/frameX.wte</code> (as seen in the Misc. Graphics tab of SkyTemple).


This opcode does not support displaying a portrait. No sound will emit from the text scrolling.
This opcode does not support displaying a portrait. No sound will emit from the text scrolling.
Line 2,190: Line 2,190:
No parameters.
No parameters.
=== 0x9c - message_Mail ===
=== 0x9c - message_Mail ===
Displays the string defined in the ''txt'' parameter at the bottom of the Touch Screen. The string will appear surrounded by a player-chosen frame defined in FONT/frameX.wte (as seen in the Misc. Graphics tab of SkyTemple).
Displays the string defined in the ''txt'' parameter at the bottom of the Touch Screen. The string will appear surrounded by a player-chosen frame defined in <code>FONT/frameX.wte</code> (as seen in the Misc. Graphics tab of SkyTemple).


This opcode does not support displaying a portrait. No sound will emit from the text scrolling.
This opcode does not support displaying a portrait. No sound will emit from the text scrolling.
Line 2,224: Line 2,224:
|}
|}
=== 0x9e - message_Monologue ===
=== 0x9e - message_Monologue ===
Displays the string defined in the ''txt'' parameter at the bottom of the Touch Screen. The string will appear surrounded by a player-chosen frame defined in FONT/frameX.wte (as seen in the Misc. Graphics tab of SkyTemple).
Displays the string defined in the ''txt'' parameter at the bottom of the Touch Screen. The string will appear surrounded by a player-chosen frame defined in <code>FONT/frameX.wte</code> (as seen in the Misc. Graphics tab of SkyTemple).


This opcode supports displaying a portrait. No sound will emit from the text scrolling.
This opcode supports displaying a portrait. No sound will emit from the text scrolling.
Line 2,242: Line 2,242:
|}
|}
=== 0x9f - message_Narration ===
=== 0x9f - message_Narration ===
Fades in the screen and instantly displays the string defined in the ''txt'' parameter centered in the middle of the Touch Screen. The string will appear without any frame defined in FONT/frameX.wte (as seen in the Misc. Graphics tab of SkyTemple). This opcode does not need <code>message_Close</code> to suspend the routine. Once the routine is resumed (by pressing the A Button, B Button, or text via the Touch Screen), the screen will fade out, including the string.
Fades in the screen and instantly displays the string defined in the ''txt'' parameter centered in the middle of the Touch Screen. The string will appear without any frame defined in <code>FONT/frameX.wte</code> (as seen in the Misc. Graphics tab of SkyTemple). This opcode does not need <code>message_Close</code> to suspend the routine. Once the routine is resumed (by pressing the A Button, B Button, or text via the Touch Screen), the screen will fade out, including the string.


{| class="wikitable"
{| class="wikitable"
Line 2,255: Line 2,255:
|uint
|uint
|duration
|duration
|The number of frames to fade in/out the Touch Screen.
|The number of frames used to fade in/out the Touch Screen.
|-
|-
|2
|2
Line 2,263: Line 2,263:
|}
|}
=== 0xa0 - message_Notice ===
=== 0xa0 - message_Notice ===
Instantly displays the string defined in the ''txt'' parameter at the bottom of the Touch Screen. The string will appear surrounded by a player-chosen frame defined in FONT/frameX.wte (as seen in the Misc. Graphics tab of SkyTemple).
Instantly displays the string defined in the ''txt'' parameter at the bottom of the Touch Screen. The string will appear surrounded by a player-chosen frame defined in <code>FONT/frameX.wte</code> (as seen in the Misc. Graphics tab of SkyTemple).


This opcode does not support displaying a portrait.
This opcode does not support displaying a portrait.
Line 2,383: Line 2,383:
|}
|}
=== 0xa7 - message_SetFacePosition ===
=== 0xa7 - message_SetFacePosition ===
Repositions an actor's portrait.
Re-positions an actor's portrait.


{| class="wikitable"
{| class="wikitable"
Line 2,399: Line 2,399:
|}
|}
=== 0xa8 - message_SetWaitMode ===
=== 0xa8 - message_SetWaitMode ===
<TO DO: Opcode description>
Makes strings displayed with a <code>message_</code> opcode auto-scroll. For both parameters, a value of -1 means the auto-scroll will stop.


{| class="wikitable"
{| class="wikitable"
Line 2,410: Line 2,410:
|-
|-
|1
|1
|uint
|sint
|unk0
|duration0
|
|Sets the frame count for a textbox auto-advancing, once the end of the string has been displayed.
|-
|-
|2
|2
|uint
|sint
|unk1
|duration1
|
|Sets the frame count for text tags such as [K] auto-advancing.
|}
|}
=== 0xa9 - message_SpecialTalk ===
=== 0xa9 - message_SpecialTalk ===
<TO DO: Opcode description>
Displays a random Text String based off of the actor ACTOR_TALK_SUB's Talk Group.


{| class="wikitable"
{| class="wikitable"
Line 2,432: Line 2,432:
|1
|1
|uint
|uint
|unk0
|category
|
|A category of Text String.
 
* 0 seems to use Text Strings while not in a dungeon (e.g., teammates waiting at Spinda's Cafe).
* 1 seems to be use Text Strings while mid-dungeon (e.g., teammates at Amp Plains).
|}
|}
=== 0xae - message_Talk ===
=== 0xae - message_Talk ===
Displays text in the dialog box.  
Displays the string defined in the ''txt'' parameter at the bottom of the Touch Screen. The string will appear surrounded by a player-chosen frame defined in <code>FONT/frameX.wte</code> (as seen in the Misc. Graphics tab of SkyTemple).
 
This opcode supports displaying a portrait. The sound effect 16133 will emit from the each character scrolling in the text.


{| class="wikitable"
{| class="wikitable"
Line 2,449: Line 2,454:
|String
|String
|txt
|txt
|
|Text to be displayed on the Touch Screen.
|}
|}
=== 0xaf - Move2Position ===
=== 0xaf - Move2Position ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to a specific pixel position without restricting the angles used.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,464: Line 2,471:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|uint
|uint
|x
|x
|
|The pixel position on the X-axis.
|-
|-
|3
|3
|uint
|uint
|y
|y
|
|The pixel position on the Y-axis.
|}
|}
=== 0xb0 - Move2PositionLives ===
=== 0xb0 - Move2PositionLives ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to an actor without restricting the angles used.
 
This opcode must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,490: Line 2,500:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|uint
|Entity
|unk1
|actor_id
|
|An entry in the Actor List.
|}
|}
=== 0xb1 - Move2PositionMark ===
=== 0xb1 - Move2PositionMark ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to a Position Mark without restricting the angles used.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,512: Line 2,525:
|uint
|uint
|num_parameters
|num_parameters
|
|The number of parameters to read from this opcode.
|-
|-
|2+
|2+
|PositionMark
|PositionMark
|pos_marker
|pos_marker
|This parameter may be repeated multiple times
|A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.
This parameter may be repeated multiple times.
|}
|}
=== 0xb2 - Move2PositionMark ===
=== 0xb2 - Move2PositionMark ===
Moves an actor to the position marker defined by the user. The speed of the movement is defined by the first parameter, with the actor moving faster with higher numbers. Notably, there exists numbers that will cause the actor to move slower than the speed of 1, generally these are around 32000, such as 32896. The actor will not be bound by the grid and can walk diagonally to reach the position defined.
Moves an entity (i.e., an actor, object, or performer) to a Position Mark without restricting the angles used.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,532: Line 2,548:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|PositionMark
|PositionMark
|pos_marker
|pos_marker
|
|A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.
|}
|}
=== 0xb3 - Move2PositionOffset ===
=== 0xb3 - Move2PositionOffset ===
<TO DO: Opcode description>
Offsets an entity (i.e., an actor, object, or performer) from its current position across both axes without restricting the angles used.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,554: Line 2,573:
|uint
|uint
|num_parameters
|num_parameters
|
|The number of parameters to read from this opcode.
|-
|-
|2+
|2+
|sint
|sint
|x
|x, y
|This parameter may be repeated multiple times
|The pixel offset to shift the entity across the X or Y-axis.
This parameter may be repeated multiple times.
|}
|}
=== 0xb4 - Move2PositionOffset ===
=== 0xb4 - Move2PositionOffset ===
Moves an actor to a position that is x and y units away from their current x and y position respectively. The speed of the movement is defined by the first parameter, with the actor moving faster with higher numbers. Notably, there exists numbers that will cause the actor to move slower than the speed of 1, generally these are around 32000, such as 32896. The actor will not be bound by the grid and can walk diagonally to reach the position defined.
Offsets an entity (i.e., an actor, object, or performer) from its current position across both axes without restricting the angles used.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,574: Line 2,596:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|sint
|sint
|x
|x
|
|The pixel offset to shift the entity across the X-axis.
|-
|-
|3
|3
|sint
|sint
|y
|y
|
|The pixel offset to shift the entity across the Y-axis.
|}
|}
=== 0xb5 - Move2PositionOffsetRandom ===
=== 0xb5 - Move2PositionOffsetRandom ===
<TO DO: Opcode description>
Continuously and randomly offsets an entity (i.e., an actor, object, or performer) from its current position across both axes without restricting the angles used.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,600: Line 2,625:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|sint
|sint
|x
|x
|
|Determines something about the random pixel value chosen to apply to the X-axis; somewhat unknown.
|-
|-
|3
|3
|sint
|sint
|y
|y
|
|Determines something about the random pixel value chosen to apply to the Y-axis; somewhat unknown.
|}
|}
=== 0xb6 - Move3Position ===
=== 0xb6 - Move3Position ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to a specific pixel position in a rapid, strange motion.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,626: Line 2,654:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|uint
|uint
|x
|x
|
|The pixel position on the X-axis.
|-
|-
|3
|3
|uint
|uint
|y
|y
|
|The pixel position on the Y-axis.
|}
|}
=== 0xb7 - Move3PositionLives ===
=== 0xb7 - Move3PositionLives ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to an actor in a rapid, strange motion.
 
This opcode must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,652: Line 2,683:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|uint
|Entity
|unk1
|actor_id
|
|An entry in the Actor List.
|}
|}
=== 0xb8 - Move3PositionMark ===
=== 0xb8 - Move3PositionMark ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to a Position Mark in a rapid, strange motion.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,674: Line 2,708:
|uint
|uint
|num_parameters
|num_parameters
|
|The number of parameters to read from this opcode.
|-
|-
|2+
|2+
|PositionMark
|PositionMark
|pos_marker
|pos_marker
|This parameter may be repeated multiple times
|A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.
This parameter may be repeated multiple times.
|}
|}
=== 0xb9 - Move3PositionMark ===
=== 0xb9 - Move3PositionMark ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to a Position Mark in a rapid, strange motion.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,694: Line 2,731:
|1
|1
|uint
|uint
|num_parameters
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|PositionMark
|PositionMark
|pos_marker
|pos_marker
|
|A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.
|}
|}
=== 0xba - Move3PositionOffset ===
=== 0xba - Move3PositionOffset ===
<TO DO: Opcode description>
Offsets an entity (i.e., an actor, object, or performer) from its current position across both axes in a rapid, strange motion.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,716: Line 2,756:
|uint
|uint
|num_parameters
|num_parameters
|
|The number of parameters to read from this opcode.
|-
|-
|2+
|2+
|sint
|sint
|x
|x, y
|This parameter may be repeated multiple times
|The pixel offset to shift the entity across the X or Y-axis.
This parameter may be repeated multiple times.
|}
|}
=== 0xbb - Move3PositionOffset ===
=== 0xbb - Move3PositionOffset ===
<TO DO: Opcode description>
Offsets an entity (i.e., an actor, object, or performer) from its current position across both axes in a rapid, strange motion.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,736: Line 2,779:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|sint
|sint
|x
|x
|
|The pixel offset to shift the entity across the X-axis.
|-
|-
|3
|3
|sint
|sint
|y
|y
|
|The pixel offset to shift the entity across the Y-axis.
|}
|}
=== 0xbc - Move3PositionOffsetRandom ===
=== 0xbc - Move3PositionOffsetRandom ===
<TO DO: Opcode description>
Continuously and randomly offsets an entity (i.e., an actor, object, or performer) from its current position across both axes in a rapid, strange motion.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,762: Line 2,808:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|sint
|sint
|x
|x
|
|Determines something about the random pixel value chosen to apply to the X-axis; somewhat unknown.
|-
|-
|3
|3
|sint
|sint
|y
|y
|
|Determines something about the random pixel value chosen to apply to the Y-axis; somewhat unknown.
|}
|}
=== 0xbd - MoveDirection ===
=== 0xbd - MoveDirection ===
<TO DO: Opcode description>
Offsets an entity (i.e., an actor, object, or performer) by a certain number of pixels based on a given direction. Movement is performed while restricting movement by eight angles—as if movement was performed using the D-Pad.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,788: Line 2,837:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
|-
|-
|2
|2
|uint
|sint
|unk1
|offset
|
|The pixel offset to shift the entity relative to the entity's direction.
|-
|-
|3
|3
|uint
|Direction
|unk2
|direction
|
|The type of direction, the list of which can be seen by typing DIR_ in SkyTemple's Script Engine Debugger.
|}
|}
=== 0xbe - MoveHeight ===
=== 0xbe - MoveHeight ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to a certain pixel height, displacing it from its shadow. When used, the entity's animation and direction will not change.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,814: Line 2,865:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
|-
|-
|2
|2
|uint
|sint
|unk1
|height
|
|The pixel height to set the entity relative to their shadow.
|}
|}
=== 0xbf - MovePosition ===
=== 0xbf - MovePosition ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to a specific pixel position while restricting movement by eight angles—as if movement was performed using the D-Pad.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,835: Line 2,888:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|uint
|uint
|x
|x
|
|The pixel position on the X-axis.
|-
|-
|3
|3
|uint
|uint
|y
|y
|
|The pixel position on the Y-axis.
|}
|}
=== 0xc0 - MovePositionLives ===
=== 0xc0 - MovePositionLives ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to an actor while restricting movement by eight angles—as if movement was performed using the D-Pad.
 
This opcode must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,861: Line 2,917:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|uint
|Entity
|unk1
|actor_id
|
|An entry in the Actor List.
|}
|}
=== 0xc1 - MovePositionLivesTime ===
=== 0xc1 - MovePositionLivesTime ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to an actor while restricting movement by eight angles—as if movement was performed using the D-Pad. Movement will end once either the entity reaches the actor or after a certain number of frames have passed—whichever comes first.
 
This opcode must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,882: Line 2,941:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|uint
|Entity
|unk1
|actor_id
|
|An entry in the Actor List.
|-
|-
|3
|3
|uint
|uint
|unk2
|duration
|
|The number of frames used to move the entity.
|}
|}
=== 0xc2 - MovePositionMark ===
=== 0xc2 - MovePositionMark ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to a Position Mark while restricting movement by eight angles—as if movement was performed using the D-Pad.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,909: Line 2,971:
|uint
|uint
|num_parameters
|num_parameters
|
|The number of parameters to read from this opcode.
|-
|-
|2+
|2+
|PositionMark
|PositionMark
|pos_marker
|pos_marker
|This parameter may be repeated multiple times
|A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.
This parameter may be repeated multiple times.
|}
|}
=== 0xc3 - MovePositionMark ===
=== 0xc3 - MovePositionMark ===
Moves an actor to the position marker defined by the user. The speed of the movement is defined by the first parameter, with the actor moving faster with higher numbers. Notably, there exists numbers that will cause the actor to move slower than the speed of 1, generally these are around 32000, such as 32896. The actor is bound by the grid and will move in cardinal directions and diagonally, but only in directions 45 degrees from the cardinal directions.
Moves an entity (i.e., an actor, object, or performer) to a Position Mark while restricting movement by eight angles—as if movement was performed using the D-Pad.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,929: Line 2,994:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|PositionMark
|PositionMark
|pos_marker
|pos_marker
|
|A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.
|}
|}
=== 0xc4 - MovePositionMarkTime ===
=== 0xc4 - MovePositionMarkTime ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) to an Position Mark while restricting movement by eight angles—as if movement was performed using the D-Pad. Movement will end once either the entity reaches the Position Mark or after a certain number of frames have passed—whichever comes first.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,950: Line 3,018:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|uint
|PositionMark
|unk1
|pos_marker
|
|A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.
|-
|-
|3
|3
|PositionMark
|uint
|pos_marker
|duration
|
|The number of frames used to move the entity.
|}
|}
=== 0xc5 - MovePositionOffset ===
=== 0xc5 - MovePositionOffset ===
<TO DO: Opcode description>
Offsets an entity (i.e., an actor, object, or performer) from its current position across both axes while restricting movement by eight angles—as if movement was performed using the D-Pad.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,977: Line 3,048:
|uint
|uint
|num_parameters
|num_parameters
|
|The number of parameters to read from this opcode.
|-
|-
|2+
|2+
|sint
|sint
|x
|x, y
|This parameter may be repeated multiple times
|The pixel offset to shift the entity across the X or Y-axis.
This parameter may be repeated multiple times.
|}
|}
=== 0xc6 - MovePositionOffset ===
=== 0xc6 - MovePositionOffset ===
Moves an actor to a position that is x and y units away from their current x and y position respectively. The speed of the movement is defined by the first parameter, with the actor moving faster with higher numbers. Notably, there exists numbers that will cause the actor to move slower than the speed of 1, generally these are around 32000, such as 32896. The actor is bound by the grid and will move in cardinal directions and diagonally, but only in directions 45 degrees from the cardinal directions.
Offsets an entity (i.e., an actor, object, or performer) from its current position across both axes while restricting movement by eight angles—as if movement was performed using the D-Pad.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 2,997: Line 3,071:
|1
|1
|uint
|uint
|unk0
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
|-
|-
|2
|2
|sint
|sint
|x
|x
|
|The pixel offset to shift the entity across the X-axis.
|-
|-
|3
|3
|sint
|sint
|y
|y
|
|The pixel offset to shift the entity across the Y-axis.
|}
|}
=== 0xc7 - MoveSpecial ===
=== 0xc7 - MoveSpecial ===
<TO DO: Opcode description>
Currently unknown. Seems to move an entity (i.e., an actor, object, or performer) based on some hardcoded behaviors.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 3,023: Line 3,100:
|1
|1
|uint
|uint
|unk0
|mode
|
|Determines the kind of action.
 
# Spin and move in a circular motion.
# Spin and move in a circular motion.
# Currently unknown.
# Currently unknown.
# Currently unknown. Seems to be the most commonly-used value, as a part of the Unionall Coroutine CORO_LIVES_REPLY_NOMRAL.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Currently unknown. Seems to affect how far the entity will move?
|-
|-
|3
|3
|uint
|uint
|unk2
|unk2
|
|Currently unknown.
|}
|}
=== 0xc8 - MoveTurn ===
=== 0xc8 - MoveTurn ===
<TO DO: Opcode description>
Moves an entity (i.e., an actor, object, or performer) based on a certain pattern. Unlike other <code>Move</code> opcodes, this opcode will make the entity interact with the currently loaded Map Background's collision (i.e., the entity stops when hitting a wall).
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 3,049: Line 3,134:
|1
|1
|uint
|uint
|unk0
|distance
|
|How far the entity will move. Higher values result in greater distance being covered.
|-
|-
|2
|2
|uint
|uint
|unk1
|speed
|
|Movement speed. Higher values result in a faster speed. 0 will result in an instant movement.
Values starting at 32770 and above will be slower than a value of 1.
 
This parameter also seems to affect the distance traveled.
|-
|-
|3
|3
|uint
|uint
|unk2
|pattern
|
|A hardcoded pattern to move in.
 
# Moves in a circle clockwise.
# Moves in a circle counterclockwise.
# Moves in a square clockwise.
# Moves in a square counterclockwise.
# Zig-zags back and forth.
 
Values 6 and above seem to be variations of random movement.
|}
|}
=== 0xca - PauseEffect ===
=== 0xca - PauseEffect ===
<TO DO: Opcode description>
Instantly pauses the current graphical effect of an entity (i.e., an actor, object, or performer). The effect will freeze mid-frame.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 3,074: Line 3,172:
|-
|-
|1
|1
|uint
|Effect
|unk0
|effect_id
|
|A graphical effect to display relative to an entity.
|}
|}
=== 0xcc - ProcessSpecial ===
=== 0xcc - ProcessSpecial ===
<TO DO: Opcode description>
Executes one of the game's Special Processes. The return value of a Special Process can be checked by encasing this opcode in a <code>switch</code> statement. A negative return value is not acceptable and will cause the game to suspend indefinitely.
 
This opcode cannot be used in targeted routines.


{| class="wikitable"
{| class="wikitable"
Line 3,092: Line 3,192:
|ProcessSpecial
|ProcessSpecial
|process_id
|process_id
|
|One of the game's Special Processes.
|-
|-
|2
|2
|uint
|sint
|unk1
|process_param1
|
|The first parameter used by the Special Process.
|-
|-
|3
|3
|uint
|sint
|unk2
|process_param2
|
|The first parameter used by the Special Process.
|}
|}
=== 0xcd - PursueTurnLives ===
=== 0xcd - PursueTurnLives ===
<TO DO: Opcode description>
Causes an entity (i.e., an actor, object, or performer) to continuously turn toward an actor for a certain number of frames.
 
This opcode must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 3,117: Line 3,219:
|1
|1
|uint
|uint
|unk0
|duration
|
|The number of frames used to make the entity turn. A value of 0 will make the entity turn forever.
|-
|-
|2
|2
|uint
|uint
|unk1
|speed
|
|Turning speed. Higher values result in a slower speed.
|-
|-
|3
|3
|uint
|Entity
|unk2
|actor_id
|
|The actor to turn toward.
|-
|-
|4
|4
|uint
|uint
|unk3
|rotation
|
|
# Clockwise.
# Counterclockwise.
A value of 10 will make the entity choose the nearest rotation.
|}
|}
=== 0xce - PursueTurnLives2 ===
=== 0xce - PursueTurnLives2 ===
<TO DO: Opcode description>
Causes an entity (i.e., an actor, object, or performer) to continuously turn toward an actor for a certain number of frames.
 
This opcode must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 3,148: Line 3,256:
|1
|1
|uint
|uint
|unk0
|duration
|
|The number of frames used to make the entity turn. A value of 0 will make the entity turn forever.
|-
|-
|2
|2
|uint
|uint
|unk1
|speed
|
|Turning speed. Higher values result in a slower speed.
|-
|-
|3
|3
|uint
|Entity
|unk2
|actor_id
|
|The actor to turn toward.
|-
|-
|4
|4
|uint
|uint
|unk3
|rotation
|
|
# Clockwise.
# Counterclockwise.
A value of 10 will make the entity choose the nearest rotation.
|}
|}
=== 0xcf - ResetAttribute ===
=== 0xcf - ResetAttribute ===
<TO DO: Opcode description>
Currently unknown. Seems to get ignored when parsed in the scripting engine.


{| class="wikitable"
{| class="wikitable"
Line 3,180: Line 3,292:
|uint
|uint
|unk0
|unk0
|
|Currently unknown.
|}
|}
=== 0xd0 - ResetFunctionAttribute ===
=== 0xd0 - ResetFunctionAttribute ===
<TO DO: Opcode description>
Sets certain bits of an entity's (i.e., an actor, object, or performer) "function" attribute to 0.


{| class="wikitable"
{| class="wikitable"
Line 3,195: Line 3,307:
|1
|1
|uint
|uint
|unk0
|function_bitfield
|
|Most bits' purposes are unknown. Bit 1 appears to be the bit used for allowing an entity to follow a Type 1 actor, like the actor ACTOR_ATTENDANT1 in the overworld.
|}
|}
=== 0xd1 - ResetHitAttribute ===
=== 0xd1 - ResetHitAttribute ===
<TO DO: Opcode description>
Sets certain bits of an entity's (i.e., an actor, object, or performer) "hit" attribute to 0.


{| class="wikitable"
{| class="wikitable"
Line 3,211: Line 3,323:
|1
|1
|uint
|uint
|unk0
|hit_bitfield
|
|Most bits' purposes are unknown.
 
* 2: Entity collision.
* 6: Talk Script upon collision.
* 7: Talk Script upon pressing the A Button near the entity.
|}
|}
=== 0xd2 - ResetOutputAttribute ===
=== 0xd2 - ResetOutputAttribute ===
<TO DO: Opcode description>
Sets certain bits of an entity's (i.e., an actor, object, or performer) "output" attribute to 0.


{| class="wikitable"
{| class="wikitable"
Line 3,227: Line 3,343:
|1
|1
|uint
|uint
|unk0
|output_bitfield
|
|
# Underlay below entities.
# Overlay above entities.
# Overlay above the current Map Background's Layer 2.
# Overlay above the game's canvas system, which includes the textbox, portrait, and some <code>screen_</code> commands that do not end in <code>All</code>.
# Flicker.
# Transparency.
# Invisibility.
# Displays shadow.
|}
|}
=== 0xd3 - ResetReplyAttribute ===
=== 0xd3 - ResetReplyAttribute ===
<TO DO: Opcode description>
Sets certain bits of an entity's (i.e., an actor, object, or performer) "reply" attribute to 0.


{| class="wikitable"
{| class="wikitable"
Line 3,243: Line 3,367:
|1
|1
|uint
|uint
|unk0
|reply_bitfield
|
|Most bits' purposes are unknown.
 
* 1: Talk Script upon collision.
* 2: Talk Script upon pressing the A Button near the entity.
* 6: Underlay below entities.
* 7: Overlay above entities.
|}
|}
=== 0xd4 - ResumeEffect ===
=== 0xd4 - ResumeEffect ===
<TO DO: Opcode description>
Resumes the current graphical effect of an entity (i.e., an actor, object, or performer) that has been paused with <code>PauseEffect</code> prior to using this opcode.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 3,258: Line 3,389:
|-
|-
|1
|1
|uint
|Effect
|unk0
|effect_id
|
|A graphical effect to display relative to an entity.
|}
|}
=== 0xd6 - SavePosition ===
=== 0xd6 - SavePosition ===
<TO DO: Opcode description>
Saves various attributes of an entity (i.e., an actor, object, or performer) to the following script variables:
 
* <code>$POSITION_X</code>: The pixel position of the entity on the X-axis multiplied by 256.
* <code>$POSITION_Y</code>: The pixel position of the entity on the Y-axis multiplied by 256.
* <code>$POSITION_HEIGHT</code>: The pixel height (i.e., displacement of the entity from their shadow) of the entity multiplied by 256.
* <code>$POSITION_DIRECTION</code>: The direction the entity is facing.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


{| class="wikitable"
{| class="wikitable"
Line 3,275: Line 3,413:
|1
|1
|uint
|uint
|unk0
|index
|
|Index used by all <code>$POSITION_</code> script variables, ranged from 0-2 (inclusive).
|}
|}
=== 0xd7 - screen_FadeChange ===
=== 0xd7 - screen_FadeChange ===
Changes the brightness level of the screen.
Changes the brightness of the screen across a certain number of frames. This opcode will not affect:
 
* Entities who have had their 4th "output" bit set to 1 (e.g., by using <code>SetOutputAttribute(16);</code> with them).
* Portraits.
* Textboxes.


{| class="wikitable"
{| class="wikitable"
Line 3,291: Line 3,433:
|1
|1
|bool
|bool
|wait
|suspension_flag
|If true, the game will wait for the brightness operation to finish before continuing
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and 1 is true.
|-
|-
|2
|2
|uint
|uint
|frames
|duration
|Number of frames taken to change the brightness
|The number of frames used to change the Touch Screen's brightness.
|-
|-
|3
|3
|uint
|uint
|start_brightness
|start_brightness
|Starting brightness level. Default brightness is 256.
|The brightness level the opcode will begin at.
 
* The minimum brightness is 0, which results in a black screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a white screen.
|-
|-
|4
|4
|uint
|uint
|end_brightness
|end_brightness
|Final brightness level. Default brightness is 256.
|The brightness level the opcode will end at.
 
* The minimum brightness is 0, which results in a black screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a white screen.
|}
|}
=== 0xd8 - screen_FadeChangeAll ===
=== 0xd8 - screen_FadeChangeAll ===
<TO DO: Opcode description>
Changes the brightness of the screen across a certain number of frames. This opcode will affect everything on the Touch Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,321: Line 3,471:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Touch Screen's brightness.
|-
|-
|3
|3
|uint
|uint
|unk2
|start_brightness
|
|The brightness level the opcode will begin at.
 
* The minimum brightness is 0, which results in a black screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a white screen.
|-
|-
|4
|4
|uint
|uint
|unk3
|end_brightness
|
|The brightness level the opcode will end at.
 
* The minimum brightness is 0, which results in a black screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a white screen.
|}
|}
=== 0xd9 - screen_FadeIn ===
=== 0xd9 - screen_FadeIn ===
<TO DO: Opcode description>
Changes the brightness of the screen to its default state across a certain number of frames. This opcode will not affect:
 
* Entities who have had their 4th "output" bit set to 1 (e.g., by using <code>SetOutputAttribute(16);</code> with them).
* Portraits.
* Textboxes.


{| class="wikitable"
{| class="wikitable"
Line 3,353: Line 3,515:
|1
|1
|bool
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|duration
|duration
|
|The number of frames used to change the Touch Screen's brightness.
|}
|}
=== 0xda - screen_FadeInAll ===
=== 0xda - screen_FadeInAll ===
<TO DO: Opcode description>
Changes the brightness of the screen to its default state across a certain number of frames. This opcode will affect everything on the Touch Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,374: Line 3,536:
|1
|1
|bool
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|duration
|duration
|
|The number of frames used to change the Touch Screen's brightness.
|}
|}
=== 0xdb - screen_FadeOut ===
=== 0xdb - screen_FadeOut ===
<TO DO: Opcode description>
Changes the brightness of the screen to its minimum (i.e., a black screen) across a certain number of frames. This opcode will not affect:
 
* Entities who have had their 4th "output" bit set to 1 (e.g., by using <code>SetOutputAttribute(16);</code> with them).
* Portraits.
* Textboxes.


{| class="wikitable"
{| class="wikitable"
Line 3,395: Line 3,561:
|1
|1
|bool
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|duration
|duration
|
|The number of frames used to change the Touch Screen's brightness.
|}
|}
=== 0xdc - screen_FadeOutAll ===
=== 0xdc - screen_FadeOutAll ===
<TO DO: Opcode description>
Changes the brightness of the screen to its minimum (i.e., a black screen) across a certain number of frames. This opcode will affect everything on the Touch Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,416: Line 3,582:
|1
|1
|bool
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|duration
|duration
|
|The number of frames used to change the Touch Screen's brightness.
|}
|}
=== 0xdd - screen_FlushChange ===
=== 0xdd - screen_FlushChange ===
<TO DO: Opcode description>
Does nothing.
 
{| class="wikitable"
{| class="wikitable"
|+Parameters
|+Parameters
|-
!#
!#
!Type
!Type
Line 3,438: Line 3,602:
|uint
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Does nothing.
|-
|-
|3
|3
|uint
|uint
|unk2
|unk2
|
|Does nothing.
|-
|-
|4
|4
|uint
|uint
|unk3
|unk3
|
|Does nothing.
|-
|-
|5
|5
|uint
|uint
|unk4
|unk4
|
|Does nothing.
|-
|-
|6
|6
|uint
|uint
|unk5
|unk5
|
|Does nothing.
|-
|-
|7
|7
|uint
|uint
|unk6
|unk6
|
|Does nothing.
|-
|-
|8
|8
|uint
|uint
|unk7
|unk7
|
|Does nothing.
|}
|}
=== 0xde - screen_FlushIn ===
=== 0xde - screen_FlushIn ===
<TO DO: Opcode description>
Changes the color of the screen from a specific state (given by the opcode's parameters, which affect the Touch Screen instantly) to its default state across a certain number of frames. This opcode will affect everything on the Touch Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,487: Line 3,652:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Touch Screen's color.
|-
|-
|3
|3
|uint
|uint
|unk2
|mode
|
|
# Completely darkens the Touch Screen.
# Completely turns the Touch Screen to a certain color.
# Instantly darkens the Touch Screen?
# Overlays the Touch Screen with a certain color.
# Instantly darkens the Touch Screen?
# Overlays the Touch Screen with hardcoded color bytes: 144, 144, and 255.
# Instantly darkens the Touch Screen?
# Overlays the Touch Screen with hardcoded color bytes: 255, 192, and 128.
# Instantly darkens the Touch Screen?
# Overlays the Touch Screen with hardcoded color bytes: All 255. The Touch Screen is not turned completely white.
# Instantly overlays the Touch Screen with hardcoded color bytes: All 255. The Touch Screen is not turned completely white.
|-
|-
|4
|4
|uint
|uint
|unk3
|r
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color red. Has a minimum of 0 and a maximium of 255.
|-
|-
|5
|5
|uint
|uint
|unk4
|g
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color green. Has a minimum of 0 and a maximium of 255.
|-
|-
|6
|6
|uint
|uint
|unk5
|b
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color blue. Has a minimum of 0 and a maximium of 255.
|}
|}
=== 0xdf - screen_FlushOut ===
=== 0xdf - screen_FlushOut ===
<TO DO: Opcode description>
Changes the color of the screen across a certain number of frames. This opcode will affect everything on the Touch Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,528: Line 3,704:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Touch Screen's color.
|-
|-
|3
|3
|uint
|uint
|unk2
|mode
|
|
# Completely darkens the Touch Screen.
# Completely turns the Touch Screen to a certain color.
# Instantly darkens the Touch Screen?
# Overlays the Touch Screen with a certain color.
# Instantly darkens the Touch Screen?
# Overlays the Touch Screen with hardcoded color bytes: 144, 144, and 255.
# Instantly darkens the Touch Screen?
# Overlays the Touch Screen with hardcoded color bytes: 255, 192, and 128.
# Instantly darkens the Touch Screen?
# Overlays the Touch Screen with hardcoded color bytes: All 255. The Touch Screen is not turned completely white.
# Instantly overlays the Touch Screen with hardcoded color bytes: All 255. The Touch Screen is not turned completely white.
|-
|-
|4
|4
|uint
|uint
|unk3
|r
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color red. Has a minimum of 0 and a maximium of 255.
|-
|-
|5
|5
|uint
|uint
|unk4
|g
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color green. Has a minimum of 0 and a maximium of 255.
|-
|-
|6
|6
|uint
|uint
|unk5
|b
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color blue. Has a minimum of 0 and a maximium of 255.
|}
|}
=== 0xe0 - screen_WhiteChange ===
=== 0xe0 - screen_WhiteChange ===
<TO DO: Opcode description>
Changes the brightness of the screen across a certain number of frames. This opcode will not affect:
 
* Entities who have had their 4th "output" bit set to 1 (e.g., by using <code>SetOutputAttribute(16);</code> with them).
* Portraits.
* Textboxes.


{| class="wikitable"
{| class="wikitable"
Line 3,569: Line 3,760:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and 1 is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Touch Screen's brightness.
|-
|-
|3
|3
|uint
|uint
|unk2
|start_brightness
|
|The brightness level the opcode will begin at.
 
* The minimum brightness is 0, which results in a white screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a black screen.
|-
|-
|4
|4
|uint
|uint
|unk3
|end_brightness
|
|The brightness level the opcode will end at.
 
* The minimum brightness is 0, which results in a white screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a black screen.
|}
|}
=== 0xe1 - screen_WhiteChangeAll ===
=== 0xe1 - screen_WhiteChangeAll ===
<TO DO: Opcode description>
Changes the brightness of the screen across a certain number of frames. This opcode will affect everything on the Touch Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,600: Line 3,799:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Touch Screen's brightness.
|-
|-
|3
|3
|uint
|uint
|unk2
|start_brightness
|
|The brightness level the opcode will begin at.
 
* The minimum brightness is 0, which results in a white screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a black screen.
|-
|-
|4
|4
|uint
|uint
|unk3
|end_brightness
|
|The brightness level the opcode will end at.
 
* The minimum brightness is 0, which results in a white screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a black screen.
|}
|}
=== 0xe2 - screen_WhiteIn ===
=== 0xe2 - screen_WhiteIn ===
<TO DO: Opcode description>
Does nothing. Do not be deceived by this opcode's name: After using <code>screen_WhiteOut</code>, use <code>screen_FadeIn</code> to restore the Touch Screen's brightness level!


{| class="wikitable"
{| class="wikitable"
Line 3,633: Line 3,840:
|uint
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Does nothing.
|}
|}
=== 0xe3 - screen_WhiteInAll ===
=== 0xe3 - screen_WhiteInAll ===
<TO DO: Opcode description>
Does nothing. Do not be deceived by this opcode's name: After using <code>screen_WhiteOutAll</code>, use <code>screen_FadeInAll</code> to restore the Touch Screen's brightness level!


{| class="wikitable"
{| class="wikitable"
Line 3,654: Line 3,861:
|uint
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Does nothing.
|}
|}
=== 0xe4 - screen_WhiteOut ===
=== 0xe4 - screen_WhiteOut ===
<TO DO: Opcode description>
Changes the brightness of the screen to its maximum (i.e., a white screen) across a certain number of frames. This opcode will not affect:
 
* Entities who have had their 4th "output" bit set to 1 (e.g., by using <code>SetOutputAttribute(16);</code> with them).
* Portraits.
* Textboxes.


{| class="wikitable"
{| class="wikitable"
Line 3,673: Line 3,884:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Touch Screen's brightness.
|}
|}
=== 0xe5 - screen_WhiteOutAll ===
=== 0xe5 - screen_WhiteOutAll ===
<TO DO: Opcode description>
Changes the brightness of the screen to its maximum (i.e., a white screen) across a certain number of frames. This opcode will affect everything on the Touch Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,694: Line 3,905:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Touch Screen's brightness.
|}
|}
=== 0xe6 - screen2_FadeChange ===
=== 0xe6 - screen2_FadeChange ===
<TO DO: Opcode description>
Changes the brightness of the screen across a certain number of frames. This opcode will affect everything on the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,715: Line 3,926:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and 1 is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Top Screen's brightness.
|-
|-
|3
|3
|uint
|uint
|unk2
|start_brightness
|
|The brightness level the opcode will begin at.
 
* The minimum brightness is 0, which results in a black screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a white screen.
|-
|-
|4
|4
|uint
|uint
|unk3
|end_brightness
|
|The brightness level the opcode will end at.
 
* The minimum brightness is 0, which results in a black screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a white screen.
|}
|}
=== 0xe7 - screen2_FadeChangeAll ===
=== 0xe7 - screen2_FadeChangeAll ===
<TO DO: Opcode description>
Does nothing.


{| class="wikitable"
{| class="wikitable"
Line 3,748: Line 3,967:
|uint
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Does nothing.
|-
|-
|3
|3
|uint
|uint
|unk2
|unk2
|
|Does nothing.
 
 
|-
|-
|4
|4
|uint
|uint
|unk3
|unk3
|
|Does nothing.
 
 
|}
|}
=== 0xe8 - screen2_FadeIn ===
=== 0xe8 - screen2_FadeIn ===
<TO DO: Opcode description>
Changes the brightness of the screen to its default state across a certain number of frames. This opcode will affect everything on the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,778: Line 4,001:
|1
|1
|bool
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|duration
|duration
|
|The number of frames used to change the Top Screen's brightness.
|}
|}
=== 0xe9 - screen2_FadeInAll ===
=== 0xe9 - screen2_FadeInAll ===
<TO DO: Opcode description>
Does nothing.


{| class="wikitable"
{| class="wikitable"
Line 3,798: Line 4,021:
|-
|-
|1
|1
|bool
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|duration
|unk1
|
|Does nothing.
|}
|}
=== 0xea - screen2_FadeOut ===
=== 0xea - screen2_FadeOut ===
<TO DO: Opcode description>
Changes the brightness of the screen to its minimum (i.e., a black screen) across a certain number of frames. This opcode will affect everything on the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,820: Line 4,043:
|1
|1
|bool
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|duration
|duration
|
|The number of frames used to change the Top Screen's brightness.
|}
|}
=== 0xeb - screen2_FadeOutAll ===
=== 0xeb - screen2_FadeOutAll ===
<TO DO: Opcode description>
Does nothing.


{| class="wikitable"
{| class="wikitable"
Line 3,840: Line 4,063:
|-
|-
|1
|1
|bool
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|duration
|unk1
|
|Does nothing.
|}
|}
=== 0xec - screen2_FlushChange ===
=== 0xec - screen2_FlushChange ===
<TO DO: Opcode description>
Does nothing.


{| class="wikitable"
{| class="wikitable"
Line 3,863: Line 4,086:
|uint
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Does nothing.
|-
|-
|3
|3
|uint
|uint
|unk2
|unk2
|
|Does nothing.
|-
|-
|4
|4
|uint
|uint
|unk3
|unk3
|
|Does nothing.
|-
|-
|5
|5
|uint
|uint
|unk4
|unk4
|
|Does nothing.
|-
|-
|6
|6
|uint
|uint
|unk5
|unk5
|
|Does nothing.
|-
|-
|7
|7
|uint
|uint
|unk6
|unk6
|
|Does nothing.
|-
|-
|8
|8
|uint
|uint
|unk7
|unk7
|
|Does nothing.
|}
|}
=== 0xed - screen2_FlushIn ===
=== 0xed - screen2_FlushIn ===
<TO DO: Opcode description>
The same as <code>screen_FlushIn</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,912: Line 4,135:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Top Screen's color.
|-
|-
|3
|3
|uint
|uint
|unk2
|mode
|
|
# Completely darkens the Top Screen.
# Completely turns the Top Screen to a certain color.
# Instantly darkens the Top Screen?
# Overlays the Top Screen with a certain color.
# Instantly darkens the Top Screen?
# Overlays the Top Screen with hardcoded color bytes: 144, 144, and 255.
# Instantly darkens the Top Screen?
# Overlays the Top Screen with hardcoded color bytes: 255, 192, and 128.
# Instantly darkens the Top Screen?
# Overlays the Top Screen with hardcoded color bytes: All 255. The Top Screen is not turned completely white.
# Instantly overlays the Top Screen with hardcoded color bytes: All 255. The Top Screen is not turned completely white.
|-
|-
|4
|4
|uint
|uint
|unk3
|r
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color red. Has a minimum of 0 and a maximium of 255.
|-
|-
|5
|5
|uint
|uint
|unk4
|g
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color green. Has a minimum of 0 and a maximium of 255.
|-
|-
|6
|6
|uint
|uint
|unk5
|b
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color blue. Has a minimum of 0 and a maximium of 255.
|}
|}
=== 0xee - screen2_FlushOut ===
=== 0xee - screen2_FlushOut ===
<TO DO: Opcode description>
The same as <code>screen_FlushOut</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,953: Line 4,187:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Top Screen's color.
|-
|-
|3
|3
|uint
|uint
|unk2
|mode
|
|
# Completely darkens the Top Screen.
# Completely turns the Top Screen to a certain color.
# Instantly darkens the Top Screen?
# Overlays the Top Screen with a certain color.
# Instantly darkens the Top Screen?
# Overlays the Top Screen with hardcoded color bytes: 144, 144, and 255.
# Instantly darkens the Top Screen?
# Overlays the Top Screen with hardcoded color bytes: 255, 192, and 128.
# Instantly darkens the Top Screen?
# Overlays the Top Screen with hardcoded color bytes: All 255. The Top Screen is not turned completely white.
# Instantly overlays the Top Screen with hardcoded color bytes: All 255. The Top Screen is not turned completely white.
|-
|-
|4
|4
|uint
|uint
|unk3
|r
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color red. Has a minimum of 0 and a maximium of 255.
|-
|-
|5
|5
|uint
|uint
|unk4
|g
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color green. Has a minimum of 0 and a maximium of 255.
|-
|-
|6
|6
|uint
|uint
|unk5
|b
|
|Unused if ''mode'' is not 2 or 4. Byte used for the color blue. Has a minimum of 0 and a maximium of 255.
|}
|}
=== 0xef - screen2_WhiteChange ===
=== 0xef - screen2_WhiteChange ===
<TO DO: Opcode description>
Changes the brightness of the screen across a certain number of frames. This opcode will affect everything on the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 3,994: Line 4,239:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Top Screen's brightness.
|-
|-
|3
|3
|uint
|uint
|unk2
|start_brightness
|
|The brightness level the opcode will begin at.
 
* The minimum brightness is 0, which results in a white screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a black screen.
|-
|-
|4
|4
|uint
|uint
|unk3
|end_brightness
|
|The brightness level the opcode will end at.
 
* The minimum brightness is 0, which results in a white screen.
* The default brightness is 256.
* The maximum brightness is 512, which results in a black screen.
|}
|}
=== 0xf0 - screen2_WhiteChangeAll ===
=== 0xf0 - screen2_WhiteChangeAll ===
<TO DO: Opcode description>
Does nothing.


{| class="wikitable"
{| class="wikitable"
Line 4,027: Line 4,280:
|uint
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Does nothing.
|-
|-
|3
|3
|uint
|uint
|unk2
|unk2
|
|Does nothing.
 
 
|-
|-
|4
|4
|uint
|uint
|unk3
|unk3
|
|Does nothing.
|}
|}
=== 0xf1 - screen2_WhiteIn ===
=== 0xf1 - screen2_WhiteIn ===
<TO DO: Opcode description>
Does nothing. Do not be deceived by this opcode's name: After using <code>screen2_WhiteOut</code>, use <code>screen2_FadeIn</code> to restore the Top Screen's brightness level!


{| class="wikitable"
{| class="wikitable"
Line 4,058: Line 4,313:
|uint
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Does nothing.
|}
|}
=== 0xf2 - screen2_WhiteInAll ===
=== 0xf2 - screen2_WhiteInAll ===
<TO DO: Opcode description>
Does nothing.


{| class="wikitable"
{| class="wikitable"
Line 4,079: Line 4,334:
|uint
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Does nothing.
|}
|}
=== 0xf3 - screen2_WhiteOut ===
=== 0xf3 - screen2_WhiteOut ===
<TO DO: Opcode description>
Changes the brightness of the screen to its maximum (i.e., a white screen) across a certain number of frames. This opcode will affect everything on the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 4,098: Line 4,353:
|-
|-
|1
|1
|uint
|bool
|unk0
|suspension_flag
|
|Determines whether the script will suspend until this opcode's operation is complete. 0 is false and anything else is true.
|-
|-
|2
|2
|uint
|uint
|unk1
|duration
|
|The number of frames used to change the Top Screen's brightness.
|}
|}
=== 0xf4 - screen2_WhiteOutAll ===
=== 0xf4 - screen2_WhiteOutAll ===
<TO DO: Opcode description>
Does nothing.


{| class="wikitable"
{| class="wikitable"
Line 4,121: Line 4,376:
|uint
|uint
|unk0
|unk0
|
|Does nothing.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Does nothing.
|}
|}
=== 0xf5 - se_ChangePan ===
=== 0xf5 - se_ChangePan ===
<TO DO: Opcode description>
Currently unknown.


{| class="wikitable"
{| class="wikitable"
Line 4,142: Line 4,397:
|uint
|uint
|unk0
|unk0
|
|Currently unknown.
|-
|-
|2
|2
|uint
|uint
|unk1
|unk1
|
|Currently unknown.
|-
|-
|3
|3
|uint
|uint
|unk2
|unk2
|
|Currently unknown.
|}
|}
=== 0xf6 - se_ChangeVolume ===
=== 0xf6 - se_ChangeVolume ===