diff options
Diffstat (limited to 'utils/gen_adldata/file_formats')
-rw-r--r-- | utils/gen_adldata/file_formats/load_ail.h | 1 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_bisqwit.h | 1 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_bnk.h | 4 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_bnk2.h | 10 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_ea.h | 5 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_ibk.h | 1 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_jv.h | 1 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_op2.h | 3 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_tmb.h | 1 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_wopl.h | 9 |
10 files changed, 26 insertions, 10 deletions
diff --git a/utils/gen_adldata/file_formats/load_ail.h b/utils/gen_adldata/file_formats/load_ail.h index a10ff92..e63b1d7 100644 --- a/utils/gen_adldata/file_formats/load_ail.h +++ b/utils/gen_adldata/file_formats/load_ail.h @@ -89,6 +89,7 @@ static bool LoadMiles(const char *fn, unsigned bank, const char *prefix) struct ins tmp2; tmp2.notenum = gmno < 128 ? 0 : (unsigned char)notenum; tmp2.pseudo4op = false; + tmp2.real4op = (inscount > 1); tmp2.voice2_fine_tune = 0.0; std::string name; if(midi_index >= 0) name = std::string(1, '\377') + MidiInsName[midi_index]; diff --git a/utils/gen_adldata/file_formats/load_bisqwit.h b/utils/gen_adldata/file_formats/load_bisqwit.h index 015b0eb..f5f73dc 100644 --- a/utils/gen_adldata/file_formats/load_bisqwit.h +++ b/utils/gen_adldata/file_formats/load_bisqwit.h @@ -44,6 +44,7 @@ static bool LoadBisqwit(const char *fn, unsigned bank, const char *prefix) (gmno < 128 ? 'M' : 'P'), gmno & 127); tmp[1].diff = (tmp[0] != tmp[1]); + tmp2.real4op = tmp[1].diff; size_t resno = InsertIns(tmp[0], tmp[1], tmp2, name, name2, (tmp[0] == tmp[1])); SetBank(bank, gmno, resno); } diff --git a/utils/gen_adldata/file_formats/load_bnk.h b/utils/gen_adldata/file_formats/load_bnk.h index a41185a..aa7701f 100644 --- a/utils/gen_adldata/file_formats/load_bnk.h +++ b/utils/gen_adldata/file_formats/load_bnk.h @@ -69,7 +69,8 @@ static bool LoadBNK(const char *fn, unsigned bank, const char *prefix, bool is_f if(name[2] == 'O' || name[2] == 'S') { - gmno = 128 + std::stoi(name.substr(3)); + std::string n = name.substr(3); + gmno = 128 + std::atoi(n.c_str()); } } @@ -107,6 +108,7 @@ static bool LoadBNK(const char *fn, unsigned bank, const char *prefix, bool is_f ins tmp2; tmp2.notenum = is_fat ? voice_num : (percussive ? usage_flag : 0); tmp2.pseudo4op = false; + tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; if(is_fat) tmp.data[10] ^= 1; diff --git a/utils/gen_adldata/file_formats/load_bnk2.h b/utils/gen_adldata/file_formats/load_bnk2.h index 1f3d4a1..4772da5 100644 --- a/utils/gen_adldata/file_formats/load_bnk2.h +++ b/utils/gen_adldata/file_formats/load_bnk2.h @@ -3,6 +3,11 @@ #include "../progs_cache.h" +inline int stdstoi(const std::string& str) +{ + return std::atoi(str.c_str()); +} + static bool LoadBNK2(const char *fn, unsigned bank, const char *prefix, const std::string &melo_filter, const std::string &perc_filter) @@ -43,9 +48,9 @@ static bool LoadBNK2(const char *fn, unsigned bank, const char *prefix, int gmno = 0; if(name.substr(0, melo_filter.size()) == melo_filter) - gmno = std::stoi(name.substr(melo_filter.size())); + gmno = stdstoi(name.substr(melo_filter.size())); else if(name.substr(0, perc_filter.size()) == perc_filter) - gmno = std::stoi(name.substr(perc_filter.size())) + 128; + gmno = stdstoi(name.substr(perc_filter.size())) + 128; else continue; @@ -81,6 +86,7 @@ static bool LoadBNK2(const char *fn, unsigned bank, const char *prefix, ins tmp2; tmp2.notenum = (gmno & 128) ? 35 : 0; tmp2.pseudo4op = false; + tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; if(xxP24NNN & 8) diff --git a/utils/gen_adldata/file_formats/load_ea.h b/utils/gen_adldata/file_formats/load_ea.h index 5e0baa4..79367d9 100644 --- a/utils/gen_adldata/file_formats/load_ea.h +++ b/utils/gen_adldata/file_formats/load_ea.h @@ -85,16 +85,17 @@ static bool LoadEA(const char *fn, unsigned bank, const char *prefix) ins tmp2{}; tmp2.notenum = 0; tmp2.pseudo4op = false; + tmp2.real4op = false; std::string name; char name2[512]; if(gmno < 20) { - std::snprintf(name2, 512, "%sM%u", prefix, gmno); + snprintf(name2, 512, "%sM%u", prefix, gmno); } else { - std::snprintf(name2, 512, "%sunk%04X", prefix, offset); + snprintf(name2, 512, "%sunk%04X", prefix, offset); } size_t resno = InsertIns(tmp, tmp2, std::string(1, '\377') + name, name2); SetBank(bank, gmno, resno); diff --git a/utils/gen_adldata/file_formats/load_ibk.h b/utils/gen_adldata/file_formats/load_ibk.h index bc03962..12fa520 100644 --- a/utils/gen_adldata/file_formats/load_ibk.h +++ b/utils/gen_adldata/file_formats/load_ibk.h @@ -61,6 +61,7 @@ static bool LoadIBK(const char *fn, unsigned bank, const char *prefix, bool perc struct ins tmp2; tmp2.notenum = gmno < 128 ? 0 : 35; tmp2.pseudo4op = false; + tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; size_t resno = InsertIns(tmp, tmp2, std::string(1, '\377') + name, name2); diff --git a/utils/gen_adldata/file_formats/load_jv.h b/utils/gen_adldata/file_formats/load_jv.h index b79832f..35caead 100644 --- a/utils/gen_adldata/file_formats/load_jv.h +++ b/utils/gen_adldata/file_formats/load_jv.h @@ -71,6 +71,7 @@ static bool LoadJunglevision(const char *fn, unsigned bank, const char *prefix) struct ins tmp2; tmp2.notenum = data[offset + 1]; tmp2.pseudo4op = false; + tmp2.real4op = (data[offset] != 0); tmp2.voice2_fine_tune = 0.0; while(tmp2.notenum && tmp2.notenum < 20) diff --git a/utils/gen_adldata/file_formats/load_op2.h b/utils/gen_adldata/file_formats/load_op2.h index 8b7fec6..48b7eae 100644 --- a/utils/gen_adldata/file_formats/load_op2.h +++ b/utils/gen_adldata/file_formats/load_op2.h @@ -82,7 +82,7 @@ static bool LoadDoom(const char *fn, unsigned bank, const char *prefix) int gmno = int(a < 128 ? a : ((a | 128) + 35)); char name2[512]; - std::snprintf(name2, 512, "%s%c%u", prefix, (gmno < 128 ? 'M' : 'P'), gmno & 127); + snprintf(name2, 512, "%s%c%u", prefix, (gmno < 128 ? 'M' : 'P'), gmno & 127); Doom_opl_instr &ins = *(Doom_opl_instr *) &data[offset2]; @@ -108,6 +108,7 @@ static bool LoadDoom(const char *fn, unsigned bank, const char *prefix) struct ins tmp2; tmp2.notenum = ins.note; tmp2.pseudo4op = false; + tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; while(tmp2.notenum && tmp2.notenum < 20) { diff --git a/utils/gen_adldata/file_formats/load_tmb.h b/utils/gen_adldata/file_formats/load_tmb.h index ab1ff37..5b38433 100644 --- a/utils/gen_adldata/file_formats/load_tmb.h +++ b/utils/gen_adldata/file_formats/load_tmb.h @@ -50,6 +50,7 @@ static bool LoadTMB(const char *fn, unsigned bank, const char *prefix) struct ins tmp2; tmp2.notenum = data[offset + 11]; tmp2.pseudo4op = false; + tmp2.real4op = false; tmp2.voice2_fine_tune = 0.0; std::string name; diff --git a/utils/gen_adldata/file_formats/load_wopl.h b/utils/gen_adldata/file_formats/load_wopl.h index 26a2611..fe4865d 100644 --- a/utils/gen_adldata/file_formats/load_wopl.h +++ b/utils/gen_adldata/file_formats/load_wopl.h @@ -57,8 +57,8 @@ static bool LoadWopl(const char *fn, unsigned bank, const char *prefix) uint16_t pbanks_count = toUint16BE((const uint8_t *)data.data() + 0x0f); AdlBankSetup setup; - setup.deepTremolo = (data[0x11] >> 0) & 0x01; - setup.deepVibrato = (data[0x11] >> 1) & 0x01; + setup.deepTremolo = (data[0x11] & 0x01) != 0; + setup.deepVibrato = (data[0x11] & 0x02) != 0; setup.volumeModel = (int)data[0x12]; setup.adLibPercussions = false; setup.scaleModulators = false; @@ -169,6 +169,7 @@ static bool LoadWopl(const char *fn, unsigned bank, const char *prefix) tmp2.notenum = is_percussion ? data[offset + 38] : 0; bool real4op = (flags & (uint8_t)WOPL_Flags::Mode_4op) != 0; tmp2.pseudo4op = (flags & (uint8_t)WOPL_Flags::Mode_DoubleVoice) != 0; + tmp2.real4op = real4op && !tmp2.pseudo4op; tmp2.voice2_fine_tune = 0; tmp[0].diff = false; tmp[1].diff = real4op && !tmp2.pseudo4op; @@ -207,9 +208,9 @@ static bool LoadWopl(const char *fn, unsigned bank, const char *prefix) char name2[512]; std::memset(name2, 0, 512); if(is_percussion) - std::snprintf(name2, 512, "%sP%u", prefix, gmno & 127); + snprintf(name2, 512, "%sP%u", prefix, gmno & 127); else - std::snprintf(name2, 512, "%sM%u", prefix, i); + snprintf(name2, 512, "%sM%u", prefix, i); if(!real4op && !tmp2.pseudo4op) { |