aboutsummaryrefslogtreecommitdiffstats
path: root/macros
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2025-11-12 17:56:10 -0600
committerdannye <33dannye@gmail.com>2025-11-12 17:56:10 -0600
commit324ae167d15ae4eef3cda411e10201661e57d88d (patch)
tree86c2b73ce1262f12c1b3eb82874e8572e80e583f /macros
parentSeparate surfing Pikachu graphics from audio engine code (diff)
parentUse features of RGBDS 1.0.0 (#537) (diff)
downloadpokeyellow-324ae167d15ae4eef3cda411e10201661e57d88d.tar.gz
pokeyellow-324ae167d15ae4eef3cda411e10201661e57d88d.tar.xz
pokeyellow-324ae167d15ae4eef3cda411e10201661e57d88d.zip
Merge branch 'master' of https://github.com/pret/pokered
Diffstat (limited to 'macros')
-rw-r--r--macros/asserts.asm44
-rw-r--r--macros/code.asm4
-rw-r--r--macros/const.asm16
-rw-r--r--macros/coords.asm36
-rw-r--r--macros/data.asm24
-rw-r--r--macros/gfx.asm4
-rw-r--r--macros/predef.asm14
-rw-r--r--macros/ram.asm2
-rw-r--r--macros/scripts/maps.asm8
-rw-r--r--macros/vc.asm8
10 files changed, 78 insertions, 82 deletions
diff --git a/macros/asserts.asm b/macros/asserts.asm
index 7b41a654..e2de1505 100644
--- a/macros/asserts.asm
+++ b/macros/asserts.asm
@@ -1,18 +1,14 @@
; Macros to verify assumptions about the data or code
-MACRO _redef_current_label
+MACRO? _redef_current_label
IF DEF(\1)
PURGE \1
ENDC
IF _NARG == 3 + (\3)
DEF \1 EQUS "\<_NARG>"
- ELIF DEF(..)
- IF .. - @ == 0
- DEF \1 EQUS "{..}"
- ENDC
- ELIF DEF(.)
- if . - @ == 0
- DEF \1 EQUS "{.}"
+ ELIF STRLEN(#__SCOPE__)
+ IF {{__SCOPE__}} - @ == 0
+ DEF \1 EQUS #{__SCOPE__}
ENDC
ENDC
if !DEF(\1)
@@ -21,12 +17,12 @@ MACRO _redef_current_label
ENDC
ENDM
-MACRO table_width
+MACRO? table_width
DEF CURRENT_TABLE_WIDTH = \1
_redef_current_label CURRENT_TABLE_START, "._table_width\@", 2, \#
ENDM
-MACRO assert_table_length
+MACRO? assert_table_length
DEF w = \1
DEF x = w * CURRENT_TABLE_WIDTH
DEF y = @ - {CURRENT_TABLE_START}
@@ -34,7 +30,7 @@ MACRO assert_table_length
"bytes, for {d:x} total; but got {d:y} bytes"
ENDM
-MACRO assert_max_table_length
+MACRO? assert_max_table_length
DEF w = \1
DEF x = w * CURRENT_TABLE_WIDTH
DEF y = @ - {CURRENT_TABLE_START}
@@ -42,24 +38,24 @@ MACRO assert_max_table_length
"{d:CURRENT_TABLE_WIDTH} bytes, for maximum {d:x} total; but got {d:y} bytes"
ENDM
-MACRO list_start
+MACRO? list_start
DEF list_index = 0
_redef_current_label CURRENT_LIST_START, "._list_start\@", 1, \#
ENDM
-MACRO li
+MACRO? li
ASSERT STRFIND(\1, "@") == -1, "String terminator \"@\" in list entry: \1"
db \1, "@"
DEF list_index += 1
ENDM
-MACRO assert_list_length
+MACRO? assert_list_length
DEF x = \1
ASSERT x == list_index, \
"{CURRENT_LIST_START}: expected {d:x} entries, got {d:list_index}"
ENDM
-MACRO nybble_array
+MACRO? nybble_array
DEF CURRENT_NYBBLE_ARRAY_VALUE = 0
DEF CURRENT_NYBBLE_ARRAY_LENGTH = 0
IF _NARG == 1
@@ -70,7 +66,7 @@ MACRO nybble_array
ENDC
ENDM
-MACRO nybble
+MACRO? nybble
ASSERT 0 <= (\1) && (\1) < $10, "nybbles must be 0-15"
DEF CURRENT_NYBBLE_ARRAY_VALUE = (\1) | (CURRENT_NYBBLE_ARRAY_VALUE << 4)
DEF CURRENT_NYBBLE_ARRAY_LENGTH += 1
@@ -80,7 +76,7 @@ MACRO nybble
ENDC
ENDM
-MACRO end_nybble_array
+MACRO? end_nybble_array
IF CURRENT_NYBBLE_ARRAY_LENGTH % 2
db CURRENT_NYBBLE_ARRAY_VALUE << 4
ENDC
@@ -94,7 +90,7 @@ MACRO end_nybble_array
ENDC
ENDM
-MACRO bit_array
+MACRO? bit_array
DEF CURRENT_BIT_ARRAY_VALUE = 0
DEF CURRENT_BIT_ARRAY_LENGTH = 0
IF _NARG == 1
@@ -105,7 +101,7 @@ MACRO bit_array
ENDC
ENDM
-MACRO dbit
+MACRO? dbit
ASSERT (\1) == 0 || (\1) == 1, "bits must be 0 or 1"
DEF CURRENT_BIT_ARRAY_VALUE |= (\1) << (CURRENT_BIT_ARRAY_LENGTH % 8)
DEF CURRENT_BIT_ARRAY_LENGTH += 1
@@ -115,7 +111,7 @@ MACRO dbit
ENDC
ENDM
-MACRO end_bit_array
+MACRO? end_bit_array
IF CURRENT_BIT_ARRAY_LENGTH % 8
db CURRENT_BIT_ARRAY_VALUE
ENDC
@@ -129,7 +125,7 @@ MACRO end_bit_array
ENDC
ENDM
-MACRO def_grass_wildmons
+MACRO? def_grass_wildmons
;\1: encounter rate
DEF CURRENT_GRASS_WILDMONS_RATE = \1
REDEF CURRENT_GRASS_WILDMONS_LABEL EQUS "._def_grass_wildmons_\1"
@@ -137,7 +133,7 @@ MACRO def_grass_wildmons
db \1
ENDM
-MACRO end_grass_wildmons
+MACRO? end_grass_wildmons
DEF x = @ - {CURRENT_GRASS_WILDMONS_LABEL}
IF CURRENT_GRASS_WILDMONS_RATE == 0
ASSERT 1 == x, \
@@ -148,7 +144,7 @@ MACRO end_grass_wildmons
ENDC
ENDM
-MACRO def_water_wildmons
+MACRO? def_water_wildmons
;\1: encounter rate
DEF CURRENT_WATER_WILDMONS_RATE = \1
REDEF CURRENT_WATER_WILDMONS_LABEL EQUS "._def_water_wildmons_\1"
@@ -156,7 +152,7 @@ MACRO def_water_wildmons
db \1
ENDM
-MACRO end_water_wildmons
+MACRO? end_water_wildmons
DEF x = @ - {CURRENT_WATER_WILDMONS_LABEL}
IF CURRENT_WATER_WILDMONS_RATE == 0
ASSERT 1 == x, \
diff --git a/macros/code.asm b/macros/code.asm
index 3c65e100..c972f97e 100644
--- a/macros/code.asm
+++ b/macros/code.asm
@@ -1,10 +1,10 @@
; Syntactic sugar macros
-MACRO lb ; r, hi, lo
+MACRO? lb ; r, hi, lo
ld \1, ((\2) & $ff) << 8 + ((\3) & $ff)
ENDM
-MACRO ldpal
+MACRO? ldpal
ld \1, \2 << 6 | \3 << 4 | \4 << 2 | \5
ENDM
diff --git a/macros/const.asm b/macros/const.asm
index fa2f0753..d6a34672 100644
--- a/macros/const.asm
+++ b/macros/const.asm
@@ -1,6 +1,6 @@
; Enumerate constants
-MACRO const_def
+MACRO? const_def
IF _NARG >= 1
DEF const_value = \1
ELSE
@@ -13,22 +13,22 @@ MACRO const_def
ENDC
ENDM
-MACRO const
+MACRO? const
DEF \1 EQU const_value
DEF const_value += const_inc
ENDM
-MACRO const_export
+MACRO? const_export
const \1
EXPORT \1
ENDM
-MACRO shift_const
+MACRO? shift_const
DEF \1 EQU 1 << const_value
DEF const_value += const_inc
ENDM
-MACRO const_skip
+MACRO? const_skip
if _NARG >= 1
DEF const_value += const_inc * (\1)
else
@@ -36,7 +36,7 @@ MACRO const_skip
endc
ENDM
-MACRO const_next
+MACRO? const_next
if (const_value > 0 && \1 < const_value) || (const_value < 0 && \1 > const_value)
fail "const_next cannot go backwards from {const_value} to \1"
else
@@ -44,12 +44,12 @@ MACRO const_next
endc
ENDM
-MACRO dw_const
+MACRO? dw_const
dw \1
const \2
ENDM
-MACRO rb_skip
+MACRO? rb_skip
IF _NARG == 1
rsset _RS + \1
ELSE
diff --git a/macros/coords.asm b/macros/coords.asm
index 6eccdec4..4f801d01 100644
--- a/macros/coords.asm
+++ b/macros/coords.asm
@@ -1,4 +1,4 @@
-MACRO validate_coords
+MACRO? validate_coords
IF _NARG >= 4
IF \1 >= \3
fail "x coord out of range"
@@ -11,19 +11,19 @@ MACRO validate_coords
ENDC
ENDM
-MACRO hlcoord
+MACRO? hlcoord
coord hl, \#
ENDM
-MACRO bccoord
+MACRO? bccoord
coord bc, \#
ENDM
-MACRO decoord
+MACRO? decoord
coord de, \#
ENDM
-MACRO coord
+MACRO? coord
; register, x, y[, origin]
validate_coords \2, \3
IF _NARG >= 4
@@ -33,19 +33,19 @@ MACRO coord
ENDC
ENDM
-MACRO hlbgcoord
+MACRO? hlbgcoord
bgcoord hl, \#
ENDM
-MACRO bcbgcoord
+MACRO? bcbgcoord
bgcoord bc, \#
ENDM
-MACRO debgcoord
+MACRO? debgcoord
bgcoord de, \#
ENDM
-MACRO bgcoord
+MACRO? bgcoord
; register, x, y[, origin]
validate_coords \2, \3, TILEMAP_WIDTH, TILEMAP_HEIGHT
IF _NARG >= 4
@@ -55,30 +55,30 @@ MACRO bgcoord
ENDC
ENDM
-MACRO hlowcoord
+MACRO? hlowcoord
owcoord hl, \#
ENDM
-MACRO bcowcoord
+MACRO? bcowcoord
owcoord bc, \#
ENDM
-MACRO deowcoord
+MACRO? deowcoord
owcoord de, \#
ENDM
-MACRO owcoord
+MACRO? owcoord
; register, x, y, map width
ld \1, wOverworldMap + ((\2) + 3) + (((\3) + 3) * ((\4) + (3 * 2)))
ENDM
-MACRO event_displacement
+MACRO? event_displacement
; map width, x blocks, y blocks
dw (wOverworldMap + 7 + (\1) + ((\1) + 6) * ((\3) >> 1) + ((\2) >> 1))
db \3, \2
ENDM
-MACRO dwcoord
+MACRO? dwcoord
; x, y
validate_coords \1, \2
IF _NARG >= 3
@@ -88,7 +88,7 @@ MACRO dwcoord
ENDC
ENDM
-MACRO ldcoord_a
+MACRO? ldcoord_a
; x, y[, origin]
validate_coords \1, \2
IF _NARG >= 3
@@ -98,7 +98,7 @@ MACRO ldcoord_a
ENDC
ENDM
-MACRO lda_coord
+MACRO? lda_coord
; x, y[, origin]
validate_coords \1, \2
IF _NARG >= 3
@@ -108,7 +108,7 @@ MACRO lda_coord
ENDC
ENDM
-MACRO dbmapcoord
+MACRO? dbmapcoord
; x, y
db \2, \1
ENDM
diff --git a/macros/data.asm b/macros/data.asm
index 8033f306..86181f8c 100644
--- a/macros/data.asm
+++ b/macros/data.asm
@@ -2,19 +2,19 @@
DEF percent EQUS "* $ff / 100"
-MACRO bcd2
+MACRO? bcd2
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
dn ((\1) / 10) % 10, (\1) % 10
ENDM
-MACRO bcd3
+MACRO? bcd3
dn ((\1) / 100000) % 10, ((\1) / 10000) % 10
dn ((\1) / 1000) % 10, ((\1) / 100) % 10
dn ((\1) / 10) % 10, (\1) % 10
ENDM
; used in data/pokemon/base_stats/*.asm
-MACRO tmhm
+MACRO? tmhm
; initialize bytes to 0
FOR n, (NUM_TM_HM + 7) / 8
DEF _tm{d:n} = 0
@@ -40,49 +40,49 @@ ENDM
; Constant data (db, dw, dl) macros
-MACRO dbw
+MACRO? dbw
db \1
dw \2
ENDM
-MACRO dwb
+MACRO? dwb
dw \1
db \2
ENDM
-MACRO dn ; nybbles
+MACRO? dn ; nybbles
REPT _NARG / 2
db ((\1) << 4) | (\2)
SHIFT 2
ENDR
ENDM
-MACRO dc ; "crumbs"
+MACRO? dc ; "crumbs"
REPT _NARG / 4
db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4)
SHIFT 4
ENDR
ENDM
-MACRO bigdw ; big-endian word
+MACRO? bigdw ; big-endian word
db HIGH(\1), LOW(\1)
ENDM
-MACRO dba ; dbw bank, address
+MACRO? dba ; dbw bank, address
REPT _NARG
dbw BANK(\1), \1
SHIFT
ENDR
ENDM
-MACRO dab ; dwb address, bank
+MACRO? dab ; dwb address, bank
REPT _NARG
dwb \1, BANK(\1)
SHIFT
ENDR
ENDM
-MACRO dname
+MACRO? dname
IF _NARG == 2
DEF n = \2
ELSE
@@ -91,7 +91,7 @@ MACRO dname
ASSERT STRFIND(\1, "@") == -1, "String terminator \"@\" in name: \1"
ASSERT CHARLEN(\1) <= n, "Name longer than {d:n} characters: \1"
db \1
- ds n - CHARLEN(\1), "@"
+ ds n - CHARLEN(\1), '@'
ENDM
MACRO sine_table
diff --git a/macros/gfx.asm b/macros/gfx.asm
index d50d64cf..2ecca399 100644
--- a/macros/gfx.asm
+++ b/macros/gfx.asm
@@ -1,4 +1,4 @@
-MACRO RGB
+MACRO? RGB
REPT _NARG / 3
dw palred (\1) + palgreen (\2) + palblue (\3)
SHIFT 3
@@ -16,7 +16,7 @@ DEF color EQUS "+ COLOR_SIZE *"
DEF tiles EQUS "* TILE_SIZE"
DEF tile EQUS "+ TILE_SIZE *"
-MACRO dbsprite
+MACRO? dbsprite
; 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/predef.asm b/macros/predef.asm
index 45b0197b..efd692f1 100644
--- a/macros/predef.asm
+++ b/macros/predef.asm
@@ -1,32 +1,32 @@
-MACRO predef_id
+MACRO? predef_id
ld a, (\1Predef - PredefPointers) / 3
ENDM
-MACRO predef
+MACRO? predef
predef_id \1
call Predef
ENDM
-MACRO predef_jump
+MACRO? predef_jump
predef_id \1
jp Predef
ENDM
-MACRO tx_pre_id
+MACRO? tx_pre_id
ld a, (\1_id - TextPredefs) / 2 + 1
ENDM
-MACRO tx_pre
+MACRO? tx_pre
tx_pre_id \1
call PrintPredefTextID
ENDM
-MACRO tx_pre_jump
+MACRO? tx_pre_jump
tx_pre_id \1
jp PrintPredefTextID
ENDM
-MACRO db_tx_pre
+MACRO? db_tx_pre
db (\1_id - TextPredefs) / 2 + 1
ENDM
diff --git a/macros/ram.asm b/macros/ram.asm
index 58704807..a8deac76 100644
--- a/macros/ram.asm
+++ b/macros/ram.asm
@@ -1,6 +1,6 @@
; Used in wram.asm
-MACRO flag_array
+MACRO? flag_array
ds ((\1) + 7) / 8
ENDM
diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm
index 49150c6e..127a13ad 100644
--- a/macros/scripts/maps.asm
+++ b/macros/scripts/maps.asm
@@ -174,7 +174,7 @@ MACRO connection
DEF _tgt = 0
ENDC
- IF !STRCMP("\1", "north")
+ IF "\1" === "north"
DEF _blk = \3_WIDTH * (\3_HEIGHT - 3) + _src
DEF _map = _tgt
DEF _win = (\3_WIDTH + 6) * \3_HEIGHT + 1
@@ -185,7 +185,7 @@ MACRO connection
DEF _len = \3_WIDTH
ENDC
- ELIF !STRCMP("\1", "south")
+ ELIF "\1" === "south"
DEF _blk = _src
DEF _map = (CURRENT_MAP_WIDTH + 6) * (CURRENT_MAP_HEIGHT + 3) + _tgt
DEF _win = \3_WIDTH + 7
@@ -196,7 +196,7 @@ MACRO connection
DEF _len = \3_WIDTH
ENDC
- ELIF !STRCMP("\1", "west")
+ ELIF "\1" === "west"
DEF _blk = (\3_WIDTH * _src) + \3_WIDTH - 3
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt
DEF _win = (\3_WIDTH + 6) * 2 - 6
@@ -207,7 +207,7 @@ MACRO connection
DEF _len = \3_HEIGHT
ENDC
- ELIF !STRCMP("\1", "east")
+ ELIF "\1" === "east"
DEF _blk = (\3_WIDTH * _src)
DEF _map = (CURRENT_MAP_WIDTH + 6) * _tgt + CURRENT_MAP_WIDTH + 3
DEF _win = \3_WIDTH + 7
diff --git a/macros/vc.asm b/macros/vc.asm
index 3b33e844..8711acaa 100644
--- a/macros/vc.asm
+++ b/macros/vc.asm
@@ -1,10 +1,10 @@
-MACRO vc_hook
+MACRO? vc_hook
IF DEF(_YELLOW_VC)
.VC_\1::
ENDC
ENDM
-MACRO vc_patch
+MACRO? vc_patch
IF DEF(_YELLOW_VC)
ASSERT !DEF(CURRENT_VC_PATCH), "Already started a vc_patch"
DEF CURRENT_VC_PATCH EQUS "\1"
@@ -12,7 +12,7 @@ MACRO vc_patch
ENDC
ENDM
-MACRO vc_patch_end
+MACRO? vc_patch_end
IF DEF(_YELLOW_VC)
ASSERT DEF(CURRENT_VC_PATCH), "No vc_patch started"
.VC_{CURRENT_VC_PATCH}_End::
@@ -20,7 +20,7 @@ MACRO vc_patch_end
ENDC
ENDM
-MACRO vc_assert
+MACRO? vc_assert
IF DEF(_YELLOW_VC)
ASSERT \#
ENDC