summaryrefslogtreecommitdiff
path: root/macros/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'macros/scripts')
-rw-r--r--macros/scripts/audio.asm265
-rw-r--r--macros/scripts/event.asm1069
-rw-r--r--macros/scripts/gfx_anim.asm46
-rw-r--r--macros/scripts/maps.asm104
-rw-r--r--macros/scripts/move_anim.asm294
-rw-r--r--macros/scripts/movement.asm247
-rw-r--r--macros/scripts/text.asm133
-rw-r--r--macros/scripts/trade_anim.asm255
8 files changed, 2413 insertions, 0 deletions
diff --git a/macros/scripts/audio.asm b/macros/scripts/audio.asm
new file mode 100644
index 000000000..bac979a5f
--- /dev/null
+++ b/macros/scripts/audio.asm
@@ -0,0 +1,265 @@
+note: MACRO
+ dn (\1), (\2) - 1
+ ENDM
+
+sound: macro
+ note \1, \2
+ db \3 ; intensity
+ dw \4 ; frequency
+ endm
+
+noise: macro
+ note \1, \2 ; duration
+ db \3 ; intensity
+ db \4 ; frequency
+ endm
+
+musicheader: macro
+ ; number of tracks, track idx, address
+ dbw ((\1 - 1) << 6) + (\2 - 1), \3
+ endm
+
+cry_header: macro
+ dw \1, \2, \3
+ endm
+
+; MusicCommands indexes (see audio/engine.asm)
+ enum_start $d8
+
+ enum notetype_cmd
+octave: macro
+ db notetype_cmd - (\1)
+ endm
+
+notetype: macro
+ db notetype_cmd
+ db \1 ; note_length
+ if _NARG >= 2
+ db \2 ; intensity
+ endc
+ endm
+
+ enum pitchoffset_cmd
+pitchoffset: macro
+ db pitchoffset_cmd
+ dn \1, \2 - 1 ; octave, key
+ endm
+
+ enum tempo_cmd
+tempo: macro
+ db tempo_cmd
+ bigdw \1 ; tempo
+ endm
+
+ enum dutycycle_cmd
+dutycycle: macro
+ db dutycycle_cmd
+ db \1 ; duty_cycle
+ endm
+
+ enum intensity_cmd
+intensity: macro
+ db intensity_cmd
+ db \1 ; intensity
+ endm
+
+ enum soundinput_cmd
+soundinput: macro
+ db soundinput_cmd
+ db \1 ; input
+ endm
+
+ enum sound_duty_cmd
+sound_duty: macro
+ db sound_duty_cmd
+ db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence
+ endm
+
+ enum togglesfx_cmd
+togglesfx: macro
+ db togglesfx_cmd
+ endm
+
+ enum slidepitchto_cmd
+slidepitchto: macro
+ db slidepitchto_cmd
+ db \1 - 1 ; duration
+ dn \2, \3 ; octave, pitch
+ endm
+
+ enum vibrato_cmd
+vibrato: macro
+ db vibrato_cmd
+ db \1 ; delay
+ db \2 ; extent
+ endm
+
+ enum unknownmusic0xe2_cmd
+unknownmusic0xe2: macro
+ db unknownmusic0xe2_cmd
+ db \1 ; unknown
+ endm
+
+ enum togglenoise_cmd
+togglenoise: macro
+ db togglenoise_cmd
+ db \1 ; id
+ endm
+
+ enum panning_cmd
+panning: macro
+ db panning_cmd
+ db \1 ; tracks
+ endm
+
+ enum volume_cmd
+volume: macro
+ db volume_cmd
+ db \1 ; volume
+ endm
+
+ enum tone_cmd
+tone: macro
+ db tone_cmd
+ bigdw \1 ; tone
+ endm
+
+ enum unknownmusic0xe7_cmd
+unknownmusic0xe7: macro
+ db unknownmusic0xe7_cmd
+ db \1 ; unknown
+ endm
+
+ enum unknownmusic0xe8_cmd
+unknownmusic0xe8: macro
+ db unknownmusic0xe8_cmd
+ db \1 ; unknown
+ endm
+
+ enum tempo_relative_cmd
+tempo_relative: macro
+ db tempo_relative_cmd
+ bigdw \1 ; value
+ endm
+
+ enum restartchannel_cmd
+restartchannel: macro
+ db restartchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum newsong_cmd
+newsong: macro
+ db newsong_cmd
+ bigdw \1 ; id
+ endm
+
+ enum sfxpriorityon_cmd
+sfxpriorityon: macro
+ db sfxpriorityon_cmd
+ endm
+
+ enum sfxpriorityoff_cmd
+sfxpriorityoff: macro
+ db sfxpriorityoff_cmd
+ endm
+
+ enum unknownmusic0xee_cmd
+unknownmusic0xee: macro
+ db unknownmusic0xee_cmd
+ dw \1 ; address
+ endm
+
+ enum stereopanning_cmd
+stereopanning: macro
+ db stereopanning_cmd
+ db \1 ; tracks
+ endm
+
+ enum sfxtogglenoise_cmd
+sfxtogglenoise: macro
+ db sfxtogglenoise_cmd
+ db \1 ; id
+ endm
+
+ enum music0xf1_cmd
+music0xf1: macro
+ db music0xf1_cmd
+ endm
+
+ enum music0xf2_cmd
+music0xf2: macro
+ db music0xf2_cmd
+ endm
+
+ enum music0xf3_cmd
+music0xf3: macro
+ db music0xf3_cmd
+ endm
+
+ enum music0xf4_cmd
+music0xf4: macro
+ db music0xf4_cmd
+ endm
+
+ enum music0xf5_cmd
+music0xf5: macro
+ db music0xf5_cmd
+ endm
+
+ enum music0xf6_cmd
+music0xf6: macro
+ db music0xf6_cmd
+ endm
+
+ enum music0xf7_cmd
+music0xf7: macro
+ db music0xf7_cmd
+ endm
+
+ enum music0xf8_cmd
+music0xf8: macro
+ db music0xf8_cmd
+ endm
+
+ enum unknownmusic0xf9_cmd
+unknownmusic0xf9: macro
+ db unknownmusic0xf9_cmd
+ endm
+
+ enum setcondition_cmd
+setcondition: macro
+ db setcondition_cmd
+ db \1 ; condition
+ endm
+
+ enum jumpif_cmd
+jumpif: macro
+ db jumpif_cmd
+ db \1 ; condition
+ dw \2 ; address
+ endm
+
+ enum jumpchannel_cmd
+jumpchannel: macro
+ db jumpchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum loopchannel_cmd
+loopchannel: macro
+ db loopchannel_cmd
+ db \1 ; count
+ dw \2 ; address
+ endm
+
+ enum callchannel_cmd
+callchannel: macro
+ db callchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum endchannel_cmd
+endchannel: macro
+ db endchannel_cmd
+ endm
diff --git a/macros/scripts/event.asm b/macros/scripts/event.asm
new file mode 100644
index 000000000..b00b6a6da
--- /dev/null
+++ b/macros/scripts/event.asm
@@ -0,0 +1,1069 @@
+; ScriptCommandTable indexes (see engine/scripting.asm)
+ enum_start
+
+ enum scall_command
+scall: macro
+ db scall_command
+ dw \1 ; pointer
+ endm
+
+ enum farscall_command
+farscall: macro
+ db farscall_command
+ dba \1
+ endm
+
+ enum ptcall_command
+ptcall: macro
+ db ptcall_command
+ dw \1 ; pointer
+ endm
+
+ enum jump_command
+jump: macro
+ db jump_command
+ dw \1 ; pointer
+ endm
+
+ enum farjump_command
+farjump: macro
+ db farjump_command
+ dba \1
+ endm
+
+ enum ptjump_command
+ptjump: macro
+ db ptjump_command
+ dw \1 ; pointer
+ endm
+
+ enum if_equal_command
+if_equal: macro
+ db if_equal_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum if_not_equal_command
+if_not_equal: macro
+ db if_not_equal_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum iffalse_command
+iffalse: macro
+ db iffalse_command
+ dw \1 ; pointer
+ endm
+
+ enum iftrue_command
+iftrue: macro
+ db iftrue_command
+ dw \1 ; pointer
+ endm
+
+ enum if_greater_than_command
+if_greater_than: macro
+ db if_greater_than_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum if_less_than_command
+if_less_than: macro
+ db if_less_than_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum jumpstd_command
+jumpstd: macro
+ db jumpstd_command
+ dw \1 ; predefined_script
+ endm
+
+ enum callstd_command
+callstd: macro
+ db callstd_command
+ dw \1 ; predefined_script
+ endm
+
+ enum callasm_command
+callasm: macro
+ db callasm_command
+ dba \1
+ endm
+
+ enum special_command
+special: macro
+ db special_command
+ dw (\1Special - SpecialsPointers) / 3
+ endm
+
+add_special: MACRO
+\1Special::
+ dba \1
+ENDM
+
+ enum ptcallasm_command
+ptcallasm: macro
+ db ptcallasm_command
+ dw \1 ; asm
+ endm
+
+ enum checkmaptriggers_command
+checkmaptriggers: macro
+ db checkmaptriggers_command
+ map \1 ; map
+ endm
+
+ enum domaptrigger_command
+domaptrigger: macro
+ db domaptrigger_command
+ map \1 ; map
+ db \2 ; trigger_id
+ endm
+
+ enum checktriggers_command
+checktriggers: macro
+ db checktriggers_command
+ endm
+
+ enum dotrigger_command
+dotrigger: macro
+ db dotrigger_command
+ db \1 ; trigger_id
+ endm
+
+ enum writebyte_command
+writebyte: macro
+ db writebyte_command
+ db \1 ; value
+ endm
+
+ enum addvar_command
+addvar: macro
+ db addvar_command
+ db \1 ; value
+ endm
+
+ enum random_command
+random: macro
+ db random_command
+ db \1 ; input
+ endm
+
+ enum checkver_command
+checkver: macro
+ db checkver_command
+ endm
+
+ enum copybytetovar_command
+copybytetovar: macro
+ db copybytetovar_command
+ dw \1 ; address
+ endm
+
+ enum copyvartobyte_command
+copyvartobyte: macro
+ db copyvartobyte_command
+ dw \1 ; address
+ endm
+
+ enum loadvar_command
+loadvar: macro
+ db loadvar_command
+ dw \1 ; address
+ db \2 ; value
+ endm
+
+ enum checkcode_command
+checkcode: macro
+ db checkcode_command
+ db \1 ; variable_id
+ endm
+
+ enum writevarcode_command
+writevarcode: macro
+ db writevarcode_command
+ db \1 ; variable_id
+ endm
+
+ enum writecode_command
+writecode: macro
+ db writecode_command
+ db \1 ; variable_id
+ db \2 ; value
+ endm
+
+ enum giveitem_command
+giveitem: macro
+ db giveitem_command
+ db \1 ; item
+if _NARG == 2
+ db \2 ; quantity
+else
+ db 1
+endc
+ endm
+
+ enum takeitem_command
+takeitem: macro
+ db takeitem_command
+ db \1 ; item
+if _NARG == 2
+ db \2 ; quantity
+else
+ db 1
+endc
+ endm
+
+ enum checkitem_command
+checkitem: macro
+ db checkitem_command
+ db \1 ; item
+ endm
+
+ enum givemoney_command
+givemoney: macro
+ db givemoney_command
+ db \1 ; account
+ dt \2 ; money
+ endm
+
+ enum takemoney_command
+takemoney: macro
+ db takemoney_command
+ db \1 ; account
+ dt \2 ; money
+ endm
+
+ enum checkmoney_command
+checkmoney: macro
+ db checkmoney_command
+ db \1 ; account
+ dt \2 ; money
+ endm
+
+ enum givecoins_command
+givecoins: macro
+ db givecoins_command
+ dw \1 ; coins
+ endm
+
+ enum takecoins_command
+takecoins: macro
+ db takecoins_command
+ dw \1 ; coins
+ endm
+
+ enum checkcoins_command
+checkcoins: macro
+ db checkcoins_command
+ dw \1 ; coins
+ endm
+
+ enum addcellnum_command
+addcellnum: macro
+ db addcellnum_command
+ db \1 ; person
+ endm
+
+ enum delcellnum_command
+delcellnum: macro
+ db delcellnum_command
+ db \1 ; person
+ endm
+
+ enum checkcellnum_command
+checkcellnum: macro
+ db checkcellnum_command
+ db \1 ; person
+ endm
+
+ enum checktime_command
+checktime: macro
+ db checktime_command
+ db \1 ; time
+ endm
+
+checkmorn EQUS "checktime MORN"
+checkday EQUS "checktime DAY"
+checknite EQUS "checktime NITE"
+
+ enum checkpoke_command
+checkpoke: macro
+ db checkpoke_command
+ db \1 ; pkmn
+ endm
+
+ enum givepoke_command
+givepoke: macro
+ db givepoke_command
+ db \1 ; pokemon
+ db \2 ; level
+ if _NARG >= 3
+ db \3 ; item
+ if _NARG >= 4
+ db \4 ; trainer
+ if \4
+ dw \5 ; trainer_name_pointer
+ dw \6 ; pkmn_nickname
+ endc
+ else
+ db 0
+ endc
+ else
+ db 0, 0
+ endc
+ endm
+
+ enum giveegg_command
+giveegg: macro
+ db giveegg_command
+ db \1 ; pkmn
+ db \2 ; level
+ endm
+
+ enum givepokeitem_command
+givepokeitem: macro
+ db givepokeitem_command
+ dw \1 ; pointer
+ endm
+
+ enum checkpokeitem_command
+checkpokeitem: macro
+ db checkpokeitem_command
+ dw \1 ; pointer
+ endm
+
+ enum checkevent_command
+checkevent: macro
+ db checkevent_command
+ dw \1 ; event_flag
+ endm
+
+ enum clearevent_command
+clearevent: macro
+ db clearevent_command
+ dw \1 ; event_flag
+ endm
+
+ enum setevent_command
+setevent: macro
+ db setevent_command
+ dw \1 ; event_flag
+ endm
+
+ enum checkflag_command
+checkflag: macro
+ db checkflag_command
+ dw \1 ; engine_flag
+ endm
+
+ enum clearflag_command
+clearflag: macro
+ db clearflag_command
+ dw \1 ; engine_flag
+ endm
+
+ enum setflag_command
+setflag: macro
+ db setflag_command
+ dw \1 ; engine_flag
+ endm
+
+ enum wildon_command
+wildon: macro
+ db wildon_command
+ endm
+
+ enum wildoff_command
+wildoff: macro
+ db wildoff_command
+ endm
+
+ enum xycompare_command
+xycompare: macro
+ db xycompare_command
+ dw \1 ; pointer
+ endm
+
+ enum warpmod_command
+warpmod: macro
+ db warpmod_command
+ db \1 ; warp_id
+ map \2 ; map
+ endm
+
+ enum blackoutmod_command
+blackoutmod: macro
+ db blackoutmod_command
+ map \1 ; map
+ endm
+
+ enum warp_command
+warp: macro
+ db warp_command
+ map \1 ; map
+ db \2 ; x
+ db \3 ; y
+ endm
+
+ enum readmoney_command
+readmoney: macro
+ db readmoney_command
+ db \1 ; account
+ db \2 ; memory
+ endm
+
+ enum readcoins_command
+readcoins: macro
+ db readcoins_command
+ db \1 ; memory
+ endm
+
+ enum RAM2MEM_command
+RAM2MEM: macro
+ db RAM2MEM_command
+ db \1 ; memory
+ endm
+
+ enum pokenamemem_command
+pokenamemem: macro
+ db pokenamemem_command
+ db \1 ; pokemon
+ db \2 ; memory
+ endm
+
+ enum itemtotext_command
+itemtotext: macro
+ db itemtotext_command
+ db \1 ; item
+ db \2 ; memory
+ endm
+
+ enum mapnametotext_command
+mapnametotext: macro
+ db mapnametotext_command
+ db \1 ; memory
+ endm
+
+ enum trainertotext_command
+trainertotext: macro
+ db trainertotext_command
+ db \1 ; trainer_id
+ db \2 ; trainer_group
+ db \3 ; memory
+ endm
+
+ enum stringtotext_command
+stringtotext: macro
+ db stringtotext_command
+ dw \1 ; text_pointer
+ db \2 ; memory
+ endm
+
+ enum itemnotify_command
+itemnotify: macro
+ db itemnotify_command
+ endm
+
+ enum pocketisfull_command
+pocketisfull: macro
+ db pocketisfull_command
+ endm
+
+ enum opentext_command
+opentext: macro
+ db opentext_command
+ endm
+
+ enum refreshscreen_command
+refreshscreen: macro
+ db refreshscreen_command
+ db \1 ; dummy
+ endm
+
+ enum closetext_command
+closetext: macro
+ db closetext_command
+ endm
+
+ enum loadbytec2cf_command
+loadbytec2cf: macro
+ db loadbytec2cf_command
+ db \1 ; byte
+ endm
+
+ enum farwritetext_command
+farwritetext: macro
+ db farwritetext_command
+ dba \1
+ endm
+
+ enum writetext_command
+writetext: macro
+ db writetext_command
+ dw \1 ; text_pointer
+ endm
+
+ enum repeattext_command
+repeattext: macro
+ db repeattext_command
+ db \1 ; byte
+ db \2 ; byte
+ endm
+
+ enum yesorno_command
+yesorno: macro
+ db yesorno_command
+ endm
+
+ enum loadmenudata_command
+loadmenudata: macro
+ db loadmenudata_command
+ dw \1 ; data
+ endm
+
+ enum closewindow_command
+closewindow: macro
+ db closewindow_command
+ endm
+
+ enum jumptextfaceplayer_command
+jumptextfaceplayer: macro
+ db jumptextfaceplayer_command
+ dw \1 ; text_pointer
+ endm
+
+; IF _CRYSTAL
+ enum farjumptext_command
+farjumptext: macro
+ db farjumptext_command
+ dba \1
+ endm
+; ENDC
+
+ enum jumptext_command
+jumptext: macro
+ db jumptext_command
+ dw \1 ; text_pointer
+ endm
+
+ enum waitbutton_command
+waitbutton: macro
+ db waitbutton_command
+ endm
+
+ enum buttonsound_command
+buttonsound: macro
+ db buttonsound_command
+ endm
+
+ enum pokepic_command
+pokepic: macro
+ db pokepic_command
+ db \1 ; pokemon
+ endm
+
+ enum closepokepic_command
+closepokepic: macro
+ db closepokepic_command
+ endm
+
+ enum _2dmenu_command
+_2dmenu: macro
+ db _2dmenu_command
+ endm
+
+ enum verticalmenu_command
+verticalmenu: macro
+ db verticalmenu_command
+ endm
+
+ enum loadpikachudata_command
+loadpikachudata: macro
+ db loadpikachudata_command
+ endm
+
+ enum randomwildmon_command
+randomwildmon: macro
+ db randomwildmon_command
+ endm
+
+ enum loadmemtrainer_command
+loadmemtrainer: macro
+ db loadmemtrainer_command
+ endm
+
+ enum loadwildmon_command
+loadwildmon: macro
+ db loadwildmon_command
+ db \1 ; pokemon
+ db \2 ; level
+ endm
+
+ enum loadtrainer_command
+loadtrainer: macro
+ db loadtrainer_command
+ db \1 ; trainer_group
+ db \2 ; trainer_id
+ endm
+
+ enum startbattle_command
+startbattle: macro
+ db startbattle_command
+ endm
+
+ enum reloadmapafterbattle_command
+reloadmapafterbattle: macro
+ db reloadmapafterbattle_command
+ endm
+
+ enum catchtutorial_command
+catchtutorial: macro
+ db catchtutorial_command
+ db \1 ; byte
+ endm
+
+ enum trainertext_command
+trainertext: macro
+ db trainertext_command
+ db \1 ; which_text
+ endm
+
+ enum trainerflagaction_command
+trainerflagaction: macro
+ db trainerflagaction_command
+ db \1 ; action
+ endm
+
+ enum winlosstext_command
+winlosstext: macro
+ db winlosstext_command
+ dw \1 ; win_text_pointer
+ dw \2 ; loss_text_pointer
+ endm
+
+ enum scripttalkafter_command
+scripttalkafter: macro
+ db scripttalkafter_command
+ endm
+
+ enum end_if_just_battled_command
+end_if_just_battled: macro
+ db end_if_just_battled_command
+ endm
+
+ enum check_just_battled_command
+check_just_battled: macro
+ db check_just_battled_command
+ endm
+
+ enum setlasttalked_command
+setlasttalked: macro
+ db setlasttalked_command
+ db \1 ; person
+ endm
+
+ enum applymovement_command
+applymovement: macro
+ db applymovement_command
+ db \1 ; person
+ dw \2 ; data
+ endm
+
+ enum applymovement2_command
+applymovement2: macro
+ db applymovement2_command
+ dw \1 ; data
+ endm
+
+ enum faceplayer_command
+faceplayer: macro
+ db faceplayer_command
+ endm
+
+ enum faceperson_command
+faceperson: macro
+ db faceperson_command
+ db \1 ; person1
+ db \2 ; person2
+ endm
+
+ enum variablesprite_command
+variablesprite: macro
+ db variablesprite_command
+ db \1 - SPRITE_VARS ; byte
+ db \2 ; sprite
+ endm
+
+ enum disappear_command
+disappear: macro
+ db disappear_command
+ db \1 ; person
+ endm
+
+ enum appear_command
+appear: macro
+ db appear_command
+ db \1 ; person
+ endm
+
+ enum follow_command
+follow: macro
+ db follow_command
+ db \1 ; person2
+ db \2 ; person1
+ endm
+
+ enum stopfollow_command
+stopfollow: macro
+ db stopfollow_command
+ endm
+
+ enum moveperson_command
+moveperson: macro
+ db moveperson_command
+ db \1 ; person
+ db \2 ; x
+ db \3 ; y
+ endm
+
+ enum writepersonxy_command
+writepersonxy: macro
+ db writepersonxy_command
+ db \1 ; person
+ endm
+
+ enum loademote_command
+loademote: macro
+ db loademote_command
+ db \1 ; bubble
+ endm
+
+ enum showemote_command
+showemote: macro
+ db showemote_command
+ db \1 ; bubble
+ db \2 ; person
+ db \3 ; time
+ endm
+
+ enum spriteface_command
+spriteface: macro
+ db spriteface_command
+ db \1 ; person
+ db \2 ; facing
+ endm
+
+ enum follownotexact_command
+follownotexact: macro
+ db follownotexact_command
+ db \1 ; person2
+ db \2 ; person1
+ endm
+
+ enum earthquake_command
+earthquake: macro
+ db earthquake_command
+ db \1 ; param
+ endm
+
+ enum changemap_command
+changemap: macro
+ db changemap_command
+ db \1 ; map_bank
+ dw \2 ; map_data_pointer
+ endm
+
+ enum changeblock_command
+changeblock: macro
+ db changeblock_command
+ db \1 ; x
+ db \2 ; y
+ db \3 ; block
+ endm
+
+ enum reloadmap_command
+reloadmap: macro
+ db reloadmap_command
+ endm
+
+ enum reloadmappart_command
+reloadmappart: macro
+ db reloadmappart_command
+ endm
+
+ enum writecmdqueue_command
+writecmdqueue: macro
+ db writecmdqueue_command
+ dw \1 ; queue_pointer
+ endm
+
+ enum delcmdqueue_command
+delcmdqueue: macro
+ db delcmdqueue_command
+ db \1 ; byte
+ endm
+
+ enum playmusic_command
+playmusic: macro
+ db playmusic_command
+ dw \1 ; music_pointer
+ endm
+
+ enum encountermusic_command
+encountermusic: macro
+ db encountermusic_command
+ endm
+
+ enum musicfadeout_command
+musicfadeout: macro
+ db musicfadeout_command
+ dw \1 ; music
+ db \2 ; fadetime
+ endm
+
+ enum playmapmusic_command
+playmapmusic: macro
+ db playmapmusic_command
+ endm
+
+ enum dontrestartmapmusic_command
+dontrestartmapmusic: macro
+ db dontrestartmapmusic_command
+ endm
+
+ enum cry_command
+cry: macro
+ db cry_command
+ dw \1 ; cry_id
+ endm
+
+ enum playsound_command
+playsound: macro
+ db playsound_command
+ dw \1 ; sound_pointer
+ endm
+
+ enum waitsfx_command
+waitsfx: macro
+ db waitsfx_command
+ endm
+
+ enum warpsound_command
+warpsound: macro
+ db warpsound_command
+ endm
+
+ enum specialsound_command
+specialsound: macro
+ db specialsound_command
+ endm
+
+ enum passtoengine_command
+passtoengine: macro
+ db passtoengine_command
+ db \1 ; data_pointer
+ endm
+
+ enum newloadmap_command
+newloadmap: macro
+ db newloadmap_command
+ db \1 ; which_method
+ endm
+
+ enum pause_command
+pause: macro
+ db pause_command
+ db \1 ; length
+ endm
+
+ enum deactivatefacing_command
+deactivatefacing: macro
+ db deactivatefacing_command
+ db \1 ; time
+ endm
+
+ enum priorityjump_command
+priorityjump: macro
+ db priorityjump_command
+ dw \1 ; pointer
+ endm
+
+ enum warpcheck_command
+warpcheck: macro
+ db warpcheck_command
+ endm
+
+ enum ptpriorityjump_command
+ptpriorityjump: macro
+ db ptpriorityjump_command
+ dw \1 ; pointer
+ endm
+
+ enum return_command
+return: macro
+ db return_command
+ endm
+
+ enum end_command
+end: macro
+ db end_command
+ endm
+
+ enum reloadandreturn_command
+reloadandreturn: macro
+ db reloadandreturn_command
+ db \1 ; which_method
+ endm
+
+ enum end_all_command
+end_all: macro
+ db end_all_command
+ endm
+
+ enum pokemart_command
+pokemart: macro
+ db pokemart_command
+ db \1 ; dialog_id
+ dw \2 ; mart_id
+ endm
+
+ enum elevator_command
+elevator: macro
+ db elevator_command
+ dw \1 ; floor_list_pointer
+ endm
+
+ enum trade_command
+trade: macro
+ db trade_command
+ db \1 ; trade_id
+ endm
+
+ enum askforphonenumber_command
+askforphonenumber: macro
+ db askforphonenumber_command
+ db \1 ; number
+ endm
+
+ enum phonecall_command
+phonecall: macro
+ db phonecall_command
+ dw \1 ; caller_name
+ endm
+
+ enum hangup_command
+hangup: macro
+ db hangup_command
+ endm
+
+ enum describedecoration_command
+describedecoration: macro
+ db describedecoration_command
+ db \1 ; byte
+ endm
+
+ enum fruittree_command
+fruittree: macro
+ db fruittree_command
+ db \1 ; tree_id
+ endm
+
+ enum specialphonecall_command
+specialphonecall: macro
+ db specialphonecall_command
+ dw \1 ; call_id
+ endm
+
+ enum checkphonecall_command
+checkphonecall: macro
+ db checkphonecall_command
+ endm
+
+ enum verbosegiveitem_command
+verbosegiveitem: macro
+ db verbosegiveitem_command
+ db \1 ; item
+if _NARG == 2
+ db \2 ; quantity
+else
+ db 1
+endc
+ endm
+
+ enum verbosegiveitem2_command
+verbosegiveitem2: macro
+ db verbosegiveitem2_command
+ db \1 ; item
+ db \2 ; var
+ endm
+
+ enum swarm_command
+swarm: macro
+ db swarm_command
+ db \1 ; flag
+ map \2 ; map
+ endm
+
+ enum halloffame_command
+halloffame: macro
+ db halloffame_command
+ endm
+
+ enum credits_command
+credits: macro
+ db credits_command
+ endm
+
+ enum warpfacing_command
+warpfacing: macro
+ db warpfacing_command
+ db \1 ; facing
+ map \2 ; map
+ db \3 ; x
+ db \4 ; y
+ endm
+
+ enum battletowertext_command
+battletowertext: macro
+ db battletowertext_command
+ db \1 ; memory
+ endm
+
+ enum landmarktotext_command
+landmarktotext: macro
+ db landmarktotext_command
+ db \1 ; id
+ db \2 ; memory
+ endm
+
+ enum trainerclassname_command
+trainerclassname: macro
+ db trainerclassname_command
+ db \1 ; id
+ db \2 ; memory
+ endm
+
+ enum name_command
+name: macro
+ db name_command
+ db \1 ; type
+ db \2 ; id
+ db \3 ; memory
+ endm
+
+ enum wait_command
+wait: macro
+ db wait_command
+ db \1 ; duration
+ endm
+
+ enum check_save_command
+check_save: macro
+ db check_save_command
+ endm
diff --git a/macros/scripts/gfx_anim.asm b/macros/scripts/gfx_anim.asm
new file mode 100644
index 000000000..e0a56cc23
--- /dev/null
+++ b/macros/scripts/gfx_anim.asm
@@ -0,0 +1,46 @@
+; pic+sprite animations
+
+frame: macro
+ db \1
+x = \2
+if _NARG > 2
+rept _NARG +- 2
+x = x | (1 << (\3 + 1))
+ shift
+endr
+endc
+ db x
+ endm
+
+ enum_start $fc
+
+; used for sprites
+ enum delanim_command ; fc
+delanim: macro
+ db delanim_command
+ endm
+
+ enum dorepeat_command ; fd
+dorepeat: macro
+ db dorepeat_command
+ db \1 ; #
+ endm
+
+ enum setrepeat_command ; fe
+setrepeat: macro
+ db setrepeat_command
+ db \1 ; #
+ endm
+
+ enum endanim_command ; ff
+endanim: macro
+ db endanim_command
+ endm
+
+__enum__ = $fe
+
+; used for sprites
+ enum dorestart_command ; fe
+dorestart: macro
+ db dorestart_command
+ endm
diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm
new file mode 100644
index 000000000..010506544
--- /dev/null
+++ b/macros/scripts/maps.asm
@@ -0,0 +1,104 @@
+map: macro
+;\1: map id
+ db GROUP_\1, MAP_\1
+endm
+
+
+maptrigger: macro
+;\1: script pointer
+ dw \1, 0
+endm
+
+warp_def: macro
+;\1: y: top to bottom, starts at 0
+;\2: x: left to right, starts at 0
+;\3: warp destination: starts at 1
+;\4: map id: from constants/map_constants.asm
+ db \1, \2, \3
+ map \4
+endm
+
+xy_trigger: macro
+;\1: number: controlled by dotrigger/domaptrigger
+;\2: y: top to bottom, starts at 0
+;\3: x: left to right, starts at 0
+;\4: script pointer
+ db \1, \2, \3, $0
+ dw \4
+ db $0, $0
+endm
+
+signpost: macro
+;\1: y: top to bottom, starts at 0
+;\2: x: left to right, starts at 0
+;\3: function: a SIGNPOST_* constant
+;\4: script pointer
+ db \1, \2, \3
+ dw \4
+endm
+
+person_event: macro
+;\1: sprite: a SPRITE_* constant
+;\2: y: top to bottom, starts at 0
+;\3: x: left to right, starts at 0
+;\4: movement function: a SPRITEMOVEDATA_* constant
+;\5, \6: movement radius: y, x
+;\7: clock hour: ???
+;\8: clock daytime: sum of MORN, DAY, and/or NITE, or 0 for always
+;\9: color: a PAL_NPC_* constant, or 0 for sprite default
+;\10: function: a PERSONTYPE_* constant
+;\11: sight range: applies to PERSONTYPE_TRAINER
+;\12: script pointer
+;\13: event flag: an EVENT_* constant, or 0 for always
+ db \1, \2 + 4, \3 + 4, \4
+ dn \5, \6
+ db \7, \8
+ shift
+ dn \8, \9
+ shift
+ db \9
+ shift
+ dw \9
+ shift
+ dw \9
+endm
+
+
+trainer: macro
+;\1: flag: an EVENT_BEAT_* constant
+;\2: trainer group
+;\3: trainer id
+;\4: seen text
+;\5: win text
+;\6: loss text
+;\7: after-battle text
+ dw \1
+ db \2, \3
+ dw \4, \5, \6, \7
+endm
+
+itemball: macro
+;\1: item: from constants/item_constants.asm
+;\2: quantity: default 1
+if _NARG == 2
+ db \1, \2
+else
+ db \1, 1
+endc
+endm
+
+elevfloor: macro
+;\1: floor: a FLOOR_* constant
+;\2: warp destination: starts at 1
+;\3: map id
+ db \1, \2
+ map \3
+ENDM
+
+stonetable: macro
+;\1: warp id
+;\2: person_event id
+;\3: script pointer
+ db \1, \2
+ dw \3
+endm
diff --git a/macros/scripts/move_anim.asm b/macros/scripts/move_anim.asm
new file mode 100644
index 000000000..9859fbd50
--- /dev/null
+++ b/macros/scripts/move_anim.asm
@@ -0,0 +1,294 @@
+anim_wait: macro
+if \1 >= $d0
+ flip out
+endc
+ db \1
+ endm
+
+; BattleAnimCommands indexes (see battle/anim_commands.asm)
+ enum_start $d0
+
+ enum anim_obj_command ; d0
+anim_obj: macro
+ db anim_obj_command
+ db \1 ; obj
+ db (\2 << 3) + \3 ; x
+ db (\4 << 3) + \5 ; y
+ db \6 ; param
+ endm
+
+ enum anim_1gfx_command ; d1
+anim_1gfx: macro
+ db anim_1gfx_command
+ db \1 ; gfx1
+ endm
+
+ enum anim_2gfx_command ; d2
+anim_2gfx: macro
+ db anim_2gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ endm
+
+ enum anim_3gfx_command ; d3
+anim_3gfx: macro
+ db anim_3gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ endm
+
+ enum anim_4gfx_command ; d4
+anim_4gfx: macro
+ db anim_4gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ db \4 ; gfx4
+ endm
+
+ enum anim_5gfx_command ; d5
+anim_5gfx: macro
+ db anim_5gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ db \4 ; gfx4
+ db \5 ; gfx5
+ endm
+
+ enum anim_incobj_command ; d6
+anim_incobj: macro
+ db anim_incobj_command
+ db \1 ; id
+ endm
+
+ enum anim_setobj_command ; d7
+anim_setobj: macro
+ db anim_setobj_command
+ db \1 ; id
+ db \2 ; obj
+ endm
+
+ enum anim_incbgeffect_command ; d8
+anim_incbgeffect: macro
+ db anim_incbgeffect_command
+ db \1 ; effect
+ endm
+
+ enum anim_enemyfeetobj_command ; d9
+anim_enemyfeetobj: macro
+ db anim_enemyfeetobj_command
+ endm
+
+ enum anim_playerheadobj_command ; da
+anim_playerheadobj: macro
+ db anim_playerheadobj_command
+ endm
+
+ enum anim_checkpokeball_command ; db
+anim_checkpokeball: macro
+ db anim_checkpokeball_command
+ endm
+
+ enum anim_transform_command ; dc
+anim_transform: macro
+ db anim_transform_command
+ endm
+
+ enum anim_raisesub_command ; dd
+anim_raisesub: macro
+ db anim_raisesub_command
+ endm
+
+ enum anim_dropsub_command ; de
+anim_dropsub: macro
+ db anim_dropsub_command
+ endm
+
+ enum anim_resetobp0_command ; df
+anim_resetobp0: macro
+ db anim_resetobp0_command
+ endm
+
+ enum anim_sound_command ; e0
+anim_sound: macro
+ db anim_sound_command
+ db (\1 << 2) | \2 ; duration, tracks
+ db \3 ; id
+ endm
+
+ enum anim_cry_command ; e1
+anim_cry: macro
+ db anim_cry_command
+ db \1 ; pitch
+ endm
+
+ enum anim_minimizeopp_command ; e2
+anim_minimizeopp: macro
+ db anim_minimizeopp_command
+ endm
+
+ enum anim_oamon_command ; e3
+anim_oamon: macro
+ db anim_oamon_command
+ endm
+
+ enum anim_oamoff_command ; e4
+anim_oamoff: macro
+ db anim_oamoff_command
+ endm
+
+ enum anim_clearobjs_command ; e5
+anim_clearobjs: macro
+ db anim_clearobjs_command
+ endm
+
+ enum anim_beatup_command ; e6
+anim_beatup: macro
+ db anim_beatup_command
+ endm
+
+ enum anim_0xe7_command ; e7
+anim_0xe7: macro
+ db anim_0xe7_command
+ endm
+
+ enum anim_updateactorpic_command ; e8
+anim_updateactorpic: macro
+ db anim_updateactorpic_command
+ endm
+
+ enum anim_minimize_command ; e9
+anim_minimize: macro
+ db anim_minimize_command
+ endm
+
+ enum anim_0xea_command ; ea
+anim_0xea: macro
+ db anim_0xea_command
+ endm
+
+ enum anim_0xeb_command ; eb
+anim_0xeb: macro
+ db anim_0xeb_command
+ endm
+
+ enum anim_0xec_command ; ec
+anim_0xec: macro
+ db anim_0xec_command
+ endm
+
+ enum anim_0xed_command ; ed
+anim_0xed: macro
+ db anim_0xed_command
+ endm
+
+ enum anim_if_param_and_command ; ee
+anim_if_param_and: macro
+ db anim_if_param_and_command
+ db \1 ; value
+ dw \2 ; address
+ endm
+
+ enum anim_jumpuntil_command ; ef
+anim_jumpuntil: macro
+ db anim_jumpuntil_command
+ dw \1 ; address
+ endm
+
+ enum anim_bgeffect_command ; f0
+anim_bgeffect: macro
+ db anim_bgeffect_command
+ db \1 ; effect
+ db \2 ; unknown
+ db \3 ; unknown
+ db \4 ; unknown
+ endm
+
+ enum anim_bgp_command ; f1
+anim_bgp: macro
+ db anim_bgp_command
+ db \1 ; colors
+ endm
+
+ enum anim_obp0_command ; f2
+anim_obp0: macro
+ db anim_obp0_command
+ db \1 ; colors
+ endm
+
+ enum anim_obp1_command ; f3
+anim_obp1: macro
+ db anim_obp1_command
+ db \1 ; colors
+ endm
+
+ enum anim_clearsprites_command ; f4
+anim_clearsprites: macro
+ db anim_clearsprites_command
+ endm
+
+ enum anim_0xf5_command ; f5
+anim_0xf5: macro
+ db anim_0xf5_command
+ endm
+
+ enum anim_0xf6_command ; f6
+anim_0xf6: macro
+ db anim_0xf6_command
+ endm
+
+ enum anim_0xf7_command ; f7
+anim_0xf7: macro
+ db anim_0xf7_command
+ endm
+
+ enum anim_if_param_equal_command ; f8
+anim_if_param_equal: macro
+ db anim_if_param_equal_command
+ db \1 ; value
+ dw \2 ; address
+ endm
+
+ enum anim_setvar_command ; f9
+anim_setvar: macro
+ db anim_setvar_command
+ db \1 ; value
+ endm
+
+ enum anim_incvar_command ; fa
+anim_incvar: macro
+ db anim_incvar_command
+ endm
+
+ enum anim_if_var_equal_command ; fb
+anim_if_var_equal: macro
+ db anim_if_var_equal_command
+ db \1 ; value
+ dw \2 ; address
+ endm
+
+ enum anim_jump_command ; fc
+anim_jump: macro
+ db anim_jump_command
+ dw \1 ; address
+ endm
+
+ enum anim_loop_command ; fd
+anim_loop: macro
+ db anim_loop_command
+ db \1 ; count
+ dw \2 ; address
+ endm
+
+ enum anim_call_command ; fe
+anim_call: macro
+ db anim_call_command
+ dw \1 ; address
+ endm
+
+ enum anim_ret_command ; ff
+anim_ret: macro
+ db anim_ret_command
+ endm
diff --git a/macros/scripts/movement.asm b/macros/scripts/movement.asm
new file mode 100644
index 000000000..a2acf1356
--- /dev/null
+++ b/macros/scripts/movement.asm
@@ -0,0 +1,247 @@
+; MovementPointers indexes (see engine/movement.asm)
+ enum_start
+
+; Directional movements
+
+ enum movement_turn_head
+turn_head: macro
+ db movement_turn_head | \1 ; $00
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_step
+turn_step: macro
+ db movement_turn_step | \1 ; $04
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slow_step
+slow_step: macro
+ db movement_slow_step | \1; $08
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_step
+step: macro
+ db movement_step | \1 ; $0c
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_big_step
+big_step: macro
+ db movement_big_step | \1 ; $10
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slow_slide_step
+slow_slide_step: macro
+ db movement_slow_slide_step | \1 ; $14
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slide_step
+slide_step: macro
+ db movement_slide_step | \1 ; $18
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_fast_slide_step
+fast_slide_step: macro
+ db movement_fast_slide_step | \1 ; $1c
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_away
+turn_away: macro
+ db movement_turn_away | \1 ; $20
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_in
+turn_in: macro
+ db movement_turn_in | \1 ; $24
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_waterfall
+turn_waterfall: macro
+ db movement_turn_waterfall | \1 ; $28
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slow_jump_step
+slow_jump_step: macro
+ db movement_slow_jump_step | \1 ; $2c
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_jump_step
+jump_step: macro
+ db movement_jump_step | \1 ; $30
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_fast_jump_step
+fast_jump_step: macro
+ db movement_fast_jump_step | \1 ; $34
+ endm
+
+__enum__ = __enum__ + 3
+
+; Control
+ enum movement_remove_sliding
+remove_sliding: macro
+ db movement_remove_sliding ; $38
+ endm
+
+ enum movement_set_sliding
+set_sliding: macro
+ db movement_set_sliding ; $39
+ endm
+
+ enum movement_remove_fixed_facing
+remove_fixed_facing: macro
+ db movement_remove_fixed_facing ; $3a
+ endm
+
+ enum movement_fix_facing
+fix_facing: macro
+ db movement_fix_facing ; $3b
+ endm
+
+ enum movement_show_person
+show_person: macro
+ db movement_show_person ; $3c
+ endm
+
+ enum movement_hide_person
+hide_person: macro
+ db movement_hide_person ; $3d
+ endm
+
+; Sleep
+
+ enum movement_step_sleep
+step_sleep: macro
+if \1 <= 8
+ db movement_step_sleep + \1 - 1
+else
+ db movement_step_sleep + 8, \1
+endc
+endm
+
+__enum__ = __enum__ + 8
+
+ enum movement_step_end
+step_end: macro
+ db movement_step_end ; $47
+ endm
+
+; Whatever Movement_48 is, it takes a one-byte parameter
+ enum movement_step_48
+step_48: macro
+ db movement_step_48
+ db \1
+ endm
+
+ enum movement_remove_person
+remove_person: macro
+ db movement_remove_person ; $49
+ endm
+
+ enum movement_step_loop
+step_loop: macro
+ db movement_step_loop ; $4a
+ endm
+
+ enum movement_step_4b
+step_4b: macro
+ db movement_step_4b ; $4b
+ endm
+
+ enum movement_teleport_from
+teleport_from: macro
+ db movement_teleport_from ; $4c
+ endm
+
+ enum movement_teleport_to
+teleport_to: macro
+ db movement_teleport_to ; $4d
+ endm
+
+ enum movement_skyfall
+skyfall: macro
+ db movement_skyfall ; $4e
+ endm
+
+ enum movement_step_dig
+step_dig: macro
+ db movement_step_dig ; $4f
+ db \1
+ endm
+
+ enum movement_step_bump
+step_bump: macro
+ db movement_step_bump ; $50
+ endm
+
+ enum movement_fish_got_bite
+fish_got_bite: macro
+ db movement_fish_got_bite ; $51
+ endm
+
+ enum movement_fish_cast_rod
+fish_cast_rod: macro
+ db movement_fish_cast_rod ; $52
+ endm
+
+ enum movement_hide_emote
+hide_emote: macro
+ db movement_hide_emote ; $53
+ endm
+
+ enum movement_show_emote
+show_emote: macro
+ db movement_show_emote ; $54
+ endm
+
+ enum movement_step_shake
+step_shake: macro
+ db movement_step_shake ; $55
+ db \1 ; displacement
+ endm
+
+ enum movement_tree_shake
+tree_shake: macro
+ db movement_tree_shake
+ endm
+
+ enum movement_rock_smash
+rock_smash: macro
+ db movement_rock_smash ; $57
+ db \1
+ endm
+
+ enum movement_return_dig
+return_dig: macro
+ db movement_return_dig ; $58
+ db \1
+ endm
+
+ enum movement_skyfall_top
+skyfall_top: macro
+ db movement_skyfall_top ; $59
+ endm
diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm
new file mode 100644
index 000000000..e29f8a511
--- /dev/null
+++ b/macros/scripts/text.asm
@@ -0,0 +1,133 @@
+text EQUS "db $00," ; Start writing text.
+next EQUS "db $4e," ; Move a line down.
+line EQUS "db $4f," ; Start writing at the bottom line.
+page EQUS "db $50," ; Start a new Pokédex page.
+para EQUS "db $51," ; Start a new paragraph.
+cont EQUS "db $55," ; Scroll to the next line.
+done EQUS "db $57" ; End a text box.
+prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event).
+
+; TextCommands indexes (see home/text.asm)
+ enum_start $01
+
+ enum TX_RAM
+text_from_ram: MACRO
+ db TX_RAM
+ dw \1
+ ENDM
+
+ enum TX_BCD
+text_bcd: macro
+ db TX_BCD
+ dw \1
+ db \2
+ ENDM
+
+ enum TX_MOVE
+text_move: macro
+ db TX_MOVE
+ dw \1
+ ENDM
+
+ enum TX_BOX
+text_box: macro
+ db TX_BOX
+ dw \1
+ db \2, \3
+ ENDM
+
+ enum TX_LOW
+text_low: macro
+ db TX_LOW
+ endm
+
+ enum WAIT_BUTTON
+text_waitbutton: macro
+ db WAIT_BUTTON
+ endm
+
+ enum TX_SCROLL
+text_scroll: macro
+ db TX_SCROLL
+ endm
+
+ enum START_ASM
+start_asm: macro
+ db START_ASM
+ endm
+
+ enum TX_NUM
+deciram: macro
+ db TX_NUM
+ dw \1 ; address
+ dn \2, \3 ; bytes, digits
+ endm
+
+ enum TX_EXIT
+interpret_data: macro
+ db TX_EXIT
+ endm
+
+ enum TX_SOUND_0B
+sound_dex_fanfare_50_79: macro
+ db TX_SOUND_0B
+ endm
+
+ enum TX_DOTS
+limited_interpret_data: macro
+ db TX_DOTS
+ db \1
+ endm
+
+ enum TX_LINK_WAIT_BUTTON
+link_wait_button: macro
+ db TX_LINK_WAIT_BUTTON
+ endm
+
+ enum TX_SOUND_0E
+sound_dex_fanfare_20_49: macro
+ db TX_SOUND_0E
+ endm
+
+ enum TX_SOUND_0F
+sound_item: macro
+ db TX_SOUND_0F
+ endm
+
+ enum TX_SOUND_10
+sound_caught_mon: macro
+ db TX_SOUND_10
+ endm
+
+ enum TX_SOUND_11
+sound_dex_fanfare_80_109: macro
+ db TX_SOUND_11
+ endm
+
+ enum TX_SOUND_12
+sound_fanfare: macro
+ db TX_SOUND_12
+ endm
+
+ enum TX_SOUND_13
+sound_slot_machine_start: macro
+ db TX_SOUND_13
+ endm
+
+ enum TX_STRINGBUFFER
+text_buffer: macro
+ db TX_STRINGBUFFER
+ db \1
+ endm
+
+ enum TX_DAY
+current_day: macro
+ db TX_DAY
+ endm
+
+ enum TX_FAR
+text_jump: MACRO
+ db TX_FAR
+ dw \1
+ db BANK(\1)
+ ENDM
diff --git a/macros/scripts/trade_anim.asm b/macros/scripts/trade_anim.asm
new file mode 100644
index 000000000..c38dc75d6
--- /dev/null
+++ b/macros/scripts/trade_anim.asm
@@ -0,0 +1,255 @@
+; DoTradeAnimation.JumpTable indexes (see engine/trade/animation.asm)
+ enum_start
+
+ enum tradeanim_next_command
+tradeanim_next: macro
+ db tradeanim_next_command ; 00
+endm
+
+ enum tradeanim_show_givemon_data_command
+tradeanim_show_givemon_data: macro
+ db tradeanim_show_givemon_data_command ; 01
+endm
+
+ enum tradeanim_show_getmon_data_command
+tradeanim_show_getmon_data: macro
+ db tradeanim_show_getmon_data_command ; 02
+endm
+
+ enum tradeanim_enter_link_tube_command
+tradeanim_enter_link_tube: macro
+ db tradeanim_enter_link_tube_command ; 03
+endm
+
+__enum__ set $5
+
+ enum tradeanim_exit_link_tube_command
+tradeanim_exit_link_tube: macro
+ db tradeanim_exit_link_tube_command ; 05
+endm
+
+ enum tradeanim_tube_to_ot_command
+tradeanim_tube_to_ot: macro
+ db tradeanim_tube_to_ot_command ; 06
+endm
+
+__enum__ set $e
+
+ enum tradeanim_tube_to_player_command
+tradeanim_tube_to_player: macro
+ db tradeanim_tube_to_player_command ; 0e
+endm
+
+__enum__ set $16
+
+ enum tradeanim_sent_to_ot_text_command
+tradeanim_sent_to_ot_text: macro
+ db tradeanim_sent_to_ot_text_command ; 16
+endm
+
+ enum tradeanim_ot_bids_farewell_command
+tradeanim_ot_bids_farewell: macro
+ db tradeanim_ot_bids_farewell_command ; 17
+endm
+
+ enum tradeanim_take_care_of_text_command
+tradeanim_take_care_of_text: macro
+ db tradeanim_take_care_of_text_command ; 18
+endm
+
+ enum tradeanim_ot_sends_text_1_command
+tradeanim_ot_sends_text_1: macro
+ db tradeanim_ot_sends_text_1_command ; 19
+endm
+
+ enum tradeanim_ot_sends_text_2_command
+tradeanim_ot_sends_text_2: macro
+ db tradeanim_ot_sends_text_2_command ; 1a
+endm
+
+ enum tradeanim_setup_givemon_scroll_command
+tradeanim_setup_givemon_scroll: macro
+ db tradeanim_setup_givemon_scroll_command ; 1b
+endm
+
+ enum tradeanim_do_givemon_scroll_command
+tradeanim_do_givemon_scroll: macro
+ db tradeanim_do_givemon_scroll_command ; 1c
+endm
+
+ enum tradeanim_frontpic_scroll_command
+tradeanim_frontpic_scroll: macro
+ db tradeanim_frontpic_scroll_command ; 1d
+endm
+
+ enum tradeanim_textbox_scroll_command
+tradeanim_textbox_scroll: macro
+ db tradeanim_textbox_scroll_command ; 1e
+endm
+
+ enum tradeanim_scroll_out_right_command
+tradeanim_scroll_out_right: macro
+ db tradeanim_scroll_out_right_command ; 1f
+endm
+
+__enum__ set $21
+
+ enum tradeanim_wait_80_command
+tradeanim_wait_80: macro
+ db tradeanim_wait_80_command ; 21
+endm
+
+ enum tradeanim_wait_40_command
+tradeanim_wait_40: macro
+ db tradeanim_wait_40_command ; 22
+endm
+
+ enum tradeanim_rocking_ball_command
+tradeanim_rocking_ball: macro
+ db tradeanim_rocking_ball_command ; 23
+endm
+
+ enum tradeanim_drop_ball_command
+tradeanim_drop_ball: macro
+ db tradeanim_drop_ball_command ; 24
+endm
+
+ enum tradeanim_wait_anim_command
+tradeanim_wait_anim: macro
+ db tradeanim_wait_anim_command ; 25
+endm
+
+__enum__ set $27
+
+ enum tradeanim_poof_command
+tradeanim_poof: macro
+ db tradeanim_poof_command ; 27
+endm
+
+ enum tradeanim_bulge_through_tube_command
+tradeanim_bulge_through_tube: macro
+ db tradeanim_bulge_through_tube_command ; 28
+endm
+
+ enum tradeanim_give_trademon_sfx_command
+tradeanim_give_trademon_sfx: macro
+ db tradeanim_give_trademon_sfx_command ; 29
+endm
+
+ enum tradeanim_get_trademon_sfx_command
+tradeanim_get_trademon_sfx: macro
+ db tradeanim_get_trademon_sfx_command ; 2a
+endm
+
+ enum tradeanim_end_command
+tradeanim_end: macro
+ db tradeanim_end_command ; 2b
+endm
+
+ enum tradeanim_animate_frontpic_command
+tradeanim_animate_frontpic: macro
+ db tradeanim_animate_frontpic_command ; 2c
+endm
+
+ enum tradeanim_wait_96_command
+tradeanim_wait_96: macro
+ db tradeanim_wait_96_command ; 2d
+endm
+
+ enum tradeanim_wait_80_if_ot_egg_command
+tradeanim_wait_80_if_ot_egg: macro
+ db tradeanim_wait_80_if_ot_egg_command ; 2e
+endm
+
+ enum tradeanim_wait_180_if_ot_egg_command
+tradeanim_wait_180_if_ot_egg: macro
+ db tradeanim_wait_180_if_ot_egg_command ; 2f
+endm
+
+
+; Mobile
+ enum_start 1
+
+ enum mobiletradeanim_showgivemon_command
+mobiletradeanim_showgivemon: macro
+ db mobiletradeanim_showgivemon_command ; 01
+endm
+
+ enum mobiletradeanim_02_command
+mobiletradeanim_02: macro
+ db mobiletradeanim_02_command ; 02
+endm
+
+ enum mobiletradeanim_sendmon_command
+mobiletradeanim_sendmon: macro
+ db mobiletradeanim_sendmon_command ; 03
+endm
+
+__enum__ set $05
+
+ enum mobiletradeanim_05_command
+mobiletradeanim_05: macro
+ db mobiletradeanim_05_command ; 05
+endm
+
+ enum mobiletradeanim_06_command
+mobiletradeanim_06: macro
+ db mobiletradeanim_06_command ; 06
+endm
+
+ enum mobiletradeanim_07_command
+mobiletradeanim_07: macro
+ db mobiletradeanim_07_command ; 07
+endm
+
+ enum mobiletradeanim_receivemon_command
+mobiletradeanim_receivemon: macro
+ db mobiletradeanim_receivemon_command ; 08
+endm
+
+__enum__ set $0b
+
+ enum mobiletradeanim_showgetmon_command
+mobiletradeanim_showgetmon: macro
+ db mobiletradeanim_showgetmon_command ; 0b
+endm
+
+ enum mobiletradeanim_end_command
+mobiletradeanim_end: macro
+ db mobiletradeanim_end_command ; 0c
+endm
+
+ enum mobiletradeanim_showgtsgivemon_command
+mobiletradeanim_showgtsgivemon: macro
+ db mobiletradeanim_showgtsgivemon_command ; 0d
+endm
+
+ enum mobiletradeanim_showgtsgetmon_command
+mobiletradeanim_showgtsgetmon: macro
+ db mobiletradeanim_showgtsgetmon_command ; 0e
+endm
+
+ enum mobiletradeanim_0f_command
+mobiletradeanim_0f: macro
+ db mobiletradeanim_0f_command ; 0f
+endm
+
+ enum mobiletradeanim_10_command
+mobiletradeanim_10: macro
+ db mobiletradeanim_10_command ; 10
+endm
+
+ enum mobiletradeanim_11_command
+mobiletradeanim_11: macro
+ db mobiletradeanim_11_command ; 11
+endm
+
+ enum mobiletradeanim_12_command
+mobiletradeanim_12: macro
+ db mobiletradeanim_12_command ; 12
+endm
+
+ enum mobiletradeanim_showoddegg_command
+mobiletradeanim_showoddegg: macro
+ db mobiletradeanim_showoddegg_command ; 13
+endm