pokered/constants/audio_constants.asm
Rangi 9878f01e29 Organize macros/ like pokecrystal
While doing so I replaced the StopAllMusic macro with a SFX_STOP_ALL_MUSIC constant and applied it throughout the code.
2020-07-03 16:37:47 -04:00

59 lines
1.6 KiB
NASM

; pitch
const_def
const C_ ; 0
const C# ; 1
const D_ ; 2
const D# ; 3
const E_ ; 4
const F_ ; 5
const F# ; 6
const G_ ; 7
const G# ; 8
const A_ ; 9
const A# ; A
const B_ ; B
; channel
const_def
const Ch1 ; 0
const Ch2 ; 1
const Ch3 ; 2
const Ch4 ; 3
const Ch5 ; 4
const Ch6 ; 5
const Ch7 ; 6
const Ch8 ; 7
; HW sound channel register base addresses
HW_CH1_BASE EQU (rNR10 % $100)
HW_CH2_BASE EQU ((rNR21 % $100) - 1)
HW_CH3_BASE EQU (rNR30 % $100)
HW_CH4_BASE EQU ((rNR41 % $100) - 1)
; HW sound channel enable bit masks
HW_CH1_ENABLE_MASK EQU %00010001
HW_CH2_ENABLE_MASK EQU %00100010
HW_CH3_ENABLE_MASK EQU %01000100
HW_CH4_ENABLE_MASK EQU %10001000
; HW sound channel disable bit masks
HW_CH1_DISABLE_MASK EQU (~HW_CH1_ENABLE_MASK & $ff)
HW_CH2_DISABLE_MASK EQU (~HW_CH2_ENABLE_MASK & $ff)
HW_CH3_DISABLE_MASK EQU (~HW_CH3_ENABLE_MASK & $ff)
HW_CH4_DISABLE_MASK EQU (~HW_CH4_ENABLE_MASK & $ff)
REG_DUTY_SOUND_LEN EQU 1
REG_VOLUME_ENVELOPE EQU 2
REG_FREQUENCY_LO EQU 3
; wChannelFlags1 constants
BIT_PERFECT_PITCH EQU 0 ; controlled by toggle_perfect_pitch command
BIT_SOUND_CALL EQU 1 ; if in sound call
BIT_NOISE_OR_SFX EQU 2 ; if channel is the music noise channel or an SFX channel
BIT_VIBRATO_DIRECTION EQU 3 ; if the pitch is above or below normal (cycles)
BIT_PITCH_SLIDE_ON EQU 4 ; if pitch slide is active
BIT_PITCH_SLIDE_DECREASING EQU 5 ; if the pitch slide frequency is decreasing (instead of increasing)
BIT_ROTATE_DUTY_CYCLE EQU 6 ; if rotating duty cycle
; wChannelFlags2 constant (only has one flag)
BIT_EXECUTE_MUSIC EQU 0 ; if in execute music