From 258d42b49ee5319dabf2d2ae857090450e48244f Mon Sep 17 00:00:00 2001 From: Lurs <2795933+Lurs@users.noreply.github.com> Date: Fri, 27 Mar 2026 12:23:41 +0100 Subject: [PATCH] fix stuck note e.g. in Hyrule field --- libs/JSystem/src/JKernel/JKRHeap.cpp | 8 +++++++- src/dusk/audio/DuskDsp.cpp | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libs/JSystem/src/JKernel/JKRHeap.cpp b/libs/JSystem/src/JKernel/JKRHeap.cpp index bc02d877fb..c2b32999fd 100644 --- a/libs/JSystem/src/JKernel/JKRHeap.cpp +++ b/libs/JSystem/src/JKernel/JKRHeap.cpp @@ -585,7 +585,13 @@ void* operator new(size_t size JKR_HEAP_TOKEN_PARAM, int alignment) { #endif void* operator new(size_t size JKR_HEAP_TOKEN_PARAM, JKRHeap* heap, int alignment) { - return JKRHeap::alloc(size, alignment, heap); + void* mem = JKRHeap::alloc(size, alignment, heap); +#if TARGET_PC + if (mem == nullptr) { + return fallback_alloc(size, abs(alignment), true); + } +#endif + return mem; } #if !TARGET_PC diff --git a/src/dusk/audio/DuskDsp.cpp b/src/dusk/audio/DuskDsp.cpp index 81cceddb75..9c58d8de59 100644 --- a/src/dusk/audio/DuskDsp.cpp +++ b/src/dusk/audio/DuskDsp.cpp @@ -125,6 +125,11 @@ void dusk::audio::DspRender(OutputSubframe& subframe) { continue; } + if (channel.mForcedStop) { + channel.mIsFinished = true; + continue; + } + if (channel.mBytesPerBlock == 0) { // I think these are oscillator channels? Not backed by audio. channel.mIsFinished = true;