summaryrefslogtreecommitdiff
path: root/constants.asm
diff options
context:
space:
mode:
Diffstat (limited to 'constants.asm')
-rw-r--r--constants.asm257
1 files changed, 138 insertions, 119 deletions
diff --git a/constants.asm b/constants.asm
index 10cb6d91..fa0f3afc 100644
--- a/constants.asm
+++ b/constants.asm
@@ -275,6 +275,8 @@ W_LISTMENUID EQU $CF94 ; ID used by DisplayListMenuID
W_WALKCOUNTER EQU $CFC5 ; walk animation counter
+W_CURCHANNELPOINTER EQU $CFC7 ; (the current music channel pointer - $4000) / 3
+
W_ENEMYMOVENUM EQU $CFCC
W_ENEMYMOVEEFFECT EQU $CFCD
W_ENEMYMOVEPOWER EQU $CFCE
@@ -3369,146 +3371,163 @@ BRUNOS_ROOM_WIDTH EQU $05
AGATHAS_ROOM_HEIGHT EQU $06
AGATHAS_ROOM_WIDTH EQU $05
-;Sound Constants (Copied from pkms.asm with modifications)
-MUSIC EQU 0
-SFX EQU 4
-CH1 EQU 0
-CH2 EQU 1
-CH3 EQU 2
-CH4 EQU 3
+;1_channel EQU $00
+;2_channels EQU $40
+;3_channels EQU $80
+;4_channels EQU $C0
+
+CH0 EQU 0
+CH1 EQU 1
+CH2 EQU 2
+CH3 EQU 3
+CH4 EQU 4
+CH5 EQU 5
+CH6 EQU 6
+CH7 EQU 7
;Note Pitch
-noteC EQU $0
-noteC# EQU $1
-noteD EQU $2
-noteD# EQU $3
-noteE EQU $4
-noteF EQU $5
-noteF# EQU $6
-noteG EQU $7
-noteG# EQU $8
-noteA EQU $9
-noteA# EQU $A
-noteB EQU $B
-noteRst EQU $C
-
-;Note Delay
-note16 EQU $0 ;1/16
-note8 EQU $1 ;1/8
-note8_16 EQU $2 ;1/8 + 1/16
-note4 EQU $3 ;1/4
-note4_16 EQU $4 ;1/4 + 1/16
-note4_8 EQU $5 ;1/4 + 1/8
-note4_8_16 EQU $6 ;1/4 + 1/8 + 1/16
-note2 EQU $7 ;1/2
-note2_16 EQU $8 ;1/2 + 1/16
-note2_8 EQU $9 ;1/2 + 1/8
-note2_8_16 EQU $A ;1/2 + 1/8 + 1/16
-note2_4 EQU $B ;1/2 + 1/4
-note2_4_16 EQU $C ;1/2 + 1/4 + 1/16
-note2_4_8 EQU $D ;1/2 + 1/4 + 1/8
-note2_4_8_16 EQU $E ;1/2 + 1/4 + 1/8 + 1/16
-note1 EQU $F ;1
-
-;Drum
-dNote EQU $B0
-dRst EQU $C0
-d5d3Spd EQU $D4
-d4d3Spd EQU $D8
-dNormSpd EQU $DC
-d2Spd EQU $D0
-
-; octaves
-oct0 EQU $E7
-oct1 EQU $E6
-oct2 EQU $E5
-oct3 EQU $E4
-oct4 EQU $E3
-oct5 EQU $E2
-oct6 EQU $E1
-oct7 EQU $E0
-
-;duty
-duty12_5 EQU $0
-duty25 EQU $1
-duty50 EQU $2
-duty75 EQU $3
-
-;Write a music note
-;format: mus_note pitch delay
-mus_note: MACRO
- db ((\1 << 4) | \2)
+C_ EQU $0
+C# EQU $1
+D_ EQU $2
+D# EQU $3
+E_ EQU $4
+F_ EQU $5
+F# EQU $6
+G_ EQU $7
+G# EQU $8
+A_ EQU $9
+A# EQU $A
+B_ EQU $B
+
+;drum instruments
+snare1 EQU $01
+snare2 EQU $02
+snare3 EQU $03
+snare4 EQU $04
+snare5 EQU $05
+triangle1 EQU $06
+triangle2 EQU $07
+snare6 EQU $08
+snare7 EQU $09
+snare8 EQU $0a
+snare9 EQU $0b
+cymbal1 EQU $0c
+cymbal2 EQU $0d
+cymbal3 EQU $0e
+mutedsnare1 EQU $0f
+triangle3 EQU $10
+mutedsnare2 EQU $11
+mutedsnare3 EQU $12
+mutedsnare4 EQU $13
+
+unknownsfx0x10: MACRO
+ db $10
+ db \1
ENDM
-;Write an octave note
-;format: mus_octave octave
-mus_octave: MACRO
- db \1
+unknownsfx0x20: MACRO
+ db $20 | \1
+ db \2
+ db \3
+ db \4
ENDM
-; set velocity/note fade (\1 is velocity, \2 is note length, both 0-15)
-; format: mus_vel vel, length
-mus_vel: MACRO
- db $DC
- db ((\1 << 4) | \2)
+unknownnoise0x20: MACRO
+ db $20 | \1
+ db \2
+ db \3
ENDM
-; stop sound
-; format: mus_end
-mus_end: MACRO
- db $FF
+;format: note pitch, length (in 16ths)
+note: MACRO
+ db (\1 << 4) | (\2 - 1)
+ENDM
+
+;format: dnote length (in 16ths), instrument
+dnote: MACRO
+ db $B0 | (\1 - 1)
+ db \2
+ENDM
+
+;format: rest length (in 16ths)
+rest: MACRO
+ db $C0 | (\1 - 1)
+ENDM
+
+; format: notetype speed, volume, fade
+notetype: MACRO
+ db $D0 | \1
+ db (\2 << 4) | \3
+ENDM
+
+dspeed: MACRO
+ db $D0 | \1
+ENDM
+
+octave: MACRO
+ db $E8 - \1
ENDM
-; ???
-; format: mus_E8
-mus_E8: MACRO
+togglecall: MACRO
db $E8
ENDM
-; set modulation (\1 is delay, \2 is depth, \3 is rate)
-; format: mus_mod delay, depth, rate
-mus_mod: MACRO
- db $EA
- db \1
- db ((\2 << 4) | \3)
+;format: vibrato delay, rate, depth
+vibrato: MACRO
+ db $EA
+ db \1
+ db (\2 << 4) | \3
+ENDM
+
+pitchbend: MACRO
+ db $EB
+ db \1
+ db \2
ENDM
-; set duty cycle (\1: 0 = 12.5%, 1 = 25%, 2 = 50%, 3 = 75%)
-; format: mus_duty duty
-mus_duty: MACRO
- db $EC
- db \1
+duty: MACRO
+ db $EC
+ db \1
ENDM
-; set music tempo (\1 is divider, \2 is modifier)
-; format: mus_tempo divider, modifier
-mus_tempo: MACRO
- db $ED
- db \1
- db \2
+tempo: MACRO
+ db $ED
+ db \1
+ db \2
ENDM
-; set volume (\1 is volume)
-; format: mus_volume volume
-; (may actually be panning?)
-mus_volume: MACRO
- db $F0
- db \1
+unknownmusic0xee: MACRO
+ db $EE
+ db \1
ENDM
-; call \1
-; format: mus_call offset
-mus_call: MACRO
- db $FD
- ;dw ((\1 % $4000) + ((\1 >= $4000) * $4000))
- dw \1
+stereopanning: MACRO
+ db $F0
+ db \1
ENDM
-; jump \1 \2
-; format: mus_jump loop offset
-mus_jump: MACRO
- db $FE
- db \1
- dw \2
- ;dw ((\2 % $4000) + ((\2 >= $4000) * $4000))
+executemusic: MACRO
+ db $F8
+ENDM
+
+dutycycle: MACRO
+ db $FC
+ db \1
+ENDM
+
+;format: callchannel address
+;callchannel: MACRO
+; db $FD
+; dw \1
+;ENDM
+
+;format: loopchannel count, address
+;loopchannel: MACRO
+; db $FE
+; db \1
+; dw \2
+;ENDM
+
+endchannel: MACRO
+ db $FF
ENDM