Reorganize macros
This commit is contained in:
121
macros/data.asm
Normal file
121
macros/data.asm
Normal file
@@ -0,0 +1,121 @@
|
||||
; Constant data (db, dw, dl) macros
|
||||
|
||||
dwb: MACRO
|
||||
dw \1
|
||||
db \2
|
||||
ENDM
|
||||
|
||||
dbw: MACRO
|
||||
db \1
|
||||
dw \2
|
||||
ENDM
|
||||
|
||||
dbbw: MACRO
|
||||
db \1, \2
|
||||
dw \3
|
||||
ENDM
|
||||
|
||||
dbww: MACRO
|
||||
db \1
|
||||
dw \2, \3
|
||||
ENDM
|
||||
|
||||
dbwww: MACRO
|
||||
db \1
|
||||
dw \2, \3, \4
|
||||
ENDM
|
||||
|
||||
dn: MACRO ; nybbles
|
||||
rept _NARG / 2
|
||||
db ((\1) << 4) | (\2)
|
||||
shift
|
||||
shift
|
||||
endr
|
||||
ENDM
|
||||
|
||||
dc: MACRO ; "crumbs"
|
||||
rept _NARG / 4
|
||||
db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4)
|
||||
shift
|
||||
shift
|
||||
shift
|
||||
shift
|
||||
endr
|
||||
ENDM
|
||||
|
||||
dx: MACRO
|
||||
x = 8 * ((\1) - 1)
|
||||
rept \1
|
||||
db ((\2) >> x) & $ff
|
||||
x = x + -8
|
||||
endr
|
||||
ENDM
|
||||
|
||||
dt: MACRO ; three-byte (big-endian)
|
||||
dx 3, \1
|
||||
ENDM
|
||||
|
||||
dd: MACRO ; four-byte (big-endian)
|
||||
dx 4, \1
|
||||
ENDM
|
||||
|
||||
bigdw: MACRO ; big-endian word
|
||||
dx 2, \1
|
||||
ENDM
|
||||
|
||||
dba: MACRO ; dbw bank, address
|
||||
rept _NARG
|
||||
dbw BANK(\1), \1
|
||||
shift
|
||||
endr
|
||||
ENDM
|
||||
|
||||
dab: MACRO ; dwb address, bank
|
||||
rept _NARG
|
||||
dwb \1, BANK(\1)
|
||||
shift
|
||||
endr
|
||||
ENDM
|
||||
|
||||
dba_pic: MACRO ; dbw bank, address
|
||||
db BANK(\1) - PICS_FIX
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
|
||||
dbpixel: MACRO
|
||||
if _NARG >= 4
|
||||
db \1 * 8 + \3, \2 * 8 + \4
|
||||
else
|
||||
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 & 7)
|
||||
else
|
||||
db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6
|
||||
endc
|
||||
endm
|
||||
|
||||
|
||||
sine_wave: MACRO
|
||||
; \1: amplitude
|
||||
x = 0
|
||||
rept $20
|
||||
; Round up.
|
||||
dw (sin(x) + (sin(x) & $ff)) >> 8
|
||||
x = x + (\1) * $40000
|
||||
endr
|
||||
ENDM
|
||||
|
||||
|
||||
bcd: MACRO
|
||||
rept _NARG
|
||||
dn ((\1) % 100) / 10, (\1) % 10
|
||||
shift
|
||||
endr
|
||||
ENDM
|
Reference in New Issue
Block a user