From aa9a0a900ddeaa79a05f1b93458a8b19ae170d69 Mon Sep 17 00:00:00 2001 From: xCrystal Date: Tue, 2 Jan 2018 20:00:14 +0100 Subject: No more mobile EQUS ret (replace with Stubbed_ + ret) --- macros/code.asm | 3 --- 1 file changed, 3 deletions(-) (limited to 'macros') diff --git a/macros/code.asm b/macros/code.asm index 5ec214d50..423017b2d 100644 --- a/macros/code.asm +++ b/macros/code.asm @@ -35,9 +35,6 @@ jumptable: MACRO jp hl ENDM -; Many mobile functions were dummied out in localization. -mobile EQUS "ret" - maskbits: MACRO ; example usage in rejection sampling: ; .loop -- cgit v1.2.3 From 01d994b8a30df12c0353bc912bcb046edf6a61b6 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Tue, 2 Jan 2018 18:06:56 -0500 Subject: dsprite always has 6 arguments --- macros/data.asm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'macros') diff --git a/macros/data.asm b/macros/data.asm index 55f41a204..d01abb8ea 100644 --- a/macros/data.asm +++ b/macros/data.asm @@ -85,20 +85,17 @@ 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 -; conditional segment is there because not every instance of -; this macro is directly OAM -if _NARG >= 7 ; y tile, y pxl, x tile, x pxl, vtile offset, flags, palette - db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, (\6 << 3) + (\7 & PALETTE_MASK) -else +; y tile, y pxl, x tile, x pxl, vtile offset, flags, attributes db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6 -endc ENDM -- cgit v1.2.3 From 6c20ff9e200499f7c245653a9e5aa269649c8639 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Sun, 7 Jan 2018 13:11:29 -0500 Subject: Reorganize some macros * tileset data macros go atop their related files, like all the ones in data/ * charmaps are not macros --- macros/base_stats.asm | 67 --------- macros/charmap.asm | 372 -------------------------------------------------- macros/color.asm | 10 +- macros/tilesets.asm | 15 -- macros/tmhm.asm | 71 ++++++++++ 5 files changed, 76 insertions(+), 459 deletions(-) delete mode 100644 macros/base_stats.asm delete mode 100644 macros/charmap.asm delete mode 100755 macros/tilesets.asm create mode 100644 macros/tmhm.asm (limited to 'macros') diff --git a/macros/base_stats.asm b/macros/base_stats.asm deleted file mode 100644 index 1a2ce8529..000000000 --- a/macros/base_stats.asm +++ /dev/null @@ -1,67 +0,0 @@ -; Used in data/pokemon/base_stats/*.asm - -define: MACRO -if !DEF(\1) -\1 EQUS \2 -endc -ENDM - -const_value = 0 - -add_tm: MACRO -if !DEF(TM01) -TM01 = const_value - enum_start 1 -endc - define _\@_1, "TM_\1" - const _\@_1 - enum \1_TMNUM -ENDM - -add_hm: MACRO -if !DEF(HM01) -HM01 = const_value -endc - define _\@_1, "HM_\1" - const _\@_1 - enum \1_TMNUM -ENDM - -add_mt: MACRO - enum \1_TMNUM -ENDM - -; N TMs/HMs need (N+7)/8 bytes for their bit flags. -; The rgbasm integers tms1, tms2, tms3 each hold 3 bytes, or 24 bits. -tmhm: MACRO -tms1 = 0 -tms2 = 0 -tms3 = 0 -rept _NARG - if DEF(\1_TMNUM) - if \1_TMNUM < 24 + 1 -tms1 = tms1 | (1 << ((\1_TMNUM) - 1)) - elif \1_TMNUM < 48 + 1 -tms2 = tms2 | (1 << ((\1_TMNUM) - 1 - 24)) - else -tms3 = tms3 | (1 << ((\1_TMNUM) - 1 - 48)) - endc - else - fail "\1 is not a TM, HM, or move tutor move" - endc - shift -endr - -rept 3 - db tms1 & $ff -tms1 = tms1 >> 8 -endr -rept 3 - db tms2 & $ff -tms2 = tms2 >> 8 -endr -rept 2 - db tms3 & $ff -tms3 = tms3 >> 8 -endr -ENDM diff --git a/macros/charmap.asm b/macros/charmap.asm deleted file mode 100644 index fd2d371fd..000000000 --- a/macros/charmap.asm +++ /dev/null @@ -1,372 +0,0 @@ -; Control characters - charmap "", $00 - charmap "", $14 ; gendered PlayerName; same as "" in English - charmap "", $15 - charmap "¯", $1f ; soft linebreak - charmap "", $22 - charmap "", $23 ; "こうげき" - charmap "", $24 ; "" - charmap "%", $25 - charmap "", $38 ; RedsName - charmap "", $39 ; GreensName - charmap "", $3f - charmap "", $49 ; MomsName - charmap "", $4a ; "" - charmap "", $4e - charmap "", $4f - - charmap "@", $50 ; string terminator - charmap "", $51 - charmap "", $52 ; PlayerName - charmap "", $53 - charmap "#", $54 ; "POKé" - charmap "", $55 - charmap "<......>", $56 ; "……" - charmap "", $57 - charmap "", $58 - charmap "", $59 - charmap "", $5a - charmap "", $5b ; "PC" - charmap "", $5c ; "TM" - charmap "", $5d ; "TRAINER" - charmap "", $5e ; "ROCKET" - charmap "", $5f - -; Actual characters (from gfx/font/font_extra.png) - - charmap "", $60 ; unused - charmap "", $61 ; unused - charmap "", $62 ; unused - charmap "", $63 ; unused - charmap "", $64 ; unused - charmap "", $65 ; unused - charmap "", $66 ; unused - charmap "", $67 ; unused - charmap "", $68 ; unused - charmap "", $69 - charmap "", $6a - charmap "", $6b ; unused - charmap "", $6c ; unused - charmap "", $6d ; colon with tinier dots than ":" - charmap "ぃ", $6e ; hiragana small i, unused - charmap "ぅ", $6f ; hiragana small u, unused - charmap "", $70 - charmap "", $71 - charmap "<``>", $72 ; opening quote - charmap "<''>", $73 ; closing quote - charmap "·", $74 ; middle dot, unused - charmap "…", $75 ; ellipsis - charmap "ぁ", $76 ; hiragana small a, unused - charmap "ぇ", $77 ; hiragana small e, unused - charmap "ぉ", $78 ; hiragana small o, unused - - charmap "┌", $79 - charmap "─", $7a - charmap "┐", $7b - charmap "│", $7c - charmap "└", $7d - charmap "┘", $7e - charmap " ", $7f - -; Actual characters (from gfx/font/font_battle_extra.png) - - charmap "", $6e - - charmap "<ど>", $70 ; hiragana small do, unused - charmap "◀", $71 - charmap "『", $72 ; Japanese opening quote, unused - charmap "", $73 - charmap "№", $74 - -; Actual characters (from other graphics files) - - charmap "|", $31 ; from gfx/stats/stats_tiles - - charmap "", $3f ; gfx/stats/shiny - - charmap "", $60 ; from gfx/mobile/phone_tiles.2bpp - charmap "▲", $61 ; gfx/font/up_arrow.png - charmap "", $62 ; gfx/font/overworld_phone_icon.2bpp - charmap "_", $62 ; from gfx/battle/hp_exp_bar_border.1bpp - - charmap "′", $6e ; gfx/font/feet_inches.png - charmap "″", $6f ; gfx/font/feet_inches.png - -; Actual characters (from gfx/font/font.png) - - charmap "A", $80 - charmap "B", $81 - charmap "C", $82 - charmap "D", $83 - charmap "E", $84 - charmap "F", $85 - charmap "G", $86 - charmap "H", $87 - charmap "I", $88 - charmap "J", $89 - charmap "K", $8a - charmap "L", $8b - charmap "M", $8c - charmap "N", $8d - charmap "O", $8e - charmap "P", $8f - charmap "Q", $90 - charmap "R", $91 - charmap "S", $92 - charmap "T", $93 - charmap "U", $94 - charmap "V", $95 - charmap "W", $96 - charmap "X", $97 - charmap "Y", $98 - charmap "Z", $99 - - charmap "(", $9a - charmap ")", $9b - charmap ":", $9c - charmap ";", $9d - charmap "[", $9e - charmap "]", $9f - - charmap "a", $a0 - charmap "b", $a1 - charmap "c", $a2 - charmap "d", $a3 - charmap "e", $a4 - charmap "f", $a5 - charmap "g", $a6 - charmap "h", $a7 - charmap "i", $a8 - charmap "j", $a9 - charmap "k", $aa - charmap "l", $ab - charmap "m", $ac - charmap "n", $ad - charmap "o", $ae - charmap "p", $af - charmap "q", $b0 - charmap "r", $b1 - charmap "s", $b2 - charmap "t", $b3 - charmap "u", $b4 - charmap "v", $b5 - charmap "w", $b6 - charmap "x", $b7 - charmap "y", $b8 - charmap "z", $b9 - - charmap "Ä", $c0 - charmap "Ö", $c1 - charmap "Ü", $c2 - charmap "ä", $c3 - charmap "ö", $c4 - charmap "ü", $c5 - - charmap "'d", $d0 - charmap "'l", $d1 - charmap "'m", $d2 - charmap "'r", $d3 - charmap "'s", $d4 - charmap "'t", $d5 - charmap "'v", $d6 - - charmap "←", $df - charmap "'", $e0 - charmap "", $e1 - charmap "", $e2 - charmap "-", $e3 - - charmap "?", $e6 - charmap "!", $e7 - charmap ".", $e8 - charmap "&", $e9 - - charmap "é", $ea - charmap "→", $eb - charmap "▷", $ec - charmap "▶", $ed - charmap "▼", $ee - charmap "♂", $ef - charmap "¥", $f0 - charmap "×", $f1 - charmap "", $f2 ; same as "." in English - charmap "/", $f3 - charmap ",", $f4 - charmap "♀", $f5 - - charmap "0", $f6 - charmap "1", $f7 - charmap "2", $f8 - charmap "3", $f9 - charmap "4", $fa - charmap "5", $fb - charmap "6", $fc - charmap "7", $fd - charmap "8", $fe - charmap "9", $ff - -; Japanese kana, for those bits of text that were not translated to English - - charmap "ガ", $5 - charmap "ギ", $6 - charmap "グ", $7 - charmap "ゲ", $8 - charmap "ゴ", $9 - charmap "ザ", $a - charmap "ジ", $b - charmap "ズ", $c - charmap "ゼ", $d - charmap "ゾ", $e - charmap "ダ", $f - charmap "ヂ", $10 - charmap "ヅ", $11 - charmap "デ", $12 - charmap "ド", $13 - - charmap "バ", $19 - charmap "ビ", $1a - charmap "ブ", $1b - charmap "ボ", $1c -; charmap "ベ", $1d - - charmap "が", $26 - charmap "ぎ", $27 - charmap "ぐ", $28 - charmap "げ", $29 - charmap "ご", $2a - charmap "ざ", $2b - charmap "じ", $2c - charmap "ず", $2d - charmap "ぜ", $2e - charmap "ぞ", $2f - charmap "だ", $30 - charmap "ぢ", $31 - charmap "づ", $32 - charmap "で", $33 - charmap "ど", $34 - - charmap "ば", $3a - charmap "び", $3b - charmap "ぶ", $3c - charmap "べ", $3d - charmap "ぼ", $3e - - charmap "パ", $40 - charmap "ピ", $41 - charmap "プ", $42 - charmap "ポ", $43 - charmap "ぱ", $44 - charmap "ぴ", $45 - charmap "ぷ", $46 - charmap "ぺ", $47 - charmap "ぽ", $48 - - charmap "ア", $80 - charmap "イ", $81 - charmap "ウ", $82 - charmap "エ", $83 - charmap "ォ", $84 - charmap "カ", $85 - charmap "キ", $86 - charmap "ク", $87 - charmap "ケ", $88 - charmap "コ", $89 - charmap "サ", $8a - charmap "シ", $8b - charmap "ス", $8c - charmap "セ", $8d - charmap "ソ", $8e - charmap "タ", $8f - charmap "チ", $90 - charmap "ツ", $91 - charmap "テ", $92 - charmap "ト", $93 - charmap "ナ", $94 - charmap "ニ", $95 - charmap "ヌ", $96 - charmap "ネ", $97 - charmap "ノ", $98 - charmap "ハ", $99 - charmap "ヒ", $9a - charmap "フ", $9b - charmap "ホ", $9c - charmap "マ", $9d - charmap "ミ", $9e - charmap "ム", $9f - charmap "メ", $a0 - charmap "モ", $a1 - charmap "ヤ", $a2 - charmap "ユ", $a3 - charmap "ヨ", $a4 - charmap "ラ", $a5 - charmap "ル", $a6 - charmap "レ", $a7 - charmap "ロ", $a8 - charmap "ワ", $a9 - charmap "ヲ", $aa - charmap "ン", $ab - charmap "ッ", $ac - charmap "ャ", $ad - charmap "ュ", $ae - charmap "ョ", $af - charmap "ィ", $b0 - - charmap "あ", $b1 - charmap "い", $b2 - charmap "う", $b3 - charmap "え", $b4 - charmap "お", $b5 - - charmap "か", $b6 - charmap "き", $b7 - charmap "く", $b8 - charmap "け", $b9 - charmap "こ", $ba - charmap "さ", $bb - charmap "し", $bc - charmap "す", $bd - charmap "せ", $be - charmap "そ", $bf - charmap "た", $c0 - charmap "ち", $c1 - charmap "つ", $c2 - charmap "て", $c3 - charmap "と", $c4 - charmap "な", $c5 - charmap "に", $c6 - charmap "ぬ", $c7 - charmap "ね", $c8 - charmap "の", $c9 - charmap "は", $ca - charmap "ひ", $cb - charmap "ふ", $cc - charmap "へ", $cd - charmap "ほ", $ce - - charmap "ま", $cf - charmap "み", $d0 - charmap "む", $d1 - charmap "め", $d2 - charmap "も", $d3 - charmap "や", $d4 - charmap "ゆ", $d5 - charmap "よ", $d6 - charmap "ら", $d7 - charmap "り", $d8 - charmap "る", $d9 - charmap "れ", $da - charmap "ろ", $db - charmap "わ", $dc - charmap "を", $dd - charmap "ん", $de - charmap "っ", $df - charmap "ゃ", $e0 - charmap "ゅ", $e1 - charmap "ょ", $e2 - - charmap "ー", $e3 - - charmap "゚", $e4 - charmap "゙", $e5 - - charmap "ァ", $e9 diff --git a/macros/color.asm b/macros/color.asm index 35d69fe6f..5ebaae218 100644 --- a/macros/color.asm +++ b/macros/color.asm @@ -1,15 +1,15 @@ RGB: MACRO rept _NARG / 3 - dw ((\3) << 10) + ((\2) << 5) + (\1) + dw palred (\1) + palgreen (\2) + palblue (\3) shift shift shift endr ENDM +palred EQUS "(1 << 0) *" +palgreen EQUS "(1 << 5) *" +palblue EQUS "(1 << 10) *" + palettes EQUS "* 8" palette EQUS "+ 8 *" - -palred EQUS "$0001 *" -palgreen EQUS "$0020 *" -palblue EQUS "$0400 *" diff --git a/macros/tilesets.asm b/macros/tilesets.asm deleted file mode 100755 index 4aeb38dc5..000000000 --- a/macros/tilesets.asm +++ /dev/null @@ -1,15 +0,0 @@ -; Used in tilesets/*.asm - -tilepal: MACRO -; vram bank, pals -x = \1 << OAM_TILE_BANK -rept (_NARG +- 1) / 2 - dn (x | PAL_BG_\3), (x | PAL_BG_\2) - shift - shift -endr -ENDM - -tilecoll: MACRO - db COLL_\1, COLL_\2, COLL_\3, COLL_\4 -ENDM diff --git a/macros/tmhm.asm b/macros/tmhm.asm new file mode 100644 index 000000000..631b07bd9 --- /dev/null +++ b/macros/tmhm.asm @@ -0,0 +1,71 @@ +define: MACRO +if !DEF(\1) +\1 EQUS \2 +endc +ENDM + + +; Used in constants/item_constants.asm + +const_value = 0 + +add_tm: MACRO +if !DEF(TM01) +TM01 = const_value + enum_start 1 +endc + define _\@_1, "TM_\1" + const _\@_1 + enum \1_TMNUM +ENDM + +add_hm: MACRO +if !DEF(HM01) +HM01 = const_value +endc + define _\@_1, "HM_\1" + const _\@_1 + enum \1_TMNUM +ENDM + +add_mt: MACRO + enum \1_TMNUM +ENDM + + +; Used in data/pokemon/base_stats/*.asm + +; N TMs/HMs need (N+7)/8 bytes for their bit flags. +; The rgbasm integers tms1, tms2, tms3 each hold 3 bytes, or 24 bits. +tmhm: MACRO +tms1 = 0 +tms2 = 0 +tms3 = 0 +rept _NARG + if DEF(\1_TMNUM) + if \1_TMNUM < 24 + 1 +tms1 = tms1 | (1 << ((\1_TMNUM) - 1)) + elif \1_TMNUM < 48 + 1 +tms2 = tms2 | (1 << ((\1_TMNUM) - 1 - 24)) + else +tms3 = tms3 | (1 << ((\1_TMNUM) - 1 - 48)) + endc + else + fail "\1 is not a TM, HM, or move tutor move" + endc + shift +endr + +rept 3 + db tms1 & $ff +tms1 = tms1 >> 8 +endr +rept 3 + db tms2 & $ff +tms2 = tms2 >> 8 +endr +rept 2 + db tms3 & $ff +tms3 = tms3 >> 8 +endr +ENDM -- cgit v1.2.3 From 8aa58dca9e18ba6e420cc55050955e9606409633 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Wed, 10 Jan 2018 00:08:05 -0500 Subject: Specialized macros go with their data/code --- macros/enum.asm | 9 ++++++++ macros/tmhm.asm | 71 --------------------------------------------------------- 2 files changed, 9 insertions(+), 71 deletions(-) delete mode 100644 macros/tmhm.asm (limited to 'macros') diff --git a/macros/enum.asm b/macros/enum.asm index 0c1d4a064..c1321a636 100644 --- a/macros/enum.asm +++ b/macros/enum.asm @@ -38,3 +38,12 @@ 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/tmhm.asm b/macros/tmhm.asm deleted file mode 100644 index 631b07bd9..000000000 --- a/macros/tmhm.asm +++ /dev/null @@ -1,71 +0,0 @@ -define: MACRO -if !DEF(\1) -\1 EQUS \2 -endc -ENDM - - -; Used in constants/item_constants.asm - -const_value = 0 - -add_tm: MACRO -if !DEF(TM01) -TM01 = const_value - enum_start 1 -endc - define _\@_1, "TM_\1" - const _\@_1 - enum \1_TMNUM -ENDM - -add_hm: MACRO -if !DEF(HM01) -HM01 = const_value -endc - define _\@_1, "HM_\1" - const _\@_1 - enum \1_TMNUM -ENDM - -add_mt: MACRO - enum \1_TMNUM -ENDM - - -; Used in data/pokemon/base_stats/*.asm - -; N TMs/HMs need (N+7)/8 bytes for their bit flags. -; The rgbasm integers tms1, tms2, tms3 each hold 3 bytes, or 24 bits. -tmhm: MACRO -tms1 = 0 -tms2 = 0 -tms3 = 0 -rept _NARG - if DEF(\1_TMNUM) - if \1_TMNUM < 24 + 1 -tms1 = tms1 | (1 << ((\1_TMNUM) - 1)) - elif \1_TMNUM < 48 + 1 -tms2 = tms2 | (1 << ((\1_TMNUM) - 1 - 24)) - else -tms3 = tms3 | (1 << ((\1_TMNUM) - 1 - 48)) - endc - else - fail "\1 is not a TM, HM, or move tutor move" - endc - shift -endr - -rept 3 - db tms1 & $ff -tms1 = tms1 >> 8 -endr -rept 3 - db tms2 & $ff -tms2 = tms2 >> 8 -endr -rept 2 - db tms3 & $ff -tms3 = tms3 >> 8 -endr -ENDM -- cgit v1.2.3 From cc95d1208d4a6b8291a5430a8d652a9337074788 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Wed, 10 Jan 2018 11:57:28 -0500 Subject: Use maskbits more, and clarify its usage --- macros/code.asm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'macros') diff --git a/macros/code.asm b/macros/code.asm index 5ec214d50..5a0b82a24 100644 --- a/macros/code.asm +++ b/macros/code.asm @@ -39,15 +39,17 @@ ENDM mobile EQUS "ret" maskbits: MACRO +; masks just enough bits to cover the argument +; e.g. "maskbits %00010100" becomes "and %00011111" ; example usage in rejection sampling: ; .loop ; call Random -; maskbits 30 +; maskbits 30 +- 1 ; cp 30 ; jr nc, .loop x = 1 rept 8 -if \1 > x +if x < (\1) x = (x + 1) * 2 +- 1 endc endr -- cgit v1.2.3 From 417937cffc2a7c3cfac49f3b00caf1a856d0a925 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Wed, 10 Jan 2018 13:47:57 -0500 Subject: Resolve #461 --- macros/wram.asm | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'macros') diff --git a/macros/wram.asm b/macros/wram.asm index d30114fc8..a889193d4 100755 --- a/macros/wram.asm +++ b/macros/wram.asm @@ -339,6 +339,19 @@ map_object: MACRO ds 2 ENDM +sprite_oam_struct: MACRO +\1YCoord:: db +\1XCoord:: db +\1TileID:: db +\1Attributes:: db +; bit 7: priority +; bit 6: y flip +; bit 5: x flip +; bit 4: pal # (non-cgb) +; bit 3: vram bank (cgb only) +; bit 2-0: pal # (cgb only) +ENDM + sprite_anim_struct: MACRO \1Index:: db \1FramesetID:: db -- cgit v1.2.3 From e0088adb3f692e03e695f912bb0c4bf2e8189e75 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Wed, 10 Jan 2018 17:49:19 -0500 Subject: Other files belong in data/battle/ --- macros/scripts/battle_commands.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'macros') diff --git a/macros/scripts/battle_commands.asm b/macros/scripts/battle_commands.asm index 5933740f0..4ae8dbaf4 100644 --- a/macros/scripts/battle_commands.asm +++ b/macros/scripts/battle_commands.asm @@ -3,7 +3,7 @@ command: MACRO \1 EQUS "db \1_command" ENDM -; BattleCommandPointers indexes (see data/battle_command_pointers.asm) +; BattleCommandPointers indexes (see data/battle/effect_command_pointers.asm) enum_start 1 command checkturn ; 01 command checkobedience ; 02 -- cgit v1.2.3 From d83aefb30af180eae03bbd65878e8de45166f3d0 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Fri, 12 Jan 2018 01:40:20 -0500 Subject: Use more constants in scripts --- macros/scripts/events.asm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'macros') diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm index 694a7cd12..40a5bbf46 100644 --- a/macros/scripts/events.asm +++ b/macros/scripts/events.asm @@ -424,9 +424,9 @@ readcoins: MACRO db \1 ; memory ENDM - enum RAM2MEM_command ; $3f -RAM2MEM: MACRO - db RAM2MEM_command + enum vartomem_command ; $3f +vartomem: MACRO + db vartomem_command db \1 ; memory ENDM @@ -483,7 +483,11 @@ ENDM enum refreshscreen_command ; $48 refreshscreen: MACRO db refreshscreen_command +if _NARG == 1 db \1 ; dummy +else + db 0 +endc ENDM enum closetext_command ; $49 -- cgit v1.2.3 From 5a3822fe863a7365735c1f5d1c007d98d7736f1b Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Sat, 13 Jan 2018 00:47:38 -0500 Subject: Introduce callback, hiddenitem, conditional_event, and cmdqueue macros for map scripts --- macros/scripts/maps.asm | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) (limited to 'macros') diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm index e9703531d..31a1f16d9 100644 --- a/macros/scripts/maps.asm +++ b/macros/scripts/maps.asm @@ -9,6 +9,12 @@ scene_script: MACRO dw \1, 0 ENDM +callback: MACRO +;\1: type: a MAPCALLBACK_* constant +;\2: script pointer + dbw \1, \2 +ENDM + warp_def: MACRO ;\1: x: left to right, starts at 0 ;\2: y: top to bottom, starts at 0 @@ -23,9 +29,10 @@ coord_event: MACRO ;\2: y: top to bottom, starts at 0 ;\3: scene id: controlled by setscene/setmapscene ;\4: script pointer - db \3, \2, \1, $0 + db \3, \2, \1 + db 0 ; filler dw \4 - db $0, $0 + db 0, 0 ; filler ENDM bg_event: MACRO @@ -91,6 +98,12 @@ else endc ENDM +hiddenitem: MACRO +;\1: flag: an EVENT_* constant +;\2: item: from constants/item_constants.asm + dwb \1, \2 +ENDM + elevfloor: MACRO ;\1: floor: a FLOOR_* constant ;\2: warp destination: starts at 1 @@ -99,10 +112,22 @@ elevfloor: MACRO map \3 ENDM +conditional_event: MACRO +;\1: flag: an EVENT_* constant +;\2: script pointer + dw \1, \2 +ENDM + +cmdqueue: MACRO +;\1: type: a CMDQUEUE_* constant +;\2: data pointer + dbw \1, \2 + dw 0 ; filler +ENDM + stonetable: MACRO ;\1: warp id ;\2: object_event id ;\3: script pointer - db \1, \2 - dw \3 + dbbw \1, \2, \3 ENDM -- cgit v1.2.3 From 2ab60fa8a49dfe9e20ebb620471ba4c2ca64a4aa Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Sat, 13 Jan 2018 16:38:14 -0500 Subject: menu_coords macro for (x1, y1, x2, y2) order (see issue #440) --- macros/data.asm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'macros') diff --git a/macros/data.asm b/macros/data.asm index d01abb8ea..8345a2523 100644 --- a/macros/data.asm +++ b/macros/data.asm @@ -99,6 +99,13 @@ dsprite: MACRO ENDM +menu_coords: MACRO +; x1, y1, x2, y2 + db \2, \1 ; start coords + db \4, \3 ; end coords +ENDM + + sine_wave: MACRO ; \1: amplitude x = 0 -- cgit v1.2.3 From 6c7e88513a9b759584de2b50c5b67ecf94203607 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Mon, 15 Jan 2018 14:11:11 -0500 Subject: Long lists of db/dw series with struct-defining macros belong in data/ --- macros/predef.asm | 5 ----- macros/scripts/events.asm | 5 ----- 2 files changed, 10 deletions(-) (limited to 'macros') diff --git a/macros/predef.asm b/macros/predef.asm index 139e3bf3a..7850350a7 100644 --- a/macros/predef.asm +++ b/macros/predef.asm @@ -1,8 +1,3 @@ -add_predef: MACRO -\1Predef:: - dab \1 -ENDM - predef_id: MACRO ; Some functions load the predef id ; without immediately calling Predef. diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm index 40a5bbf46..9bca1c004 100644 --- a/macros/scripts/events.asm +++ b/macros/scripts/events.asm @@ -101,11 +101,6 @@ special: MACRO dw (\1Special - SpecialsPointers) / 3 ENDM -add_special: MACRO -\1Special:: - dba \1 -ENDM - enum ptcallasm_command ; $10 ptcallasm: MACRO db ptcallasm_command -- cgit v1.2.3 From 7b3de85a06e81d14ac0c73e8f9e1ab8e4a474beb Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Tue, 16 Jan 2018 17:27:50 -0500 Subject: Avoid "+- 1" at every maskbits --- macros/code.asm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'macros') diff --git a/macros/code.asm b/macros/code.asm index 6e9c378e3..799c27d45 100644 --- a/macros/code.asm +++ b/macros/code.asm @@ -37,17 +37,17 @@ ENDM maskbits: MACRO ; masks just enough bits to cover the argument -; e.g. "maskbits %00010100" becomes "and %00011111" +; e.g. "maskbits 26" becomes "and %00011111" (since 26 - 1 = %00011001) ; example usage in rejection sampling: ; .loop ; call Random -; maskbits 30 +- 1 +; maskbits 30 ; cp 30 ; jr nc, .loop x = 1 rept 8 -if x < (\1) -x = (x + 1) * 2 +- 1 +if x + 1 < (\1) +x = x << 1 | 1 endc endr and x -- cgit v1.2.3 From 2acaa96cf16ce953a7149f300d54e5440abc27d8 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Thu, 18 Jan 2018 18:34:20 -0500 Subject: More charmap and home/text.asm documentation for JP chars --- macros/scripts/text.asm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'macros') diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm index f22f83551..bc5fff958 100644 --- a/macros/scripts/text.asm +++ b/macros/scripts/text.asm @@ -1,4 +1,4 @@ -text EQUS "db \"\"," ; Start writing text. +text EQUS "db TX_START," ; Start writing text. next EQUS "db \"\"," ; Move a line down. line EQUS "db \"\"," ; Start writing at the bottom line. page EQUS "db \"@\"," ; Start a new Pokédex page. @@ -8,7 +8,12 @@ done EQUS "db \"\"" ; End a text box. prompt EQUS "db \"\"" ; Prompt the player to end a text box (initiating some other event). ; TextCommands indexes (see home/text.asm) - enum_start $01 + enum_start + + enum TX_START ; $00 +text_start: MACRO + db TX_START +ENDM enum TX_RAM ; $01 text_from_ram: MACRO -- cgit v1.2.3 From 105ef872dd87e3eb0aa73feacac5f1a9f8481973 Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Thu, 18 Jan 2018 22:06:51 -0500 Subject: Better TX_SOUND_* names --- macros/scripts/text.asm | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'macros') diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm index bc5fff958..bff18c7ea 100644 --- a/macros/scripts/text.asm +++ b/macros/scripts/text.asm @@ -73,9 +73,9 @@ interpret_data: MACRO db TX_EXIT ENDM - enum TX_SOUND_0B ; $0b + enum TX_SOUND_DEX_FANFARE_50_79 ; $0b sound_dex_fanfare_50_79: MACRO - db TX_SOUND_0B + db TX_SOUND_DEX_FANFARE_50_79 ENDM enum TX_DOTS ; $0c @@ -89,34 +89,34 @@ link_wait_button: MACRO db TX_LINK_WAIT_BUTTON ENDM - enum TX_SOUND_0E ; $0e + enum TX_SOUND_DEX_FANFARE_20_49 ; $0e sound_dex_fanfare_20_49: MACRO - db TX_SOUND_0E + db TX_SOUND_DEX_FANFARE_20_49 ENDM - enum TX_SOUND_0F ; $0f + enum TX_SOUND_ITEM ; $0f sound_item: MACRO - db TX_SOUND_0F + db TX_SOUND_ITEM ENDM - enum TX_SOUND_10 ; $10 + enum TX_SOUND_CAUGHT_MON ; $10 sound_caught_mon: MACRO - db TX_SOUND_10 + db TX_SOUND_CAUGHT_MON ENDM - enum TX_SOUND_11 ; $11 + enum TX_SOUND_DEX_FANFARE_80_109 ; $11 sound_dex_fanfare_80_109: MACRO - db TX_SOUND_11 + db TX_SOUND_DEX_FANFARE_80_109 ENDM - enum TX_SOUND_12 ; $12 + enum TX_SOUND_FANFARE ; $12 sound_fanfare: MACRO - db TX_SOUND_12 + db TX_SOUND_FANFARE ENDM - enum TX_SOUND_13 ; $13 + enum TX_SOUND_SLOT_MACHINE_START ; $13 sound_slot_machine_start: MACRO - db TX_SOUND_13 + db TX_SOUND_SLOT_MACHINE_START ENDM enum TX_STRINGBUFFER ; $14 -- cgit v1.2.3 From 05382d3e3c03616d6edf21833e89a8264a8cd10a Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Sat, 20 Jan 2018 12:25:55 -0500 Subject: PARTY_LENGTH; MON_NAME; sgb_border.bin --- macros/wram.asm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'macros') diff --git a/macros/wram.asm b/macros/wram.asm index a889193d4..47138e40c 100755 --- a/macros/wram.asm +++ b/macros/wram.asm @@ -110,7 +110,7 @@ box: MACRO \1Mon1:: box_struct \1Mon1 \1Mon2:: ds BOXMON_STRUCT_LENGTH * (MONS_PER_BOX +- 1) \1MonOT:: ds NAME_LENGTH * MONS_PER_BOX -\1MonNicknames:: ds PKMN_NAME_LENGTH * MONS_PER_BOX +\1MonNicknames:: ds MON_NAME_LENGTH * MONS_PER_BOX \1MonNicknamesEnd:: \1End:: ds 2 ; padding ENDM @@ -179,13 +179,13 @@ battle_tower_struct: MACRO \1Name:: ds NAME_LENGTH +- 1 \1TrainerClass:: ds 1 \1Pkmn1:: party_struct \1Pkmn1 -\1Pkmn1Name:: ds PKMN_NAME_LENGTH +\1Pkmn1Name:: ds MON_NAME_LENGTH \1Pkmn1NameEnd:: \1Pkmn2:: party_struct \1Pkmn2 -\1Pkmn2Name:: ds PKMN_NAME_LENGTH +\1Pkmn2Name:: ds MON_NAME_LENGTH \1Pkmn2NameEnd:: \1Pkmn3:: party_struct \1Pkmn3 -\1Pkmn3Name:: ds PKMN_NAME_LENGTH +\1Pkmn3Name:: ds MON_NAME_LENGTH \1Pkmn3NameEnd:: \1TrainerData:: ds BATTLETOWER_TRAINERDATALENGTH \1TrainerEnd:: @@ -222,7 +222,7 @@ hof_mon: MACRO \1ID:: dw \1DVs:: dw \1Level:: db -\1Nickname:: ds PKMN_NAME_LENGTH +- 1 +\1Nickname:: ds MON_NAME_LENGTH +- 1 \1End:: ENDM @@ -247,8 +247,8 @@ ENDM trademon: MACRO \1Species:: db ; wc6d0 | wc702 -\1SpeciesName:: ds PKMN_NAME_LENGTH ; wc6d1 | wc703 -\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e +\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:: dw ; wc6fd | wc72f -- cgit v1.2.3