From ce902bd6d19df2945e41969b063830f3bf3c04e0 Mon Sep 17 00:00:00 2001 From: fincs Date: Fri, 2 Jan 2015 18:30:30 +0100 Subject: [PATCH] It's always a missing 4 that makes it b0rk --- libctru/source/services/csnd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libctru/source/services/csnd.c b/libctru/source/services/csnd.c index 40494fc..c8aacfd 100644 --- a/libctru/source/services/csnd.c +++ b/libctru/source/services/csnd.c @@ -187,10 +187,11 @@ Result csndExecChnCmds(bool waitDone) if (csndCmdStartOff == csndCmdCurOff) return 0; - vu8* flag = (vu8*)&csndSharedMem[csndCmdStartOff>>2]; + vu8* flag = (vu8*)&csndSharedMem[(csndCmdStartOff + 4) >> 2]; ret = CSND_ExecChnCmds(csndCmdStartOff); csndCmdStartOff = csndCmdCurOff; + if (ret != 0) return ret; // FIXME: This is a really ugly busy waiting loop! while (waitDone && *flag == 0);