From bcb0b2c1b73c679b17e107c4a5cce6fc9fdeb617 Mon Sep 17 00:00:00 2001 From: techmetx11 Date: Fri, 12 Apr 2024 05:13:09 +0000 Subject: [PATCH] Fix the volume a bit, and the suggestions tildearrow proposed --- src/engine/fileOps/tfm.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/engine/fileOps/tfm.cpp b/src/engine/fileOps/tfm.cpp index 6fadee58e..d53e51925 100644 --- a/src/engine/fileOps/tfm.cpp +++ b/src/engine/fileOps/tfm.cpp @@ -36,12 +36,12 @@ class TFMRLEReader { size_t curSeek; bool inTag; int tagLenLeft; - char tagChar; + signed char tagChar; - void decodeRLE(char prevChar) { + void decodeRLE(signed char prevChar) { int lenShift=0; tagLenLeft=0; - char rleTag=0; + signed char rleTag=0; do { rleTag=readC(); tagLenLeft|=(rleTag&0x7F)<len) throw TFMEndOfFileException(this,len); return buf[curSeek++]; } @@ -369,7 +369,7 @@ bool DivEngine::loadTFM(unsigned char* file, size_t len) { logD("parsing volumes of pattern %d channel %d",i,j); for (int k=0; k<256; k++) { if (patDataBuf[k]==0) continue; - else pat->data[k][3]=patDataBuf[k]*4; + else pat->data[k][3]=0x41+(patDataBuf[k]*2); } // instrument @@ -416,6 +416,7 @@ bool DivEngine::loadTFM(unsigned char* file, size_t len) { // vibrato + volume slide pat->data[k][4]=0x05; pat->data[k][5]=effectVal[k]; + break; default: break; }