Allow italics/bold within inline code

This commit is contained in:
Remy Oukaour 2018-01-17 13:58:50 -05:00
parent c70e8eec49
commit d2725c3104
7 changed files with 302 additions and 233 deletions

View File

@ -3,14 +3,14 @@
Defined in [macros/scripts/battle_anims.asm](/macros/scripts/battle_anims.asm) and [engine/battle_anims/anim_commands.asm:BattleAnimCommands](/engine/battle_anims/anim_commands.asm). Defined in [macros/scripts/battle_anims.asm](/macros/scripts/battle_anims.asm) and [engine/battle_anims/anim_commands.asm:BattleAnimCommands](/engine/battle_anims/anim_commands.asm).
## `$00``$CF`: `anim_wait` *length* ## `$00``$CF`: <code>anim_wait <i>length</i></code>
- *length*: duration in frames - *length*: duration in frames
## `$D0`: `anim_obj` *object*, *x*, *y*, *param* ## `$D0`: <code>anim_obj <i>object</i>, <i>x</i>, <i>y</i>, <i>param</i></code>
***Alternate*: `anim_obj` *object*, *x_tile*, *x*, *y_tile*, *y*, *param*** ***Alternate*: <code>anim_obj <i>object</i>, <i>x_tile</i>, <i>x</i>, <i>y_tile</i>, <i>y</i>, <i>param</i>**
Spawns an *object* at coordinate (*x*, *y*). Spawns an *object* at coordinate (*x*, *y*).
@ -29,22 +29,26 @@ The y position also depends on the y offset defined by the object.
- *TODO: document each object* - *TODO: document each object*
## `$D1`: `anim_1gfx` *gfx* ## `$D1`: <code>anim_1gfx <i>gfx</i></code>
## `$D2`: `anim_2gfx` *gfx1*, *gfx2*
## `$D3`: `anim_3gfx` *gfx1*, *gfx2*, *gfx3* ## `$D2`: <code>anim_2gfx <i>gfx1</i>, <i>gfx2</i></code>
## `$D4`: `anim_4gfx` *gfx1*, *gfx2*, *gfx3*, *gfx4*
## `$D5`: `anim_5gfx` *gfx1*, *gfx2*, *gfx3*, *gfx4*, *gfx5* ## `$D3`: <code>anim_3gfx <i>gfx1</i>, <i>gfx2</i>, <i>gfx3</i></code>
## `$D4`: <code>anim_4gfx <i>gfx1</i>, <i>gfx2</i>, <i>gfx3</i>, <i>gfx4</i></code>
## `$D5`: <code>anim_5gfx <i>gfx1</i>, <i>gfx2</i>, <i>gfx3</i>, <i>gfx4</i>, <i>gfx5</i></code>
Loads 1-5 sets of graphics. Will overwrite any previously loaded sets. Loads 1-5 sets of graphics. Will overwrite any previously loaded sets.
- *gfx*: `ANIM_GFX` constants (see [constants/battle_anim_constants.asm](/constants/battle_anim_constants.asm)) - *gfx*: `ANIM_GFX` constants (see [constants/battle_anim_constants.asm](/constants/battle_anim_constants.asm))
## `$D6`: `anim_incobj` *object_id* ## `$D6`: <code>anim_incobj <i>object_id</i></code>
Increments an object's state. Increments an object's state.
@ -52,7 +56,8 @@ Increments an object's state.
Objects are state machines. `anim_incobj` progresses the state of an object. Objects are state machines. `anim_incobj` progresses the state of an object.
## `$D7`: `anim_setobj` *object_id*, *state*
## `$D7`: <code>anim_setobj <i>object_id</i>, <i>state</i></code>
Sets an object's state to a specific value. Sets an object's state to a specific value.
@ -61,7 +66,8 @@ Sets an object's state to a specific value.
Objects are state machines. `anim_setobj` changes the state of an object. Objects are state machines. `anim_setobj` changes the state of an object.
## `$D8`: `anim_incbgeffect` *bg_effect*
## `$D8`: <code>anim_incbgeffect <i>bg_effect</i></code>
Increments a bg effect's state. Increments a bg effect's state.
@ -74,6 +80,7 @@ Since there can't be two of the same bg effect, the effect type is used. This is
Temporarily creates sprites from the bottom row of the enemy frontpic, so that the player backpic can be moved around without corrupting the enemy frontpic. Temporarily creates sprites from the bottom row of the enemy frontpic, so that the player backpic can be moved around without corrupting the enemy frontpic.
## `$DA`: `anim_playerheadobj` ## `$DA`: `anim_playerheadobj`
Temporarily creates sprites from the top row of the player backpic, so that the enemy frontpic can be moved around without corrupting the player backpic. Temporarily creates sprites from the top row of the player backpic, so that the enemy frontpic can be moved around without corrupting the player backpic.
@ -86,8 +93,10 @@ Sets `BattleAnimVar` to the result of [GetPokeBallWobble](/engine/battle_anims/g
## `$DC`: `anim_transform` ## `$DC`: `anim_transform`
## `$DD`: `anim_raisesub` ## `$DD`: `anim_raisesub`
## `$DE`: `anim_dropsub` ## `$DE`: `anim_dropsub`
@ -96,11 +105,12 @@ Sets `BattleAnimVar` to the result of [GetPokeBallWobble](/engine/battle_anims/g
Resets rOBP0 to the default (`q0123` or `%00011011`). Resets rOBP0 to the default (`q0123` or `%00011011`).
## `$E0`: `anim_sound` *duration*, *tracks*, *sound_id* ## `$E0`: <code>anim_sound <i>duration</i>, <i>tracks</i>, <i>sound_id</i></code>
Plays a sound. Plays a sound.
## `$E1`: `anim_cry` *pitch*
## `$E1`: <code>anim_cry <i>pitch</i></code>
Plays the user's cry. Plays the user's cry.
@ -110,6 +120,7 @@ Plays the user's cry.
## `$E3`: `anim_oamon` ## `$E3`: `anim_oamon`
## `$E4`: `anim_oamoff` ## `$E4`: `anim_oamoff`
@ -128,6 +139,7 @@ Does nothing. Unused.
## `$E8`: `anim_updateactorpic` ## `$E8`: `anim_updateactorpic`
## `$E9`: `anim_minimize` ## `$E9`: `anim_minimize`
@ -135,40 +147,46 @@ Does nothing. Unused.
Does nothing. Unused. Does nothing. Unused.
## `$EB`: `anim_0xeb` ## `$EB`: `anim_0xeb`
Does nothing. Unused. Does nothing. Unused.
## `$EC`: `anim_0xec` ## `$EC`: `anim_0xec`
Does nothing. Unused. Does nothing. Unused.
## `$ED`: `anim_0xed` ## `$ED`: `anim_0xed`
Does nothing. Unused. Does nothing. Unused.
## `$EE`: `anim_if_param_and` *value*, *address* ## `$EE`: <code>anim_if_param_and <i>value</i>, <i>address</i></code>
## `$EF`: `anim_jumpuntil` *address*
## `$EF`: <code>anim_jumpuntil <i>address</i></code>
Jumps to another script and decrements `param` until it reaches 0. Similar to `anim_loop`. Jumps to another script and decrements `param` until it reaches 0. Similar to `anim_loop`.
## `$F0`: `anim_bgeffect` *bg_effect*, *unknown1*, *unknown2*, *unknown3* ## `$F0`: <code>anim_bgeffect <i>bg_effect</i>, <i>unknown1</i>, <i>unknown2</i>, <i>unknown3</i></code>
- *bg_effect*: `ANIM_BG` constants (see [constants/battle_anim_constants.asm](/constants/battle_anim_constants.asm)) - *bg_effect*: `ANIM_BG` constants (see [constants/battle_anim_constants.asm](/constants/battle_anim_constants.asm))
## `$F1`: `anim_bgp` *colors* ## `$F1`: <code>anim_bgp <i>colors</i></code>
Sets `rBGP` to *colors*. Sets `rBGP` to *colors*.
## `$F2`: `anim_obp0` *colors*
## `$F2`: <code>anim_obp0 <i>colors</i></code>
Sets `rOBP0` to *colors*. Sets `rOBP0` to *colors*.
## `$F3`: `anim_obp1` *colors*
## `$F3`: <code>anim_obp1 <i>colors</i></code>
Sets `rOBP1` to *colors*. Sets `rOBP1` to *colors*.
@ -180,45 +198,54 @@ Sets `rOBP1` to *colors*.
Does nothing. Unused. Does nothing. Unused.
## `$F6`: `anim_0xf6` ## `$F6`: `anim_0xf6`
Does nothing. Unused. Does nothing. Unused.
## `$F7`: `anim_0xf7` ## `$F7`: `anim_0xf7`
Does nothing. Unused. Does nothing. Unused.
## `$F8`: `anim_if_param_equal` *value*, *address* ## `$F8`: <code>anim_if_param_equal <i>value</i>, <i>address</i></code>
Jumps to another script if `wBattleAnimParam` (aka `wKickCounter` or `wPresentPower`) is equal to *value*. Jumps to another script if `wBattleAnimParam` (aka `wKickCounter` or `wPresentPower`) is equal to *value*.
## `$F9`: `anim_setvar` *value*
## `$F9`: <code>anim_setvar <i>value</i></code>
Sets `BattleAnimVar` to *value*. Sets `BattleAnimVar` to *value*.
## `$FA`: `anim_incvar` ## `$FA`: `anim_incvar`
Increments `BattleAnimVar` by 1. Increments `BattleAnimVar` by 1.
## `$FB`: `anim_if_var_equal` *value*, *address*
## `$FB`: <code>anim_if_var_equal <i>value</i>, <i>address</i></code>
Jumps to another script if `BattleAnimVar` is equal to *value*. Jumps to another script if `BattleAnimVar` is equal to *value*.
## `$FC`: `anim_jump` *address*
## `$FC`: <code>anim_jump <i>address</i></code>
Jumps to another script. Jumps to another script.
## `$FD`: `anim_loop` *count*, *address*
## `$FD`: <code>anim_loop <i>count</i>, <i>address</i></code>
Jumps to another script up to *count* times. Then does nothing, allowing execution to continue. Jumps to another script up to *count* times. Then does nothing, allowing execution to continue.
## `$FE`: `anim_call` *address*
## `$FE`: <code>anim_call <i>address</i></code>
Calls a script. Calls a script.
There is no call stack. The return address is overwritten, so the maximum call depth is 1. There is no call stack. The return address is overwritten, so the maximum call depth is 1.
## `$FF`: `anim_ret` ## `$FF`: `anim_ret`
Ends the script and returns to where it was called from. If there was no caller, the animation ends. Ends the script and returns to where it was called from. If there was no caller, the animation ends.

View File

@ -3,147 +3,147 @@
Defined in [macros/scripts/events.asm](/macros/scripts/events.asm) and [engine/scripting.asm:ScriptCommandTable](/engine/scripting.asm). Defined in [macros/scripts/events.asm](/macros/scripts/events.asm) and [engine/scripting.asm:ScriptCommandTable](/engine/scripting.asm).
## `$00`: `scall` *script* ## `$00`: <code>scall <i>script</i></code>
## `$01`: `farscall` *script* ## `$01`: <code>farscall <i>script</i></code>
## `$02`: `ptcall` *script* ## `$02`: <code>ptcall <i>script</i></code>
## `$03`: `jump` *script* ## `$03`: <code>jump <i>script</i></code>
## `$04`: `farjump` *script* ## `$04`: <code>farjump <i>script</i></code>
## `$05`: `ptjump` *script* ## `$05`: <code>ptjump <i>script</i></code>
## `$06`: `if_equal` *byte*, *script* ## `$06`: <code>if_equal <i>byte</i>, <i>script</i></code>
## `$07`: `if_not_equal` *byte*, *script* ## `$07`: <code>if_not_equal <i>byte</i>, <i>script</i></code>
## `$08`: `iffalse` *script* ## `$08`: <code>iffalse <i>script</i></code>
## `$09`: `iftrue` *script* ## `$09`: <code>iftrue <i>script</i></code>
## `$0A`: `if_greater_than` *byte*, *script* ## `$0A`: <code>if_greater_than <i>byte</i>, <i>script</i></code>
## `$0B`: `if_less_than` *byte*, *script* ## `$0B`: <code>if_less_than <i>byte</i>, <i>script</i></code>
## `$0C`: `jumpstd` *std_script* ## `$0C`: <code>jumpstd <i>std_script</i></code>
## `$0D`: `callstd` *std_script* ## `$0D`: <code>callstd <i>std_script</i></code>
## `$0E`: `callasm` *asm* ## `$0E`: <code>callasm <i>asm</i></code>
## `$0F`: `special` *special_pointer* ## `$0F`: <code>special <i>special_pointer</i></code>
## `$10`: `ptcallasm` *asm* ## `$10`: <code>ptcallasm <i>asm</i></code>
## `$11`: `checkmapscene` *map* ## `$11`: <code>checkmapscene <i>map</i></code>
## `$12`: `setmapscene` *map*, *scene_id* ## `$12`: <code>setmapscene <i>map</i>, <i>scene_id</i></code>
## `$13`: `checkscene` ## `$13`: `checkscene`
## `$14`: `setscene` *scene_id* ## `$14`: <code>setscene <i>scene_id</i></code>
## `$15`: `writebyte` *value* ## `$15`: <code>writebyte <i>value</i></code>
## `$16`: `addvar` *value* ## `$16`: <code>addvar <i>value</i></code>
## `$17`: `random` *value* ## `$17`: <code>random <i>value</i></code>
## `$18`: `checkver` ## `$18`: `checkver`
## `$19`: `copybytetovar` *address* ## `$19`: <code>copybytetovar <i>address</i></code>
## `$1A`: `copyvartobyte` *address* ## `$1A`: <code>copyvartobyte <i>address</i></code>
## `$1B`: `loadvar` *address*, *value* ## `$1B`: <code>loadvar <i>address</i>, <i>value</i></code>
## `$1C`: `checkcode` *variable* ## `$1C`: <code>checkcode <i>variable</i></code>
## `$1D`: `writevarcode` *variable* ## `$1D`: <code>writevarcode <i>variable</i></code>
## `$1E`: `writecode` *variable*, *value* ## `$1E`: <code>writecode <i>variable</i>, <i>value</i></code>
## `$1F`: `giveitem` *item_id*[, *quantity*=1] ## `$1F`: <code>giveitem <i>item_id</i>[, <i>quantity</i>=1]</code>
## `$20`: `takeitem` *item_id*[, *quantity*=1] ## `$20`: <code>takeitem <i>item_id</i>[, <i>quantity</i>=1]</code>
## `$21`: `checkitem` *item_id* ## `$21`: <code>checkitem <i>item_id</i></code>
## `$22`: `givemoney` *account*, *value* ## `$22`: <code>givemoney <i>account</i>, <i>value</i></code>
## `$23`: `takemoney` *account*, *value* ## `$23`: <code>takemoney <i>account</i>, <i>value</i></code>
## `$24`: `checkmoney` *account*, *value* ## `$24`: <code>checkmoney <i>account</i>, <i>value</i></code>
## `$25`: `givecoins` *value* ## `$25`: <code>givecoins <i>value</i></code>
## `$26`: `takecoins` *value* ## `$26`: <code>takecoins <i>value</i></code>
## `$27`: `checkcoins` *value* ## `$27`: <code>checkcoins <i>value</i></code>
## `$28`: `addcellnum` *contact_id* ## `$28`: <code>addcellnum <i>contact_id</i></code>
## `$29`: `delcellnum` *contact_id* ## `$29`: <code>delcellnum <i>contact_id</i></code>
## `$2A`: `checkcellnum` *contact_id* ## `$2A`: <code>checkcellnum <i>contact_id</i></code>
## `$2B`: `checktime` *time* ## `$2B`: <code>checktime <i>time</i></code>
- **`checkmorn`:** `checktime MORN` - **`checkmorn`:** `checktime MORN`
- **`checkday`:** `checktime DAY` - **`checkday`:** `checktime DAY`
- **`checknite`:** `checktime NITE` - **`checknite`:** `checktime NITE`
## `$2C`: `checkpoke` *mon_id* ## `$2C`: <code>checkpoke <i>mon_id</i></code>
## `$2D`: `givepoke` *mon_id*, *level*[, *item*=0[, *trainer*=0, *ot_name*, *nickname*]] ## `$2D`: <code>givepoke <i>mon_id</i>, <i>level</i>[, <i>item</i>=0[, <i>trainer</i>=0, <i>ot_name</i>, <i>nickname</i>]]</code>
## `$2E`: `giveegg` *mon_id*, *level* ## `$2E`: <code>giveegg <i>mon_id</i>, <i>level</i></code>
## `$2F`: `givepokeitem` *pointer* ## `$2F`: <code>givepokeitem <i>pointer</i></code>
## `$30`: `checkpokeitem` *pointer* ## `$30`: <code>checkpokeitem <i>pointer</i></code>
## `$31`: `checkevent` *event_flag* ## `$31`: <code>checkevent <i>event_flag</i></code>
## `$32`: `clearevent` *event_flag* ## `$32`: <code>clearevent <i>event_flag</i></code>
## `$33`: `setevent` *event_flag* ## `$33`: <code>setevent <i>event_flag</i></code>
## `$34`: `checkflag` *engine_flag* ## `$34`: <code>checkflag <i>engine_flag</i></code>
## `$35`: `clearflag` *engine_flag* ## `$35`: <code>clearflag <i>engine_flag</i></code>
## `$36`: `setflag` *engine_flag* ## `$36`: <code>setflag <i>engine_flag</i></code>
## `$37`: `wildon` ## `$37`: `wildon`
## `$38`: `wildoff` ## `$38`: `wildoff`
## `$39`: `xycompare` *pointer* ## `$39`: <code>xycompare <i>pointer</i></code>
## `$3A`: `warpmod` *warp_id*, *map* ## `$3A`: <code>warpmod <i>warp_id</i>, <i>map</i></code>
## `$3B`: `blackoutmod` *map* ## `$3B`: <code>blackoutmod <i>map</i></code>
## `$3C`: `warp` *map*, *x*, *y* ## `$3C`: <code>warp <i>map</i>, <i>x</i>, <i>y</i></code>
## `$3D`: `readmoney` *account*, *memory* ## `$3D`: <code>readmoney <i>account</i>, <i>memory</i></code>
## `$3E`: `readcoins` *memory* ## `$3E`: <code>readcoins <i>memory</i></code>
## `$3F`: `vartomem` *memory* ## `$3F`: <code>vartomem <i>memory</i></code>
## `$40`: `pokenamemem` *mon_id*, *memory* ## `$40`: <code>pokenamemem <i>mon_id</i>, <i>memory</i></code>
## `$41`: `itemtotext` *item_id*, *memory* ## `$41`: <code>itemtotext <i>item_id</i>, <i>memory</i></code>
## `$42`: `mapnametotext` *memory* ## `$42`: <code>mapnametotext <i>memory</i></code>
## `$43`: `trainertotext` *trainer_id*, *trainer_group*, *memory* ## `$43`: <code>trainertotext <i>trainer_id</i>, <i>trainer_group</i>, <i>memory</i></code>
## `$44`: `stringtotext` *text_pointer*, *memory* ## `$44`: <code>stringtotext <i>text_pointer</i>, <i>memory</i></code>
## `$45`: `itemnotify` ## `$45`: `itemnotify`
@ -151,35 +151,35 @@ Defined in [macros/scripts/events.asm](/macros/scripts/events.asm) and [engine/s
## `$47`: `opentext` ## `$47`: `opentext`
## `$48`: `refreshscreen` [*dummy*=0] ## `$48`: <code>refreshscreen [<i>dummy</i>=0]</code>
## `$49`: `closetext` ## `$49`: `closetext`
## `$4A`: `loadbytec2cf` *byte* ## `$4A`: <code>loadbytec2cf <i>byte</i></code>
## `$4B`: `farwritetext` *text_pointer* ## `$4B`: <code>farwritetext <i>text_pointer</i></code>
## `$4C`: `writetext` *text_pointer* ## `$4C`: <code>writetext <i>text_pointer</i></code>
## `$4D`: `repeattext` *byte1*, *byte2* ## `$4D`: <code>repeattext <i>byte1</i>, <i>byte2</i></code>
## `$4E`: `yesorno` ## `$4E`: `yesorno`
## `$4F`: `loadmenudata` *data_pointer* ## `$4F`: <code>loadmenudata <i>data_pointer</i></code>
## `$50`: `closewindow` ## `$50`: `closewindow`
## `$51`: `jumptextfaceplayer` *text_pointer* ## `$51`: <code>jumptextfaceplayer <i>text_pointer</i></code>
## `$52`: `farjumptext` *text_pointer* ## `$52`: <code>farjumptext <i>text_pointer</i></code>
## `$53`: `jumptext` *text_pointer* ## `$53`: <code>jumptext <i>text_pointer</i></code>
## `$54`: `waitbutton` ## `$54`: `waitbutton`
## `$55`: `buttonsound` ## `$55`: `buttonsound`
## `$56`: `pokepic` *mon_id* ## `$56`: <code>pokepic <i>mon_id</i></code>
## `$57`: `closepokepic` ## `$57`: `closepokepic`
@ -193,21 +193,21 @@ Defined in [macros/scripts/events.asm](/macros/scripts/events.asm) and [engine/s
## `$5C`: `loadmemtrainer` ## `$5C`: `loadmemtrainer`
## `$5D`: `loadwildmon` *mon_id*, *level* ## `$5D`: <code>loadwildmon <i>mon_id</i>, <i>level</i></code>
## `$5E`: `loadtrainer` *trainer_group*, *trainer_id* ## `$5E`: <code>loadtrainer <i>trainer_group</i>, <i>trainer_id</i></code>
## `$5F`: `startbattle` ## `$5F`: `startbattle`
## `$60`: `reloadmapafterbattle` ## `$60`: `reloadmapafterbattle`
## `$61`: `catchtutorial` *byte* ## `$61`: <code>catchtutorial <i>byte</i></code>
## `$62`: `trainertext` *which_text* ## `$62`: <code>trainertext <i>which_text</i></code>
## `$63`: `trainerflagaction` *action* ## `$63`: <code>trainerflagaction <i>action</i></code>
## `$64`: `winlosstext` *win_text_pointer*, *loss_text_pointer* ## `$64`: <code>winlosstext <i>win_text_pointer</i>, <i>loss_text_pointer</i></code>
## `$65`: `scripttalkafter` ## `$65`: `scripttalkafter`
@ -215,65 +215,65 @@ Defined in [macros/scripts/events.asm](/macros/scripts/events.asm) and [engine/s
## `$67`: `check_just_battled` ## `$67`: `check_just_battled`
## `$68`: `setlasttalked` *object_id* ## `$68`: <code>setlasttalked <i>object_id</i></code>
## `$69`: `applymovement` *object_id*, *data_pointer* ## `$69`: <code>applymovement <i>object_id</i>, <i>data_pointer</i></code>
## `$6A`: `applymovement2` *data_pointer* ## `$6A`: <code>applymovement2 <i>data_pointer</i></code>
## `$6B`: `faceplayer` ## `$6B`: `faceplayer`
## `$6C`: `faceobject` *object1*, *object2* ## `$6C`: <code>faceobject <i>object1</i>, <i>object2</i></code>
## `$6D`: `variablesprite` *variable_sprite_id*, *sprite_id* ## `$6D`: <code>variablesprite <i>variable_sprite_id</i>, <i>sprite_id</i></code>
## `$6E`: `disappear` *object_id* ## `$6E`: <code>disappear <i>object_id</i></code>
## `$6F`: `appear` *object_id* ## `$6F`: <code>appear <i>object_id</i></code>
## `$70`: `follow` *object2*, *object1* ## `$70`: <code>follow <i>object2</i>, <i>object1</i></code>
## `$71`: `stopfollow` ## `$71`: `stopfollow`
## `$72`: `moveobject` *object_id*, *x*, *y* ## `$72`: <code>moveobject <i>object_id</i>, <i>x</i>, <i>y</i></code>
## `$73`: `writeobjectxy` *object_id* ## `$73`: <code>writeobjectxy <i>object_id</i></code>
## `$74`: `loademote` *emote_id* ## `$74`: <code>loademote <i>emote_id</i></code>
## `$75`: `showemote` *emote_id*, *object_id*, *length* ## `$75`: <code>showemote <i>emote_id</i>, <i>object_id</i>, <i>length</i></code>
## `$76`: `spriteface` *object_id*, *facing* ## `$76`: <code>spriteface <i>object_id</i>, <i>facing</i></code>
## `$77`: `follownotexact` *object2*, *object1* ## `$77`: <code>follownotexact <i>object2</i>, <i>object1</i></code>
## `$78`: `earthquake` *param* ## `$78`: <code>earthquake <i>param</i></code>
## `$79`: `changemap` *bank*, *blockdata_pointer* ## `$79`: <code>changemap <i>bank</i>, <i>blockdata_pointer</i></code>
## `$7A`: `changeblock` *x*, *y*, *block* ## `$7A`: <code>changeblock <i>x</i>, <i>y</i>, <i>block</i></code>
## `$7B`: `reloadmap` ## `$7B`: `reloadmap`
## `$7C`: `reloadmappart` ## `$7C`: `reloadmappart`
## `$7D`: `writecmdqueue` *queue_pointer* ## `$7D`: <code>writecmdqueue <i>queue_pointer</i></code>
## `$7E`: `delcmdqueue` *byte* ## `$7E`: <code>delcmdqueue <i>byte</i></code>
## `$7F`: `playmusic` *music_id* ## `$7F`: <code>playmusic <i>music_id</i></code>
## `$80`: `encountermusic` ## `$80`: `encountermusic`
## `$81`: `musicfadeout` *music_id*, *length* ## `$81`: <code>musicfadeout <i>music_id</i>, <i>length</i></code>
## `$82`: `playmapmusic` ## `$82`: `playmapmusic`
## `$83`: `dontrestartmapmusic` ## `$83`: `dontrestartmapmusic`
## `$84`: `cry` *mon_id* ## `$84`: <code>cry <i>mon_id</i></code>
## `$85`: `playsound` *sfx_id* ## `$85`: <code>playsound <i>sfx_id</i></code>
## `$86`: `waitsfx` ## `$86`: `waitsfx`
@ -281,68 +281,68 @@ Defined in [macros/scripts/events.asm](/macros/scripts/events.asm) and [engine/s
## `$88`: `specialsound` ## `$88`: `specialsound`
## `$89`: `passtoengine` *data_pointer* ## `$89`: <code>passtoengine <i>data_pointer</i></code>
## `$8A`: `newloadmap` *which_method* ## `$8A`: <code>newloadmap <i>which_method</i></code>
## `$8B`: `pause` *length* ## `$8B`: <code>pause <i>length</i></code>
## `$8C`: `deactivatefacing` *length* ## `$8C`: <code>deactivatefacing <i>length</i></code>
## `$8D`: `priorityjump` *script* ## `$8D`: <code>priorityjump <i>script</i></code>
## `$8E`: `warpcheck` ## `$8E`: `warpcheck`
## `$8F`: `ptpriorityjump` *script* ## `$8F`: <code>ptpriorityjump <i>script</i></code>
## `$90`: `return` ## `$90`: `return`
## `$91`: `end` ## `$91`: `end`
## `$92`: `reloadandreturn` *which_method* ## `$92`: <code>reloadandreturn <i>which_method</i></code>
## `$93`: `end_all` ## `$93`: `end_all`
## `$94`: `pokemart` *dialog_id*, *mart_id* ## `$94`: <code>pokemart <i>dialog_id</i>, <i>mart_id</i></code>
## `$95`: `elevator` *floor_list* ## `$95`: <code>elevator <i>floor_list</i></code>
## `$96`: `trade` *trade_id* ## `$96`: <code>trade <i>trade_id</i></code>
## `$97`: `askforphonenumber` *contact_id* ## `$97`: <code>askforphonenumber <i>contact_id</i></code>
## `$98`: `phonecall` *call_id* ## `$98`: <code>phonecall <i>call_id</i></code>
## `$99`: `hangup` ## `$99`: `hangup`
## `$9A`: `describedecoration` *byte* ## `$9A`: <code>describedecoration <i>byte</i></code>
## `$9B`: `fruittree` *tree_id* ## `$9B`: <code>fruittree <i>tree_id</i></code>
## `$9C`: `specialphonecall` *call_id* ## `$9C`: <code>specialphonecall <i>call_id</i></code>
## `$9D`: `checkphonecall` ## `$9D`: `checkphonecall`
## `$9E`: `verbosegiveitem` *item_id*[, *quantity*=1] ## `$9E`: <code>verbosegiveitem <i>item_id</i>[, <i>quantity</i>=1]</code>
## `$9F`: `verbosegiveitem2` *item_id*, *variable* ## `$9F`: <code>verbosegiveitem2 <i>item_id</i>, <i>variable</i></code>
## `$A0`: `swarm` *swarm_id*, *map* ## `$A0`: <code>swarm <i>swarm_id</i>, <i>map</i></code>
## `$A1`: `halloffame` ## `$A1`: `halloffame`
## `$A2`: `credits` ## `$A2`: `credits`
## `$A3`: `warpfacing` *facing*, *map*, *x*, *y* ## `$A3`: <code>warpfacing <i>facing</i>, <i>map</i>, <i>x</i>, <i>y</i></code>
## `$A4`: `battletowertext` *memory* ## `$A4`: <code>battletowertext <i>memory</i></code>
## `$A5`: `landmarktotext` *landmark_id*, *memory* ## `$A5`: <code>landmarktotext <i>landmark_id</i>, <i>memory</i></code>
## `$A6`: `trainerclassname` *trainer_group*, *memory* ## `$A6`: <code>trainerclassname <i>trainer_group</i>, <i>memory</i></code>
## `$A7`: `name` *type*, *id*, *memory* ## `$A7`: <code>name <i>type</i>, <i>id</i>, <i>memory</i></code>
## `$A8`: `wait` *duration* ## `$A8`: <code>wait <i>duration</i></code>
## `$A9`: `check_save` ## `$A9`: `check_save`

View File

@ -1,24 +1,24 @@
# Map Scripts # Map Scripts
## `const_value set 2` ## <code>const_value set 2</code>
<pre> <pre>
const <i>MAPNAME</i>_<i>OBJECTNAME</i> const <i>MAPNAME</i>_<i>OBJECTNAME</i>
</pre> </pre>
## `MapName_MapScripts:` ## <code>MapName_MapScripts:</code>
### `.SceneScripts: db` *N* ### <code>.SceneScripts: db <i>N</i></code>
<pre> <pre>
scene_script <i>script</i> scene_script <i>script</i>
</pre> </pre>
### `.MapCallbacks: db` *N* ### <code>.MapCallbacks: db <i>N</i></code>
<pre> <pre>
callback <i>type</i>, <i>script</i> callback <i>type</i>, <i>script</i>
@ -67,7 +67,7 @@ Callback types:
[Movement commands](movement_commands.md) [Movement commands](movement_commands.md)
## `MapName_MapEvents:` ## <code>MapName_MapEvents:</code>
```asm ```asm
; filler ; filler
@ -75,21 +75,21 @@ Callback types:
``` ```
### `.Warps: db` *N* ### <code>.Warps: db <i>N</i></code>
<pre> <pre>
warp_def <i>x</i>, <i>y</i>, <i>warp_id</i>, <i>map</i> warp_def <i>x</i>, <i>y</i>, <i>warp_id</i>, <i>map</i>
</pre> </pre>
### `.CoordEvents: db` *N* ### <code>.CoordEvents: db <i>N</i></code>
<pre> <pre>
coord_event <i>x</i>, <i>y</i>, <i>scene_id</i>, <i>script</i> coord_event <i>x</i>, <i>y</i>, <i>scene_id</i>, <i>script</i>
</pre> </pre>
### `.BGEvents: db` *N* ### <code>.BGEvents: db <i>N</i></code>
<pre> <pre>
bg_event <i>x</i>, <i>y</i>, <i>type</i>, <i>script</i> bg_event <i>x</i>, <i>y</i>, <i>type</i>, <i>script</i>
@ -115,7 +115,7 @@ BG event types:
- `BGEVENT_COPY` - `BGEVENT_COPY`
### `.ObjectEvents: db` *N* ### <code>.ObjectEvents: db <i>N</i></code>
<pre> <pre>
object_event <i>x</i>, <i>y</i>, <i>sprite</i>, <i>movement</i>, <i>rx</i>, <i>ry</i>, <i>h1</i>, <i>h2</i>, <i>palette</i>, <i>type</i>, <i>range</i>, <i>script</i>, <i>event_flag<i> object_event <i>x</i>, <i>y</i>, <i>sprite</i>, <i>movement</i>, <i>rx</i>, <i>ry</i>, <i>h1</i>, <i>h2</i>, <i>palette</i>, <i>type</i>, <i>range</i>, <i>script</i>, <i>event_flag<i>

View File

@ -3,33 +3,33 @@
Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engine/movement.asm:MovementPointers](/engine/movement.asm). Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engine/movement.asm:MovementPointers](/engine/movement.asm).
## `$00``$03`: `turn_head` *direction* ## `$00``$03`: <code>turn_head <i>direction</i></code>
## `$04``$07`: `turn_step` *direction* ## `$04``$07`: <code>turn_step <i>direction</i></code>
## `$08``$0B`: `slow_step` *direction* ## `$08``$0B`: <code>slow_step <i>direction</i></code>
## `$0C``$0F`: `step` *direction* ## `$0C``$0F`: <code>step <i>direction</i></code>
## `$10``$13`: `big_step` *direction* ## `$10``$13`: <code>big_step <i>direction</i></code>
## `$14``$17`: `slow_slide_step` *direction* ## `$14``$17`: <code>slow_slide_step <i>direction</i></code>
## `$18``$1B`: `slide_step` *direction* ## `$18``$1B`: <code>slide_step <i>direction</i></code>
## `$1C``$1F`: `fast_slide_step` *direction* ## `$1C``$1F`: <code>fast_slide_step <i>direction</i></code>
## `$20``$23`: `turn_away` *direction* ## `$20``$23`: <code>turn_away <i>direction</i></code>
## `$24``$27`: `turn_in` *direction* ## `$24``$27`: <code>turn_in <i>direction</i></code>
## `$28``$2B`: `turn_waterfall` *direction* ## `$28``$2B`: <code>turn_waterfall <i>direction</i></code>
## `$2C``$2F`: `slow_jump_step` *direction* ## `$2C``$2F`: <code>slow_jump_step <i>direction</i></code>
## `$30``$33`: `jump_step` *direction* ## `$30``$33`: <code>jump_step <i>direction</i></code>
## `$34``$37`: `fast_jump_step` *direction* ## `$34``$37`: <code>fast_jump_step <i>direction</i></code>
## `$38`: `remove_sliding` ## `$38`: `remove_sliding`
@ -43,11 +43,11 @@ Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engi
## `$3D`: `hide_object` ## `$3D`: `hide_object`
## `$3E``$46`: `step_sleep` *length* ## `$3E``$46`: <code>step_sleep <i>length</i></code>
## `$47`: `step_end` ## `$47`: `step_end`
## `$48`: `step_48` *param* ## `$48`: <code>step_48 <i>param</i></code>
## `$49`: `remove_object` ## `$49`: `remove_object`
@ -61,7 +61,7 @@ Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engi
## `$4E`: `skyfall` ## `$4E`: `skyfall`
## `$4F`: `step_dig` *length* ## `$4F`: <code>step_dig <i>length</i></code>
## `$50`: `step_bump` ## `$50`: `step_bump`
@ -73,12 +73,12 @@ Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engi
## `$54`: `show_emote` ## `$54`: `show_emote`
## `$55`: `step_shake` *displacement* ## `$55`: <code>step_shake <i>displacement</i></code>
## `$56`: `tree_shake` ## `$56`: `tree_shake`
## `$57`: `rock_smash` *length* ## `$57`: <code>rock_smash <i>length</i></code>
## `$58`: `return_dig` *length* ## `$58`: <code>return_dig <i>length</i></code>
## `$59`: `skyfall_top` ## `$59`: `skyfall_top`

View File

@ -5,27 +5,32 @@ Defined in [macros/scripts/audio.asm](/macros/scripts/audio.asm) and [audio/engi
*See also: [Sound Engine Commands](https://github.com/pret/pokecrystal/wiki/Sound-Engine-Commands)* *See also: [Sound Engine Commands](https://github.com/pret/pokecrystal/wiki/Sound-Engine-Commands)*
## `musicheader` *n*, *index*, *address* ## <code>musicheader <i>n</i>, <i>index</i>, <i>address</i></code>
## `note` *pitch*, *length*
## <code>note <i>pitch</i>, <i>length</i></code>
(Used on all channels) (Used on all channels)
The high nibble is the note to play. 0 is rest, 1 is `C_`, 2 is `C#`, etc; `$C` is `B_`. The high nibble is the note to play. 0 is rest, 1 is `C_`, 2 is `C#`, etc; `$C` is `B_`.
The low nibble is the length of the note. 1 gets added to this, so 0 still has a length. The low nibble is the length of the note. 1 gets added to this, so 0 still has a length.
## `sound` *pitch*, *octave*, *intensity*, *frequency*
## `noise` *pitch*, *duration*, *intensity*, *frequency* ## <code>sound <i>pitch</i>, <i>octave</i>, <i>intensity</i>, <i>frequency</i></code>
## `$D0``$D7`: `octave` *n*
## <code>noise <i>pitch</i>, <i>duration</i>, <i>intensity</i>, <i>frequency</i></code>
## `$D0``$D7`: <code>octave <i>n</i></code>
(Used in channels 1-3) (Used in channels 1-3)
Sets the octave for the notes played on the channel. Sets the octave for the notes played on the channel.
`$D7` is the lowest octave, whereas `$D0` is the highest. `$D7` is the lowest octave, whereas `$D0` is the highest.
## `$D8`: `notetype` *length*[, *intensity*]
## `$D8`: <code>notetype <i>length</i>[, <i>intensity</i>]</code>
(Used in channels 1-4) (When using in channel 4, the *intensity* byte is not needed) (Used in channels 1-4) (When using in channel 4, the *intensity* byte is not needed)
@ -34,7 +39,8 @@ The first byte only reads the lower 4 bits, and multiplies it by the note length
The second byte is identical to the first byte in the `intensity` command. The second byte is identical to the first byte in the `intensity` command.
## `$D9`: `pitchoffset` *octave*, *key*
## `$D9`: <code>pitchoffset <i>octave</i>, <i>key</i></code>
(Used in channels 1-3) (Used in channels 1-3)
@ -42,7 +48,8 @@ Transposes all notes played on the channel by a value.
The high nibble determins how many octaves to subtract, while the low nibble is how many note values to add. The high nibble determins how many octaves to subtract, while the low nibble is how many note values to add.
Ex: Setting a value of `$13` would make a `C_`4 play as a `D#`3. Ex: Setting a value of `$13` would make a `C_`4 play as a `D#`3.
## `$DA`: `tempo` *tempo*
## `$DA`: <code>tempo <i>tempo</i></code>
(Used in channel 1) (Used in channel 1)
@ -53,7 +60,8 @@ This formula also works backwards to convert BPM to tempo: Tempo = 19200 / BPM
Only set or change this value when all playing channels are triggering a note or rest at the same time, otherwise desyncs may happen. Only set or change this value when all playing channels are triggering a note or rest at the same time, otherwise desyncs may happen.
## `$DB`: `dutycycle` *duty_cycle*
## `$DB`: <code>dutycycle <i>duty_cycle</i></code>
(Used on channels 1&2) (Used on channels 1&2)
@ -64,7 +72,8 @@ Sets the square duty (sound) for the current channel. To change the sound for ch
- 2 = 50% waveform: `____¯¯¯¯` - 2 = 50% waveform: `____¯¯¯¯`
- 3 = 75% waveform: `__¯¯¯¯¯¯` (sounds the same as 25%) - 3 = 75% waveform: `__¯¯¯¯¯¯` (sounds the same as 25%)
## `$DC`: `intensity` *intensity*
## `$DC`: <code>intensity <i>intensity</i></code>
(Used on channels 1-3) (Used to set instrument on channel 3) (Used on channels 1-3) (Used to set instrument on channel 3)
@ -74,9 +83,11 @@ This sets the volume and fade of the notes. The high nibble is the starting volu
For channel 3: For channel 3:
The high nibble sets the volume of channel 3. Only 4 values are accepted (0=Mute, 1=100% volume, 2=50% volume, 3=25% volume). The low nibble sets the instrument/waveform for channel 3 to play. Crystal natively has 10 instruments, values 0-9. The high nibble sets the volume of channel 3. Only 4 values are accepted (0=Mute, 1=100% volume, 2=50% volume, 3=25% volume). The low nibble sets the instrument/waveform for channel 3 to play. Crystal natively has 10 instruments, values 0-9.
## `$DD`: `soundinput` *input*
## `$DE`: `sound_duty` *a*, *b*, *c*, *d* ## `$DD`: <code>soundinput <i>input</i></code>
## `$DE`: <code>sound_duty <i>a</i>, <i>b</i>, <i>c</i>, <i>d</i></code>
(Used on channels 1&2) (Used on channels 1&2)
@ -84,9 +95,11 @@ This cycles the channel through 4 duty definitions, one per frame.
Each pair of bits defines a duty, same as the `dutycycle` command. Each pair of bits defines a duty, same as the `dutycycle` command.
This is mostly only used in cries, SFX, and Jigglypuff's song in RBY. This is mostly only used in cries, SFX, and Jigglypuff's song in RBY.
## `$DF`: `togglesfx` ## `$DF`: `togglesfx`
## `$E0`: `slidepitchto` *duration*, *octave*, *pitch*
## `$E0`: <code>slidepitchto <i>duration</i>, <i>octave</i>, <i>pitch</i></code>
(Used on channel 1) (Used on channel 1)
@ -95,7 +108,8 @@ The first byte tells how many frames to play the destination note for, before th
The high nibble of the second byte is the octave of the destination note. The high nibble of the second byte is the octave of the destination note.
The low nibble of the second byte is the destination note. If rest is used as the destination note, then the whole destination pitch becomes `$0000` (the lowest pitch). The low nibble of the second byte is the destination note. If rest is used as the destination note, then the whole destination pitch becomes `$0000` (the lowest pitch).
## `$E1`: `vibrato` *delay*, *extent*
## `$E1`: <code>vibrato <i>delay</i>, <i>extent</i></code>
(Used on channels 1-3) (Used on channels 1-3)
@ -105,20 +119,23 @@ Second byte, high nibble is the speed timer. It will decrement by one each frame
Second byte, low nibble is the pitch depth. Half of this value will alternate between adding to the pitch, and subtracting from the pitch each time speed timer resets. When this is an odd number, the value added to the pitch will be greater than the value subtracted from the pitch. Second byte, low nibble is the pitch depth. Half of this value will alternate between adding to the pitch, and subtracting from the pitch each time speed timer resets. When this is an odd number, the value added to the pitch will be greater than the value subtracted from the pitch.
Ex: normal pitch of 405, if pitch depth = 3, it will alternate between 407 and 404. Speed timer does NOT reset when a new note is played. only when the song stops or changes. (Also, because a timer counts 0, a timer of 5 will take 6 frames to change.) Ex: normal pitch of 405, if pitch depth = 3, it will alternate between 407 and 404. Speed timer does NOT reset when a new note is played. only when the song stops or changes. (Also, because a timer counts 0, a timer of 5 will take 6 frames to change.)
## `$E2`: `unknownmusic0xe2` *unknown*
## `$E3`: `togglenoise` *id* ## `$E2`: <code>unknownmusic0xe2 <i>unknown</i></code>
## `$E3`: <code>togglenoise <i>id</i></code>
(Used on channel 4) (Used on channel 4)
Sets the "drum kit" to be used. This needs to be called before channel 4 can make any noise. Sets the "drum kit" to be used. This needs to be called before channel 4 can make any noise.
Calling it more than once in a song will mute the channel. (Keep it out of loops!) Calling it more than once in a song will mute the channel. (Keep it out of loops!)
## `$E4`: `panning` *tracks*
## `$E5`: `volume` *volume* ## `$E4`: <code>panning <i>tracks</i></code>
## `$E6`: `tone` *tone* ## `$E5`: <code>volume <i>volume</i></code>
## `$E6`: <code>tone <i>tone</i></code>
(Used on channel 1-3) (Used on channel 1-3)
@ -126,52 +143,77 @@ This modifies the pitch of the notes (fine tuning).
It makes notes sound better if multiple channels play the same note simultaneously. It makes notes sound better if multiple channels play the same note simultaneously.
A lot of GSC songs set the main melody channel with a value of 1, and the secondary channel (not bass) as 2. A lot of GSC songs set the main melody channel with a value of 1, and the secondary channel (not bass) as 2.
## `$E7`: `unknownmusic0xe7` *unknown*
## `$E8`: `unknownmusic0xe8` *unknown* ## `$E7`: <code>unknownmusic0xe7 <i>unknown</i></code>
## `$E9`: `tempo_relative` *value*
## `$EA`: `restartchannel` *address* ## `$E8`: <code>unknownmusic0xe8 <i>unknown</i></code>
## `$EB`: `newsong` *id*
## `$EC`: `sfxpriorityon` ## `$E9`: <code>tempo_relative <i>value</i></code>
## `$ED`: `sfxpriorityoff`
## `$EE`: `unknownmusic0xee` *address* ## `$EA`: <code>restartchannel <i>address</i></code>
## `$EF`: `stereopanning` *tracks*
## `$F0`: `sfxtogglenoise` *id* ## `$EB`: <code>newsong <i>id</i></code>
## `$EC`: <code>sfxpriorityon</i></code>
## `$ED`: <code>sfxpriorityoff</i></code>
## `$EE`: <code>unknownmusic0xee <i>address</i></code>
## `$EF`: <code>stereopanning <i>tracks</i></code>
## `$F0`: <code>sfxtogglenoise <i>id</i></code>
## `$F1`: `music0xf1` ## `$F1`: `music0xf1`
## `$F2`: `music0xf2` ## `$F2`: `music0xf2`
## `$F3`: `music0xf3` ## `$F3`: `music0xf3`
## `$F4`: `music0xf4` ## `$F4`: `music0xf4`
## `$F5`: `music0xf5` ## `$F5`: `music0xf5`
## `$F6`: `music0xf6` ## `$F6`: `music0xf6`
## `$F7`: `music0xf7` ## `$F7`: `music0xf7`
## `$F8`: `music0xf8` ## `$F8`: `music0xf8`
## `$F9`: `unknownmusic0xf9` ## `$F9`: `unknownmusic0xf9`
## `$FA`: `setcondition` *condition*
## `$FB`: `jumpif` *condition*, *address* ## `$FA`: <code>setcondition <i>condition</i></code>
## `$FC`: `jumpchannel` *address*
## `$FD`: `loopchannel` *count*, *address* ## `$FB`: <code>jumpif <i>condition</i>, <i>address</i></code>
## `$FC`: <code>jumpchannel <i>address</i></code>
## `$FD`: <code>loopchannel <i>count</i>, <i>address</i></code>
## `$FE`: <code>callchannel <i>address</i></code>
## `$FE`: `callchannel` *address*
## `$FF`: `endchannel` ## `$FF`: `endchannel`

View File

@ -5,9 +5,9 @@ Defined in [macros/scripts/gfx_anims.asm](/macros/scripts/gfx_anims.asm).
Pic animations are assembled in 3 parts: Pic animations are assembled in 3 parts:
- Top-level animations: - Top-level animations:
- `frame` *#*, *duration*: Frame 0 is the original pic (no change) - <code>frame <i>N</i>, <i>duration</i></code>: Frame #0 is the original pic (no change)
- `setrepeat` *#*: Sets the number of times to repeat - <code>setrepeat <i>N</i></code>: Sets the number of times to repeat
- `dorepeat` *#*: Repeats from command *#* (starting from 0) - <code>dorepeat <i>I</i></code>: Repeats from command #<i>I</i> (starting from 0)
- `end` - `end`
- Bitmasks: - Bitmasks:

View File

@ -3,32 +3,32 @@
Defined in [macros/scripts/text.asm](/macros/scripts/text.asm) and [home/text.asm:TextCommands](/home/text.asm). Defined in [macros/scripts/text.asm](/macros/scripts/text.asm) and [home/text.asm:TextCommands](/home/text.asm).
## `$00`: `text` *text* ## `$00`: <code>text <i>text</i></code>
Start writing text until `"@"`. Start writing text until `"@"`.
## `$4E`: `next` *text* ## `$4E`: <code>next <i>text</i></code>
Move a line down. Move a line down.
## `$4F`: `line` *text* ## `$4F`: <code>line <i>text</i></code>
Start writing at the bottom line. Start writing at the bottom line.
## `$50`: `page` *text* ## `$50`: <code>page <i>text</i></code>
Start a new Pokédex page. Start a new Pokédex page.
## `$51`: `para` *text* ## `$51`: <code>para <i>text</i></code>
Start a new paragraph. Start a new paragraph.
## `$55`: `cont` *text* ## `$55`: <code>cont <i>text</i></code>
Scroll to the next line. Scroll to the next line.
@ -43,24 +43,24 @@ End a text box.
Prompt the player to end a text box (initiating some other event). Prompt the player to end a text box (initiating some other event).
## `$01`: `text_from_ram` *address* ## `$01`: <code>text_from_ram <i>address</i></code>
Write text from a RAM address. Write text from a RAM address.
## `$02`: `text_bcd` *address*, *flags* ## `$02`: <code>text_bcd <i>address</i>, <i>flags</i></code>
Write [BCD][bcd] from an address, typically RAM. Write [BCD][bcd] from an address, typically RAM.
[bcd]: https://en.wikipedia.org/wiki/Binary-coded_decimal [bcd]: https://en.wikipedia.org/wiki/Binary-coded_decimal
## `$03`: `text_move` *address* ## `$03`: <code>text_move <i>address</i></code>
Move to a new tile. Move to a new tile.
## `$04`: `text_box` *address*, *height*, *width* ## `$04`: <code>text_box <i>address</i>, <i>height</i>, <i>width</i></code>
Draw a box. Draw a box.
@ -86,7 +86,7 @@ first character column of the text box.
Start interpreting assembly code. Start interpreting assembly code.
## `$09`: `deciram` *address*, *bytes*, *digits* ## `$09`: <code>deciram <i>address</i>, <i>bytes</i>, <i>digits</i></code>
Read *bytes* bytes from *address* and print them as a *digits*-digit number. Read *bytes* bytes from *address* and print them as a *digits*-digit number.
@ -101,7 +101,7 @@ Exit.
Play `SFX_DEX_FANFARE_50_79`. Play `SFX_DEX_FANFARE_50_79`.
## `$0C`: `limited_interpret_data` *number* ## `$0C`: <code>limited_interpret_data <i>number</i></code>
Print *number* `"…"`s. Print *number* `"…"`s.
@ -141,7 +141,7 @@ Play `SFX_FANFARE`.
Play `SFX_SLOT_MACHINE_START`. Play `SFX_SLOT_MACHINE_START`.
## `$14`: `text_buffer` *id* ## `$14`: <code>text_buffer <i>id</i></code>
Write text from one of the following addresses (listed in `StringBufferPointers`): Write text from one of the following addresses (listed in `StringBufferPointers`):
@ -159,6 +159,6 @@ Write text from one of the following addresses (listed in `StringBufferPointers`
Print the weekday. Print the weekday.
## `$16`: `text_jump` *address* ## `$16`: <code>text_jump <i>address</i></code>
Write text from a different bank. Write text from a different bank.