From af8b30f7b83d4ee00f5255f84cc4305d609b446f Mon Sep 17 00:00:00 2001 From: Wohlstand Date: Fri, 21 Aug 2020 22:27:01 +0300 Subject: gen_adldata: Fixed an incorrect detune parsing from WOPL files --- utils/gen_adldata/file_formats/load_wopl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'utils/gen_adldata/file_formats/load_wopl.h') diff --git a/utils/gen_adldata/file_formats/load_wopl.h b/utils/gen_adldata/file_formats/load_wopl.h index d10d58f..d0c01d3 100644 --- a/utils/gen_adldata/file_formats/load_wopl.h +++ b/utils/gen_adldata/file_formats/load_wopl.h @@ -176,11 +176,11 @@ static bool LoadWopl(const char *fn, unsigned bank, const char *prefix) tmp[0].diff = false; tmp[1].diff = real4op && !tmp2.pseudo4op; - int fine_tune = (int)data[offset + 37]; + int8_t fine_tune = (int8_t)data[offset + 37]; if(fine_tune != 0) { // Simulate behavior of DMX second voice detune - tmp2.voice2_fine_tune = (double)((fine_tune >> 1) - 64) / 32.0; + tmp2.voice2_fine_tune = (double)((((int)fine_tune + 128) >> 1) - 64) / 32.0; } uint32_t gmno = is_percussion ? i + 128 : i; -- cgit v1.2.3