From 3b04df7a13c33f12c0212ecb58afca246a600a05 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 16 Aug 2024 04:06:33 -0500 Subject: [PATCH 1/3] update format.md --- papers/format.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/papers/format.md b/papers/format.md index 92f8b0edf..d8e12b7bd 100644 --- a/papers/format.md +++ b/papers/format.md @@ -256,6 +256,8 @@ size | description | - 0xe0: QSound - 19 channels | - 0xe1: PS1 - 24 channels (UNAVAILABLE) | - 0xe2: C64 (6581) with PCM - 4 channels (UNAVAILABLE) + | - 0xe3: Watara Supervision - 4 channels (UNAVAILABLE) + | - 0xe4: µPD1771C - 1 channel (UNAVAILABLE) | - 0xf0: SID2 - 3 channels | - 0xf1: 5E01 - 5 channels | - 0xfc: Pong - 1 channel From 8ad9bfa2456089549724aed31b121f05a36464b5 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Fri, 16 Aug 2024 23:59:20 -0500 Subject: [PATCH 2/3] fix panbrello depth --- src/engine/playback.cpp | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index c61415abd..3b3234934 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -1647,26 +1647,34 @@ bool DivEngine::nextTick(bool noAccum, bool inhibitLowLat) { chan[i].panPos+=chan[i].panRate; chan[i].panPos&=255; - // calculate... + // calculate inverted... switch (chan[i].panPos&0xc0) { case 0: // center -> right - chan[i].panL=0xff-((chan[i].panPos&0x3f)<<2); - chan[i].panR=0xff; + chan[i].panL=((chan[i].panPos&0x3f)<<2); + chan[i].panR=0; break; case 0x40: // right -> center - chan[i].panL=(chan[i].panPos&0x3f)<<2; - chan[i].panR=0xff; + chan[i].panL=0xff-((chan[i].panPos&0x3f)<<2); + chan[i].panR=0; break; case 0x80: // center -> left - chan[i].panL=0xff; - chan[i].panR=0xff-((chan[i].panPos&0x3f)<<2); + chan[i].panL=0; + chan[i].panR=((chan[i].panPos&0x3f)<<2); break; case 0xc0: // left -> center - chan[i].panL=0xff; - chan[i].panR=(chan[i].panPos&0x3f)<<2; + chan[i].panL=0; + chan[i].panR=0xff-((chan[i].panPos&0x3f)<<2); break; } + // multiply by depth + chan[i].panL=(chan[i].panL*chan[i].panDepth)/15; + chan[i].panR=(chan[i].panR*chan[i].panDepth)/15; + + // then invert it to get final panning + chan[i].panL^=0xff; + chan[i].panR^=0xff; + dispatchCmd(DivCommand(DIV_CMD_PANNING,i,chan[i].panL,chan[i].panR)); } From 3cde827c17fcb7efa5bef8f93c7745622494f909 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sat, 17 Aug 2024 00:12:02 -0500 Subject: [PATCH 3/3] GUI: localize bitfield labels --- src/gui/plot_nolerp.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gui/plot_nolerp.cpp b/src/gui/plot_nolerp.cpp index 170fc20d9..aa57f0da7 100644 --- a/src/gui/plot_nolerp.cpp +++ b/src/gui/plot_nolerp.cpp @@ -26,6 +26,8 @@ #include "imgui.h" #include "imgui_internal.h" +#include "../ta-utils.h" + struct FurnacePlotArrayGetterData { const float* Values; @@ -270,12 +272,13 @@ int PlotBitfieldEx(const char* label, int (*values_getter)(void* data, int idx), float lineHeight=ImGui::GetTextLineHeight()/2.0; for (int i=0; i