mirror of https://github.com/pret/pokecrystal.git
Start moving relevant macros into macros/text.asm.
This commit is contained in:
parent
0fa7b553bd
commit
9303752e3f
154
macros.asm
154
macros.asm
|
@ -8,18 +8,9 @@ INCLUDE "macros/movement.asm"
|
|||
INCLUDE "macros/map.asm"
|
||||
|
||||
|
||||
text EQUS "db $00," ; Start writing text.
|
||||
next EQUS "db $4e," ; Move a line down.
|
||||
line EQUS "db $4f," ; Start writing at the bottom line.
|
||||
para EQUS "db $51," ; Start a new paragraph.
|
||||
cont EQUS "db $55," ; Scroll to the next line.
|
||||
done EQUS "db $57" ; End a text box.
|
||||
prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event).
|
||||
|
||||
; Pokedex text commands are only used with pokered.
|
||||
; They are included for compatibility.
|
||||
page EQUS "db $50," ; Start a new Pokedex page.
|
||||
dex EQUS "db $e8, $50" ; End a Pokedex entry.
|
||||
RGB: MACRO
|
||||
dw ((\3) << 10) + ((\2) << 5) + (\1)
|
||||
ENDM
|
||||
|
||||
|
||||
percent EQUS "* $ff / 100"
|
||||
|
@ -29,8 +20,22 @@ FarCall EQU $08
|
|||
Bankswitch EQU $10
|
||||
JumpTable EQU $28
|
||||
|
||||
farcall: MACRO ; bank, address
|
||||
ld a, BANK(\1)
|
||||
ld hl, \1
|
||||
rst FarCall
|
||||
ENDM
|
||||
|
||||
NONE EQU 0
|
||||
callba EQUS "farcall"
|
||||
|
||||
callab: MACRO ; address, bank
|
||||
ld hl, \1
|
||||
ld a, BANK(\1)
|
||||
rst FarCall
|
||||
ENDM
|
||||
|
||||
|
||||
NONE EQU 0
|
||||
|
||||
|
||||
dwb: MACRO
|
||||
|
@ -54,29 +59,22 @@ dbwww: MACRO
|
|||
ENDM
|
||||
|
||||
dn: MACRO
|
||||
rept _NARG / 2
|
||||
db (\1) << 4 + (\2)
|
||||
shift
|
||||
shift
|
||||
endr
|
||||
ENDM
|
||||
|
||||
dt: MACRO ; three-byte (big-endian)
|
||||
db (\1 >> 16) & $ff
|
||||
db (\1 >> 8) & $ff
|
||||
db \1 & $ff
|
||||
db ((\1) >> 16) & $ff
|
||||
db ((\1) >> 8) & $ff
|
||||
db (\1) & $ff
|
||||
ENDM
|
||||
|
||||
bigdw: MACRO ; big-endian word
|
||||
dw ((\1)/$100) + (((\1)&$ff)*$100)
|
||||
ENDM
|
||||
|
||||
callab: MACRO ; address, bank
|
||||
ld hl, \1
|
||||
ld a, BANK(\1)
|
||||
rst FarCall
|
||||
ENDM
|
||||
|
||||
callba: MACRO ; bank, address
|
||||
ld a, BANK(\1)
|
||||
ld hl, \1
|
||||
rst FarCall
|
||||
db (\1) / $100
|
||||
db (\1) % $100
|
||||
ENDM
|
||||
|
||||
|
||||
|
@ -84,6 +82,40 @@ lb: MACRO ; r, hi, lo
|
|||
ld \1, (\2) << 8 + (\3)
|
||||
ENDM
|
||||
|
||||
bccoord: MACRO
|
||||
coord bc, \1, \2
|
||||
ENDM
|
||||
|
||||
decoord: MACRO
|
||||
coord de, \1, \2
|
||||
ENDM
|
||||
|
||||
hlcoord: MACRO
|
||||
coord hl, \1, \2
|
||||
ENDM
|
||||
|
||||
coord: MACRO
|
||||
ld \1, TileMap + SCREEN_WIDTH * (\3) + (\2)
|
||||
ENDM
|
||||
|
||||
|
||||
; pic animations
|
||||
frame: MACRO
|
||||
db \1
|
||||
db \2
|
||||
ENDM
|
||||
setrepeat: MACRO
|
||||
db $fe
|
||||
db \1
|
||||
ENDM
|
||||
dorepeat: MACRO
|
||||
db $fd
|
||||
db \1
|
||||
ENDM
|
||||
endanim: MACRO
|
||||
db $ff
|
||||
ENDM
|
||||
|
||||
|
||||
; Constant enumeration
|
||||
|
||||
|
@ -97,24 +129,9 @@ const_value SET const_value + 1
|
|||
ENDM
|
||||
|
||||
|
||||
TX_RAM: MACRO
|
||||
db 1
|
||||
dw \1
|
||||
ENDM
|
||||
|
||||
TX_FAR: MACRO
|
||||
db $16
|
||||
dw \1
|
||||
db BANK(\1)
|
||||
ENDM
|
||||
|
||||
RGB: MACRO
|
||||
dw (((\3) << 10) | ((\2) << 5) | (\1))
|
||||
ENDM
|
||||
|
||||
|
||||
note: MACRO
|
||||
db (\1) << 4 + ((\2) - 1)
|
||||
dn (\1), (\2) - 1
|
||||
ENDM
|
||||
|
||||
sound: macro
|
||||
|
@ -145,36 +162,6 @@ A# EQU 11
|
|||
B_ EQU 12
|
||||
|
||||
|
||||
bccoord: MACRO
|
||||
ld bc, TileMap + SCREEN_WIDTH * (\2) + (\1)
|
||||
ENDM
|
||||
|
||||
decoord: MACRO
|
||||
ld de, TileMap + SCREEN_WIDTH * (\2) + (\1)
|
||||
ENDM
|
||||
|
||||
hlcoord: MACRO
|
||||
ld hl, TileMap + SCREEN_WIDTH * (\2) + (\1)
|
||||
ENDM
|
||||
|
||||
|
||||
; pic animations
|
||||
frame: MACRO
|
||||
db \1
|
||||
db \2
|
||||
ENDM
|
||||
setrepeat: MACRO
|
||||
db $fe
|
||||
db \1
|
||||
ENDM
|
||||
dorepeat: MACRO
|
||||
db $fd
|
||||
db \1
|
||||
ENDM
|
||||
endanim: MACRO
|
||||
db $ff
|
||||
ENDM
|
||||
|
||||
|
||||
; maps
|
||||
|
||||
|
@ -193,20 +180,13 @@ roam_map: MACRO
|
|||
; A map and an arbitrary number of some more maps.
|
||||
|
||||
map \1
|
||||
db \2
|
||||
db \2
|
||||
|
||||
IF \2 > 0
|
||||
rept \2
|
||||
map \3
|
||||
ENDC
|
||||
IF \2 > 1
|
||||
map \4
|
||||
ENDC
|
||||
IF \2 > 2
|
||||
map \5
|
||||
ENDC
|
||||
IF \2 > 3
|
||||
map \6
|
||||
ENDC
|
||||
shift
|
||||
endr
|
||||
|
||||
db 0
|
||||
ENDM
|
||||
|
||||
|
|
|
@ -1,7 +1,30 @@
|
|||
text_from_ram: macro
|
||||
text EQUS "db $00," ; Start writing text.
|
||||
next EQUS "db $4e," ; Move a line down.
|
||||
line EQUS "db $4f," ; Start writing at the bottom line.
|
||||
para EQUS "db $51," ; Start a new paragraph.
|
||||
cont EQUS "db $55," ; Scroll to the next line.
|
||||
done EQUS "db $57" ; End a text box.
|
||||
prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event).
|
||||
|
||||
; Pokedex text commands are only used with pokered.
|
||||
; They are included for compatibility.
|
||||
page EQUS "db $50," ; Start a new Pokedex page.
|
||||
dex EQUS "db $e8, $50" ; End a Pokedex entry.
|
||||
|
||||
|
||||
TX_RAM: MACRO
|
||||
db 1
|
||||
dw \1
|
||||
endm
|
||||
ENDM
|
||||
|
||||
TX_FAR: MACRO
|
||||
db $16
|
||||
dw \1
|
||||
db BANK(\1)
|
||||
ENDM
|
||||
|
||||
|
||||
text_from_ram EQUS "TX_RAM"
|
||||
|
||||
text_dunno1: macro
|
||||
db 5
|
||||
|
@ -58,8 +81,4 @@ current_day: macro
|
|||
db $15
|
||||
endm
|
||||
|
||||
text_jump: macro
|
||||
db $16
|
||||
dw \1
|
||||
db BANK(\1)
|
||||
endm
|
||||
text_jump EQUS "TX_FAR"
|
||||
|
|
Loading…
Reference in New Issue