From 6a3a102b21e7d0b4e8fe3147294d9b02f0fcd166 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Tue, 2 Jul 2019 01:11:42 +0300 Subject: Fix for pseudo-4op instruments --- utils/gen_adldata/file_formats/load_op2.h | 8 ++------ utils/gen_adldata/file_formats/load_wopl.h | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) (limited to 'utils/gen_adldata/file_formats') diff --git a/utils/gen_adldata/file_formats/load_op2.h b/utils/gen_adldata/file_formats/load_op2.h index 1d7ea6f..6599a9f 100644 --- a/utils/gen_adldata/file_formats/load_op2.h +++ b/utils/gen_adldata/file_formats/load_op2.h @@ -112,10 +112,6 @@ bool BankFormats::LoadDoom(BanksDump &db, const char *fn, unsigned bank, const s tmp[index].data[10] = src.feedback; tmp[index].finetune = int8_t(src.basenote + 12); inst.fbConn |= (uint_fast16_t(src.feedback) << (a == 1 ? 8 : 0)); - if(a == 0) - inst.noteOffset1 = int8_t(src.basenote + 12); - else - inst.noteOffset2 = int8_t(src.basenote + 12); db.toOps(tmp[index], ops, index * 2); } struct ins tmp2; @@ -137,9 +133,9 @@ bool BankFormats::LoadDoom(BanksDump &db, const char *fn, unsigned bank, const s inst.noteOffset2 = int8_t(tmp[1].finetune); if((ins.flags & FL_DOUBLE_VOICE) != 0) - inst.instFlags |= BanksDump::InstrumentEntry::WOPL_Ins_Pseudo4op; + inst.instFlags |= BanksDump::InstrumentEntry::WOPL_Ins_4op | BanksDump::InstrumentEntry::WOPL_Ins_Pseudo4op; inst.percussionKeyNumber = tmp2.notenum; - inst.secondVoiceDetune = ins.finetune; + inst.secondVoiceDetune = static_cast(static_cast(ins.finetune) - 128); if(!(ins.flags & FL_DOUBLE_VOICE)) { diff --git a/utils/gen_adldata/file_formats/load_wopl.h b/utils/gen_adldata/file_formats/load_wopl.h index 0f05b6a..0db911c 100644 --- a/utils/gen_adldata/file_formats/load_wopl.h +++ b/utils/gen_adldata/file_formats/load_wopl.h @@ -208,7 +208,7 @@ bool BankFormats::LoadWopl(BanksDump &db, const char *fn, unsigned bank, const s inst.instFlags = flags; inst.percussionKeyNumber = is_percussion ? data[offset + 38] : 0; inst.noteOffset1 = int8_t(toSint16BE((const uint8_t *)data.data() + offset + 32)); - inst.noteOffset2 = int8_t(toSint16BE((const uint8_t *)data.data() + offset + 32)); + inst.noteOffset2 = int8_t(toSint16BE((const uint8_t *)data.data() + offset + 34)); inst.secondVoiceDetune = static_cast(data[offset + 37]); inst.midiVelocityOffset = static_cast(data[offset + 36]); inst.fbConn = (static_cast(data[offset + 40])) | -- cgit v1.2.3