aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/gen_adldata/file_formats/load_op2.h7
-rw-r--r--utils/gen_adldata/file_formats/load_wopl.h8
2 files changed, 4 insertions, 11 deletions
diff --git a/utils/gen_adldata/file_formats/load_op2.h b/utils/gen_adldata/file_formats/load_op2.h
index 70b23de..494655d 100644
--- a/utils/gen_adldata/file_formats/load_op2.h
+++ b/utils/gen_adldata/file_formats/load_op2.h
@@ -145,11 +145,8 @@ bool BankFormats::LoadDoom(BanksDump &db, const char *fn, unsigned bank, const s
else // Double instrument
{
tmp2.pseudo4op = true;
- tmp2.voice2_fine_tune = (((double)ins.finetune - 128.0) * 15.625) / 1000.0;
- if(ins.finetune == 129)
- tmp2.voice2_fine_tune = 0.000025;
- else if(ins.finetune == 127)
- tmp2.voice2_fine_tune = -0.000025;
+ // Simulate behavior of DMX second voice detune
+ tmp2.voice2_fine_tune = (double)((ins.finetune >> 1) - 64) / 32.0;
//printf("/*DOOM FINE TUNE (flags %000X instrument is %d) IS %d -> %lf*/\n", ins.flags, a, ins.finetune, tmp2.fine_tune);
// size_t resno = InsertIns(tmp[0], tmp[1], tmp2, std::string(1, '\377') + name, name2);
// SetBank(bank, (unsigned int)gmno, resno);
diff --git a/utils/gen_adldata/file_formats/load_wopl.h b/utils/gen_adldata/file_formats/load_wopl.h
index 265c6bf..a60cbc4 100644
--- a/utils/gen_adldata/file_formats/load_wopl.h
+++ b/utils/gen_adldata/file_formats/load_wopl.h
@@ -223,12 +223,8 @@ bool BankFormats::LoadWopl(BanksDump &db, const char *fn, unsigned bank, const s
int8_t fine_tune = (int8_t)data[offset + 37];
if(fine_tune != 0)
{
- if(fine_tune == 1)
- tmp2.voice2_fine_tune = 0.000025;
- else if(fine_tune == -1)
- tmp2.voice2_fine_tune = -0.000025;
- else
- tmp2.voice2_fine_tune = ((fine_tune * 15.625) / 1000.0);
+ // Simulate behavior of DMX second voice detune
+ tmp2.voice2_fine_tune = (double)((((int)fine_tune + 128) >> 1) - 64) / 32.0;
}
uint32_t gmno = is_percussion ? i + 128 : i;