aboutsummaryrefslogtreecommitdiffstats
path: root/src/gba/gba.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gba/gba.h')
-rw-r--r--src/gba/gba.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/gba/gba.h b/src/gba/gba.h
index cdb3b31..b02d745 100644
--- a/src/gba/gba.h
+++ b/src/gba/gba.h
@@ -558,7 +558,7 @@ sound_volume(SoundChannel channels, u8 volume) {
558#define SOUND_SWEEP_DIR(N) ((N) << 0x3) 558#define SOUND_SWEEP_DIR(N) ((N) << 0x3)
559#define SOUND_SWEEP_TIME(N) ((N) << 0x4) 559#define SOUND_SWEEP_TIME(N) ((N) << 0x4)
560 560
561// DMG frequency bits (Square/Wave). 561// DMG frequency bits (Square/Wave/NOISE).
562#define SOUND_FREQ_TIMED (1 << 0xE) 562#define SOUND_FREQ_TIMED (1 << 0xE)
563#define SOUND_FREQ_RESET (1 << 0xF) 563#define SOUND_FREQ_RESET (1 << 0xF)
564 564
@@ -585,6 +585,18 @@ typedef u8 WaveBank[32];
585 585
586#define SOUND_WAVE_RAM ((WaveBank*)(MEM_IO + 0x90)) 586#define SOUND_WAVE_RAM ((WaveBank*)(MEM_IO + 0x90))
587 587
588// DMG noise control bits.
589#define SOUND_NOISE_LENGTH(N) (((N) & 0x3F) << 0)
590#define SOUND_NOISE_ENV_TIME(N) (((N) & 0x07) << 0x8)
591#define SOUND_NOISE_ENV_DIR(N) (((N) & 0x01) << 0xB)
592#define SOUND_NOISE_ENV_VOL(N) (((N) & 0x0F) << 0xC)
593
594// DMG noise freq bits.
595#define SOUND_NOISE_DIV_FREQ(N) (((N) & 0x07) << 0)
596#define SOUND_NOISE_COUNTER_STAGE(N) (((N) & 0x01) << 0x3)
597#define SOUND_NOISE_PRESTEP_FREQ(N) (((N) & 0x0F) << 0x4)
598#define SOUND_NOISE_TIMED_MODE(N) (((N) & 0x01) << 0xe)
599
588typedef enum { 600typedef enum {
589 NOTE_C_2 , NOTE_C_SHARP_2 , NOTE_D_2 , NOTE_D_SHARP_2 , 601 NOTE_C_2 , NOTE_C_SHARP_2 , NOTE_D_2 , NOTE_D_SHARP_2 ,
590 NOTE_E_2 , NOTE_F_2 , NOTE_F_SHARP_2 , NOTE_G_2 , 602 NOTE_E_2 , NOTE_F_2 , NOTE_F_SHARP_2 , NOTE_G_2 ,