aboutsummaryrefslogtreecommitdiff
path: root/utils/gen_adldata
diff options
context:
space:
mode:
Diffstat (limited to 'utils/gen_adldata')
-rw-r--r--utils/gen_adldata/file_formats/load_op2.h8
-rw-r--r--utils/gen_adldata/file_formats/load_wopl.h2
-rw-r--r--utils/gen_adldata/measurer.cpp3
-rw-r--r--utils/gen_adldata/measurer.h2
4 files changed, 6 insertions, 9 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))
{
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<int_fast8_t>(data[offset + 37]);
inst.midiVelocityOffset = static_cast<int_fast8_t>(data[offset + 36]);
inst.fbConn = (static_cast<uint_fast16_t>(data[offset + 40])) |
diff --git a/utils/gen_adldata/measurer.cpp b/utils/gen_adldata/measurer.cpp
index 23e3883..fbae571 100644
--- a/utils/gen_adldata/measurer.cpp
+++ b/utils/gen_adldata/measurer.cpp
@@ -1238,7 +1238,8 @@ void MeasureThreaded::destData::callback(void *myself)
static_cast<int_fast32_t>(s->bd_ins->fbConn),
s->bd_ins->noteOffset1, s->bd_ins->noteOffset2,
static_cast<int_fast32_t>(s->bd_ins->percussionKeyNumber),
- static_cast<int_fast32_t>(s->bd_ins->instFlags)};
+ static_cast<int_fast32_t>(s->bd_ins->instFlags),
+ static_cast<int_fast32_t>(s->bd_ins->secondVoiceDetune)};
DurationInfoCacheX::iterator cachedEntry = s->myself->m_durationInfoX.find(ok);
if(cachedEntry != s->myself->m_durationInfoX.end())
{
diff --git a/utils/gen_adldata/measurer.h b/utils/gen_adldata/measurer.h
index d2b8a76..60fdcb7 100644
--- a/utils/gen_adldata/measurer.h
+++ b/utils/gen_adldata/measurer.h
@@ -55,7 +55,7 @@ private:
struct MeasureThreaded
{
- typedef std::array<int_fast32_t, 9> OperatorsKey;
+ typedef std::array<int_fast32_t, 10> OperatorsKey;
typedef std::map<ins, DurationInfo> DurationInfoCache;
typedef std::map<OperatorsKey, DurationInfo> DurationInfoCacheX;