aboutsummaryrefslogtreecommitdiff
path: root/utils/gen_adldata/file_formats/load_op2.h
diff options
context:
space:
mode:
authorVitaly Novichkov <admin@wohlnet.ru>2019-07-02 01:11:42 +0300
committerVitaly Novichkov <admin@wohlnet.ru>2019-07-02 01:11:42 +0300
commit6a3a102b21e7d0b4e8fe3147294d9b02f0fcd166 (patch)
treee64dd09af1362b8442f568138eb88feab1beb311 /utils/gen_adldata/file_formats/load_op2.h
parent2049fb0a387b627a2c63442ea34973f4864533c4 (diff)
downloadlibADLMIDI-6a3a102b21e7d0b4e8fe3147294d9b02f0fcd166.tar.gz
libADLMIDI-6a3a102b21e7d0b4e8fe3147294d9b02f0fcd166.tar.bz2
libADLMIDI-6a3a102b21e7d0b4e8fe3147294d9b02f0fcd166.zip
Fix for pseudo-4op instruments
Diffstat (limited to 'utils/gen_adldata/file_formats/load_op2.h')
-rw-r--r--utils/gen_adldata/file_formats/load_op2.h8
1 files changed, 2 insertions, 6 deletions
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<char>(static_cast<int>(ins.finetune) - 128);
if(!(ins.flags & FL_DOUBLE_VOICE))
{