diff options
author | Bad Diode <bd@badd10de.dev> | 2023-05-30 21:52:30 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2023-05-30 21:52:30 +0200 |
commit | f0ebc747d1b0d8753a1bc0f74b34a3012dd16753 (patch) | |
tree | 0c13400b979b88272700f0be07e33a4700a9b36c /src/gba/gba.h | |
parent | dc53af3f01c0cbaefe4b330e2dcc2396b5afde47 (diff) | |
download | stepper-f0ebc747d1b0d8753a1bc0f74b34a3012dd16753.tar.gz stepper-f0ebc747d1b0d8753a1bc0f74b34a3012dd16753.zip |
Properly handle audio/link sync settings
Diffstat (limited to 'src/gba/gba.h')
-rw-r--r-- | src/gba/gba.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/gba/gba.h b/src/gba/gba.h index 2b28295..74b6942 100644 --- a/src/gba/gba.h +++ b/src/gba/gba.h | |||
@@ -510,10 +510,18 @@ typedef enum { | |||
510 | } SoundChannel; | 510 | } SoundChannel; |
511 | 511 | ||
512 | inline u16 | 512 | inline u16 |
513 | sound_volume(SoundChannel channels, u8 volume) { | 513 | sound_volume(SoundChannel channels, u8 volume, u8 pan) { |
514 | volume = volume & 0x7; | 514 | volume = volume & 0x7; |
515 | channels = channels & 0xF; | 515 | channels = channels & 0xF; |
516 | return volume | (volume << 0x4) | (channels << 0x8) | (channels << 0xC); | 516 | u16 right = volume | (channels << 0x8); |
517 | u16 left = (volume << 0x4) | (channels << 0xC); | ||
518 | if (pan == 1) { | ||
519 | return left; | ||
520 | } | ||
521 | if (pan == 2) { | ||
522 | return right; | ||
523 | } | ||
524 | return left | right; | ||
517 | } | 525 | } |
518 | 526 | ||
519 | // Sound Direct Sound master bits. | 527 | // Sound Direct Sound master bits. |