2017-12-13 21:36:24 -08:00
|
|
|
RGB: MACRO
|
|
|
|
rept _NARG / 3
|
2018-01-07 10:11:29 -08:00
|
|
|
dw palred (\1) + palgreen (\2) + palblue (\3)
|
2020-04-04 11:42:31 -07:00
|
|
|
shift 3
|
2017-12-13 21:36:24 -08:00
|
|
|
endr
|
|
|
|
ENDM
|
|
|
|
|
2018-01-07 10:11:29 -08:00
|
|
|
palred EQUS "(1 << 0) *"
|
|
|
|
palgreen EQUS "(1 << 5) *"
|
|
|
|
palblue EQUS "(1 << 10) *"
|
|
|
|
|
2018-01-22 16:57:35 -08:00
|
|
|
palettes EQUS "* PALETTE_SIZE"
|
|
|
|
palette EQUS "+ PALETTE_SIZE *"
|
|
|
|
color EQUS "+ PAL_COLOR_SIZE *"
|
2018-01-22 16:40:17 -08:00
|
|
|
|
|
|
|
tiles EQUS "* LEN_2BPP_TILE"
|
|
|
|
tile EQUS "+ LEN_2BPP_TILE *"
|
2018-08-31 18:39:17 -07:00
|
|
|
|
|
|
|
; extracts the middle two colors from a 2bpp binary palette
|
|
|
|
; example usage:
|
|
|
|
; INCBIN "foo.gbcpal", middle_colors
|
|
|
|
middle_colors EQUS "PAL_COLOR_SIZE, PAL_COLOR_SIZE * 2"
|
2020-04-04 12:19:43 -07:00
|
|
|
|
|
|
|
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,"
|
|
|
|
|
`dsprite y, ypx, x, xpx, off, attr` -> `dbsprite x, y, xpx, ypx, off, attr`
2020-04-04 13:00:30 -07:00
|
|
|
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
|
2020-04-04 12:19:43 -07:00
|
|
|
ENDM
|