From 88c7e5ad42201cf83801543783fd807b38ead571 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 1 Jul 2024 03:32:52 -0500 Subject: [PATCH] XM import: fix 4x0/40x --- src/engine/fileOps/xm.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/engine/fileOps/xm.cpp b/src/engine/fileOps/xm.cpp index 3e3464a74..1c85c41a9 100644 --- a/src/engine/fileOps/xm.cpp +++ b/src/engine/fileOps/xm.cpp @@ -819,7 +819,15 @@ bool DivEngine::loadXM(unsigned char* file, size_t len) { break; case 4: // vibrato if (effectVal!=0) { - vibStatus[k]=effectVal; + if ((effectVal&0xf0)==0) { // only change depth + vibStatus[k]&=0xf0; + vibStatus[k]|=effectVal&0x0f; + } else if ((effectVal&0x0f)==0) { // only change speed + vibStatus[k]&=0x0f; + vibStatus[k]|=effectVal&0xf0; + } else { + vibStatus[k]=effectVal; + } vibStatusChanged[k]=true; } vibing[k]=true;