diff options
Diffstat (limited to 'macros')
-rw-r--r-- | macros/code.asm | 13 | ||||
-rwxr-xr-x | macros/coords.asm | 9 | ||||
-rwxr-xr-x | macros/data.asm | 75 | ||||
-rwxr-xr-x | macros/enum.asm | 10 | ||||
-rw-r--r-- | macros/event.asm | 1058 | ||||
-rwxr-xr-x | macros/flag.asm | 45 | ||||
-rwxr-xr-x | macros/gfx.asm | 32 | ||||
-rw-r--r-- | macros/legacy.asm | 328 | ||||
-rw-r--r-- | macros/mobile.asm | 2 | ||||
-rw-r--r-- | macros/move_anim.asm | 293 | ||||
-rwxr-xr-x | macros/pals.asm | 8 | ||||
-rw-r--r-- | macros/pic.asm | 4 | ||||
-rwxr-xr-x | macros/rst.asm | 4 | ||||
-rw-r--r-- | macros/scripts/audio.asm | 254 | ||||
-rw-r--r-- | macros/scripts/battle_anims.asm | 302 | ||||
-rw-r--r-- | macros/scripts/battle_commands.asm (renamed from macros/move_effect.asm) | 26 | ||||
-rw-r--r-- | macros/scripts/events.asm | 262 | ||||
-rw-r--r-- | macros/scripts/maps.asm | 4 | ||||
-rw-r--r-- | macros/scripts/movement.asm | 431 | ||||
-rwxr-xr-x | macros/scripts/trade_anims.asm | 391 | ||||
-rw-r--r-- | macros/sound.asm | 263 | ||||
-rwxr-xr-x | macros/wram.asm | 360 |
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 |