From f204c11204bf5f2f262bbe826daa738ead867dd4 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Mon, 8 Jul 2024 18:57:56 -0500 Subject: [PATCH] IT import: prepare load compressed stereo samples --- TODO.md | 7 ++----- src/engine/fileOps/it.cpp | 14 ++++++++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/TODO.md b/TODO.md index f97b881af..37f473d9e 100644 --- a/TODO.md +++ b/TODO.md @@ -1,8 +1,3 @@ -# to-do for 0.6.6 - -- fix possible issues when moving selection -- fix Metal intro crash - # to-do long term - CSM macros @@ -10,3 +5,5 @@ - new pattern renderer - performance improvements - new info header - unlimited channels and chips +- fix possible issues when moving selection +- fix Metal intro crash diff --git a/src/engine/fileOps/it.cpp b/src/engine/fileOps/it.cpp index 55c0d4660..3b2157708 100644 --- a/src/engine/fileOps/it.cpp +++ b/src/engine/fileOps/it.cpp @@ -641,11 +641,17 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) { if (flags&8) { // compressed sample unsigned int ret=0; - logV("decompression begin..."); - if (s->depth==DIV_SAMPLE_DEPTH_16BIT) { - ret=it_decompress16(s->data16,s->samples,&file[reader.tell()],len-reader.tell(),(convert&4)?1:0,(flags&4)?2:1); + logV("decompression begin... (%d)",s->samples); + if (flags&4) { + logW("STEREO!"); } else { - ret=it_decompress8(s->data8,s->samples,&file[reader.tell()],len-reader.tell(),(convert&4)?1:0,(flags&4)?2:1); + if (s->depth==DIV_SAMPLE_DEPTH_16BIT) { + logV("16-bit"); + ret=it_decompress16(s->data16,s->samples,&file[reader.tell()],len-reader.tell(),(convert&4)?1:0,(flags&4)?2:1); + } else { + logV("8-bit"); + ret=it_decompress8(s->data8,s->samples,&file[reader.tell()],len-reader.tell(),(convert&4)?1:0,(flags&4)?2:1); + } } logV("got: %d",ret); } else {