diff options
author | yenatch <yenatch@gmail.com> | 2015-01-20 14:26:16 -0800 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-01-20 14:26:16 -0800 |
commit | f036cdf13b0e215cd9a14cc9dba24f821a9679c0 (patch) | |
tree | 2f517ab85b4e173a6d8b47c8d1dfb22a20ff9811 | |
parent | 9303752e3fac18a5245870a992a04d11772bed52 (diff) |
Move around some more macros.
-rw-r--r-- | constants/misc_constants.asm | 2 | ||||
-rw-r--r-- | macros.asm | 110 | ||||
-rw-r--r-- | macros/map.asm | 26 | ||||
-rw-r--r-- | macros/predef.asm | 21 | ||||
-rw-r--r-- | macros/rst.asm | 17 | ||||
-rw-r--r-- | macros/sound.asm | 32 |
6 files changed, 101 insertions, 107 deletions
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 9d793f3b0..31f2ad561 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -1,3 +1,5 @@ +NONE EQU 0 + PARTY_LENGTH EQU 6 MAX_ITEMS EQU 20 diff --git a/macros.asm b/macros.asm index caa8a6a1b..81d5f2e79 100644 --- a/macros.asm +++ b/macros.asm @@ -6,6 +6,8 @@ INCLUDE "macros/move_effect.asm" INCLUDE "macros/move_anim.asm" INCLUDE "macros/movement.asm" INCLUDE "macros/map.asm" +INCLUDE "macros/predef.asm" +INCLUDE "macros/rst.asm" RGB: MACRO @@ -15,28 +17,6 @@ RGB: MACRO percent EQUS "* $ff / 100" -; macros require rst vectors to be defined -FarCall EQU $08 -Bankswitch EQU $10 -JumpTable EQU $28 - -farcall: MACRO ; bank, address - ld a, BANK(\1) - ld hl, \1 - rst FarCall - ENDM - -callba EQUS "farcall" - -callab: MACRO ; address, bank - ld hl, \1 - ld a, BANK(\1) - rst FarCall - ENDM - - -NONE EQU 0 - dwb: MACRO dw \1 @@ -82,6 +62,7 @@ lb: MACRO ; r, hi, lo ld \1, (\2) << 8 + (\3) ENDM + bccoord: MACRO coord bc, \1, \2 ENDM @@ -129,68 +110,6 @@ const_value SET const_value + 1 ENDM - -note: MACRO - dn (\1), (\2) - 1 - ENDM - -sound: macro - db \1 ; duration - db \2 ; intensity - dw \3 ; frequency - endm - -noise: macro - db \1 ; duration - db \2 ; intensity - db \3 ; frequency - endm - -; pitch -__ EQU 0 -C_ EQU 1 -C# EQU 2 -D_ EQU 3 -D# EQU 4 -E_ EQU 5 -F_ EQU 6 -F# EQU 7 -G_ EQU 8 -G# EQU 9 -A_ EQU 10 -A# EQU 11 -B_ EQU 12 - - - -; maps - -map: MACRO -; This is a really silly hack to get around an rgbds bug. - -; Ideally: -; db GROUP_\1, MAP_\1 - -\1\@ EQUS "GROUP_\1" -\1\@2 EQUS "MAP_\1" - db \1\@, \1\@2 -ENDM - -roam_map: MACRO -; A map and an arbitrary number of some more maps. - - map \1 - db \2 - - rept \2 - map \3 - shift - endr - - db 0 -ENDM - - sine_wave: MACRO ; \1: amplitude @@ -201,26 +120,3 @@ x = 0 x = x + (\1) * $40000 endr ENDM - - -add_predef: MACRO -\1Predef:: - dw \1 - db BANK(\1) -ENDM - -predef_id: MACRO -; Some functions load the predef id -; without immediately calling Predef. - ld a, (\1Predef - PredefPointers) / 3 -ENDM - -predef: MACRO - predef_id \1 - call Predef -ENDM - -predef_jump: MACRO - predef_id \1 - jp Predef -ENDM diff --git a/macros/map.asm b/macros/map.asm index 297646a79..ef62f386f 100644 --- a/macros/map.asm +++ b/macros/map.asm @@ -1,3 +1,29 @@ +map: MACRO +; This is a silly hack to get around an rgbds bug. + +; Ideally: +; db GROUP_\1, MAP_\1 + +\1\@ EQUS "GROUP_\1" +\1\@2 EQUS "MAP_\1" + db \1\@, \1\@2 +ENDM + +roam_map: MACRO +; A map and an arbitrary number of some more maps. + + map \1 + db \2 + + rept \2 + map \3 + shift + endr + + db 0 +ENDM + + person_event: macro db \1 ; sprite db \2 ; y diff --git a/macros/predef.asm b/macros/predef.asm new file mode 100644 index 000000000..d6c0344e6 --- /dev/null +++ b/macros/predef.asm @@ -0,0 +1,21 @@ +add_predef: MACRO +\1Predef:: + dw \1 + db BANK(\1) +ENDM + +predef_id: MACRO +; Some functions load the predef id +; without immediately calling Predef. + ld a, (\1Predef - PredefPointers) / 3 +ENDM + +predef: MACRO + predef_id \1 + call Predef +ENDM + +predef_jump: MACRO + predef_id \1 + jp Predef +ENDM diff --git a/macros/rst.asm b/macros/rst.asm new file mode 100644 index 000000000..50259c968 --- /dev/null +++ b/macros/rst.asm @@ -0,0 +1,17 @@ +FarCall EQU $08 +Bankswitch EQU $10 +JumpTable EQU $28 + +farcall: MACRO ; bank, address + ld a, BANK(\1) + ld hl, \1 + rst FarCall + ENDM + +callba EQUS "farcall" + +callab: MACRO ; address, bank + ld hl, \1 + ld a, BANK(\1) + rst FarCall + ENDM diff --git a/macros/sound.asm b/macros/sound.asm index 38c72f1cf..8b8de34b2 100644 --- a/macros/sound.asm +++ b/macros/sound.asm @@ -1,3 +1,35 @@ +note: MACRO + dn (\1), (\2) - 1 + ENDM + +sound: macro + db \1 ; duration + db \2 ; intensity + dw \3 ; frequency + endm + +noise: macro + db \1 ; duration + db \2 ; intensity + db \3 ; frequency + endm + +; pitch +__ EQU 0 +C_ EQU 1 +C# EQU 2 +D_ EQU 3 +D# EQU 4 +E_ EQU 5 +F_ EQU 6 +F# EQU 7 +G_ EQU 8 +G# EQU 9 +A_ EQU 10 +A# EQU 11 +B_ EQU 12 + + octave: macro db $d8 - (\1) endm |