summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
Diffstat (limited to 'macros')
-rw-r--r--macros/code.asm13
-rwxr-xr-xmacros/coords.asm9
-rwxr-xr-xmacros/data.asm75
-rwxr-xr-xmacros/enum.asm10
-rw-r--r--macros/event.asm1058
-rwxr-xr-xmacros/flag.asm45
-rwxr-xr-xmacros/gfx.asm32
-rw-r--r--macros/legacy.asm328
-rw-r--r--macros/mobile.asm2
-rw-r--r--macros/move_anim.asm293
-rwxr-xr-xmacros/pals.asm8
-rw-r--r--macros/pic.asm4
-rwxr-xr-xmacros/rst.asm4
-rw-r--r--macros/scripts/audio.asm254
-rw-r--r--macros/scripts/battle_anims.asm302
-rw-r--r--macros/scripts/battle_commands.asm (renamed from macros/move_effect.asm)26
-rw-r--r--macros/scripts/events.asm262
-rw-r--r--macros/scripts/maps.asm4
-rw-r--r--macros/scripts/movement.asm431
-rwxr-xr-xmacros/scripts/trade_anims.asm391
-rw-r--r--macros/sound.asm263
-rwxr-xr-xmacros/wram.asm360
22 files changed, 1517 insertions, 2657 deletions
diff --git a/macros/code.asm b/macros/code.asm
index 9429884c..c92e7132 100644
--- a/macros/code.asm
+++ b/macros/code.asm
@@ -8,17 +8,6 @@ ln: MACRO ; r, hi, lo
ld \1, ((\2) & $f) << 4 | ((\3) & $f)
ENDM
-ldpixel: MACRO
-if _NARG >= 5
- lb \1, \2 * 8 + \4, \3 * 8 + \5
-else
- lb \1, \2 * 8, \3 * 8
-endc
-ENDM
-
-depixel EQUS "ldpixel de,"
-bcpixel EQUS "ldpixel bc,"
-
; Design patterns
jumptable: MACRO
@@ -62,7 +51,7 @@ calc_sine_wave: MACRO
; input: a = a signed 6-bit value
; output: a = d * sin(a * pi/32)
and %111111
- cp %100000
+ cp %100000
jr nc, .negative\@
call .apply\@
ld a, h
diff --git a/macros/coords.asm b/macros/coords.asm
index 0fbf96cc..5a87e1d3 100755
--- a/macros/coords.asm
+++ b/macros/coords.asm
@@ -28,8 +28,7 @@ dwcoord: MACRO
; x, y
rept _NARG / 2
dw (\2) * SCREEN_WIDTH + (\1) + wTilemap
- shift
- shift
+ shift 2
endr
ENDM
@@ -50,3 +49,9 @@ lda_coord: MACRO
ld a, [(\2) * SCREEN_WIDTH + (\1) + \3]
endc
ENDM
+
+menu_coords: MACRO
+; x1, y1, x2, y2
+ db \2, \1 ; start coords
+ db \4, \3 ; end coords
+ENDM
diff --git a/macros/data.asm b/macros/data.asm
index 32903b0f..5b9614fe 100755
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -1,7 +1,30 @@
; Value macros
+; Many arbitrary percentages are simple base-10 or base-16 values:
+; - 10 = 4 percent
+; - 15 = 6 percent
+; - $10 = 6 percent + 1 = 7 percent - 1
+; - 20 = 8 percent
+; - 25 = 10 percent
+; - 30 = 12 percent
+; - 40 = 16 percent
+; - 50 = 20 percent - 1
+; - 60 = 24 percent - 1
+; - 70 = 28 percent - 1
+; - 80 = 31 percent + 1 = 32 percent - 1
+; - 85 = 33 percent + 1 = 34 percent - 1
+; - 100 = 39 percent + 1 = 40 percent - 2
+; - 120 = 47 percent + 1
+; - 123 = 49 percent - 1
+; - 160 = 63 percent
+; - 180 = 71 percent - 1 = 70 percent + 2
+; - 200 = 79 percent - 1
+; - 230 = 90 percent + 1
percent EQUS "* $ff / 100"
+; e.g. 1 out_of 2 == 50 percent + 1 == $80
+out_of EQUS "* $100 /"
+
; Constant data (db, dw, dl) macros
dwb: MACRO
@@ -32,18 +55,14 @@ ENDM
dn: MACRO ; nybbles
rept _NARG / 2
db ((\1) << 4) | (\2)
- shift
- shift
+ shift 2
endr
ENDM
dc: MACRO ; "crumbs"
rept _NARG / 4
db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4)
- shift
- shift
- shift
- shift
+ shift 4
endr
ENDM
@@ -51,7 +70,7 @@ dx: MACRO
x = 8 * ((\1) - 1)
rept \1
db ((\2) >> x) & $ff
-x = x + -8
+x = x - 8
endr
ENDM
@@ -81,32 +100,22 @@ rept _NARG
endr
ENDM
+; Reverses FixPicBank in engine/gfx/load_pics.asm
+;
+; Takes the actual bank of the pic in the ROM and returns the "defined" bank
+; $1f -> $13
+; $20 -> $14
+; $2e -> $1f
+;
+; Otherwise, the ROM bank will match the defined bank.
dba_pic: MACRO ; dbw bank, address
- db BANK(\1) - PICS_FIX
+ db (BANK(\1) == $1f) * ($13 - $1f) \
+ + (BANK(\1) == $20) * ($14 - $20) \
+ + (BANK(\1) == $2e) * ($1f - $2e) \
+ + (BANK(\1))
dw \1
ENDM
-dbpixel: MACRO
-if _NARG >= 4
-; x tile, x pxl, y tile, y pxl
- db \1 * 8 + \3, \2 * 8 + \4
-else
-; x, y
- db \1 * 8, \2 * 8
-endc
-ENDM
-
-dsprite: MACRO
-; y tile, y pxl, x tile, x pxl, vtile offset, attributes
- db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6
-ENDM
-
-menu_coords: MACRO
-; x1, y1, x2, y2
- db \2, \1 ; start coords
- db \4, \3 ; end coords
-ENDM
-
bcd: MACRO
rept _NARG
dn ((\1) % 100) / 10, (\1) % 10
@@ -116,11 +125,9 @@ ENDM
sine_table: MACRO
; \1: amplitude
-
x = 0
- rept $20
- ; Round up.
- dw (sin(x) + (sin(x) & $ff)) >> 8
+rept 32
+ dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
x = x + (\1) * $40000
- endr
+endr
ENDM
diff --git a/macros/enum.asm b/macros/enum.asm
index 003445be..8fe5b534 100755
--- a/macros/enum.asm
+++ b/macros/enum.asm
@@ -9,7 +9,7 @@ endc
if _NARG >= 2
__enumdir__ = \2
else
-__enumdir__ = +1
+__enumdir__ = 1
endc
ENDM
@@ -41,11 +41,3 @@ shift_const: MACRO
\1 EQU (1 << const_value)
const_value = const_value + 1
ENDM
-
-; Enumerate strings
-
-define: MACRO
-if !DEF(\1)
-\1 EQUS \2
-endc
-ENDM
diff --git a/macros/event.asm b/macros/event.asm
deleted file mode 100644
index 359fe553..00000000
--- a/macros/event.asm
+++ /dev/null
@@ -1,1058 +0,0 @@
- 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
-;; Some ROM0 specials have a nonzero bank.
-;\1Special::
-;IF _NARG == 1
-; dba \1
-;ELSE
-; dbw \2, \1
-;ENDC
-;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 1 << MORN"
-checkday EQUS "checktime 1 << DAY"
-checknite EQUS "checktime 1 << 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
-
- 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
- dba \1 ; blockdata
- 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 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/flag.asm b/macros/flag.asm
deleted file mode 100755
index c2b307f0..00000000
--- a/macros/flag.asm
+++ /dev/null
@@ -1,45 +0,0 @@
-engine_flag_def: macro
- const \1
-\1_ADDR EQUS "\2"
-\1_BIT EQU \3
-endm
-
-engine_flag: macro
- dwb \1_ADDR, (1 << \1_BIT)
-endm
-
-CheckFlag: macro
- ld a, [\1_ADDR]
- bit \1_BIT, a
-endm
-
-CheckFlagHL: macro
- ld hl, \1_ADDR
- bit \1_BIT, [hl]
-endm
-
-SetFlag: macro
- ld hl, \1_ADDR
- set \1_BIT, [hl]
-endm
-
-ClearFlag: macro
- ld hl, \1_ADDR
- res \1_BIT, [hl]
-endm
-
-CheckFlagForceReuseA: macro
- bit \1_BIT, a
-endm
-
-CheckFlagForceReuseHL: macro
- bit \1_BIT, [hl]
-endm
-
-SetFlagForceReuseHL: macro
- set \1_BIT, [hl]
-endm
-
-ClearFlagForceReuseHL: macro
- res \1_BIT, [hl]
-endm
diff --git a/macros/gfx.asm b/macros/gfx.asm
index 2753373e..2c67cfc8 100755
--- a/macros/gfx.asm
+++ b/macros/gfx.asm
@@ -1,9 +1,7 @@
RGB: MACRO
rept _NARG / 3
dw palred (\1) + palgreen (\2) + palblue (\3)
- shift
- shift
- shift
+ shift 3
endr
ENDM
@@ -22,3 +20,31 @@ tile EQUS "+ LEN_2BPP_TILE *"
; example usage:
; INCBIN "foo.gbcpal", middle_colors
middle_colors EQUS "PAL_COLOR_SIZE, PAL_COLOR_SIZE * 2"
+
+dbpixel: MACRO
+if _NARG >= 4
+; x tile, y tile, x pixel, y pixel
+ db \1 * TILE_WIDTH + \3, \2 * TILE_WIDTH + \4
+else
+; x tile, y tile
+ db \1 * TILE_WIDTH, \2 * TILE_WIDTH
+endc
+ENDM
+
+ldpixel: MACRO
+if _NARG >= 5
+; register, x tile, y tile, x pixel, y pixel
+ lb \1, \2 * TILE_WIDTH + \4, \3 * TILE_WIDTH + \5
+else
+; register, x tile, y tile
+ lb \1, \2 * TILE_WIDTH, \3 * TILE_WIDTH
+endc
+ENDM
+
+depixel EQUS "ldpixel de,"
+bcpixel EQUS "ldpixel bc,"
+
+dbsprite: MACRO
+; x tile, y tile, x pixel, y pixel, vtile offset, attributes
+ db (\2 * TILE_WIDTH) % $100 + \4, (\1 * TILE_WIDTH) % $100 + \3, \5, \6
+ENDM
diff --git a/macros/legacy.asm b/macros/legacy.asm
new file mode 100644
index 00000000..59ce0d2f
--- /dev/null
+++ b/macros/legacy.asm
@@ -0,0 +1,328 @@
+; Legacy support for old pokecrystal/pokegold.
+; Allows porting scripts with as few edits as possible.
+; Legacy support not in this file can be found by looking for the keyword: "LEGACY"
+
+; macros/rst.asm
+callba EQUS "farcall"
+callab EQUS "callfar"
+
+; macros/gfx.asm
+dsprite: MACRO
+ dbsprite \2, \4, \1, \3, \5, \6
+ENDM
+
+; macros/scripts/audio.asm
+__ EQU 0
+CC EQU 13
+
+musicheader: MACRO
+ channel_count \1
+ channel \2, \3
+ENDM
+
+sound: MACRO
+ note \1, \2
+ db \3
+ dw \4
+ENDM
+
+noise: MACRO
+ note \1, \2
+ db \3
+ db \4
+ENDM
+
+notetype: MACRO
+IF _NARG >= 2
+ note_type \1, \2 >> 4, \2 & $0f
+ELSE
+ note_type \1
+ENDC
+ENDM
+
+pitchoffset: MACRO
+ transpose \1, \2 - 1
+ENDM
+
+dutycycle EQUS "duty_cycle"
+
+intensity: MACRO
+ volume_envelope \1 >> 4, \1 & $0f
+ENDM
+
+soundinput: MACRO
+ pitch_sweep \1 >> 4, \1 & $0f
+ENDM
+
+unknownmusic0xde EQUS "sound_duty"
+sound_duty: MACRO
+ db $de
+IF _NARG == 4
+ db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6)
+ELSE
+ db \1
+ENDC
+ENDM
+
+togglesfx EQUS "toggle_sfx"
+
+slidepitchto: MACRO
+ pitch_slide \1, (8 - \2), \3
+ENDM
+
+togglenoise EQUS "toggle_noise"
+
+panning: MACRO
+ force_stereo_panning ((\1 >> 4) & 1), (\1 & 1)
+ENDM
+
+tone EQUS "pitch_offset"
+restartchannel EQUS "restart_channel"
+newsong EQUS "new_song"
+sfxpriorityon EQUS "sfx_priority_on"
+sfxpriorityoff EQUS "sfx_priority_off"
+
+stereopanning: MACRO
+ stereo_panning ((\1 >> 4) & 1), (\1 & 1)
+ENDM
+
+sfxtogglenoise EQUS "sfx_toggle_noise"
+setcondition EQUS "set_condition"
+jumpif EQUS "sound_jump_if"
+jumpchannel EQUS "sound_jump"
+loopchannel EQUS "sound_loop"
+callchannel EQUS "sound_call"
+endchannel EQUS "sound_ret"
+
+; macros/scripts/events.asm
+
+checkmorn EQUS "checktime MORN"
+checkday EQUS "checktime DAY"
+checknite EQUS "checktime NITE"
+
+jump EQUS "sjump"
+farjump EQUS "farsjump"
+priorityjump EQUS "prioritysjump"
+ptcall EQUS "memcall"
+ptjump EQUS "memjump"
+ptpriorityjump EQUS "stopandsjump"
+ptcallasm EQUS "memcallasm"
+
+if_equal EQUS "ifequal"
+if_not_equal EQUS "ifnotequal"
+if_greater_than EQUS "ifgreater"
+if_less_than EQUS "ifless"
+end_all EQUS "endall"
+
+checkmaptriggers EQUS "checkmapscene"
+domaptrigger EQUS "setmapscene"
+checktriggers EQUS "checkscene"
+dotrigger EQUS "setscene"
+
+faceperson EQUS "faceobject"
+moveperson EQUS "moveobject"
+writepersonxy EQUS "writeobjectxy"
+spriteface EQUS "turnobject"
+objectface EQUS "turnobject"
+applymovement2 EQUS "applymovementlasttalked"
+
+writebyte EQUS "setval"
+addvar EQUS "addval"
+copybytetovar EQUS "readmem"
+copyvartobyte EQUS "writemem"
+checkcode EQUS "readvar"
+writevarcode EQUS "writevar"
+writecode EQUS "loadvar"
+
+MEM_BUFFER_0 EQUS "STRING_BUFFER_3"
+MEM_BUFFER_1 EQUS "STRING_BUFFER_4"
+MEM_BUFFER_2 EQUS "STRING_BUFFER_5"
+
+vartomem EQUS "getnum"
+mapnametotext EQUS "getcurlandmarkname"
+readcoins EQUS "getcoins"
+
+pokenamemem: MACRO
+ getmonname \2, \1
+ENDM
+
+itemtotext: MACRO
+ getitemname \2, \1
+ENDM
+
+landmarktotext: MACRO
+ getlandmarkname \2, \1
+ENDM
+
+trainertotext: MACRO
+ gettrainername \3, \1, \2
+ENDM
+
+trainerclassname: MACRO
+ gettrainerclassname \2, \1
+ENDM
+
+name: MACRO
+ getname \3, \1, \2
+ENDM
+
+stringtotext: MACRO
+ getstring \2, \1
+ENDM
+
+readmoney: MACRO
+ getmoney \2, \1
+ENDM
+
+RAM2MEM EQUS "getnum"
+loadfont EQUS "opentext"
+loadmenudata EQUS "loadmenu"
+loadmenuheader EQUS "loadmenu"
+writebackup EQUS "closewindow"
+interpretmenu EQUS "_2dmenu"
+interpretmenu2 EQUS "verticalmenu"
+buttonsound EQUS "promptbutton"
+battlecheck EQUS "randomwildmon"
+loadtrainerdata EQUS "loadtemptrainer"
+loadpokedata EQUS "loadwildmon"
+returnafterbattle EQUS "reloadmapafterbattle"
+trainerstatus EQUS "trainerflagaction"
+talkaftercancel EQUS "endifjustbattled"
+talkaftercheck EQUS "checkjustbattled"
+playrammusic EQUS "encountermusic"
+reloadmapmusic EQUS "dontrestartmapmusic"
+resetfuncs EQUS "endall"
+displaylocation EQUS "landmarktotext"
+givepokeitem EQUS "givepokemail"
+checkpokeitem EQUS "checkpokemail"
+passtoengine EQUS "autoinput"
+verbosegiveitem2 EQUS "verbosegiveitemvar"
+loadbytec2cf EQUS "writeunusedbytebuffer"
+
+; macros/scripts/maps.asm
+
+mapconst: MACRO
+ map_const \1, \3, \2
+ENDM
+
+maptrigger EQUS "scene_script"
+
+warp_def: MACRO
+ warp_event \2, \1, \4, \3
+ENDM
+
+xy_trigger: MACRO
+ coord_event \3, \2, \1, \5
+ENDM
+
+signpost: MACRO
+ bg_event \2, \1, \3, \4
+ENDM
+
+person_event: MACRO
+; object_event \3, \2, \1, \4, \5, \6, \7, \8, \9, \10, \11, \12, \13
+ db \1, \2 + 4, \3 + 4, \4
+ dn \6, \5
+ db \7, \8
+ shift
+ dn \8, \9
+ shift
+ db \9
+ shift
+ dw \9
+ shift
+ dw \9
+ENDM
+
+PERSONTYPE_SCRIPT EQUS "OBJECTTYPE_SCRIPT"
+PERSONTYPE_ITEMBALL EQUS "OBJECTTYPE_ITEMBALL"
+PERSONTYPE_TRAINER EQUS "OBJECTTYPE_TRAINER"
+
+; macros/scripts/movement.asm
+
+show_person EQUS "show_object"
+hide_person EQUS "hide_object"
+remove_person EQUS "remove_object"
+
+turn_head_down EQUS "turn_head DOWN"
+turn_head_up EQUS "turn_head UP"
+turn_head_left EQUS "turn_head LEFT"
+turn_head_right EQUS "turn_head RIGHT"
+turn_step_down EQUS "turn_step DOWN"
+turn_step_up EQUS "turn_step UP"
+turn_step_left EQUS "turn_step LEFT"
+turn_step_right EQUS "turn_step RIGHT"
+slow_step_down EQUS "slow_step DOWN"
+slow_step_up EQUS "slow_step UP"
+slow_step_left EQUS "slow_step LEFT"
+slow_step_right EQUS "slow_step RIGHT"
+step_down EQUS "step DOWN"
+step_up EQUS "step UP"
+step_left EQUS "step LEFT"
+step_right EQUS "step RIGHT"
+big_step_down EQUS "big_step DOWN"
+big_step_up EQUS "big_step UP"
+big_step_left EQUS "big_step LEFT"
+big_step_right EQUS "big_step RIGHT"
+slow_slide_step_down EQUS "slow_slide_step DOWN"
+slow_slide_step_up EQUS "slow_slide_step UP"
+slow_slide_step_left EQUS "slow_slide_step LEFT"
+slow_slide_step_right EQUS "slow_slide_step RIGHT"
+slide_step_down EQUS "slide_step DOWN"
+slide_step_up EQUS "slide_step UP"
+slide_step_left EQUS "slide_step LEFT"
+slide_step_right EQUS "slide_step RIGHT"
+fast_slide_step_down EQUS "fast_slide_step DOWN"
+fast_slide_step_up EQUS "fast_slide_step UP"
+fast_slide_step_left EQUS "fast_slide_step LEFT"
+fast_slide_step_right EQUS "fast_slide_step RIGHT"
+turn_away_down EQUS "turn_away DOWN"
+turn_away_up EQUS "turn_away UP"
+turn_away_left EQUS "turn_away LEFT"
+turn_away_right EQUS "turn_away RIGHT"
+turn_in_down EQUS "turn_in DOWN"
+turn_in_up EQUS "turn_in UP"
+turn_in_left EQUS "turn_in LEFT"
+turn_in_right EQUS "turn_in RIGHT"
+turn_waterfall_down EQUS "turn_waterfall DOWN"
+turn_waterfall_up EQUS "turn_waterfall UP"
+turn_waterfall_left EQUS "turn_waterfall LEFT"
+turn_waterfall_right EQUS "turn_waterfall RIGHT"
+slow_jump_step_down EQUS "slow_jump_step DOWN"
+slow_jump_step_up EQUS "slow_jump_step UP"
+slow_jump_step_left EQUS "slow_jump_step LEFT"
+slow_jump_step_right EQUS "slow_jump_step RIGHT"
+jump_step_down EQUS "jump_step DOWN"
+jump_step_up EQUS "jump_step UP"
+jump_step_left EQUS "jump_step LEFT"
+jump_step_right EQUS "jump_step RIGHT"
+fast_jump_step_down EQUS "fast_jump_step DOWN"
+fast_jump_step_up EQUS "fast_jump_step UP"
+fast_jump_step_left EQUS "fast_jump_step LEFT"
+fast_jump_step_right EQUS "fast_jump_step RIGHT"
+
+step_sleep_1 EQUS "step_sleep 1"
+step_sleep_2 EQUS "step_sleep 2"
+step_sleep_3 EQUS "step_sleep 3"
+step_sleep_4 EQUS "step_sleep 4"
+step_sleep_5 EQUS "step_sleep 5"
+step_sleep_6 EQUS "step_sleep 6"
+step_sleep_7 EQUS "step_sleep 7"
+step_sleep_8 EQUS "step_sleep 8"
+
+; macros/scripts/text.asm
+text_from_ram EQUS "text_ram"
+start_asm EQUS "text_asm"
+deciram EQUS "text_decimal"
+interpret_data EQUS "text_pause"
+limited_interpret_data EQUS "text_dots"
+text_waitbutton EQUS "text_promptbutton"
+link_wait_button EQUS "text_linkpromptbutton"
+text_linkwaitbutton EQUS "text_linkpromptbutton"
+current_day EQUS "text_today"
+text_jump EQUS "text_far"
+
+; macros/scripts/battle_anims.asm
+anim_enemyfeetobj EQUS "anim_battlergfx_2row"
+anim_playerheadobj EQUS "anim_battlergfx_1row"
+anim_clearsprites EQUS "anim_keepsprites"
diff --git a/macros/mobile.asm b/macros/mobile.asm
deleted file mode 100644
index 06b40d69..00000000
--- a/macros/mobile.asm
+++ /dev/null
@@ -1,2 +0,0 @@
-; Many mobile functions were dummied out in localization.
-mobile EQUS "ret"
diff --git a/macros/move_anim.asm b/macros/move_anim.asm
deleted file mode 100644
index 8df511b2..00000000
--- a/macros/move_anim.asm
+++ /dev/null
@@ -1,293 +0,0 @@
-anim_wait: macro
-if \1 >= $d0
- flip out
-endc
- db \1
- endm
-
- enum_start $d0
-
- enum anim_obj_command ; d0
-anim_obj: macro
- db anim_obj_command
- db \1 ; object
- db \2 ; x
- db \3 ; y
- db \4 ; 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_battlergfx_2row_command ; d9
-anim_battlergfx_2row: macro
- db anim_battlergfx_2row_command
- endm
-
- enum anim_battlergfx_1row_command ; da
-anim_battlergfx_1row: macro
- db anim_battlergfx_1row_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_keepsprites_command ; f4
-anim_keepsprites: macro
- db anim_keepsprites_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/pals.asm b/macros/pals.asm
deleted file mode 100755
index d45dae3f..00000000
--- a/macros/pals.asm
+++ /dev/null
@@ -1,8 +0,0 @@
-tilepal: MACRO
-; pals
-rept _NARG / 2
- dn PAL_BG_\2, PAL_BG_\1
- shift
- shift
-endr
-endm
diff --git a/macros/pic.asm b/macros/pic.asm
deleted file mode 100644
index a01ce7a3..00000000
--- a/macros/pic.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-add_pic: MACRO
- db BANK(\1) - $36
- dw \1
-ENDM
diff --git a/macros/rst.asm b/macros/rst.asm
index 773a5c60..c8b80aab 100755
--- a/macros/rst.asm
+++ b/macros/rst.asm
@@ -1,7 +1,3 @@
-FarCall EQU $08
-Bankswitch EQU $10
-JumpTable EQU $28
-
farcall: MACRO ; bank, address
ld a, BANK(\1)
ld hl, \1
diff --git a/macros/scripts/audio.asm b/macros/scripts/audio.asm
index fc9e3397..6f87bc3e 100644
--- a/macros/scripts/audio.asm
+++ b/macros/scripts/audio.asm
@@ -1,48 +1,78 @@
-musicheader: MACRO
- ; number of tracks, track idx, address
- dbw ((\1 - 1) << 6) + (\2 - 1), \3
+channel_count: MACRO
+_num_channels = \1 - 1
+ENDM
+
+channel: MACRO
+ dn (_num_channels << 2), \1 - 1 ; channel id
+ dw \2 ; address
+_num_channels = 0
ENDM
note: MACRO
- dn (\1), (\2) - 1
+ dn (\1), (\2) - 1 ; pitch, length
+ENDM
+
+drum_note: MACRO
+ note \1, \2 ; drum instrument, length
ENDM
-sound: MACRO
- note \1, \2
- db \3 ; intensity
+rest: MACRO
+ note 0, \1 ; length
+ENDM
+
+square_note: MACRO
+ db \1 ; length
+ IF \3 < 0
+ dn \2, %1000 | (\3 * -1) ; volume envelope
+ ELSE
+ dn \2, \3 ; volume envelope
+ ENDC
dw \4 ; frequency
ENDM
-noise: MACRO
- note \1, \2 ; duration
- db \3 ; intensity
+noise_note: MACRO
+ db \1 ; length
+ IF \3 < 0
+ dn \2, %1000 | (\3 * -1) ; volume envelope
+ ELSE
+ dn \2, \3 ; volume envelope
+ ENDC
db \4 ; frequency
ENDM
; MusicCommands indexes (see audio/engine.asm)
- enum_start $d0, +8
+ enum_start $d0, 8
FIRST_MUSIC_CMD EQU __enum__
enum octave_cmd ; $d0
octave: MACRO
- db octave_cmd | 8 - (\1)
+ db octave_cmd | 8 - (\1) ; octave
ENDM
-__enumdir__ = +1
+__enumdir__ = 1
+
+ enum note_type_cmd ; $d8
+note_type: MACRO
+ db note_type_cmd
+ db \1 ; note length
+ IF _NARG >= 2
+ IF \3 < 0
+ dn \2, %1000 | (\3 * -1) ; volume envelope
+ ELSE
+ dn \2, \3 ; volume envelope
+ ENDC
+ ENDC
+ENDM
- enum notetype_cmd ; $d8
-notetype: MACRO
- db notetype_cmd
- db \1 ; note_length
-if _NARG >= 2
- db \2 ; intensity
-endc
+; only valid on the noise channel
+drum_speed: MACRO
+ note_type \1 ; note length
ENDM
- enum pitchoffset_cmd ; $d9
-pitchoffset: MACRO
- db pitchoffset_cmd
- dn \1, \2 - 1 ; octave, key
+ enum transpose_cmd ; $d9
+transpose: MACRO
+ db transpose_cmd
+ dn \1, \2 ; num octaves, num pitches
ENDM
enum tempo_cmd ; $da
@@ -51,51 +81,59 @@ tempo: MACRO
bigdw \1 ; tempo
ENDM
- enum dutycycle_cmd ; $db
-dutycycle: MACRO
- db dutycycle_cmd
- db \1 ; duty_cycle
+ enum duty_cycle_cmd ; $db
+duty_cycle: MACRO
+ db duty_cycle_cmd
+ db \1 ; duty cycle
ENDM
- enum intensity_cmd ; $dc
-intensity: MACRO
- db intensity_cmd
- db \1 ; intensity
+ enum volume_envelope_cmd ; $dc
+volume_envelope: MACRO
+ db volume_envelope_cmd
+ IF \2 < 0
+ dn \1, %1000 | (\2 * -1) ; volume envelope
+ ELSE
+ dn \1, \2 ; volume envelope
+ ENDC
ENDM
- enum soundinput_cmd ; $dd
-soundinput: MACRO
- db soundinput_cmd
- db \1 ; input
+ enum pitch_sweep_cmd ; $dd
+pitch_sweep: MACRO
+ db pitch_sweep_cmd
+ IF \2 < 0
+ dn \1, %1000 | (\2 * -1) ; pitch sweep
+ ELSE
+ dn \1, \2 ; pitch sweep
+ ENDC
ENDM
- enum sound_duty_cmd ; $de
-sound_duty: MACRO
- db sound_duty_cmd
-if _NARG == 4
- db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence
-else
- db \1 ; LEGACY: Support for one-byte duty value
-endc
+ enum duty_cycle_pattern_cmd ; $de
+duty_cycle_pattern: MACRO
+ db duty_cycle_pattern_cmd
+ db (\1 << 6) | (\2 << 4) | (\3 << 2) | (\4 << 0) ; duty cycle pattern
ENDM
- enum togglesfx_cmd ; $df
-togglesfx: MACRO
- db togglesfx_cmd
+ enum toggle_sfx_cmd ; $df
+toggle_sfx: MACRO
+ db toggle_sfx_cmd
ENDM
- enum slidepitchto_cmd ; $e0
-slidepitchto: MACRO
- db slidepitchto_cmd
+ enum pitch_slide_cmd ; $e0
+pitch_slide: MACRO
+ db pitch_slide_cmd
db \1 - 1 ; duration
- dn \2, \3 ; octave, pitch
+ dn 8 - \2, \3 % 12 ; octave, pitch
ENDM
enum vibrato_cmd ; $e1
vibrato: MACRO
db vibrato_cmd
db \1 ; delay
- db \2 ; extent
+ IF _NARG > 2
+ dn \2, \3 ; extent, rate
+ ELSE
+ db \2 ; LEGACY: Support for 1-arg extent
+ ENDC
ENDM
enum unknownmusic0xe2_cmd ; $e2
@@ -104,28 +142,34 @@ unknownmusic0xe2: MACRO
db \1 ; unknown
ENDM
- enum togglenoise_cmd ; $e3
-togglenoise: MACRO
- db togglenoise_cmd
- db \1 ; id
+ enum toggle_noise_cmd ; $e3
+toggle_noise: MACRO
+ db toggle_noise_cmd
+ IF _NARG > 0
+ db \1 ; drum kit
+ ENDC
ENDM
- enum panning_cmd ; $e4
-panning: MACRO
- db panning_cmd
- db \1 ; tracks
+ enum force_stereo_panning_cmd ; $e4
+force_stereo_panning: MACRO
+ db force_stereo_panning_cmd
+ dn %1111 * (1 && \1), %1111 * (1 && \2) ; left enable, right enable
ENDM
enum volume_cmd ; $e5
volume: MACRO
db volume_cmd
- db \1 ; volume
+ IF _NARG > 1
+ dn \1, \2 ; left volume, right volume
+ ELSE
+ db \1 ; LEGACY: Support for 1-arg volume
+ ENDC
ENDM
- enum tone_cmd ; $e6
-tone: MACRO
- db tone_cmd
- bigdw \1 ; tone
+ enum pitch_offset_cmd ; $e6
+pitch_offset: MACRO
+ db pitch_offset_cmd
+ bigdw \1 ; pitch offset
ENDM
enum unknownmusic0xe7_cmd ; $e7
@@ -143,29 +187,29 @@ ENDM
enum tempo_relative_cmd ; $e9
tempo_relative: MACRO
db tempo_relative_cmd
- bigdw \1 ; value
+ bigdw \1 ; tempo adjustment
ENDM
- enum restartchannel_cmd ; $ea
-restartchannel: MACRO
- db restartchannel_cmd
+ enum restart_channel_cmd ; $ea
+restart_channel: MACRO
+ db restart_channel_cmd
dw \1 ; address
ENDM
- enum newsong_cmd ; $eb
-newsong: MACRO
- db newsong_cmd
+ enum new_song_cmd ; $eb
+new_song: MACRO
+ db new_song_cmd
bigdw \1 ; id
ENDM
- enum sfxpriorityon_cmd ; $ec
-sfxpriorityon: MACRO
- db sfxpriorityon_cmd
+ enum sfx_priority_on_cmd ; $ec
+sfx_priority_on: MACRO
+ db sfx_priority_on_cmd
ENDM
- enum sfxpriorityoff_cmd ; $ed
-sfxpriorityoff: MACRO
- db sfxpriorityoff_cmd
+ enum sfx_priority_off_cmd ; $ed
+sfx_priority_off: MACRO
+ db sfx_priority_off_cmd
ENDM
enum unknownmusic0xee_cmd ; $ee
@@ -174,16 +218,18 @@ unknownmusic0xee: MACRO
dw \1 ; address
ENDM
- enum stereopanning_cmd ; $ef
-stereopanning: MACRO
- db stereopanning_cmd
- db \1 ; tracks
+ enum stereo_panning_cmd ; $ef
+stereo_panning: MACRO
+ db stereo_panning_cmd
+ dn %1111 * (1 && \1), %1111 * (1 && \2) ; left enable, right enable
ENDM
- enum sfxtogglenoise_cmd ; $f0
-sfxtogglenoise: MACRO
- db sfxtogglenoise_cmd
- db \1 ; id
+ enum sfx_toggle_noise_cmd ; $f0
+sfx_toggle_noise: MACRO
+ db sfx_toggle_noise_cmd
+ IF _NARG > 0
+ db \1 ; drum kit
+ ENDC
ENDM
enum music0xf1_cmd ; $f1
@@ -231,39 +277,39 @@ unknownmusic0xf9: MACRO
db unknownmusic0xf9_cmd
ENDM
- enum setcondition_cmd ; $fa
-setcondition: MACRO
- db setcondition_cmd
+ enum set_condition_cmd ; $fa
+set_condition: MACRO
+ db set_condition_cmd
db \1 ; condition
ENDM
- enum jumpif_cmd ; $fb
-jumpif: MACRO
- db jumpif_cmd
+ enum sound_jump_if_cmd ; $fb
+sound_jump_if: MACRO
+ db sound_jump_if_cmd
db \1 ; condition
dw \2 ; address
ENDM
- enum jumpchannel_cmd ; $fc
-jumpchannel: MACRO
- db jumpchannel_cmd
+ enum sound_jump_cmd ; $fc
+sound_jump: MACRO
+ db sound_jump_cmd
dw \1 ; address
ENDM
- enum loopchannel_cmd ; $fd
-loopchannel: MACRO
- db loopchannel_cmd
+ enum sound_loop_cmd ; $fd
+sound_loop: MACRO
+ db sound_loop_cmd
db \1 ; count
dw \2 ; address
ENDM
- enum callchannel_cmd ; $fe
-callchannel: MACRO
- db callchannel_cmd
+ enum sound_call_cmd ; $fe
+sound_call: MACRO
+ db sound_call_cmd
dw \1 ; address
ENDM
- enum endchannel_cmd ; $ff
-endchannel: MACRO
- db endchannel_cmd
+ enum sound_ret_cmd ; $ff
+sound_ret: MACRO
+ db sound_ret_cmd
ENDM
diff --git a/macros/scripts/battle_anims.asm b/macros/scripts/battle_anims.asm
new file mode 100644
index 00000000..adb48e4a
--- /dev/null
+++ b/macros/scripts/battle_anims.asm
@@ -0,0 +1,302 @@
+anim_wait: MACRO
+if \1 >= $d0
+ fail "anim_wait argument must be less than $d0."
+endc
+ db \1
+ENDM
+
+; BattleAnimCommands indexes (see engine/battle_anims/anim_commands.asm)
+ enum_start $d0
+
+ enum anim_obj_command ; $d0
+anim_obj: MACRO
+ db anim_obj_command
+if _NARG <= 4
+ db \1 ; object
+ db \2 ; x
+ db \3 ; y
+ db \4 ; param
+else
+; LEGACY: Support the tile+offset format
+ db \1 ; object
+ db (\2) * 8 + (\3) ; x_tile, x
+ db (\4) * 8 + (\5) ; y_tile, y
+ db \6 ; param
+endc
+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 ; object_id
+ENDM
+
+ enum anim_setobj_command ; $d7
+anim_setobj: MACRO
+ db anim_setobj_command
+ db \1 ; object_id
+ db \2 ; value
+ENDM
+
+ enum anim_incbgeffect_command ; $d8
+anim_incbgeffect: MACRO
+ db anim_incbgeffect_command
+ db \1 ; effect
+ENDM
+
+ enum anim_battlergfx_2row_command ; $d9
+anim_battlergfx_2row: MACRO
+ db anim_battlergfx_2row_command
+ENDM
+
+ enum anim_battlergfx_1row_command ; $da
+anim_battlergfx_1row: MACRO
+ db anim_battlergfx_1row_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 ; sound_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 ; jumptable index
+ db \3 ; battle turn
+ 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_keepsprites_command ; $f4
+anim_keepsprites: MACRO
+ db anim_keepsprites_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/move_effect.asm b/macros/scripts/battle_commands.asm
index d3761c9a..919d6e00 100644
--- a/macros/move_effect.asm
+++ b/macros/scripts/battle_commands.asm
@@ -1,10 +1,10 @@
-command: macro
+command: MACRO
enum \1_command
-\1 equs "db \1_command"
-endm
+\1 EQUS "db \1_command"
+ENDM
+; BattleCommandPointers indexes (see data/battle/effect_command_pointers.asm)
enum_start 1
-
command checkturn ; 01
command checkobedience ; 02
command usedmovetext ; 03
@@ -15,13 +15,13 @@ endm
command damagevariation ; 08
command checkhit ; 09
command lowersub ; 0a
- command hittargetnosub ; 0b
+ command moveanimnosub ; 0b
command raisesub ; 0c
command failuretext ; 0d
- command checkfaint ; 0e
+ command applydamage ; 0e
command criticaltext ; 0f
command supereffectivetext ; 10
- command checkdestinybond ; 11
+ command checkfaint ; 11
command buildopponentrage ; 12
command poisontarget ; 13
command sleeptarget ; 14
@@ -169,18 +169,18 @@ endm
command ragedamage ; a2
command resettypematchup ; a3
command allstatsup ; a4
- command effect0xa5 ; a5
+ command bidefailtext ; a5
command raisesubnoanim ; a6
command lowersubnoanim ; a7
- command effect0xa8 ; a8
+ command beatupfailtext ; a8
command clearmissdamage ; a9
command movedelay ; aa
- command hittarget ; ab
+ command moveanim ; ab
command tristatuschance ; ac
command supereffectivelooptext ; ad
command startloop ; ae
command curl ; af
- enum_start -1, -1
- command endmove
- command endturn
+ enum_start $fe
+ command endturn ; fe
+ command endmove ; ff
diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm
index 3a6578d7..3a3cf6e3 100644
--- a/macros/scripts/events.asm
+++ b/macros/scripts/events.asm
@@ -13,27 +13,27 @@ farscall: MACRO
dba \1
ENDM
- enum ptcall_command ; $02
-ptcall: MACRO
- db ptcall_command
+ enum memcall_command ; $02
+memcall: MACRO
+ db memcall_command
dw \1 ; pointer
ENDM
- enum jump_command ; $03
-jump: MACRO
- db jump_command
+ enum sjump_command ; $03
+sjump: MACRO
+ db sjump_command
dw \1 ; pointer
ENDM
- enum farjump_command ; $04
-farjump: MACRO
- db farjump_command
+ enum farsjump_command ; $04
+farsjump: MACRO
+ db farsjump_command
dba \1
ENDM
- enum ptjump_command ; $05
-ptjump: MACRO
- db ptjump_command
+ enum memjump_command ; $05
+memjump: MACRO
+ db memjump_command
dw \1 ; pointer
ENDM
@@ -101,9 +101,9 @@ special: MACRO
dw (\1Special - SpecialsPointers) / 3
ENDM
- enum ptcallasm_command ; $10
-ptcallasm: MACRO
- db ptcallasm_command
+ enum memcallasm_command ; $10
+memcallasm: MACRO
+ db memcallasm_command
dw \1 ; asm
ENDM
@@ -131,15 +131,15 @@ setscene: MACRO
db \1 ; scene_id
ENDM
- enum writebyte_command ; $15
-writebyte: MACRO
- db writebyte_command
+ enum setval_command ; $15
+setval: MACRO
+ db setval_command
db \1 ; value
ENDM
- enum addvar_command ; $16
-addvar: MACRO
- db addvar_command
+ enum addval_command ; $16
+addval: MACRO
+ db addval_command
db \1 ; value
ENDM
@@ -154,42 +154,47 @@ checkver: MACRO
db checkver_command
ENDM
- enum copybytetovar_command ; $19
-copybytetovar: MACRO
- db copybytetovar_command
+ enum readmem_command ; $19
+readmem: MACRO
+ db readmem_command
dw \1 ; address
ENDM
- enum copyvartobyte_command ; $1a
-copyvartobyte: MACRO
- db copyvartobyte_command
+ enum writemem_command ; $1a
+writemem: MACRO
+ db writemem_command
dw \1 ; address
ENDM
- enum loadvar_command ; $1b
-loadvar: MACRO
- db loadvar_command
+ enum loadmem_command ; $1b
+loadmem: MACRO
+ db loadmem_command
dw \1 ; address
db \2 ; value
ENDM
- enum checkcode_command ; $1c
-checkcode: MACRO
- db checkcode_command
+ enum readvar_command ; $1c
+readvar: MACRO
+ db readvar_command
db \1 ; variable_id
ENDM
- enum writevarcode_command ; $1d
-writevarcode: MACRO
- db writevarcode_command
+ enum writevar_command ; $1d
+writevar: MACRO
+ db writevar_command
db \1 ; variable_id
ENDM
- enum writecode_command ; $1e
-writecode: MACRO
- db writecode_command
+ enum loadvar_command ; $1e
+loadvar: MACRO
+if STRIN("\1", "VAR_") != 1
+; LEGACY: Support for the old name of "loadmem"
+ loadmem \1, \2
+else
+ db loadvar_command
db \1 ; variable_id
db \2 ; value
+endc
ENDM
enum giveitem_command ; $1f
@@ -400,58 +405,58 @@ warp: MACRO
db \3 ; y
ENDM
- enum readmoney_command ; $3d
-readmoney: MACRO
- db readmoney_command
- db \1 ; account
- db \2 ; memory
+ enum getmoney_command ; $3d
+getmoney: MACRO
+ db getmoney_command
+ db \2 ; account
+ db \1 ; string_buffer
ENDM
- enum readcoins_command ; $3e
-readcoins: MACRO
- db readcoins_command
- db \1 ; memory
+ enum getcoins_command ; $3e
+getcoins: MACRO
+ db getcoins_command
+ db \1 ; string_buffer
ENDM
- enum vartomem_command ; $3f
-vartomem: MACRO
- db vartomem_command
- db \1 ; memory
+ enum getnum_command ; $3f
+getnum: MACRO
+ db getnum_command
+ db \1 ; string_buffer
ENDM
- enum pokenamemem_command ; $40
-pokenamemem: MACRO
- db pokenamemem_command
- db \1 ; pokemon
- db \2 ; memory
+ enum getmonname_command ; $40
+getmonname: MACRO
+ db getmonname_command
+ db \2 ; pokemon
+ db \1 ; string_buffer
ENDM
- enum itemtotext_command ; $41
-itemtotext: MACRO
- db itemtotext_command
- db \1 ; item
- db \2 ; memory
+ enum getitemname_command ; $41
+getitemname: MACRO
+ db getitemname_command
+ db \2 ; item
+ db \1 ; string_buffer
ENDM
- enum mapnametotext_command ; $42
-mapnametotext: MACRO
- db mapnametotext_command
- db \1 ; memory
+ enum getcurlandmarkname_command ; $42
+getcurlandmarkname: MACRO
+ db getcurlandmarkname_command
+ db \1 ; string_buffer
ENDM
- enum trainertotext_command ; $43
-trainertotext: MACRO
- db trainertotext_command
- db \1 ; trainer_id
+ enum gettrainername_command ; $43
+gettrainername: MACRO
+ db gettrainername_command
db \2 ; trainer_group
- db \3 ; memory
+ db \3 ; trainer_id
+ db \1 ; string_buffer
ENDM
- enum stringtotext_command ; $44
-stringtotext: MACRO
- db stringtotext_command
- dw \1 ; text_pointer
- db \2 ; memory
+ enum getstring_command ; $44
+getstring: MACRO
+ db getstring_command
+ dw \2 ; text_pointer
+ db \1 ; string_buffer
ENDM
enum itemnotify_command ; $45
@@ -484,9 +489,9 @@ closetext: MACRO
db closetext_command
ENDM
- enum loadbytec2cf_command ; $4a
-loadbytec2cf: MACRO
- db loadbytec2cf_command
+ enum writeunusedbytebuffer_command ; $4a
+writeunusedbytebuffer: MACRO
+ db writeunusedbytebuffer_command
db \1 ; byte
ENDM
@@ -542,9 +547,9 @@ waitbutton: MACRO
db waitbutton_command
ENDM
- enum buttonsound_command ; $54
-buttonsound: MACRO
- db buttonsound_command
+ enum promptbutton_command ; $54
+promptbutton: MACRO
+ db promptbutton_command
ENDM
enum pokepic_command ; $55
@@ -578,9 +583,9 @@ randomwildmon: MACRO
db randomwildmon_command
ENDM
- enum loadmemtrainer_command ; $5b
-loadmemtrainer: MACRO
- db loadmemtrainer_command
+ enum loadtemptrainer_command ; $5b
+loadtemptrainer: MACRO
+ db loadtemptrainer_command
ENDM
enum loadwildmon_command ; $5c
@@ -616,7 +621,7 @@ ENDM
enum trainertext_command ; $61
trainertext: MACRO
db trainertext_command
- db \1 ; which_text
+ db \1 ; text_id
ENDM
enum trainerflagaction_command ; $62
@@ -660,9 +665,9 @@ applymovement: MACRO
dw \2 ; data
ENDM
- enum applymovement2_command ; $69
-applymovement2: MACRO
- db applymovement2_command
+ enum applymovementlasttalked_command ; $69
+applymovementlasttalked: MACRO
+ db applymovementlasttalked_command
dw \1 ; data
ENDM
@@ -757,11 +762,10 @@ earthquake: MACRO
db \1 ; param
ENDM
- enum changemap_command ; $78
-changemap: MACRO
- db changemap_command
- db \1 ; map_bank
- dw \2 ; map_data_pointer
+ enum changemapblocks_command ; $78
+changemapblocks: MACRO
+ db changemapblocks_command
+ dba \1 ; map_data_pointer
ENDM
enum changeblock_command ; $79
@@ -849,10 +853,10 @@ specialsound: MACRO
db specialsound_command
ENDM
- enum passtoengine_command ; $88
-passtoengine: MACRO
- db passtoengine_command
- db \1 ; data_pointer
+ enum autoinput_command ; $88
+autoinput: MACRO
+ db autoinput_command
+ dba \1
ENDM
enum newloadmap_command ; $89
@@ -873,9 +877,9 @@ deactivatefacing: MACRO
db \1 ; time
ENDM
- enum priorityjump_command ; $8c
-priorityjump: MACRO
- db priorityjump_command
+ enum prioritysjump_command ; $8c
+prioritysjump: MACRO
+ db prioritysjump_command
dw \1 ; pointer
ENDM
@@ -884,9 +888,9 @@ warpcheck: MACRO
db warpcheck_command
ENDM
- enum ptpriorityjump_command ; $8e
-ptpriorityjump: MACRO
- db ptpriorityjump_command
+ enum stopandsjump_command ; $8e
+stopandsjump: MACRO
+ db stopandsjump_command
dw \1 ; pointer
ENDM
@@ -900,25 +904,25 @@ end: MACRO
db end_command
ENDM
- enum reloadandreturn_command ; $92
+ enum reloadandreturn_command ; $91
reloadandreturn: MACRO
db reloadandreturn_command
db \1 ; which_method
ENDM
- enum endall_command ; $93
+ enum endall_command ; $92
endall: MACRO
db endall_command
ENDM
- enum pokemart_command ; $94
+ enum pokemart_command ; $93
pokemart: MACRO
db pokemart_command
db \1 ; dialog_id
dw \2 ; mart_id
ENDM
- enum elevator_command ; $95
+ enum elevator_command ; $94
elevator: MACRO
db elevator_command
dw \1 ; floor_list_pointer
@@ -984,8 +988,7 @@ ENDM
enum swarm_command ; $9e
swarm: MACRO
db swarm_command
- db \1 ; flag
- map_id \2 ; map
+ map_id \1 ; map
ENDM
enum halloffame_command ; $9f
@@ -1006,42 +1009,3 @@ warpfacing: MACRO
db \3 ; x
db \4 ; y
ENDM
-
- enum battletowertext_command ; $a4
-battletowertext: MACRO
- db battletowertext_command
- db \1 ; memory
-ENDM
-
- enum landmarktotext_command ; $a5
-landmarktotext: MACRO
- db landmarktotext_command
- db \1 ; id
- db \2 ; memory
-ENDM
-
- enum trainerclassname_command ; $a6
-trainerclassname: MACRO
- db trainerclassname_command
- db \1 ; id
- db \2 ; memory
-ENDM
-
- enum name_command ; $a7
-name: MACRO
- db name_command
- db \1 ; type
- db \2 ; id
- db \3 ; memory
-ENDM
-
- enum wait_command ; $a8
-wait: MACRO
- db wait_command
- db \1 ; duration
-ENDM
-
- enum checksave_command ; $a9
-checksave: MACRO
- db checksave_command
-ENDM
diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm
index 7f5947a5..edf2b421 100644
--- a/macros/scripts/maps.asm
+++ b/macros/scripts/maps.asm
@@ -3,6 +3,8 @@ map_id: MACRO
db GROUP_\1, MAP_\1
ENDM
+object_const_def EQUS "const_def 2"
+
scene_script: MACRO
;\1: script pointer
dw \1
@@ -32,7 +34,7 @@ coord_event: MACRO
db \3, \2, \1
db 0 ; filler
dw \4
- db 0, 0 ; filler
+ dw 0 ; filler
ENDM
bg_event: MACRO
diff --git a/macros/scripts/movement.asm b/macros/scripts/movement.asm
index 49d95f82..f6ea46a6 100644
--- a/macros/scripts/movement.asm
+++ b/macros/scripts/movement.asm
@@ -1,242 +1,215 @@
-
- enum_start
-
- enum movement_turn_head
-turn_head: macro
- db movement_turn_head | \1 ; $00
- endm
-
-__enum__ SET $4
-
- enum movement_turn_step
-turn_step: macro
- db movement_turn_step | \1 ; $04
- endm
-
-__enum__ SET $8
-
- enum movement_slow_step
-slow_step: macro
- db movement_slow_step | \1; $08
- endm
-
-__enum__ SET $c
-
- enum movement_step
-step: macro
- db movement_step | \1 ; $0c
- endm
-
-__enum__ SET $10
-
- enum movement_big_step
-big_step: macro
- db movement_big_step | \1 ; $10
- endm
-
-__enum__ SET $14
-
- enum movement_slow_slide_step
-slow_slide_step: macro
- db movement_slow_slide_step | \1 ; $14
- endm
-
-__enum__ SET $18
-
- enum movement_slide_step
-slide_step: macro
- db movement_slide_step | \1 ; $18
- endm
-
-__enum__ SET $1c
-
- enum movement_fast_slide_step
-fast_slide_step: macro
- db movement_fast_slide_step | \1 ; $1c
- endm
-
-__enum__ SET $20
-
- enum movement_turn_away
-turn_away: macro
- db movement_turn_away | \1 ; $20
- endm
-
-__enum__ SET $24
-
- enum movement_turn_in
-turn_in: macro
- db movement_turn_in | \1 ; $24
- endm
-
-__enum__ SET $28
-
- enum movement_turn_waterfall
-turn_waterfall: macro
- db movement_turn_waterfall | \1 ; $28
- endm
-
-__enum__ SET $2c
-
- enum movement_slow_jump_step
-slow_jump_step: macro
- db movement_slow_jump_step | \1 ; $2c
- endm
-
-__enum__ SET $30
-
- enum movement_jump_step
-jump_step: macro
- db movement_jump_step | \1 ; $30
- endm
-
-__enum__ SET $34
-
- enum movement_fast_jump_step
-fast_jump_step: macro
- db movement_fast_jump_step | \1 ; $34
- endm
+; MovementPointers indexes (see engine/overworld/movement.asm)
+ enum_start 0, 4
+
+; Directional movements
+
+ enum movement_turn_head ; $00
+turn_head: MACRO
+ db movement_turn_head | \1
+ENDM
+
+ enum movement_turn_step ; $04
+turn_step: MACRO
+ db movement_turn_step | \1
+ENDM
+
+ enum movement_slow_step ; $08
+slow_step: MACRO
+ db movement_slow_step | \1
+ENDM
+
+ enum movement_step ; $0c
+step: MACRO
+ db movement_step | \1
+ENDM
+
+ enum movement_big_step ; $10
+big_step: MACRO
+ db movement_big_step | \1
+ENDM
+
+ enum movement_slow_slide_step ; $14
+slow_slide_step: MACRO
+ db movement_slow_slide_step | \1
+ENDM
+
+ enum movement_slide_step ; $18
+slide_step: MACRO
+ db movement_slide_step | \1
+ENDM
+
+ enum movement_fast_slide_step ; $1c
+fast_slide_step: MACRO
+ db movement_fast_slide_step | \1
+ENDM
+
+ enum movement_turn_away ; $20
+turn_away: MACRO
+ db movement_turn_away | \1
+ENDM
+
+ enum movement_turn_in ; $24
+turn_in: MACRO
+ db movement_turn_in | \1
+ENDM
+
+ enum movement_turn_waterfall ; $28
+turn_waterfall: MACRO
+ db movement_turn_waterfall | \1
+ENDM
+
+ enum movement_slow_jump_step ; $2c
+slow_jump_step: MACRO
+ db movement_slow_jump_step | \1
+ENDM
+
+ enum movement_jump_step ; $30
+jump_step: MACRO
+ db movement_jump_step | \1
+ENDM
+
+ enum movement_fast_jump_step ; $34
+fast_jump_step: MACRO
+ db movement_fast_jump_step | \1
+ENDM
+
+__enumdir__ = 1
; Control
-__enum__ SET $38
-
- 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
+ enum movement_remove_sliding ; $38
+remove_sliding: MACRO
+ db movement_remove_sliding
+ENDM
+
+ enum movement_set_sliding ; $39
+set_sliding: MACRO
+ db movement_set_sliding
+ENDM
+
+ enum movement_remove_fixed_facing ; $3a
+remove_fixed_facing: MACRO
+ db movement_remove_fixed_facing
+ENDM
+
+ enum movement_fix_facing ; $3b
+fix_facing: MACRO
+ db movement_fix_facing
+ENDM
+
+ enum movement_show_object ; $3c
+show_object: MACRO
+ db movement_show_object
+ENDM
+
+ enum movement_hide_object ; $3d
+hide_object: MACRO
+ db movement_hide_object
+ENDM
; Sleep
- enum movement_step_sleep
-step_sleep: macro
+ enum movement_step_sleep ; $3e
+step_sleep: MACRO
if \1 <= 8
db movement_step_sleep + \1 - 1
else
db movement_step_sleep + 8, \1
endc
-endm
-
-__enum__ SET $47
-
- enum movement_step_end
-step_end: macro
- db movement_step_end ; $47
- endm
-
-; Whatever Movement_48 is, it takes a one-byte parameter
-
-__enum__ = $49
-
- 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
+ENDM
+
+__enum__ = __enum__ + 8
+
+ enum movement_step_end ; $47
+step_end: MACRO
+ db movement_step_end
+ENDM
+
+ enum movement_step_48 ; $48
+step_48: MACRO
+ db movement_step_48
+ db \1 ; ???
+ENDM
+
+ enum movement_remove_object ; $49
+remove_object: MACRO
+ db movement_remove_object
+ENDM
+
+ enum movement_step_loop ; $4a
+step_loop: MACRO
+ db movement_step_loop
+ENDM
+
+ enum movement_step_4b ; $4b
+step_4b: MACRO
+ db movement_step_4b
+ENDM
+
+ enum movement_teleport_from ; $4c
+teleport_from: MACRO
+ db movement_teleport_from
+ENDM
+
+ enum movement_teleport_to ; $4d
+teleport_to: MACRO
+ db movement_teleport_to
+ENDM
+
+ enum movement_skyfall ; $4e
+skyfall: MACRO
+ db movement_skyfall
+ENDM
+
+ enum movement_step_dig ; $4f
+step_dig: MACRO
+ db movement_step_dig
+ db \1 ; length
+ENDM
+
+ enum movement_step_bump ; $50
+step_bump: MACRO
+ db movement_step_bump
+ENDM
+
+ enum movement_fish_got_bite ; $51
+fish_got_bite: MACRO
+ db movement_fish_got_bite
+ENDM
+
+ enum movement_fish_cast_rod ; $52
+fish_cast_rod: MACRO
+ db movement_fish_cast_rod
+ENDM
+
+ enum movement_hide_emote ; $53
+hide_emote: MACRO
+ db movement_hide_emote
+ENDM
+
+ enum movement_show_emote ; $54
+show_emote: MACRO
+ db movement_show_emote
+ENDM
+
+ enum movement_step_shake ; $55
+step_shake: MACRO
+ db movement_step_shake
db \1 ; displacement
- endm
+ENDM
- enum movement_tree_shake
-tree_shake: macro
+ enum movement_tree_shake ; $56
+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
+ENDM
+
+ enum movement_rock_smash ; $57
+rock_smash: MACRO
+ db movement_rock_smash
+ db \1 ; length
+ENDM
+
+ enum movement_return_dig ; $58
+return_dig: MACRO
+ db movement_return_dig
+ db \1 ; length
+ENDM
diff --git a/macros/scripts/trade_anims.asm b/macros/scripts/trade_anims.asm
index c590cb62..6fe55945 100755
--- a/macros/scripts/trade_anims.asm
+++ b/macros/scripts/trade_anims.asm
@@ -1,253 +1,140 @@
+; 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
+
+ enum tradeanim_next_command ; $00
+tradeanim_next: MACRO
+ db tradeanim_next_command
+ENDM
+
+ enum tradeanim_show_givemon_data_command ; $01
+tradeanim_show_givemon_data: MACRO
+ db tradeanim_show_givemon_data_command
+ENDM
+
+ enum tradeanim_show_getmon_data_command ; $02
+tradeanim_show_getmon_data: MACRO
+ db tradeanim_show_getmon_data_command
+ENDM
+
+ enum tradeanim_enter_link_tube_command ; $03
+tradeanim_enter_link_tube: MACRO
+ db tradeanim_enter_link_tube_command
+ENDM
+
+ enum_start $05
+
+ enum tradeanim_exit_link_tube_command ; $05
+tradeanim_exit_link_tube: MACRO
+ db tradeanim_exit_link_tube_command
+ENDM
+
+ enum tradeanim_tube_to_ot_command ; $06
+tradeanim_tube_to_ot: MACRO
+ db tradeanim_tube_to_ot_command
+ENDM
+
+ enum_start $0e
+
+ enum tradeanim_tube_to_player_command ; $0e
+tradeanim_tube_to_player: MACRO
+ db tradeanim_tube_to_player_command
+ENDM
+
+ enum_start $16
+
+ enum tradeanim_sent_to_ot_text_command ; $16
+tradeanim_sent_to_ot_text: MACRO
+ db tradeanim_sent_to_ot_text_command
+ENDM
+
+ enum tradeanim_ot_bids_farewell_command ; $17
+tradeanim_ot_bids_farewell: MACRO
+ db tradeanim_ot_bids_farewell_command
+ENDM
+
+ enum tradeanim_take_care_of_text_command ; $18
+tradeanim_take_care_of_text: MACRO
+ db tradeanim_take_care_of_text_command
+ENDM
+
+ enum tradeanim_ot_sends_text_1_command ; $19
+tradeanim_ot_sends_text_1: MACRO
+ db tradeanim_ot_sends_text_1_command
+ENDM
+
+ enum tradeanim_ot_sends_text_2_command ; $1a
+tradeanim_ot_sends_text_2: MACRO
+ db tradeanim_ot_sends_text_2_command
+ENDM
+
+ enum tradeanim_setup_givemon_scroll_command ; $1b
+tradeanim_setup_givemon_scroll: MACRO
+ db tradeanim_setup_givemon_scroll_command
+ENDM
+
+ enum tradeanim_do_givemon_scroll_command ; $1c
+tradeanim_do_givemon_scroll: MACRO
+ db tradeanim_do_givemon_scroll_command
+ENDM
+
+ enum tradeanim_frontpic_scroll_command ; $1d
+tradeanim_frontpic_scroll: MACRO
+ db tradeanim_frontpic_scroll_command
+ENDM
+
+ enum tradeanim_textbox_scroll_command ; $1e
+tradeanim_textbox_scroll: MACRO
+ db tradeanim_textbox_scroll_command
+ENDM
+
+ enum tradeanim_scroll_out_right_command ; $1f
+tradeanim_scroll_out_right: MACRO
+ db tradeanim_scroll_out_right_command
+ENDM
+
+ enum_start $21
+
+ enum tradeanim_wait_80_command ; $21
+tradeanim_wait_80: MACRO
+ db tradeanim_wait_80_command
+ENDM
+
+ enum tradeanim_rocking_ball_command ; $22
+tradeanim_rocking_ball: MACRO
+ db tradeanim_rocking_ball_command
+ENDM
+
+ enum tradeanim_drop_ball_command ; $23
+tradeanim_drop_ball: MACRO
+ db tradeanim_drop_ball_command
+ENDM
+
+ enum tradeanim_wait_anim_command ; $24
+tradeanim_wait_anim: MACRO
+ db tradeanim_wait_anim_command
+ENDM
+
+ enum tradeanim_poof_command ; $25
+tradeanim_poof: MACRO
+ db tradeanim_poof_command
+ENDM
+
+ enum tradeanim_bulge_through_tube_command ; $26
+tradeanim_bulge_through_tube: MACRO
+ db tradeanim_bulge_through_tube_command
+ENDM
+
+ enum tradeanim_give_trademon_sfx_command ; $27
+tradeanim_give_trademon_sfx: MACRO
+ db tradeanim_give_trademon_sfx_command
+ENDM
+
+ enum tradeanim_get_trademon_sfx_command ; $28
+tradeanim_get_trademon_sfx: MACRO
+ db tradeanim_get_trademon_sfx_command
+ENDM
+
+ enum tradeanim_end_command ; $29
+tradeanim_end: MACRO
+ db tradeanim_end_command
+ENDM
diff --git a/macros/sound.asm b/macros/sound.asm
deleted file mode 100644
index a0eacc1e..00000000
--- a/macros/sound.asm
+++ /dev/null
@@ -1,263 +0,0 @@
-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
-
- 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 forceoctave_cmd
-forceoctave: macro
- db forceoctave_cmd
- db \1 ; octave
- 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 ; unknown
- 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/wram.asm b/macros/wram.asm
index 6c55c468..590d1b9d 100755
--- a/macros/wram.asm
+++ b/macros/wram.asm
@@ -1,3 +1,4 @@
+; Used in wram.asm
flag_array: MACRO
ds ((\1) + 7) / 8
@@ -15,7 +16,7 @@ box_struct: MACRO
\1DefExp:: dw
\1SpdExp:: dw
\1SpcExp:: dw
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
\1Happiness:: db
\1PokerusStatus:: db
@@ -60,7 +61,7 @@ red_box_struct: MACRO
\1DefenseExp:: dw
\1SpeedExp:: dw
\1SpecialExp:: dw
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
ENDM
@@ -75,13 +76,12 @@ red_party_struct: MACRO
\1Special:: dw
ENDM
-
battle_struct: MACRO
\1Species:: db
\1Item:: db
\1Moves:: ds NUM_MOVES
\1MovesEnd::
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
\1Happiness:: db
\1Level:: db
@@ -101,132 +101,155 @@ battle_struct: MACRO
\1StructEnd::
ENDM
-box: MACRO
-\1::
-\1Count:: ds 1
+curbox: MACRO
+\1Count:: db
\1Species:: ds MONS_PER_BOX + 1
\1Mons::
\1Mon1:: box_struct \1Mon1
-\1Mon2:: ds BOXMON_STRUCT_LENGTH * (MONS_PER_BOX +- 1)
+\1Mon2:: ds BOXMON_STRUCT_LENGTH * (MONS_PER_BOX - 1)
\1MonOT:: ds NAME_LENGTH * MONS_PER_BOX
\1MonNicknames:: ds MON_NAME_LENGTH * MONS_PER_BOX
\1MonNicknamesEnd::
-\1End:: ds 2 ; padding
+\1End::
+ENDM
+
+box: MACRO
+ curbox \1
+ ds 2 ; padding
ENDM
+map_connection_struct: MACRO
+\1ConnectedMapGroup:: db
+\1ConnectedMapNumber:: db
+\1ConnectionStripPointer:: dw
+\1ConnectionStripLocation:: dw
+\1ConnectionStripLength:: db
+\1ConnectedMapWidth:: db
+\1ConnectionStripYOffset:: db
+\1ConnectionStripXOffset:: db
+\1ConnectionWindow:: dw
+ENDM
channel_struct: MACRO
-; Addreses are Channel1 (c101).
+; Addreses are wChannel1 (c101).
\1MusicID:: dw
\1MusicBank:: db
-\1Flags1:: db ; 0:on/off 1:subroutine 3:sfx 4:noise 5:rest
-\1Flags2:: db ; 0:vibrato on/off 2:duty 4:cry pitch
-\1Flags3:: db ; 0:vibrato up/down
+\1Flags1:: db ; 0:on/off 1:subroutine 2:looping 3:sfx 4:noise 5:rest
+\1Flags2:: db ; 0:vibrato on/off 1:pitch slide 2:duty cycle pattern 4:pitch offset
+\1Flags3:: db ; 0:vibrato up/down 1:pitch slide direction
\1MusicAddress:: dw
\1LastMusicAddress:: dw
dw
\1NoteFlags:: db ; 5:rest
\1Condition:: db ; conditional jumps
\1DutyCycle:: db ; bits 6-7 (0:12.5% 1:25% 2:50% 3:75%)
-\1Intensity:: db ; hi:pressure lo:velocity
+\1VolumeEnvelope:: db ; hi:volume lo:fade
\1Frequency:: dw ; 11 bits
\1Pitch:: db ; 0:rest 1-c:note
\1Octave:: db ; 7-0 (0 is highest)
-\1PitchOffset:: db ; raises existing octaves (to repeat phrases)
+\1Transposition:: db ; raises existing octaves (to repeat phrases)
\1NoteDuration:: db ; frames remaining for the current note
-\1Field16:: ds 1 ; c117
- ds 1 ; c118
+\1Field16:: ds 1
+ ds 1
\1LoopCount:: db
\1Tempo:: dw
\1Tracks:: db ; hi:left lo:right
-\1SFXDutyLoop:: ds 1 ; c11d
+\1DutyCyclePattern:: db
\1VibratoDelayCount:: db ; initialized by \1VibratoDelay
\1VibratoDelay:: db ; number of frames a note plays until vibrato starts
\1VibratoExtent:: db
\1VibratoRate:: db ; hi:frames for each alt lo:frames to the next alt
-\1PitchWheelTarget:: dw ; frequency endpoint for pitch wheel
-\1PitchWheelAmount:: db ; c124
-\1PitchWheelAmountFraction:: db ; c125
-\1Field25:: ds 1 ; c126
- ds 1 ; c127
-\1CryPitch:: dw
+\1PitchSlideTarget:: dw ; frequency endpoint for pitch slide
+\1PitchSlideAmount:: db
+\1PitchSlideAmountFraction:: db
+\1Field25:: db
+ ds 1
+\1PitchOffset:: dw
\1Field29:: ds 1
\1Field2a:: ds 2
\1Field2c:: ds 1
\1NoteLength:: db ; frames per 16th note
-\1Field2e:: ds 1 ; c12f
-\1Field2f:: ds 1 ; c130
-\1Field30:: ds 1 ; c131
- ds 1 ; c132
+\1Field2e:: ds 1
+\1Field2f:: ds 1
+\1Field30:: ds 1
+ ds 1
ENDM
mailmsg: MACRO
-\1Message:: ds MAIL_MSG_LENGTH
+\1Message:: ds MAIL_MSG_LENGTH
\1MessageEnd:: ds 1
-\1Author:: ds PLAYER_NAME_LENGTH
+\1Author:: ds PLAYER_NAME_LENGTH
\1AuthorNationality:: ds 2
-\1AuthorID:: ds 2
-\1Species:: ds 1
-\1Type:: ds 1
-\1End::
-endm
-
-hof_mon: MACRO
-\1Species:: ds 1
-\1ID:: ds 2
-\1DVs:: ds 2
-\1Level:: ds 1
-\1Nickname:: ds MON_NAME_LENGTH +- 1
+\1AuthorID:: dw
+\1Species:: db
+\1Type:: db
\1End::
-endm
+ENDM
roam_struct: MACRO
\1Species:: db
\1Level:: db
\1MapGroup:: db
\1MapNumber:: db
-\1HP:: ds 1
-\1DVs:: ds 2
+\1HP:: db
+\1DVs:: dw
ENDM
-bugcontestwinner: macro
-\1PersonID:: ds 1
-\1Mon:: ds 1
-\1Score:: ds 2
-endm
+bugcontestwinner: MACRO
+\1WinnerID:: db
+\1Mon:: db
+\1Score:: dw
+ENDM
+
+hof_mon: MACRO
+\1Species:: db
+\1ID:: dw
+\1DVs:: dw
+\1Level:: db
+\1Nickname:: ds MON_NAME_LENGTH - 1
+\1End::
+ENDM
hall_of_fame: MACRO
-\1::
-\1WinCount:: ds 1
+\1WinCount:: db
\1Mon1:: hof_mon \1Mon1
\1Mon2:: hof_mon \1Mon2
\1Mon3:: hof_mon \1Mon3
\1Mon4:: hof_mon \1Mon4
\1Mon5:: hof_mon \1Mon5
\1Mon6:: hof_mon \1Mon6
-\1End:: ds 1
+\1End:: db
+ENDM
+
+link_battle_record: MACRO
+\1Name:: ds NAME_LENGTH - 1
+\1ID:: dw
+\1Wins:: dw
+\1Losses:: dw
+\1Draws:: dw
+\1End::
ENDM
trademon: MACRO
-\1Species:: ds 1 ; wc6d0 | wc702
-\1SpeciesName:: ds MON_NAME_LENGTH ; wc6d1 | wc703
-\1Nickname:: ds MON_NAME_LENGTH ; wc6dc | wc70e
-\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719
-\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724
-\1DVs:: ds 2 ; wc6fd | wc72f
-\1ID:: ds 2 ; wc6ff | wc731
+\1Species:: db
+\1SpeciesName:: ds MON_NAME_LENGTH
+\1Nickname:: ds MON_NAME_LENGTH
+\1SenderName:: ds NAME_LENGTH
+\1OTName:: ds NAME_LENGTH
+\1DVs:: dw
+\1ID:: dw
\1End::
ENDM
move_struct: MACRO
-\1Animation:: ds 1
-\1Effect:: ds 1
-\1Power:: ds 1
-\1Type:: ds 1
-\1Accuracy:: ds 1
-\1PP:: ds 1
-\1EffectChance:: ds 1
-endm
+\1Animation:: db
+\1Effect:: db
+\1Power:: db
+\1Type:: db
+\1Accuracy:: db
+\1PP:: db
+\1EffectChance:: db
+ENDM
slot_reel: MACRO
\1ReelAction:: db
@@ -236,66 +259,65 @@ slot_reel: MACRO
\1SpinRate:: db
\1OAMAddr:: dw
\1XCoord:: db
-\1Slot09:: ds 1
-\1Slot0a:: ds 1
-\1Slot0b:: ds 1
-\1Slot0c:: ds 1
-\1Slot0d:: ds 1
-\1Slot0e:: ds 1
-\1Slot0f:: ds 1
-endm
+\1ManipCounter:: db
+\1ManipDelay:: db
+\1Field0b:: ds 1
+\1Field0c:: ds 1
+\1Field0d:: ds 1
+\1Field0e:: ds 1
+\1StopDelay:: db
+ENDM
object_struct: MACRO
-\1Struct::
-\1Sprite:: ds 1
-\1MapObjectIndex:: ds 1
-\1SpriteTile:: ds 1
-\1MovementType:: ds 1
-\1Flags:: ds 2
-\1Palette:: ds 1
-\1Walking:: ds 1
-\1Direction:: ds 1
-\1StepType:: ds 1
-\1StepDuration:: ds 1
-\1Action:: ds 1
-\1ObjectStepFrame:: ds 1
-\1Facing:: ds 1
-\1StandingTile:: ds 1 ; collision
-\1LastTile:: ds 1 ; collision
-\1StandingMapX:: ds 1
-\1StandingMapY:: ds 1
-\1LastMapX:: ds 1
-\1LastMapY:: ds 1
-\1ObjectInitX:: ds 1
-\1ObjectInitY:: ds 1
-\1Radius:: ds 1
-\1SpriteX:: ds 1
-\1SpriteY:: ds 1
-\1SpriteXOffset:: ds 1
-\1SpriteYOffset:: ds 1
-\1MovementByteIndex:: ds 1
-\1Object28:: ds 1
-\1Object29:: ds 1
-\1Object30:: ds 1
-\1Object31:: ds 1
-\1Range:: ds 1
+\1Sprite:: db
+\1MapObjectIndex:: db
+\1SpriteTile:: db
+\1MovementType:: db
+\1Flags:: dw
+\1Palette:: db
+\1Walking:: db
+\1Direction:: db
+\1StepType:: db
+\1StepDuration:: db
+\1Action:: db
+\1ObjectStepFrame:: db
+\1Facing:: db
+\1StandingTile:: db ; collision
+\1LastTile:: db ; collision
+\1StandingMapX:: db
+\1StandingMapY:: db
+\1LastMapX:: db
+\1LastMapY:: db
+\1ObjectInitX:: db
+\1ObjectInitY:: db
+\1Radius:: db
+\1SpriteX:: db
+\1SpriteY:: db
+\1SpriteXOffset:: db
+\1SpriteYOffset:: db
+\1MovementByteIndex:: db
+\1Field1c:: ds 1
+\1Field1d:: ds 1
+\1Field1e:: ds 1
+\1Field1f:: ds 1
+\1Range:: db
ds 7
\1StructEnd::
ENDM
map_object: MACRO
-\1ObjectStructID:: ds 1
-\1ObjectSprite:: ds 1
-\1ObjectYCoord:: ds 1
-\1ObjectXCoord:: ds 1
-\1ObjectMovement:: ds 1
-\1ObjectRadius:: ds 1
-\1ObjectHour:: ds 1
-\1ObjectTimeOfDay:: ds 1
-\1ObjectColor:: ds 1
-\1ObjectRange:: ds 1
-\1ObjectScript:: ds 2
-\1ObjectEventFlag:: ds 2
+\1ObjectStructID:: db
+\1ObjectSprite:: db
+\1ObjectYCoord:: db
+\1ObjectXCoord:: db
+\1ObjectMovement:: db
+\1ObjectRadius:: db
+\1ObjectHour:: db
+\1ObjectTimeOfDay:: db
+\1ObjectColor:: db
+\1ObjectRange:: db
+\1ObjectScript:: dw
+\1ObjectEventFlag:: dw
ds 2
ENDM
@@ -313,61 +335,55 @@ sprite_oam_struct: MACRO
ENDM
sprite_anim_struct: MACRO
-\1Index:: ds 1 ; 0
-\1FramesetID:: ds 1 ; 1
-\1AnimSeqID:: ds 1 ; 2
-\1TileID:: ds 1 ; 3
-\1XCoord:: ds 1 ; 4
-\1YCoord:: ds 1 ; 5
-\1XOffset:: ds 1 ; 6
-\1YOffset:: ds 1 ; 7
-\1Duration:: ds 1 ; 8
-\1DurationOffset:: ds 1 ; 9
-\1FrameIndex:: ds 1 ; a
-\1Sprite0b:: ds 1
-\1Sprite0c:: ds 1
-\1Sprite0d:: ds 1
-\1Sprite0e:: ds 1
-\1Sprite0f:: ds 1
+\1Index:: db
+\1FramesetID:: db
+\1AnimSeqID:: db
+\1TileID:: db
+\1XCoord:: db
+\1YCoord:: db
+\1XOffset:: db
+\1YOffset:: db
+\1Duration:: db
+\1DurationOffset:: db
+\1FrameIndex:: db
+\1JumptableIndex:: db
+\1Field0c:: ds 1
+\1Field0d:: ds 1
+\1Field0e:: ds 1
+\1Field0f:: ds 1
ENDM
battle_anim_struct: MACRO
; Placeholder until we can figure out what it all means
-\1_Index:: ds 1
-\1_Anim01:: ds 1
-\1_Anim02:: ds 1
-\1_FramesetIndex:: ds 1
-\1_FunctionIndex:: ds 1
-\1_Anim05:: ds 1
-\1_TileID:: ds 1
-\1_XCoord:: ds 1
-\1_YCoord:: ds 1
-\1_XOffset:: ds 1
-\1_YOffset:: ds 1
-\1_Anim0b:: ds 1
-\1_Anim0c:: ds 1
-\1_Anim0d:: ds 1
-\1_AnonJumptableIndex:: ds 1
-\1_Anim0f:: ds 1
-\1_Anim10:: ds 1
-\1_Anim11:: ds 1
-\1_Anim12:: ds 1
-\1_Anim13:: ds 1
-\1_Anim14:: ds 1
-\1_Anim15:: ds 1
-\1_Anim16:: ds 1
-\1_Anim17:: ds 1
-endm
+\1Index:: db
+\1Field01:: ds 1
+\1Field02:: ds 1
+\1FramesetID:: db
+\1Function:: db
+\1Palette:: db
+\1TileID:: db
+\1XCoord:: db
+\1YCoord:: db
+\1XOffset:: db
+\1YOffset:: db
+\1Field0b:: ds 1
+\1Duration:: db
+\1Frame:: db
+\1AnonJumptableIndex:: db
+\1Field0f:: ds 1
+\1Field10:: ds 1
+\1Field11:: ds 1
+\1Field12:: ds 1
+\1Field13:: ds 1
+\1Field14:: ds 1
+\1Field15:: ds 1
+\1Field16:: ds 1
+\1Field17:: ds 1
+ENDM
battle_bg_effect: MACRO
-\1_Function:: ds 1
-\1_01:: ds 1
-\1_02:: ds 1
-\1_03:: ds 1
-endm
-
-warp_struct: MACRO
-\1WarpNumber:: ds 1
-\1MapGroup:: ds 1
-\1MapNumber:: ds 1
+\1Function:: db
+\1Field01:: ds 1
+\1Field02:: ds 1
+\1Field03:: ds 1
ENDM