summaryrefslogtreecommitdiff
path: root/src/audio/audio_effects.c
diff options
context:
space:
mode:
authorKiritoDv <kiritodev01@gmail.com>2024-10-29 02:06:14 -0600
committerKiritoDv <kiritodev01@gmail.com>2024-10-29 02:06:14 -0600
commit52d3eca4212db61e43c14c37c1917818a2fbbecb (patch)
tree3c7250aeb06b746d606d8b3825ddb91db3ef168c /src/audio/audio_effects.c
parent2354ee76a3f57f0fa926b98fb8e9adc2957acc49 (diff)
We are so fucking close omg
Diffstat (limited to 'src/audio/audio_effects.c')
-rw-r--r--src/audio/audio_effects.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/audio/audio_effects.c b/src/audio/audio_effects.c
index 61d2ccaa..0a184871 100644
--- a/src/audio/audio_effects.c
+++ b/src/audio/audio_effects.c
@@ -1,5 +1,6 @@
#include "sys.h"
#include "sf64audio_provisional.h"
+#include "endianness.h"
static const char devstr[] = "Audio:Envp: overflow %f\n";
@@ -199,7 +200,7 @@ f32 func_80013B90(AdsrState* adsr) {
adsr->state = ADSR_STATE_LOOP;
case_ADSR_STATE_LOOP:
case ADSR_STATE_LOOP:
- adsr->delay = adsr->envelope[adsr->envIndex].delay;
+ adsr->delay = BSWAP16(adsr->envelope[adsr->envIndex].delay);
switch (adsr->delay) {
case ADSR_DISABLE:
adsr->state = ADSR_STATE_DISABLED;
@@ -208,7 +209,7 @@ f32 func_80013B90(AdsrState* adsr) {
adsr->state = ADSR_STATE_HANG;
break;
case ADSR_GOTO:
- adsr->envIndex = adsr->envelope[adsr->envIndex].arg;
+ adsr->envIndex = BSWAP16(adsr->envelope[adsr->envIndex].arg);
goto case_ADSR_STATE_LOOP;
case ADSR_RESTART:
adsr->state = ADSR_STATE_INITIAL;
@@ -221,7 +222,7 @@ f32 func_80013B90(AdsrState* adsr) {
adsr->delay = 1;
}
- adsr->target = adsr->envelope[adsr->envIndex].arg / 32767.0f;
+ adsr->target = (s16)BE16SWAP(adsr->envelope[adsr->envIndex].arg) / 32767.0f;
adsr->target = SQ(adsr->target);
adsr->velocity = (adsr->target - adsr->current) / adsr->delay;
adsr->state = ADSR_STATE_FADE;