2222;* Rev 2.5 - 03-May-15 : Fixed format (AntonioND)
2323;* Rev 2.6 - 09-Apr-16 : Added GBC OAM and cart defines (AntonioND)
2424;* Rev 2.7 - 19-Jan-19 : Added rPCMXX (ISSOtm)
25+ ;* Rev 2.8 - 03-Feb-19 : Added audio registers flags (Álvaro Cuesta)
2526
2627; If all of these are already defined, don't do it again.
2728
@@ -31,7 +32,7 @@ HARDWARE_INC SET 1
3132rev_Check_hardware_inc : MACRO
3233;NOTE: REVISION NUMBER CHANGES MUST BE ADDED
3334;TO SECOND PARAMETER IN FOLLOWING LINE.
34- IF \1 > 2 .7 ;PUT REVISION NUMBER HERE
35+ IF \1 > 2 .8 ;PUT REVISION NUMBER HERE
3536 WARN "Version \1 or later of 'hardware.inc' is required."
3637 ENDC
3738ENDM
@@ -402,6 +403,9 @@ IEF_VBLANK EQU %00000001 ; V-Blank
402403rNR50 EQU $FF24
403404rAUDVOL EQU rNR50
404405
406+ AUDVOL_VIN_LEFT EQU %10000000 ; SO2
407+ AUDVOL_VIN_RIGHT EQU %00001000 ; SO1
408+
405409
406410; --
407411; -- AUDTERM/NR51 ($FF25)
@@ -419,6 +423,17 @@ rAUDVOL EQU rNR50
419423rNR51 EQU $FF25
420424rAUDTERM EQU rNR51
421425
426+ ; SO2
427+ AUDTERM_4_LEFT EQU %10000000
428+ AUDTERM_3_LEFT EQU %01000000
429+ AUDTERM_2_LEFT EQU %00100000
430+ AUDTERM_1_LEFT EQU %00010000
431+ ; SO1
432+ AUDTERM_4_RIGHT EQU %00001000
433+ AUDTERM_3_RIGHT EQU %00000100
434+ AUDTERM_2_RIGHT EQU %00000010
435+ AUDTERM_1_RIGHT EQU %00000001
436+
422437
423438; --
424439; -- AUDENA/NR52 ($FF26)
@@ -433,6 +448,9 @@ rAUDTERM EQU rNR51
433448rNR52 EQU $FF26
434449rAUDENA EQU rNR52
435450
451+ AUDENA_ON EQU %10000000
452+ AUDENA_OFF EQU %00000000 ; sets all audio regs to 0!
453+
436454
437455;***************************************************************************
438456;*
@@ -454,6 +472,9 @@ rAUDENA EQU rNR52
454472rNR10 EQU $FF10
455473rAUD1SWEEP EQU rNR10
456474
475+ AUD1SWEEP_UP EQU %00000000
476+ AUD1SWEEP_DOWN EQU %00001000
477+
457478
458479; --
459480; -- AUD1LEN/NR11 ($FF11)
@@ -672,6 +693,47 @@ rPCM12 EQU $FF76
672693; --
673694rPCM34 EQU $FF77
674695
696+
697+ ;***************************************************************************
698+ ;*
699+ ;* Flags common to multiple sound channels
700+ ;*
701+ ;***************************************************************************
702+
703+ ; --
704+ ; -- Square wave duty cycle
705+ ; --
706+ ; -- Can be used with AUD1LEN and AUD2LEN
707+ ; -- See AUD1LEN for more info
708+ ; --
709+ AUDLEN_DUTY_12_5 EQU %00000000 ; 12.5%
710+ AUDLEN_DUTY_25 EQU %01000000 ; 25%
711+ AUDLEN_DUTY_50 EQU %10000000 ; 50%
712+ AUDLEN_DUTY_75 EQU %11000000 ; 75%
713+
714+
715+ ; --
716+ ; -- Audio envelope flags
717+ ; --
718+ ; -- Can be used with AUD1ENV, AUD2ENV, AUD4ENV
719+ ; -- See AUD1ENV for more info
720+ ; --
721+ AUDENV_UP EQU %00001000
722+ AUDENV_DOWN EQU %00000000
723+
724+
725+ ; --
726+ ; -- Audio trigger flags
727+ ; --
728+ ; -- Can be used with AUD1HIGH, AUD2HIGH, AUD3HIGH
729+ ; -- See AUD1HIGH for more info
730+ ; --
731+
732+ AUDHIGH_RESTART EQU %10000000
733+ AUDHIGH_LENGTH_ON EQU %01000000
734+ AUDHIGH_LENGTH_OFF EQU %00000000
735+
736+
675737;***************************************************************************
676738;*
677739;* Cart related
0 commit comments