From 6e405d4a99ac5be413c7965cbf7f58a3780167e1 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 14 Jul 2024 03:38:24 -0500 Subject: [PATCH] IT/S3M import: implement S8x --- src/engine/fileOps/it.cpp | 5 +++++ src/engine/fileOps/s3m.cpp | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/engine/fileOps/it.cpp b/src/engine/fileOps/it.cpp index 86c526b86..7b6330c8e 100644 --- a/src/engine/fileOps/it.cpp +++ b/src/engine/fileOps/it.cpp @@ -1408,6 +1408,10 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) { break; case 'S': // special... switch (effectVal[chan]>>4) { + case 0x8: + p->data[readRow][effectCol[chan]++]=0x80; + p->data[readRow][effectCol[chan]++]=(effectVal[chan]&15)<<4; + break; case 0xc: p->data[readRow][effectCol[chan]++]=0xec; p->data[readRow][effectCol[chan]++]=effectVal[chan]&15; @@ -1510,6 +1514,7 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) { } } ds.systemLen=(maxChan+32)>>5; + ds.systemName="PC"; // find subsongs ds.findSubSongs(maxChan); diff --git a/src/engine/fileOps/s3m.cpp b/src/engine/fileOps/s3m.cpp index f30e6c89b..d13c1c7c2 100644 --- a/src/engine/fileOps/s3m.cpp +++ b/src/engine/fileOps/s3m.cpp @@ -1075,6 +1075,10 @@ bool DivEngine::loadS3M(unsigned char* file, size_t len) { break; case 'S': // special... switch (effectVal>>4) { + case 0x8: + p->data[readRow][effectCol[chan]++]=0x80; + p->data[readRow][effectCol[chan]++]=(effectVal&15)<<4; + break; case 0xc: p->data[readRow][effectCol[chan]++]=0xec; p->data[readRow][effectCol[chan]++]=effectVal&15;