List of Opcodes: Difference between revisions

From SkyTemple
Some opcode info (0x1 - 0x38)
m A bit more opcodes
Line 867: Line 867:
|volume
|volume
|The volume that the BGM will play at. It has a maximum of 256 and a minimum of 0.
|The volume that the BGM will play at. It has a maximum of 256 and a minimum of 0.
|}
=== 0x37 - Call ===
Jumps to the specified address, runs code, and returns to the line of code in which this opcode was used (only if <code>return;</code> was used in the routine this opcode calls).
{| class="wikitable"
|+Parameters
|-
!#
!Type
!Name
!Description
|-
|1
|Addr
|jump_address
|The address to call, e.g., <code>call @label_0;</code> if <code>§label_0;</code> is defined in the script.
|}
|}
=== 0x38 - CallCommon ===
=== 0x38 - CallCommon ===
Line 903: Line 887:
|}
|}
=== 0x39 - camera_Move2Default ===
=== 0x39 - camera_Move2Default ===
<TO DO: Opcode description>
Moves the camera toward an active Type 1 actor (e.g., ACTOR_PLAYER) without restricting the angles used.


{| class="wikitable"
{| class="wikitable"
Line 914: Line 898:
|-
|-
|1
|1
|sint
|uint
|speed
|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.
|}
|}
=== 0x3a - camera_Move2MyPosition ===
=== 0x3a - camera_Move2MyPosition ===
<TO DO: Opcode description>
Moves the camera toward a specific entity's position (i.e., an actor, object, or performer) 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 931: Line 918:
|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.
|}
|}
=== 0x3b - camera_Move2Myself ===
=== 0x3b - camera_Move2Myself ===
<TO DO: Opcode description>
Moves the camera toward a specific entity (i.e., an actor, object, or performer) 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 947: Line 937:
|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.
|}
|}
=== 0x3c - camera_Move2PositionMark ===
=== 0x3c - camera_Move2PositionMark ===
<TO DO: Opcode description>
Moves the camera to one or more Position Marks without restricting the angles used.


{| class="wikitable"
{| class="wikitable"
Line 964: Line 955:
|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.
|}
|}
=== 0x3d - camera_Move2PositionMark ===
=== 0x3d - camera_Move2PositionMark ===
<TO DO: Opcode description>
Moves the camera to a Position Mark without restricting the angles used.


{| class="wikitable"
{| class="wikitable"
Line 984: Line 976:
|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.
|}
|}
=== 0x3e - camera_Move3Default ===
=== 0x3e - camera_Move3Default ===
<TO DO: Opcode description>
Moves the camera toward an active Type 1 actor (e.g., ACTOR_PLAYER) in a rapid, strange motion.


{| class="wikitable"
{| class="wikitable"
Line 1,005: Line 998:
|1
|1
|uint
|uint
|unk0
|speed
|
|Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
|}
|}
=== 0x3f - camera_Move3MyPosition ===
=== 0x3f - camera_Move3MyPosition ===
<TO DO: Opcode description>
Moves the camera toward a specific entity's position (i.e., an actor, object, or performer) 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 1,021: Line 1,016:
|1
|1
|uint
|uint
|unk0
|speed
|
|Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
|}
|}
=== 0x40 - camera_Move3Myself ===
=== 0x40 - camera_Move3Myself ===
<TO DO: Opcode description>
Moves the camera toward a specific entity (i.e., an actor, object, or performer) 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 1,037: Line 1,034:
|1
|1
|uint
|uint
|unk0
|speed
|
|Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
|}
|}
=== 0x41 - camera_Move3PositionMark ===
=== 0x41 - camera_Move3PositionMark ===
<TO DO: Opcode description>
Moves the camera to one or more Position Marks in a rapid, strange motion.


{| class="wikitable"
{| class="wikitable"
Line 1,054: Line 1,051:
|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.
|}
|}
=== 0x42 - camera_Move3PositionMark ===
=== 0x42 - camera_Move3PositionMark ===
<TO DO: Opcode description>
Moves the camera to a Position Mark without restricting the angles used.


{| class="wikitable"
{| class="wikitable"
Line 1,074: Line 1,072:
|1
|1
|uint
|uint
|unk0
|speed
|
|Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
|-
|-
|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.
|}
|}
=== 0x43 - camera_MoveDefault ===
=== 0x43 - camera_MoveDefault ===
<TO DO: Opcode description>
Moves the camera toward an active Type 1 actor (e.g., ACTOR_PLAYER) while restricting movement by eight angles—as if movement was performed using the D-Pad.


{| class="wikitable"
{| class="wikitable"
Line 1,095: Line 1,093:
|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.
|}
|}
=== 0x44 - camera_MoveMyPosition ===
=== 0x44 - camera_MoveMyPosition ===
<TO DO: Opcode description>
Moves the camera toward a specific entity's position (i.e., an actor, object, or performer) 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 1,111: Line 1,112:
|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.
|}
|}
=== 0x45 - camera_MoveMyself ===
=== 0x45 - camera_MoveMyself ===
<TO DO: Opcode description>
Moves the camera toward a specific entity (i.e., an actor, object, or performer) 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 1,127: Line 1,131:
|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.
|}
|}
=== 0x46 - camera_MovePositionMark ===
=== 0x46 - camera_MovePositionMark ===
<TO DO: Opcode description>
Moves the camera to one or more Position Marks while restricting movement by eight angles—as if movement was performed using the D-Pad.


{| class="wikitable"
{| class="wikitable"
Line 1,144: Line 1,149:
|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.
|}
|}
=== 0x47 - camera_MovePositionMark ===
=== 0x47 - camera_MovePositionMark ===
<TO DO: Opcode description>
Moves the camera to a Position Mark while restricting movement by eight angles—as if movement was performed using the D-Pad.


{| class="wikitable"
{| class="wikitable"
Line 1,164: Line 1,170:
|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.
|}
|}
=== 0x48 - camera_SetDefault ===
=== 0x48 - camera_SetDefault ===
<TO DO: Opcode description>
Instantly sets the camera to a Type 1 actor (e.g., ACTOR_PLAYER).


No parameters.
No parameters.
=== 0x49 - camera_SetEffect ===
=== 0x49 - camera_SetEffect ===
<TO DO: Opcode description>
Continuously shakes the camera at specified intensities. Entities will be affected by the camera shaking, but not textboxes and portraits. The camera will continue to shake even if it is moved using another opcode.


{| class="wikitable"
{| class="wikitable"
Line 1,189: Line 1,196:
|1
|1
|uint
|uint
|unk0
|behavior
|
|Values of 0 or 3+ mean the camera will not shake.
 
# Erratic, jerky shaking.
# Subdued, smoother shaking.
|-
|-
|2
|2
|uint
|uint
|unk1
|intensity
|
|The intensity of the shake. Higher values will result in a more intense shake.
|-
|-
|3
|3
|uint
|uint
|unk2
|speed
|
|Movement speed. Higher values result in a slower speed.
|}
|}
=== 0x4a - camera_SetMyPosition ===
=== 0x4a - camera_SetMyPosition ===
<TO DO: Opcode description>
Instantly sets the camera toward a specific entity's position (i.e., an actor, object, or performer).
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


No parameters.
No parameters.
=== 0x4b - camera_SetMyself ===
=== 0x4b - camera_SetMyself ===
<TO DO: Opcode description>
Instantly sets the camera to a specific entity (i.e., an actor, object, or performer). Once performed, the camera will now follow the entity wherever it moves.
 
This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.


No parameters.
No parameters.
=== 0x4c - camera_SetPositionMark ===
=== 0x4c - camera_SetPositionMark ===
<TO DO: Opcode description>
Instantly sets the camera to a Position Mark.


{| class="wikitable"
{| class="wikitable"
Line 1,224: Line 1,238:
|PositionMark
|PositionMark
|pos_marker
|pos_marker
|
|A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.
|}
|}
=== 0x4d - camera2_Move2Default ===
=== 0x4d - camera2_Move2Default ===
<TO DO: Opcode description>
The same as <code>camera_Move2Default</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,239: Line 1,253:
|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.
|}
|}
=== 0x4e - camera2_Move2MyPosition ===
=== 0x4e - camera2_Move2MyPosition ===
<TO DO: Opcode description>
The same as <code>camera_Move2MyPosition</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,255: Line 1,270:
|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.
|}
|}
=== 0x4f - camera2_Move2Myself ===
=== 0x4f - camera2_Move2Myself ===
<TO DO: Opcode description>
The same as <code>camera_Move2Myself</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,271: Line 1,287:
|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.
|}
|}
=== 0x50 - camera2_Move2PositionMark ===
=== 0x50 - camera2_Move2PositionMark ===
<TO DO: Opcode description>
The same as <code>camera_Move2PositionMark</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,288: Line 1,305:
|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.
|}
|}
=== 0x51 - camera2_Move2PositionMark ===
=== 0x51 - camera2_Move2PositionMark ===
<TO DO: Opcode description>
The same as <code>camera_Move2PositionMark</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,308: Line 1,326:
|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.
|}
|}
=== 0x52 - camera2_Move3Default ===
=== 0x52 - camera2_Move3Default ===
<TO DO: Opcode description>
The same as <code>camera_Move3Default</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,329: Line 1,348:
|1
|1
|uint
|uint
|unk0
|speed
|
|Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
|}
|}
=== 0x53 - camera2_Move3MyPosition ===
=== 0x53 - camera2_Move3MyPosition ===
<TO DO: Opcode description>
The same as <code>camera_Move3MyPosition</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,345: Line 1,364:
|1
|1
|uint
|uint
|unk0
|speed
|
|Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
|}
|}
=== 0x54 - camera2_Move3Myself ===
=== 0x54 - camera2_Move3Myself ===
<TO DO: Opcode description>
The same as <code>camera_Move3Myself</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,361: Line 1,380:
|1
|1
|uint
|uint
|unk0
|speed
|
|Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
|}
|}
=== 0x55 - camera2_Move3PositionMark ===
=== 0x55 - camera2_Move3PositionMark ===
<TO DO: Opcode description>
The same as <code>camera_Move3PositionMark</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,378: Line 1,397:
|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.
|}
|}
=== 0x56 - camera2_Move3PositionMark ===
=== 0x56 - camera2_Move3PositionMark ===
<TO DO: Opcode description>
The same as <code>camera_Move3PositionMark</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,398: Line 1,418:
|1
|1
|uint
|uint
|unk0
|speed
|
|Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
|-
|-
|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.
|}
|}
=== 0x57 - camera2_MoveDefault ===
=== 0x57 - camera2_MoveDefault ===
<TO DO: Opcode description>
The same as <code>camera_MoveDefault</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,419: Line 1,439:
|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.
|}
|}
=== 0x58 - camera2_MoveMyPosition ===
=== 0x58 - camera2_MoveMyPosition ===
<TO DO: Opcode description>
The same as <code>camera_MoveMyPosition</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,435: Line 1,456:
|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.
|}
|}
=== 0x59 - camera2_MoveMyself ===
=== 0x59 - camera2_MoveMyself ===
<TO DO: Opcode description>
The same as <code>camera_MoveMyself</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,451: Line 1,473:
|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.
|}
|}
=== 0x5a - camera2_MovePositionMark ===
=== 0x5a - camera2_MovePositionMark ===
<TO DO: Opcode description>
The same as <code>camera_MovePositionMark</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,468: Line 1,491:
|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.
|}
|}
=== 0x5b - camera2_MovePositionMark ===
=== 0x5b - camera2_MovePositionMark ===
<TO DO: Opcode description>
The same as <code>camera_MovePositionMark</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,488: Line 1,512:
|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.
|}
|}
=== 0x5c - camera2_SetDefault ===
=== 0x5c - camera2_SetDefault ===
<TO DO: Opcode description>
The same as <code>camera_SetDefault</code>, but for the Top Screen.


No parameters.
No parameters.
=== 0x5d - camera2_SetEffect ===
=== 0x5d - camera2_SetEffect ===
<TO DO: Opcode description>
The same as <code>camera_SetEffect</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,513: Line 1,538:
|1
|1
|uint
|uint
|unk0
|behavior
|
|Values of 0 or 3+ mean the camera will not shake.
 
# Erratic, jerky shaking.
# Subdued, smoother shaking.
|-
|-
|2
|2
|uint
|uint
|unk1
|intensity
|
|The intensity of the shake. Higher values will result in a more intense shake.
|-
|-
|3
|3
|uint
|uint
|unk2
|speed
|
|Movement speed. Higher values result in a slower speed.
|}
|}
=== 0x5e - camera2_SetMyPosition ===
=== 0x5e - camera2_SetMyPosition ===
<TO DO: Opcode description>
The same as <code>camera_SetMyPosition</code>, but for the Top Screen.


No parameters.
No parameters.
=== 0x5f - camera2_SetMyself ===
=== 0x5f - camera2_SetMyself ===
<TO DO: Opcode description>
The same as <code>camera_SetMyself</code>, but for the Top Screen.


No parameters.
No parameters.
=== 0x60 - camera2_SetPositionMark ===
=== 0x60 - camera2_SetPositionMark ===
<TO DO: Opcode description>
The same as <code>camera_SetPositionMark</code>, but for the Top Screen.


{| class="wikitable"
{| class="wikitable"
Line 1,548: Line 1,576:
|PositionMark
|PositionMark
|pos_marker
|pos_marker
|
|A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.
This parameter may be repeated multiple times.
|}
|}
=== 0x61 - CancelCut ===
=== 0x61 - CancelCut ===
<TO DO: Opcode description>
Reverses the effects of the opcode <code>CancelRecoverCommon</code>, i.e., disallows the game from reloading Unionall at a Coroutine by pressing the Start button.


No parameters.
No parameters.
=== 0x62 - CancelRecoverCommon ===
=== 0x62 - CancelRecoverCommon ===
<TO DO: Opcode description>
Allows reloading Unionall at a specified Coroutine by pressing the Start button. This can be done in a cutscene and the overworld.
 
Once the Start button is pressed, the game will stop the current script, fade out the entire screen, and reload Unionall and begin running code at the specified Coroutine.


{| class="wikitable"
{| class="wikitable"
Line 1,566: Line 1,597:
|-
|-
|1
|1
|Routine
|Coroutine
|coro_id
|coro_id
|
|One of the 701 possible Unionall Coroutines.
|}
|}
=== 0x6a - debug_Assert ===
=== 0x6a - debug_Assert ===
Line 1,602: Line 1,633:
|ConstString
|ConstString
|txt
|txt
|
|A string to be printed to the Debug Log.
|}
|}
=== 0x6c - debug_PrintFlag ===
=== 0x6c - debug_PrintFlag ===
Line 6,639: Line 6,670:
|jump_address
|jump_address
|
|
|}
=== 0x37 - Call ===
Jumps to the specified address, runs code, and returns to the line of code in which this opcode was used (only if <code>return;</code> was used in the routine this opcode calls).
{| class="wikitable"
|+Parameters
|-
!#
!Type
!Name
!Description
|-
|1
|Addr
|jump_address
|The address to call, e.g., <code>call @label_0;</code> if <code>§label_0;</code> is defined in the script.
|}
|}
=== 0x63 - Case ===
=== 0x63 - Case ===

Revision as of 23:16, 19 August 2023

The scripting engine used in Explorers of Sky has different opcodes. ExplorerScript translates most of them literally, preserving the same parameters and functionality. However, some opcodes are translated to ExplorerScript constructs, such as if statements.

This article documents the different opcodes, their purpose and parameters. The purpose of unkX parameters is unknown.

Relevant Opcodes

These opcodes can be directly called from ExplorerScript.

0x0 - Null

Does nothing.

No parameters.

0x1 - back_ChangeGround

Sets the Map Background from a Level without changing the chunks from the currently loaded Map Background. Entities such as actors, objects, and performers will not be deleted when this opcode is executed.

This has very few uses in the game—a notable use is how Wigglytuff's Chamber has its door open, as seen via LEVEL_G01P04A and LEVEL_G01P04A2.

Parameters
# Type Name Description
1 Level level_id An entry in the Level List. This opcode will pull from the Level's Map Background.

0x2 - back_SetBackEffect

Performs various effects related to the currently loaded Animation Palettes.

Parameters
# Type Name Description
1 uint effect
  1. The default state of the Animation Palette.
  2. Plays the Animation Palette in a loop.
  3. Plays the Animation Palette once.
  4. Freezes the Animation Palette at its current frame.
  5. Resumes the Animation Palette.

0x3 - back_SetBackScrollOffset

Shifts the background by a certain number of pixels, without affecting entities such as actors, objects, or performers. Backgrounds used with this opcode will display a "loop" effect, i.e., it has the appearance of scrolling forever.

This opcode seems to only work for only a few Levels, such as LEVEL_P13P01A, LEVEL_S13P06A, and LEVEL_V03P11A.

Parameters
# Type Name Description
1 sint offset0 The number of pixels to shift either:
  • The Map Background's Layer 1 and Layer 2 X-axis.
  • The Map Background's Layer 1 X-axis.

Which one the game performs for a given Level seems to be hardcoded.

2 sint offset1 The number of pixels to shift either:
  • The Map Background's Layer 1 and Layer 2 Y-axis
  • The Map Background's Layer 2 X-axis.

Which one the game performs for a given Level seems to be hardcoded.

0x4 - back_SetBackScrollSpeed

Continuously scrolls the background at a certain speed, without affecting entities such as actors, objects, or performers. Backgrounds used with this opcode will display a "loop" effect, i.e., it has the appearance of scrolling forever.

This opcode seems to only work for only a few Levels, such as LEVEL_P13P01A, LEVEL_S13P06A, and LEVEL_V03P11A.

Parameters
# Type Name Description
1 sint speed0 The speed to scroll either:
  • The Map Background's Layer 1 and Layer 2 X-axis.
  • The Map Background's Layer 1 X-axis.

Which one the game performs for a given Level seems to be hardcoded.

2 sint speed1 The speed to scroll either:
  • The Map Background's Layer 1 and Layer 2 Y-axis.
  • The Map Background's Layer 2 X-axis.

Which one the game performs for a given Level seems to be hardcoded.

0x5 - back_SetBanner

Displays broken text using the FONT/banner.bin:FONT/b_pal.bin font, editable in the Misc. Graphics tab of SkyTemple. This opcode will delete any actors, objects, and performers that are currently loaded.

Parameters
# Type Name Description
1 sint chapter_number The chapter number displayed for the banner. A value of -1 will be "Final Chapter".
2 uint unk0 Currently unknown.

0x6 - back_SetBanner2

Displays text using the FONT/banner.bin:FONT/b_pal.bin font, editable in the Misc. Graphics tab of SkyTemple. This opcode is typically used for chapter introductions, which includes chapter text and a subtitle displayed over a Map Background. This opcode will delete any actors, objects, and performers that are currently loaded.

Parameters
# Type Name Description
1 Level level An entry in the Level List. This opcode will pull from the Level's Map Background.
2 uint unk0 Currently unknown. Typically, the game uses 0 for this parameter, but it seems to have no effect.
3 uint x The pixel position the camera will center the Map Background on its X-axis.
4 uint y The pixel position the camera will center the Map Background on its Y-axis.
5 sint chapter_number The chapter number displayed for the banner. A value of -1 will be "Final Chapter".
6 String title The title of the chapter, e.g., "A Storm At Sea" for Chapter 1.

0x7 - back_SetEffect

Performs various effects related to the current Map Background's layers across a certain number of frames.

Parameters
# Type Name Description
1 uint duration The number of frames used to play a given effect.
2 uint effect
  1. Transitions from Layer 2 to Layer 1.
  2. Fades in Layer 1 from total darkness.
  3. Transitions from Layer 2 to Layer 1.
  4. Fades in Layer 1 from total darkness.
  5. Transitions from Layer 1 to Layer 2.
  6. Fades out Layer 1 to total darkness.
  7. Merges Layer 1 onto Layer 2, but fades in Layer 1 from total darkness.
  8. Fades in Layer 1 from total darkness.
  9. Merges Layer onto Layer 2, but fades out Layer 1 to total darkness.
  10. Fades out Layer 1 to total darkness.

0x8 - back_SetDungeonBanner

Displays a specific string using the FONT/banner.bin:FONT/b_pal.bin font, editable in the Misc. Graphics tab of SkyTemple. The text chosen is defined in Dungeons tab as a dungeon's back_SetDunegonBanner string. This opcode will delete any actors, objects, and performers that are currently loaded.

Parameters
# Type Name Description
1 uint dungeon_id The ID of a dungeon, as listed in the Dungeons tab of SkyTemple.
2 uint unk0 Currently unknown. Does not seem to affect much.

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.

Parameters
# Type Name Description
1 Level level_id An entry in the Level List. This opcode will pull from the Level's Map Background.

0xa - back_SetSpecialEpisodeBanner

Displays text using the FONT/banner.bin:FONT/b_pal.bin font, editable in the Misc. Graphics tab of SkyTemple. This opcode is used for Special Episodes 1-3. This opcode plays a short animation of a green line shooting across the screen, followed by text scrolling across the screen horizontally from opposite directions. This opcode will delete any actors, objects, and performers that are currently loaded.

Parameters
# Type Name Description
1 sint episode_number The episode number displayed for the banner. A value of -1 will be "Final Chapter".
2 String title The title of the episode, e.g., "Bidoof's Wish" for Special Episode 1.

0xb - back_SetSpecialEpisodeBanner2

Displays text using the FONT/banner_c.bin:FONT/b_pal_r.bin font, editable in the Misc. Graphics tab of SkyTemple. This opcode is only used for Special Episode 4. This opcode features an elaborate animation featuring hearts and sparkles, along with text scrolling across the screen horizontally from opposite directions. This opcode will delete any actors, objects, and performers that are currently loaded.

Parameters
# Type Name Description
1 sint episode_number The episode number displayed for the banner. A value of -1 will be "Final Chapter".
2 String title The title of the episode, e.g., "Bidoof's Wish" for Special Episode 1.

0xc - back_SetSpecialEpisodeBanner3

Displays text using the FONT/banner.bin:FONT/b_pal.bin font, editable in the Misc. Graphics tab of SkyTemple. This opcode is only used for Special Episode 5. This opcode features no animation, but the end result is similar to the opcode back_SetSpecialEpisodeBanner. This opcode will delete any actors, objects, and performers that are currently loaded.

Parameters
# Type Name Description
1 sint episode_number The episode number displayed for the banner. A value of -1 will be "Final Chapter".
2 String title The title of the episode, e.g., "Bidoof's Wish" for Special Episode 1.

0xd - back_SetTitleBanner

Displays user-defined text using the FONT/banner.bin:FONT/b_pal.bin font, editable in the Misc. Graphics tab of SkyTemple. This opcode will delete any actors, objects, and performers that are currently loaded.

Parameters
# Type Name Description
1 uint y The Y-axis pixel position of the title.
2 String title The title displayed onscreen.

0xe - back_SetWeather

Displays a weather effect that overlays the current Map Background.

Parameters
# Type Name Description
1 sint weather_id Values of 0 and below mean no weather effect is to be displayed.
  1. Dark, unmoving clouds.
  2. Dark, unmoving clouds.
  3. Clouds.
  4. No weather.
  5. Clouds.
  6. Unknown; seems to either softlock the game or drastically change the current Map Background.
  7. Fog.
  8. No weather.
  9. Unknown; does not seem to have a visible effect, but it loads something into memory.
  10. Unknown; seems to either softlock the game or drastically change the current Map Background.
  11. Purple smog.

0xf - back_SetWeatherEffect

Currently unknown. The only values this opcode accepts seems to be 1, 2, and 3. Its only known use is in V00P02/m01a04a.ssb, which is a test script used by the developers.

Parameters
# Type Name Description
1 uint unk0 Currently unknown.

0x10 - back_SetWeatherScrollOffset

Currently unknown. This opcode is not used in the base game.

Parameters
# Type Name Description
1 uint unk0 Currently unknown.
2 uint unk1 Currently unknown.

0x11 - back_SetWeatherScrollSpeed

Currently unknown. This opcode is not used in the base game.

Parameters
# Type Name Description
1 uint unk0 Currently unknown.
2 uint unk1 Currently unknown.

0x12 - back2_SetBackEffect

The same as back_SetBackEffect, but for the Top Screen.

Parameters
# Type Name Description
1 uint effect
  1. The default state of the Animation Palette.
  2. Plays the Animation Palette in a loop.
  3. Plays the Animation Palette once.
  4. Freezes the Animation Palette at its current frame.
  5. Resumes the Animation Palette.

0x13 - back2_SetBackScrollOffset

The same as back_SetBackScrollOffset, but for the Top Screen.

Parameters
# Type Name Description
1 sint offset0 The number of pixels to shift either:
  • The Map Background's Layer 1 and Layer 2 X-axis.
  • The Map Background's Layer 1 X-axis.

Which one the game performs for a given Level seems to be hardcoded.

2 sint offset1 The number of pixels to shift either:
  • The Map Background's Layer 1 and Layer 2 Y-axis.
  • The Map Background's Layer 2 X-axis.

Which one the game performs for a given Level seems to be hardcoded.

0x14 - back2_SetBackScrollSpeed

The same as back_SetBackScrollSpeed, but for the Top Screen.

Parameters
# Type Name Description
1 sint speed0 The speed to scroll either:
  • The Map Background's Layer 1 and Layer 2 X-axis.
  • The Map Background's Layer 1 X-axis.

Which one the game performs for a given Level seems to be hardcoded.

2 sint speed1 The speed to scroll either:
  • The Map Background's Layer 1 and Layer 2 Y-axis.
  • The Map Background's Layer 2 X-axis.

Which one the game performs for a given Level seems to be hardcoded.

0x15 - back2_SetData

Currently unknown. This opcode is not used in the base game.

Parameters
# Type Name Description
1 uint unk0 Currently unknown.
2 uint unk1 Currently unknown.

0x16 - back2_SetEffect

The same as back_SetEffect, but for the Top Screen.

Parameters
# Type Name Description
1 uint duration The number of frames used to play a given effect.
2 uint effect
  1. Transitions from Layer 2 to Layer 1.
  2. Fades in Layer 1 from total darkness.
  3. Transitions from Layer 2 to Layer 1.
  4. Fades in Layer 1 from total darkness.
  5. Transitions from Layer 1 to Layer 2.
  6. Fades out Layer 1 to total darkness.
  7. Merges Layer 1 onto Layer 2, but fades in Layer 1 from total darkness.
  8. Fades in Layer 1 from total darkness.
  9. Merges Layer onto Layer 2, but fades out Layer 1 to total darkness.
  10. Fades out Layer 1 to total darkness.

0x17 - back2_SetGround

Mostly the same as back_SetGround, but for the Top Screen. This opcode only works if back2_SetMode(4); is used prior to this opcode.

Parameters
# Type Name Description
1 Level level_id An entry in the Level List. This opcode will pull from the Level's Map Background.

0x18 - back2_SetMode

Determines a hardcoded status of the Top Screen.

Parameters
# Type Name Description
1 sint mode_id A value of 0 is no mode. A negative value seems to set the Top Screen to the overworld's current Top Screen setting.
  1. Fades out the Top Screen.
  2. Team Stats.
  3. The Map Background S01P01A with the hero idling on a World Map Marker.
  4. Allows for the Top Screen to display a Map Background from a Level using the back2_SetGround opcode.
  5. Splits the Map Background used in the Level defined by back_SetGround equally between the Top and Bottom Screen.
  6. Splits the Map Background used in the Level defined by back_SetGround between the Top and Bottom Screen.

0x19 - back2_SetSpecialActing

Currently unknown.

Parameters
# Type Name Description
1 uint unk0 Currently unknown.
2 uint unk1 Currently unknown.
3 uint unk2 Currently unknown.

0x1a - back2_SetWeather

The same as back_SetWeather, but for the Top Screen.

Parameters
# Type Name Description
1 sint weather_id Values of 0 and below mean no weather effect is to be displayed.
  1. Dark, unmoving clouds.
  2. Dark, unmoving clouds.
  3. Clouds.
  4. No weather.
  5. Clouds.
  6. Unknown; seems to either softlock the game or drastically change the current Map Background.
  7. Fog.
  8. No weather.
  9. Unknown; does not seem to have a visible effect, but it loads something into memory.
  10. Unknown; seems to either softlock the game or drastically change the current Map Background.
  11. Purple smog.

0x1b - back2_SetWeatherEffect

Currently unknown. Potentially has similar functionality as back_SetWeatherEffect, but for the Top Screen.

Parameters
# Type Name Description
1 uint unk0 Currently unknown.

0x1c - back2_SetWeatherScrollOffset

Currently unknown. Potentially has similar functionality as back_SetWeatherScrollOffset, but for the Top Screen.

Parameters
# Type Name Description
1 uint unk0 Currently unknown.
2 uint unk1 Currently unknown.

0x1d - back2_SetWeatherScrollSpeed

Currently unknown. Potentially has similar functionality as back_SetWeatherScrollSpeed, but for the Top Screen.

Parameters
# Type Name Description
1 uint unk0 Currently unknown.
2 uint unk1 Currently unknown.

0x1e - bgm_FadeOut

Fades out the BGM that is currently playing over a certain period of time on the first BGM track.

Parameters
# Type Name Description
1 uint duration The number of frames used to fade out and silence a given BGM.

0x1f - bgm_Play

Instantly plays a BGM on the first BGM track.

Parameters
# Type Name Description
1 Bgm bgm_id A music track defined in SOUND/BGM of the ROM.

0x20 - bgm_PlayFadeIn

Starts playing a BGM over a certain period of time and at a certain volume on the first BGM track.

Parameters
# Type Name Description
1 Bgm bgm_id A music track defined in SOUND/BGM of the ROM.
2 uint duration The number of frames to fade in the BGM.
3 uint volume The volume that the BGM will play at. It has a maximum of 256 and a minimum of 0.

0x21 - bgm_Stop

Instantly stops the BGM that is currently playing on the first BGM track.

No parameters.

0x22 - bgm_ChangeVolume

Changes the volume of the BGM that is currently playing on the first BGM track.

Parameters
# Type Name Description
1 uint duration The number of frames to change the BGM's volume.
2 uint volume The volume that the BGM will play at. It has a maximum of 256 and a minimum of 0.

0x23 - bgm2_FadeOut

Fades out the BGM that is currently playing over a certain period of time on the second BGM track.

Parameters
# Type Name Description
1 uint duration The number of frames used to fade out and silence a given BGM.

0x24 - bgm2_Play

Instantly plays a BGM on the second BGM track.

Parameters
# Type Name Description
1 Bgm bgm_id A music track defined in SOUND/BGM of the ROM.

0x25 - bgm2_PlayFadeIn

Starts playing a BGM over a certain period of time and at a certain volume on the second BGM track.

Parameters
# Type Name Description
1 Bgm bgm_id A music track defined in SOUND/BGM of the ROM.
2 uint duration The number of frames to fade in the BGM.
3 uint volume The volume that the BGM will play at. It has a maximum of 256 and a minimum of 0.

0x26 - bgm2_Stop

Instantly stops the BGM that is currently playing on the second BGM track.

No parameters.

0x27 - bgm2_ChangeVolume

Changes the volume of the BGM that is currently playing on the second BGM track.

Parameters
# Type Name Description
1 uint duration The number of frames to change the BGM's volume.
2 uint volume The volume that the BGM will play at. It has a maximum of 256 and a minimum of 0.

0x38 - CallCommon

Jumps to the specified Unionall Coroutine, runs its code, and returns to the line of code in which this opcode was used (only if return; was used in the Coroutine). This opcode can be used in any script, no matter the type (Common, Enter, Acting, or Sub).

If used in the context of an actor/object/performer, this should not be used in with-statements.

Parameters
# Type Name Description
1 Coroutine coro_id One of the 701 possible Unionall Coroutines.

0x39 - camera_Move2Default

Moves the camera toward an active Type 1 actor (e.g., ACTOR_PLAYER) without restricting the angles used.

Parameters
# Type Name Description
1 uint 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.

0x3a - camera_Move2MyPosition

Moves the camera toward a specific entity's position (i.e., an actor, object, or performer) 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.

Parameters
# Type Name Description
1 uint 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.

0x3b - camera_Move2Myself

Moves the camera toward a specific entity (i.e., an actor, object, or performer) 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.

Parameters
# Type Name Description
1 uint 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.

0x3c - camera_Move2PositionMark

Moves the camera to one or more Position Marks without restricting the angles used.

Parameters
# Type Name Description
1 uint num_parameters The number of parameters to read from this opcode.
2+ PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

This parameter may be repeated multiple times.

0x3d - camera_Move2PositionMark

Moves the camera to a Position Mark without restricting the angles used.

Parameters
# Type Name Description
1 uint 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 PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

0x3e - camera_Move3Default

Moves the camera toward an active Type 1 actor (e.g., ACTOR_PLAYER) in a rapid, strange motion.

Parameters
# Type Name Description
1 uint speed Supposedly movement speed based off of similar opcodes, but does not seem to affect much.

0x3f - camera_Move3MyPosition

Moves the camera toward a specific entity's position (i.e., an actor, object, or performer) 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.

Parameters
# Type Name Description
1 uint speed Supposedly movement speed based off of similar opcodes, but does not seem to affect much.

0x40 - camera_Move3Myself

Moves the camera toward a specific entity (i.e., an actor, object, or performer) 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.

Parameters
# Type Name Description
1 uint speed Supposedly movement speed based off of similar opcodes, but does not seem to affect much.

0x41 - camera_Move3PositionMark

Moves the camera to one or more Position Marks in a rapid, strange motion.

Parameters
# Type Name Description
1 uint num_parameters The number of parameters to read from this opcode.
2+ PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

This parameter may be repeated multiple times.

0x42 - camera_Move3PositionMark

Moves the camera to a Position Mark without restricting the angles used.

Parameters
# Type Name Description
1 uint speed Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
2 PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

0x43 - camera_MoveDefault

Moves the camera toward an active Type 1 actor (e.g., ACTOR_PLAYER) while restricting movement by eight angles—as if movement was performed using the D-Pad.

Parameters
# Type Name Description
1 uint 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.

0x44 - camera_MoveMyPosition

Moves the camera toward a specific entity's position (i.e., an actor, object, or performer) 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.

Parameters
# Type Name Description
1 uint 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.

0x45 - camera_MoveMyself

Moves the camera toward a specific entity (i.e., an actor, object, or performer) 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.

Parameters
# Type Name Description
1 uint 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.

0x46 - camera_MovePositionMark

Moves the camera to one or more Position Marks while restricting movement by eight angles—as if movement was performed using the D-Pad.

Parameters
# Type Name Description
1 uint num_parameters The number of parameters to read from this opcode.
2+ PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

This parameter may be repeated multiple times.

0x47 - camera_MovePositionMark

Moves the camera to a Position Mark while restricting movement by eight angles—as if movement was performed using the D-Pad.

Parameters
# Type Name Description
1 uint 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 PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

0x48 - camera_SetDefault

Instantly sets the camera to a Type 1 actor (e.g., ACTOR_PLAYER).

No parameters.

0x49 - camera_SetEffect

Continuously shakes the camera at specified intensities. Entities will be affected by the camera shaking, but not textboxes and portraits. The camera will continue to shake even if it is moved using another opcode.

Parameters
# Type Name Description
1 uint behavior Values of 0 or 3+ mean the camera will not shake.
  1. Erratic, jerky shaking.
  2. Subdued, smoother shaking.
2 uint intensity The intensity of the shake. Higher values will result in a more intense shake.
3 uint speed Movement speed. Higher values result in a slower speed.

0x4a - camera_SetMyPosition

Instantly sets the camera toward a specific entity's position (i.e., an actor, object, or performer).

This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.

No parameters.

0x4b - camera_SetMyself

Instantly sets the camera to a specific entity (i.e., an actor, object, or performer). Once performed, the camera will now follow the entity wherever it moves.

This opcode does not have a parameter for an entity, as it must be used in a with-statement or a targeted routine.

No parameters.

0x4c - camera_SetPositionMark

Instantly sets the camera to a Position Mark.

Parameters
# Type Name Description
1 PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

0x4d - camera2_Move2Default

The same as camera_Move2Default, but for the Top Screen.

Parameters
# Type Name Description
1 uint 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.

0x4e - camera2_Move2MyPosition

The same as camera_Move2MyPosition, but for the Top Screen.

Parameters
# Type Name Description
1 uint 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.

0x4f - camera2_Move2Myself

The same as camera_Move2Myself, but for the Top Screen.

Parameters
# Type Name Description
1 uint 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.

0x50 - camera2_Move2PositionMark

The same as camera_Move2PositionMark, but for the Top Screen.

Parameters
# Type Name Description
1 uint num_parameters The number of parameters to read from this opcode.
2+ PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

This parameter may be repeated multiple times.

0x51 - camera2_Move2PositionMark

The same as camera_Move2PositionMark, but for the Top Screen.

Parameters
# Type Name Description
1 uint 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 PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

0x52 - camera2_Move3Default

The same as camera_Move3Default, but for the Top Screen.

Parameters
# Type Name Description
1 uint speed Supposedly movement speed based off of similar opcodes, but does not seem to affect much.

0x53 - camera2_Move3MyPosition

The same as camera_Move3MyPosition, but for the Top Screen.

Parameters
# Type Name Description
1 uint speed Supposedly movement speed based off of similar opcodes, but does not seem to affect much.

0x54 - camera2_Move3Myself

The same as camera_Move3Myself, but for the Top Screen.

Parameters
# Type Name Description
1 uint speed Supposedly movement speed based off of similar opcodes, but does not seem to affect much.

0x55 - camera2_Move3PositionMark

The same as camera_Move3PositionMark, but for the Top Screen.

Parameters
# Type Name Description
1 uint num_parameters The number of parameters to read from this opcode.
2+ PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

This parameter may be repeated multiple times.

0x56 - camera2_Move3PositionMark

The same as camera_Move3PositionMark, but for the Top Screen.

Parameters
# Type Name Description
1 uint speed Supposedly movement speed based off of similar opcodes, but does not seem to affect much.
2 PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

0x57 - camera2_MoveDefault

The same as camera_MoveDefault, but for the Top Screen.

Parameters
# Type Name Description
1 uint 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.

0x58 - camera2_MoveMyPosition

The same as camera_MoveMyPosition, but for the Top Screen.

Parameters
# Type Name Description
1 uint 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.

0x59 - camera2_MoveMyself

The same as camera_MoveMyself, but for the Top Screen.

Parameters
# Type Name Description
1 uint 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.

0x5a - camera2_MovePositionMark

The same as camera_MovePositionMark, but for the Top Screen.

Parameters
# Type Name Description
1 uint num_parameters The number of parameters to read from this opcode.
2+ PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

This parameter may be repeated multiple times.

0x5b - camera2_MovePositionMark

The same as camera_MovePositionMark, but for the Top Screen.

Parameters
# Type Name Description
1 uint 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 PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

0x5c - camera2_SetDefault

The same as camera_SetDefault, but for the Top Screen.

No parameters.

0x5d - camera2_SetEffect

The same as camera_SetEffect, but for the Top Screen.

Parameters
# Type Name Description
1 uint behavior Values of 0 or 3+ mean the camera will not shake.
  1. Erratic, jerky shaking.
  2. Subdued, smoother shaking.
2 uint intensity The intensity of the shake. Higher values will result in a more intense shake.
3 uint speed Movement speed. Higher values result in a slower speed.

0x5e - camera2_SetMyPosition

The same as camera_SetMyPosition, but for the Top Screen.

No parameters.

0x5f - camera2_SetMyself

The same as camera_SetMyself, but for the Top Screen.

No parameters.

0x60 - camera2_SetPositionMark

The same as camera_SetPositionMark, but for the Top Screen.

Parameters
# Type Name Description
1 PositionMark pos_marker A structure consisting of a name, X unit, and Y unit. Units are defined as 8 pixels.

This parameter may be repeated multiple times.

0x61 - CancelCut

Reverses the effects of the opcode CancelRecoverCommon, i.e., disallows the game from reloading Unionall at a Coroutine by pressing the Start button.

No parameters.

0x62 - CancelRecoverCommon

Allows reloading Unionall at a specified Coroutine by pressing the Start button. This can be done in a cutscene and the overworld.

Once the Start button is pressed, the game will stop the current script, fade out the entire screen, and reload Unionall and begin running code at the specified Coroutine.

Parameters
# Type Name Description
1 Coroutine coro_id One of the 701 possible Unionall Coroutines.

0x6a - debug_Assert

Does nothing in the final game.

Parameters
# Type Name Description
1 uint unk0

0x6b - debug_Print

Does nothing in the final game.

If the script is running using SkyTemple's debugger and debug logging is enabled, the specified string will be printed to the debug log.

Parameters
# Type Name Description
1 ConstString txt A string to be printed to the Debug Log.

0x6c - debug_PrintFlag

Does nothing in the final game.

Parameters
# Type Name Description
1 GameVar var
2 ConstString txt

0x6d - debug_PrintScenario

Does nothing in the final game.

Parameters
# Type Name Description
1 GameVar var
2 ConstString txt

0x6f - Destroy

<TO DO: Opcode description>

No parameters.

0x71 - EndAnimation

<TO DO: Opcode description>

No parameters.

0x72 - ExecuteActing

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x73 - ExecuteCommon

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Routine coro_id
2 uint unk1

0x81 - Flash

<TO DO: Opcode description>

No parameters.

0x83 - item_GetVariable

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint slot
2 GameVar var

0x84 - item_Set

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint item_id
3 uint unk2

0x85 - item_SetTableData

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x86 - item_SetVariable

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 GameVar var

0x88 - JumpCommon

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Routine coro_id

0x8a - LoadPosition

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x8b - Lock

Suspends the current routine until the opcode Unlock is called with the same lock_id.

Parameters
# Type Name Description
1 uint lock_id The ID of a Lock, ranged from 0-19 (inclusive).

0x8c - main_EnterAdventure

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x8d - main_EnterDungeon

<TO DO: Opcode description>

Parameters
# Type Name Description
1 sint dungeon_id
2 uint unk1

0x8e - main_EnterGround

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Level level_id
2 uint unk1

0x8f - main_EnterGroundMulti

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0x90 - main_EnterRescueUser

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x91 - main_EnterTraining

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x92 - main_EnterTraining2

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x93 - main_SetGround

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Level level_id

0x94 - me_Play

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint me_id

0x95 - me_Stop

<TO DO: Opcode description>

No parameters.

0x96 - message_Close

Closes the current message box once the player inputs the A button

No parameters.

0x97 - message_CloseEnforce

Closes the current message box immediately after the game reaches the end of the current text string.

No parameters.

0x98 - message_Explanation

Displays the string defined in the first parameter, as it does in the opening scene of the game ("Welcome to the World of Pokemon!") etc.

Parameters
# Type Name Description
1 String txt

0x99 - message_FacePositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 sint x
2 sint y

0x9a - message_ImitationSound

<TO DO: Opcode description>

Parameters
# Type Name Description
1 String txt

0x9b - message_KeyWait

<TO DO: Opcode description>

No parameters.

0x9c - message_Mail

<TO DO: Opcode description>

Parameters
# Type Name Description
1 String txt

0x9d - message_Menu

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Menu menu_id

0x9e - message_Monologue

Displays the string defined in the first parameter, as it does with player speech. Notably, no sound is made as the dialog scrolls.

Parameters
# Type Name Description
1 String txt

0x9f - message_Narration

Similar to message_Explanation, except for the fact that all text displays instantaneously. The first parameter defines how long it takes for the text to fade in and fade out. An example for its use would be in the ending scenes.

Parameters
# Type Name Description
1 uint frames
2 String txt

0xa0 - message_Notice

Similar to message_Monologue, except for the fact that all text displays instantaneously.

Parameters
# Type Name Description
1 String txt

0xa1 - message_EmptyActor

Removes an actor's portrait and name from dialog box. Used before other opcodes that display text (eg. message_Talk)

No parameters.

0xa2 - message_ResetActor

Removes an actor's portrait and name from dialog box. Replaces the name with a white speech bubble. Used before other opcodes that display text (eg. message_Talk)

No parameters.

0xa3 - message_SetActor

Sets an actor's name to be used in the dialog box. Does not show the actor's portrait. Used before other opcodes that display text (eg. message_Talk)

Parameters
# Type Name Description
1 Entity actor_id

0xa4 - message_SetFace

Set an actor's name to be used in the dialog box. Shows the actor's portrait in the position defined by the user in the third parameter. Uses the portrait defined in the second parameter. Used before other opcodes that display text (eg. message_Talk)

Parameters
# Type Name Description
1 Entity actor_id
2 Face face_id
3 FaceMode face_mode

0xa5 - message_SetFaceEmpty

Shows the actor's portrait in the position defined by the user in the third parameter. Uses the portrait defined in the second parameter. Does not display the actor's name in the dialog box. Used before other opcodes that display text (eg. message_Talk)

Parameters
# Type Name Description
1 Entity actor_id
2 Face face_id
3 FaceMode face_mode

0xa6 - message_SetFaceOnly

Shows the actor's portrait in the position defined by the user in the third parameter. Uses the portrait defined in the second parameter. Displays a white speech bubble in the dialog box. Used before other opcodes that display text (eg. message_Talk)

Parameters
# Type Name Description
1 Entity actor_id
2 Face face_id
3 FaceMode face_mode

0xa7 - message_SetFacePosition

Changes an actor's portrait to be at the position as defined in the first parameter.

Parameters
# Type Name Description
1 FaceMode face_mode

0xa8 - message_SetWaitMode

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xa9 - message_SpecialTalk

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xae - message_Talk

Displays text in the dialog box.

Parameters
# Type Name Description
1 String txt

0xaf - Move2Position

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint x
3 uint y

0xb0 - Move2PositionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xb1 - Move2PositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ PositionMark pos_marker This parameter may be repeated multiple times

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.

Parameters
# Type Name Description
1 uint unk0
2 PositionMark pos_marker

0xb3 - Move2PositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ sint x This parameter may be repeated multiple times

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.

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0xb5 - Move2PositionOffsetRandom

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0xb6 - Move3Position

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint x
3 uint y

0xb7 - Move3PositionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xb8 - Move3PositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ PositionMark pos_marker This parameter may be repeated multiple times

0xb9 - Move3PositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2 PositionMark pos_marker

0xba - Move3PositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ sint x This parameter may be repeated multiple times

0xbb - Move3PositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0xbc - Move3PositionOffsetRandom

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0xbd - MoveDirection

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0xbe - MoveHeight

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xbf - MovePosition

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint x
3 uint y

0xc0 - MovePositionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xc1 - MovePositionLivesTime

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0xc2 - MovePositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ PositionMark pos_marker This parameter may be repeated multiple times

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.

Parameters
# Type Name Description
1 uint unk0
2 PositionMark pos_marker

0xc4 - MovePositionMarkTime

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 PositionMark pos_marker

0xc5 - MovePositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ sint x This parameter may be repeated multiple times

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.

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0xc7 - MoveSpecial

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0xc8 - MoveTurn

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0xca - PauseEffect

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xcc - ProcessSpecial

<TO DO: Opcode description>

Parameters
# Type Name Description
1 ProcessSpecial process_id
2 uint unk1
3 uint unk2

0xcd - PursueTurnLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0xce - PursueTurnLives2

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0xcf - ResetAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xd0 - ResetFunctionAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xd1 - ResetHitAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xd2 - ResetOutputAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xd3 - ResetReplyAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xd4 - ResumeEffect

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xd6 - SavePosition

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xd7 - screen_FadeChange

Changes the brightness level of the screen.

Parameters
# Type Name Description
1 bool wait If true, the game will wait for the brightness operation to finish before continuing
2 uint frames Number of frames taken to change the brightness
3 uint start_brightness Starting brightness level. Default brightness is 256.
4 uint end_brightness Final brightness level. Default brightness is 256.

0xd8 - screen_FadeChangeAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0xd9 - screen_FadeIn

<TO DO: Opcode description>

Parameters
# Type Name Description
1 bool unk0
2 uint duration

0xda - screen_FadeInAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 bool unk0
2 uint duration

0xdb - screen_FadeOut

<TO DO: Opcode description>

Parameters
# Type Name Description
1 bool unk0
2 uint duration

0xdc - screen_FadeOutAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 bool unk0
2 uint duration

0xdd - screen_FlushChange

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3
5 uint unk4
6 uint unk5
7 uint unk6
8 uint unk7

0xde - screen_FlushIn

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3
5 uint unk4
6 uint unk5

0xdf - screen_FlushOut

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3
5 uint unk4
6 uint unk5

0xe0 - screen_WhiteChange

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0xe1 - screen_WhiteChangeAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0xe2 - screen_WhiteIn

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xe3 - screen_WhiteInAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xe4 - screen_WhiteOut

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xe5 - screen_WhiteOutAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xe6 - screen2_FadeChange

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0xe7 - screen2_FadeChangeAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0xe8 - screen2_FadeIn

<TO DO: Opcode description>

Parameters
# Type Name Description
1 bool unk0
2 uint duration

0xe9 - screen2_FadeInAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 bool unk0
2 uint duration

0xea - screen2_FadeOut

<TO DO: Opcode description>

Parameters
# Type Name Description
1 bool unk0
2 uint duration

0xeb - screen2_FadeOutAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 bool unk0
2 uint duration

0xec - screen2_FlushChange

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3
5 uint unk4
6 uint unk5
7 uint unk6
8 uint unk7

0xed - screen2_FlushIn

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3
5 uint unk4
6 uint unk5

0xee - screen2_FlushOut

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3
5 uint unk4
6 uint unk5

0xef - screen2_WhiteChange

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0xf0 - screen2_WhiteChangeAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0xf1 - screen2_WhiteIn

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xf2 - screen2_WhiteInAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xf3 - screen2_WhiteOut

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xf4 - screen2_WhiteOutAll

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xf5 - se_ChangePan

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0xf6 - se_ChangeVolume

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0xf7 - se_FadeOut

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xf8 - se_Play

Plays a sound effect.

Parameters
# Type Name Description
1 uint se_id Sound effect ID. It's actually encoded as sound_bank_id << 8 + sound_id, but it can also be represented as an integer.

0xf9 - se_PlayFull

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0xfa - se_PlayPan

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xfb - se_PlayVolume

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xfc - se_Stop

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xfd - SetAnimation

Plays a sprite's animation, optionally changing its speed and animation flags.

Parameters
# Type Name Description
1 uint id Animation table index. Converted to an animation id for the current sprite using the SetAnimation table.

0xfe - SetAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0xff - SetBlink

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x100 - SetDirection

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Direction direction

0x101 - SetDirectionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x102 - SetEffect

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Effect effect_id
2 uint position_marker_id?

0x103 - SetFunctionAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x104 - SetHeight

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x105 - SetHitAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x106 - SetMoveRange

<TO DO: Opcode description>

Parameters
# Type Name Description
1 PositionMark pos_marker
5 uint unk4
6 uint unk5

0x107 - SetOutputAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x108 - SetPosition

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint x
2 uint y

0x109 - SetPositionInitial

<TO DO: Opcode description>

No parameters.

0x10a - SetPositionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x10b - SetPositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 PositionMark pos_marker

0x10c - SetPositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 sint x
2 sint y

0x10d - SetPositionOffsetRandom

<TO DO: Opcode description>

Parameters
# Type Name Description
1 sint x
2 sint y

0x10e - SetReplyAttribute

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x10f - SetupOutputAttributeAndAnimation

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0x110 - Slide2Position

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint x
3 uint y

0x111 - Slide2PositionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x112 - Slide2PositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ PositionMark pos_marker This parameter may be repeated multiple times

0x113 - Slide2PositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 PositionMark pos_mark

0x114 - Slide2PositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ sint x These two parameters may be repeated multiple times
3+ sint y

0x115 - Slide2PositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0x116 - Slide2PositionOffsetRandom

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0x117 - Slide3Position

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint x
3 uint y

0x118 - Slide3PositionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x119 - Slide3PositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ PositionMark pos_marker This parameter may be repeated multiple times

0x11a - Slide3PositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 PositionMark pos_marker

0x11b - Slide3PositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2+ sint x These two parameters may be repeated multiple times
3+ sint y

0x11c - Slide3PositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0x11d - Slide3PositionOffsetRandom

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0x11e - SlideHeight

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x11f - SlidePosition

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint x
3 uint y

0x120 - SlidePositionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x121 - SlidePositionLivesTime

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0x122 - SlidePositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ PositionMark pos_marker This parameter may be repeated multiple times

0x123 - SlidePositionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 PositionMark pos_marker

0x124 - SlidePositionMarkTime

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 PositionMark pos_marker

0x125 - SlidePositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint num_parameters
2+ sint x This parameter may be repeated multiple times

0x126 - SlidePositionOffset

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 sint x
3 sint y

0x127 - sound_FadeOut

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x128 - sound_Stop

<TO DO: Opcode description>

No parameters.

0x129 - StopAnimation

<TO DO: Opcode description>

No parameters.

0x12a - supervision_Acting

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint layer_id

0x12b - supervision_ActingInvisible

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint layer_id

0x12c - supervision_ExecuteActing

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Level level
2 ConstString script_id
3 uint unk2

0x12d - supervision_ExecuteActingSub

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Level level
2 ConstString script_id
3 uint unk2

0x12e - supervision_ExecuteCommon

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Routine coro_id

0x12f - supervision_ExecuteEnter

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x130 - supervision_ExecuteStation

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Level level
2 ConstString script_id
3 uint unk2

0x131 - supervision_ExecuteStationCommon

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Level level
2 uint unk1

0x132 - supervision_ExecuteStationCommonSub

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Level level
2 uint unk1

0x133 - supervision_ExecuteStationSub

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Level level
2 ConstString script_id
3 uint unk2

0x134 - supervision_ExecuteExport

<TO DO: Opcode description>

Parameters
# Type Name Description
1 ConstString const

0x135 - supervision_ExecuteExportSub

<TO DO: Opcode description>

Parameters
# Type Name Description
1 ConstString const

0x136 - supervision_LoadStation

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Level level
2 ConstString script_id

0x137 - supervision_Remove

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x138 - supervision_RemoveActing

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint layer_id

0x139 - supervision_RemoveCommon

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x13a - supervision_SpecialActing

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0x13b - supervision_Station

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint station_id

0x13c - supervision_StationCommon

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint station_id

0x13d - supervision_Suspend

<TO DO: Opcode description>

Parameters
# Type Name Description
1 sint unk0

0x13e - supervision2_SpecialActing

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0x14c - Turn2Direction

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 Direction direction

0x14d - Turn2DirectionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 Entity actor_id

0x14e - Turn2DirectionLives2

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0x14f - Turn2DirectionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 PositionMark pos_marker
4 uint unk6
5 uint unk7

0x150 - Turn2DirectionTurn

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0x151 - Turn3

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 uint unk3

0x152 - TurnDirection

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Direction direction

0x153 - TurnDirectionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x154 - TurnDirectionLives2

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x155 - TurnDirectionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 PositionMark pos_marker

0x156 - Unlock

Resumes the routine that was suspended when Lock was called with the specified lock_id.

Parameters
# Type Name Description
1 uint lock_id The ID of a Lock, ranged from 0-19 (inclusive).

0x157 - Wait

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint duration

0x158 - WaitAnimation

<TO DO: Opcode description>

No parameters.

0x159 - WaitBackEffect

<TO DO: Opcode description>

No parameters.

0x15a - WaitBack2Effect

<TO DO: Opcode description>

No parameters.

0x15b - WaitBgm

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Bgm bgm_id

0x15c - WaitBgm2

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Bgm bgm_id

0x15d - WaitBgmSignal

<TO DO: Opcode description>

No parameters.

0x15e - WaitEffect

<TO DO: Opcode description>

No parameters.

0x15f - WaitEndAnimation

<TO DO: Opcode description>

No parameters.

0x160 - WaitExecuteLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Entity actor_id

0x161 - WaitExecuteObject

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Object object_id

0x162 - WaitExecutePerformer

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint performer_id

0x163 - WaitFadeIn

<TO DO: Opcode description>

No parameters.

0x164 - WaitLockLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint lock_id
2 Entity actor

0x165 - WaitLockObject

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint lock_id
2 Object object

0x166 - WaitLockPerformer

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint lock_id
2 uint performer

0x167 - WaitLockSupervision

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x168 - WaitMe

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x169 - WaitMoveCamera

<TO DO: Opcode description>

No parameters.

0x16a - WaitMoveCamera2

<TO DO: Opcode description>

No parameters.

0x16b - WaitRandom

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x16c - WaitScreenFade

<TO DO: Opcode description>

No parameters.

0x16d - WaitScreenFadeAll

<TO DO: Opcode description>

No parameters.

0x16e - WaitScreen2Fade

<TO DO: Opcode description>

No parameters.

0x16f - WaitSe

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint se_id

0x170 - WaitSpecialActing

<TO DO: Opcode description>

No parameters.

0x171 - WaitSubScreen

<TO DO: Opcode description>

No parameters.

0x172 - WaitSubSpecialActing

<TO DO: Opcode description>

No parameters.

0x173 - worldmap_BlinkMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x174 - worldmap_ChangeLevel

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x175 - worldmap_DeleteArrow

<TO DO: Opcode description>

No parameters.

0x176 - worldmap_MoveCamera

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x177 - worldmap_OffMessage

<TO DO: Opcode description>

No parameters.

0x178 - worldmap_SetArrow

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x179 - worldmap_SetCamera

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x17a - worldmap_SetLevel

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x17b - worldmap_SetMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x17c - worldmap_SetMessage

<TO DO: Opcode description>

Parameters
# Type Name Description
1 String txt

0x17d - worldmap_SetMessagePlace

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x17e - worldmap_SetMode

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

Other Opcodes

These opcodes cannot be directly called from ExplorerScript, since they are represented as higher-level constructs.

0x28 - Branch

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint value
3 Addr jump_address

0x29 - BranchBit

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint index
3 Addr jump_address

0x2a - BranchDebug

<TO DO: Opcode description>

Parameters
# Type Name Description
1 bool param
2 Addr jump_address

0x2b - BranchEdit

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint param
2 Addr jump_address

0x2c - BranchExecuteSub

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 Addr jump_address

0x2d - BranchPerformance

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint index
2 bool value
3 Addr jump_address

0x2e - BranchScenarioNow

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint unk1
3 uint unk2
4 Addr jump_address

0x2f - BranchScenarioNowAfter

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint unk1
3 uint unk2
4 Addr jump_address

0x30 - BranchScenarioNowBefore

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint unk1
3 uint unk2
4 Addr jump_address

0x31 - BranchScenarioAfter

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint unk1
3 uint unk2
4 Addr jump_address

0x32 - BranchScenarioBefore

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint unk1
3 uint unk2
4 Addr jump_address

0x33 - BranchSum

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2
4 Addr jump_address

0x34 - BranchValue

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 Operator operator
3 uint value
4 Addr jump_address

0x35 - BranchVariable

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 Operator operator
3 GameVar cmp_var
4 Addr jump_address

0x36 - BranchVariation

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint param
2 Addr jump_address

0x37 - Call

Jumps to the specified address, runs code, and returns to the line of code in which this opcode was used (only if return; was used in the routine this opcode calls).

Parameters
# Type Name Description
1 Addr jump_address The address to call, e.g., call @label_0; if §label_0; is defined in the script.

0x63 - Case

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint value
2 Addr jump_address

0x64 - CaseMenu

<TO DO: Opcode description>

Parameters
# Type Name Description
1 String choice
2 Addr jump_address

0x65 - CaseMenu2

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint? choice?
2 Addr jump_address

0x66 - CaseScenario

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Operator operator
2 uint value
3 Addr jump_address

0x67 - CaseText

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint value
2 String display

0x68 - CaseValue

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Operator operator
2 uint value
3 Addr jump_address

0x69 - CaseVariable

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Operator operator
2 GameVar var
3 Addr jump_address

0x6e - DefaultText

<TO DO: Opcode description>

Parameters
# Type Name Description
1 String txt

0x70 - End

<TO DO: Opcode description>

No parameters.

0x74 - flag_CalcBit

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint index
3 bool value

0x75 - flag_CalcValue

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 CalcOperator calc_operator
3 uint value

0x76 - flag_CalcVariable

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 CalcOperator calc_operator
3 GameVar var_to_set_from

0x77 - flag_Clear

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var

0x78 - flag_Initial

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var

0x79 - flag_Set

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint value

0x7a - flag_ResetDungeonResult

<TO DO: Opcode description>

No parameters.

0x7b - flag_ResetScenario

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var

0x7c - flag_SetAdventureLog

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x7d - flag_SetDungeonMode

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint dungeon_id
2 DungeonMode dungen_mode

0x7e - flag_SetDungeonResult

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0x7f - flag_SetPerformance

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint index
2 bool value

0x80 - flag_SetScenario

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint scenario_value
3 uint level_value

0x82 - Hold

<TO DO: Opcode description>

No parameters.

0x87 - Jump

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Addr jump_address

0x89 - lives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Entity actor_id

0xaa - message_SwitchMenu

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1

0xab - message_SwitchMenu2

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0
2 uint unk1
3 uint unk2

0xac - message_SwitchMonologue

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var

0xad - message_SwitchTalk

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var

0xc9 - object

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Object object_id

0xcb - performer

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint performer_id

0xd5 - Return

<TO DO: Opcode description>

No parameters.

0x13f - Switch

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var

0x140 - SwitchDirection

<TO DO: Opcode description>

Parameters
# Type Name Description
1 Direction direction

0x141 - SwitchDirectionLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x142 - SwitchDirectionLives2

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x143 - SwitchDirectionMark

<TO DO: Opcode description>

Parameters
# Type Name Description
1 PositionMark pos_marker

0x144 - SwitchDungeonMode

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint dungeon_id

0x145 - SwitchLives

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint unk0

0x146 - SwitchRandom

<TO DO: Opcode description>

Parameters
# Type Name Description
1 uint max_value

0x147 - SwitchScenario

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var

0x148 - SwitchScenarioLevel

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var

0x149 - SwitchSector

<TO DO: Opcode description>

No parameters.

0x14a - SwitchValue

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint unk1
3 uint unk2

0x14b - SwitchVariable

<TO DO: Opcode description>

Parameters
# Type Name Description
1 GameVar var
2 uint unk1
3 uint unk2