From 0d8cae5a531faa7c08387d3c3d75b4009f7bb693 Mon Sep 17 00:00:00 2001 From: XProger Date: Mon, 28 Nov 2022 03:36:37 +0300 Subject: [PATCH] #368 GBA sound buffer switch optimization (one MUL, minor) --- src/platform/gba/asm/sndPCM.s | 2 +- src/platform/gba/main.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/platform/gba/asm/sndPCM.s b/src/platform/gba/asm/sndPCM.s index 83bfdf5..1c2d435 100644 --- a/src/platform/gba/asm/sndPCM.s +++ b/src/platform/gba/asm/sndPCM.s @@ -19,7 +19,7 @@ tmp .req ampA .macro clamp amp // Vanadium's clamp trick (-128..127) mov tmp, \amp, asr #31 // tmp <- 0xffffffff - cmp tmp, \amp, asr #7 // not equal + cmp tmp, \amp, asr #7 // not equal eorne \amp, tmp, #0x7F // amp <- 0xffffff80 .endm diff --git a/src/platform/gba/main.cpp b/src/platform/gba/main.cpp index 932d457..9c5102c 100644 --- a/src/platform/gba/main.cpp +++ b/src/platform/gba/main.cpp @@ -497,14 +497,14 @@ void soundInit() void soundFill() { - if (curSoundBuffer == 1) { + if (curSoundBuffer) { REG_DMA1CNT = 0; REG_DMA1SAD = (u32)soundBuffer; REG_DMA1CNT = DMA_DST_FIXED | DMA_REPEAT | DMA_16 | DMA_AT_FIFO | DMA_ENABLE; } - sndFill(soundBuffer + curSoundBuffer * SND_SAMPLES, SND_SAMPLES); - curSoundBuffer ^= 1; + sndFill(soundBuffer + curSoundBuffer, SND_SAMPLES); + curSoundBuffer ^= SND_SAMPLES; } void vblank()