List of Opcodes: Difference between revisions
m Changed Item_GetVariable Tags: Visual edit Mobile edit Mobile web edit |
Happylappy (talk | contribs) m World Map Mode documentation |
||
| (21 intermediate revisions by 6 users not shown) | |||
| Line 382: | Line 382: | ||
|} | |} | ||
=== 0xf - back_SetWeatherEffect === | === 0xf - back_SetWeatherEffect === | ||
Currently unknown. The only values this opcode accepts seems to be 1, 2, and 3. | Currently unknown. The only values this opcode accepts seems to be 1, 2, and 3. Value 3 was previously used in S02P01A/m00a01a.ssb in Time/Darkness, for its iteration of the personality test. In Sky, its only use is in V00P02/m01a04a.ssb, which is a leftover test script used by the developers to test the visuals of the Time/Darkness iteration of the aura test. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 397: | Line 397: | ||
|Currently unknown. | |Currently unknown. | ||
|} | |} | ||
=== 0x10 - back_SetWeatherScrollOffset === | === 0x10 - back_SetWeatherScrollOffset === | ||
Currently unknown. This opcode is not used in the base game. | Currently unknown. This opcode is not used in the base game. | ||
| Line 927: | Line 928: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 946: | Line 947: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 965: | Line 966: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,004: | Line 1,005: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 1,121: | Line 1,122: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,140: | Line 1,141: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,159: | Line 1,160: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,198: | Line 1,199: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 1,281: | Line 1,282: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,298: | Line 1,299: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,315: | Line 1,316: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,354: | Line 1,355: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 1,467: | Line 1,468: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,484: | Line 1,485: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,501: | Line 1,502: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|} | |} | ||
| Line 1,540: | Line 1,541: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 1,761: | Line 1,762: | ||
|} | |} | ||
=== 0x81 - Flash === | === 0x81 - Flash === | ||
Zeroes-out the return address used by the <code>Return</code> opcode. This opcode is not used in the base game. | |||
No parameters. | No parameters. | ||
| Line 1,789: | Line 1,790: | ||
Items in slot 0 may also be added to the player's bag and storage with hardcoded menus, such as <code>message_Menu(MENU_GIVE_ITEM);</code> and <code>message_Menu(MENU_GIVE_ITEM2);</code>, respectively. Additionally, the text tag <code>[s_item:X]</code> will display the item's name, where X is the item slot number. | Items in slot 0 may also be added to the player's bag and storage with hardcoded menus, such as <code>message_Menu(MENU_GIVE_ITEM);</code> and <code>message_Menu(MENU_GIVE_ITEM2);</code>, respectively. Additionally, the text tag <code>[s_item:X]</code> will display the item's name, where X is the item slot number. | ||
Item slots 0-3 are safe to use, but item slots 4 and beyond will begin to overwrite other memory! | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 1,806: | Line 1,809: | ||
|uint | |uint | ||
|item_id | |item_id | ||
|The ID of the item, where all are listed in the Items tab of SkyTemple. | |The ID of the item, where all are listed in the Items tab of SkyTemple. | ||
|- | |- | ||
|3 | |3 | ||
| Line 1,833: | Line 1,836: | ||
|2 | |2 | ||
|uint | |uint | ||
| | |table_ID | ||
|Some | |Some item tables related to Spinda's Cafe. | ||
|} | |||
The table IDs themselves are as follows. Values above 15 are currently unknown and untested. | |||
{| class="wikitable" | |||
!# | |||
!Description | |||
!# | |||
!Description | |||
|- | |||
|0 | |||
|Sky Gift Item Pool | |||
|8 | |||
|Silver Ticket Win Pool | |||
|- | |||
|1 | |||
|Numel "Give" Item Pool | |||
|9 | |||
|Silver Ticket Big Win Pool | |||
|- | |||
|2 | |||
|Numel "Recieve" Item Pool | |||
|10 | |||
|Gold Ticket Loss Pool | |||
|- | |||
|3 | |||
|Happiny Lost Item Pool | |||
|11 | |||
|Gold Ticket Win Pool | |||
|- | |||
|4 | |||
|Prize Ticket Loss Pool | |||
|12 | |||
|Gold Ticket Big Win Pool | |||
|- | |||
|5 | |||
|Prize Ticket Win Pool | |||
|13 | |||
|Prism Ticket Loss Pool | |||
|- | |||
|6 | |||
|Prize Ticket Big Win Pool | |||
|14 | |||
|Prism Ticket Win Pool | |||
|- | |||
|7 | |||
|Silver Ticket Loss Pool | |||
|15 | |||
|Prism Ticket Big Win Pool | |||
|} | |} | ||
=== 0x86 - item_SetVariable === | === 0x86 - item_SetVariable === | ||
Saves the value of a script variable to an item slot. Items in slot 0 may also be added to the player's bag and storage with hardcoded menus, such as <code>message_Menu(MENU_GIVE_ITEM);</code> and <code>message_Menu(MENU_GIVE_ITEM2);</code>, respectively. Additionally, the text tag <code>[s_item:X]</code> will display the item's name, where X is the item slot number. | Saves the value of a script variable to an item slot. Items in slot 0 may also be added to the player's bag and storage with hardcoded menus, such as <code>message_Menu(MENU_GIVE_ITEM);</code> and <code>message_Menu(MENU_GIVE_ITEM2);</code>, respectively. Additionally, the text tag <code>[s_item:X]</code> will display the item's name, where X is the item slot number. | ||
| Line 2,501: | Line 2,552: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,530: | Line 2,581: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,579: | Line 2,630: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,627: | Line 2,678: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,656: | Line 2,707: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,685: | Line 2,736: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,714: | Line 2,765: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,762: | Line 2,813: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,810: | Line 2,861: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,839: | Line 2,890: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,868: | Line 2,919: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
|- | |- | ||
|2 | |2 | ||
| Line 2,896: | Line 2,947: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
|- | |- | ||
|2 | |2 | ||
| Line 2,919: | Line 2,970: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,948: | Line 2,999: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 2,972: | Line 3,023: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 3,025: | Line 3,076: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 3,049: | Line 3,100: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 3,102: | Line 3,153: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 3,170: | Line 3,221: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
| Line 4,693: | Line 4,744: | ||
|} | |} | ||
=== 0x102 - SetEffect === | === 0x102 - SetEffect === | ||
Plays back an [[List of Effect Animations|effect animation]] assigned to an actor or performer. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 4,706: | Line 4,757: | ||
|Effect | |Effect | ||
|effect_id | |effect_id | ||
| | |The ID of a given effect. | ||
|- | |- | ||
|2 | |2 | ||
|uint | |uint | ||
|position_marker_id? | |position_marker_id? | ||
| | |Set to one of the following character sprite offsets: | ||
0: Head<br>1: Right Hand<br>2: Left Hand<br>3: Center<br>4: No offset (bottom of sprite) | |||
|} | |} | ||
=== 0x103 - SetFunctionAttribute === | === 0x103 - SetFunctionAttribute === | ||
<TO DO: Opcode description> | <TO DO: Opcode description> | ||
| Line 4,730: | Line 4,783: | ||
|} | |} | ||
=== 0x104 - SetHeight === | === 0x104 - SetHeight === | ||
Moves an actor "vertically" by distancing it from its shadow. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 4,743: | Line 4,796: | ||
|uint | |uint | ||
|unk0 | |unk0 | ||
| | |number of pixels to move up or down by. | ||
|} | |} | ||
=== 0x105 - SetHitAttribute === | === 0x105 - SetHitAttribute === | ||
| Line 4,788: | Line 4,841: | ||
|} | |} | ||
=== 0x107 - SetOutputAttribute === | === 0x107 - SetOutputAttribute === | ||
Sets certain bits of an entity's (i.e., an actor, object, or performer) "output" attribute to 1. | |||
{| class="wikitable" | {| class="wikitable" | ||
|+Parameters | |+Parameters | ||
| Line 4,800: | Line 4,852: | ||
|1 | |1 | ||
|bitfield | |bitfield | ||
| | |output_bitfield | ||
| | | | ||
# Underlay below entities. | |||
# Overlay above entities. | |||
# Overlay above the current Map Background's Layer 2. | |||
# Overlay above the game's canvas system, which includes the textbox, portrait, and some <code>screen_</code> commands that do not end in <code>All</code>. | |||
# Flicker. | |||
# Transparency. | |||
# Invisibility. | |||
# Displays shadow. | |||
|} | |} | ||
=== 0x108 - SetPosition === | === 0x108 - SetPosition === | ||
| Line 4,958: | Line 5,018: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
|2 | |2 | ||
| Line 4,985: | Line 5,045: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
|2 | |2 | ||
| Line 5,034: | Line 5,094: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed. | |Movement speed. Higher values result in a faster speed. Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
|2 | |2 | ||
| Line 5,420: | Line 5,480: | ||
|uint | |uint | ||
|speed | |speed | ||
|Movement speed. Higher values result in a faster speed | |Movement speed. Higher values result in a faster speed. | ||
Values starting at 32770 and above will be slower than a value of 1. | Values starting at 32770 and above will be slower than a value of 1. | ||
|- | |- | ||
| Line 5,574: | Line 5,634: | ||
|Level | |Level | ||
|level | |level | ||
| | |Map LEVEL the script should be located in. | ||
|- | |- | ||
|2 | |2 | ||
|ConstString | |ConstString | ||
|script_id | |script_id | ||
| | |Name of the script itself, only the first 8 characters are read. | ||
|- | |- | ||
|3 | |3 | ||
|uint | |uint | ||
| | |script_sector | ||
| | |The "sector" of the script, and the value <code>switch(sector())</code> will return in def 0. Often used to determine whether a cutscene should be played as a flashback or not. | ||
|} | |} | ||
=== 0x12d - supervision_ExecuteActingSub === | === 0x12d - supervision_ExecuteActingSub === | ||
Loads a specified Acting script from the specified level from within Unionall | Loads a specified Acting script from the specified level from within Unionall. | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 5,601: | Line 5,661: | ||
|Level | |Level | ||
|level | |level | ||
| | |Map LEVEL the script should be located in. | ||
|- | |- | ||
|2 | |2 | ||
|ConstString | |ConstString | ||
|script_id | |script_id | ||
| | |Name of the script itself, only the first 8 characters are read. | ||
|- | |- | ||
|3 | |3 | ||
|uint | |uint | ||
| | |script_sector | ||
| | |The "sector" of the script, and the value <code>switch(sector())</code> will return in def 0. Often used to determine whether a cutscene should be played as a flashback or not. | ||
|} | |} | ||
| Line 5,892: | Line 5,952: | ||
=== 0x13c - supervision_StationCommon === | === 0x13c - supervision_StationCommon === | ||
Loads a sector of the Enter scene. | Loads a sector of the Enter scene. | ||
Can be used to call sectors of an enter scene within acting scenes! | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 6,545: | Line 6,607: | ||
=== 0x174 - worldmap_ChangeLevel === | === 0x174 - worldmap_ChangeLevel === | ||
Causes the clouds parting animation on the world map, presumably hardcoded by vanilla use-case. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 6,557: | Line 6,619: | ||
|1 | |1 | ||
|uint | |uint | ||
| | |world_map_level | ||
| | |Level to transition the world map state to. | ||
|} | |} | ||
=== 0x175 - worldmap_DeleteArrow === | === 0x175 - worldmap_DeleteArrow === | ||
| Line 6,579: | Line 6,641: | ||
|uint | |uint | ||
|world_map_marker_id | |world_map_marker_id | ||
| | |The world map id to move the camera to. | ||
|} | |} | ||
| Line 6,605: | Line 6,667: | ||
=== 0x179 - worldmap_SetCamera === | === 0x179 - worldmap_SetCamera === | ||
Centers the world map camera on a specific world map marker. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 6,617: | Line 6,679: | ||
|1 | |1 | ||
|uint | |uint | ||
| | |world_map_marker_id | ||
| | |The world map id to set the camera to. | ||
|} | |} | ||
=== 0x17a - worldmap_SetLevel === | === 0x17a - worldmap_SetLevel === | ||
Sets the current world map state. Additionally updates $WORLD_MAP_LEVEL | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 6,633: | Line 6,695: | ||
|1 | |1 | ||
|uint | |uint | ||
| | |world_map_level | ||
| | |Level to assign the world map state to. | ||
|} | |} | ||
=== 0x17b - worldmap_SetMark === | === 0x17b - worldmap_SetMark === | ||
Enables a yellow dot for the specified world map marker. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 6,649: | Line 6,711: | ||
|1 | |1 | ||
|uint | |uint | ||
| | |world_map_marker_id | ||
| | |The world map id to enable the yellow dot for. | ||
|} | |} | ||
=== 0x17c - worldmap_SetMessage === | === 0x17c - worldmap_SetMessage === | ||
<TO DO: Opcode description> | <TO DO: Opcode description> | ||
Seemingly unused in vanilla. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 6,686: | Line 6,750: | ||
=== 0x17e - worldmap_SetMode === | === 0x17e - worldmap_SetMode === | ||
Sets the "mode" of the world map, to align with a particular purpose. | |||
Mode 1 seems to be for handling travel to a dungeon or area. | |||
Mode 2 is only used by debug scripts. | |||
Mode 3 is for handling moving clouds. | |||
Mode 4 is for cutscene use, or for showing where things are on a map. | |||
All other modes are unused. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 6,698: | Line 6,772: | ||
|1 | |1 | ||
|uint | |uint | ||
| | |world_map_mode | ||
| | | | ||
|} | |} | ||
| Line 7,095: | Line 7,169: | ||
|} | |} | ||
=== 0x36 - BranchVariation === | === 0x36 - BranchVariation === | ||
Used for demo cutscenes. | |||
Jumps to the specified address if the first parameter is 0. On the demo version of the game, jumps if the first parameter is 3. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 7,108: | Line 7,184: | ||
|uint | |uint | ||
|param | |param | ||
| | |Unknown. Always 3. | ||
|- | |- | ||
|2 | |2 | ||
|uint | |uint | ||
|jump_address | |jump_address | ||
| | |Address to jump to. | ||
|} | |} | ||
=== 0x37 - Call === | === 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). | 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). Only one call can be stored at a time! | ||
Use within macros is ill-advised, as using <code>return;</code> within a macro will just end the macro! | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 7,570: | Line 7,648: | ||
|} | |} | ||
=== 0x82 - Hold === | === 0x82 - Hold === | ||
Will stall a script forever. | |||
No parameters. | No parameters. | ||
| Line 7,606: | Line 7,684: | ||
|} | |} | ||
=== 0xaa - message_SwitchMenu === | === 0xaa - message_SwitchMenu === | ||
Enclose within a switch case, and generates a dialogue prompt with the options present in subsequent "case menu("text"):" | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 7,618: | Line 7,696: | ||
|1 | |1 | ||
|uint | |uint | ||
| | |cancel | ||
| | |If player can use the B button to back out of a menu. 0 for false, 1 for true. | ||
|- | |- | ||
|2 | |2 | ||
|uint | |uint | ||
| | |init | ||
| | |Entry number to start the cursor at, starting at 1 | ||
|} | |} | ||
=== 0xab - message_SwitchMenu2 === | === 0xab - message_SwitchMenu2 === | ||
Same as message_SwitchMenu, but it also takes an argument for a bitfield, and will only display dialogue options for which the corresponding bit is enabled (set to 1). | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 7,639: | Line 7,717: | ||
|1 | |1 | ||
|uint | |uint | ||
| | |cancel | ||
| | |If player can use the B button to back out of a menu. 0 for false, 1 for true. | ||
|- | |- | ||
|2 | |2 | ||
|uint | |uint | ||
| | |init | ||
| | |Entry number to start the cursor at, starting at 1 | ||
|- | |- | ||
|3 | |3 | ||
|uint | |uint | ||
|unk2 | |unk2 | ||
| | |Bitfield $VAR | ||
|} | |} | ||
=== 0xac - message_SwitchMonologue === | === 0xac - message_SwitchMonologue === | ||
< | Structured similarly to a switch statement. Typically uses <code>$HERO_TALK_KIND</code> as an argument, and uses multiple cases to display certain dialogue strings. | ||
<code>case 4:</code> used when the player is male or genderless | |||
<code>case 5:</code> used when the player is female | |||
<code>default:</code> used when <code>$HERO_TALK_KIND</code>'s Talk Group has a value other than 4 or 5 | |||
This opcode supports displaying a portrait. No sound effect is used when text is scrolling. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 7,666: | Line 7,752: | ||
|GameVar | |GameVar | ||
|var | |var | ||
| | |<code>$x_TALK_KIND</code>, contains Talk Group number | ||
|} | |} | ||
=== 0xad - message_SwitchTalk === | === 0xad - message_SwitchTalk === | ||
< | Same as _SwitchMonologue, but typically uses <code>$PARTNER_TALK_KIND</code> as an argument, and the cases used vary. | ||
Of the vanilla game partner options: | |||
<code>case 1:</code> used if Squirtle, Tododile, Chimchar, Meowth, or Munchlax | |||
<code>case 2:</code> used for all other male partners | |||
<code>case 3:</code> used for all female partners | |||
<code>default:</code> used when <code>$PARTNER_TALK_KIND</code>'s Talk Group has a value other than 1, 2, or 3 | |||
This opcode supports displaying a portrait. The [[sound effect]] 16133 will emit from the each character scrolling in the text. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 7,682: | Line 7,780: | ||
|GameVar | |GameVar | ||
|var | |var | ||
| | |<code>$x_TALK_KIND</code>, contains Talk Group number | ||
|} | |} | ||
=== 0xc9 - object === | === 0xc9 - object === | ||
| Line 7,717: | Line 7,815: | ||
|} | |} | ||
=== 0xd5 - Return === | === 0xd5 - Return === | ||
If run from within a macro, ends the macro. | |||
If run after the "call" opcode was used, will return to the address of the call opcode. | |||
If used within a script, ends the script. | |||
No parameters. | No parameters. | ||
| Line 7,817: | Line 7,919: | ||
|} | |} | ||
=== 0x145 - SwitchLives === | === 0x145 - SwitchLives === | ||
If inside a Switch Case, take the case equal to the species ID of the specified Actor! | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 7,828: | Line 7,930: | ||
|- | |- | ||
|1 | |1 | ||
| | |Entity | ||
| | |actor_id | ||
| | |An entry in the Actor List. | ||
|} | |} | ||
=== 0x146 - SwitchRandom === | === 0x146 - SwitchRandom === | ||
To be used in a switch statement. Will switch to a case of a random number below the specified integer. | |||
{| class="wikitable" | {| class="wikitable" | ||
| Line 7,846: | Line 7,948: | ||
|uint | |uint | ||
|max_value | |max_value | ||
| | |Largest random output, plus 1 | ||
|} | |} | ||
=== 0x147 - SwitchScenario === | === 0x147 - SwitchScenario === | ||