diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/gen_adldata/file_formats/load_ail.h | 7 | ||||
-rw-r--r-- | utils/gen_adldata/file_formats/load_ibk.h | 7 | ||||
-rw-r--r-- | utils/gen_adldata/gen_adldata.cc | 8 | ||||
-rw-r--r-- | utils/gen_adldata/progs_cache.h | 12 |
4 files changed, 23 insertions, 11 deletions
diff --git a/utils/gen_adldata/file_formats/load_ail.h b/utils/gen_adldata/file_formats/load_ail.h index d6fa014..ad536bc 100644 --- a/utils/gen_adldata/file_formats/load_ail.h +++ b/utils/gen_adldata/file_formats/load_ail.h @@ -13,7 +13,7 @@ struct GTL_Head // GTL file header entry structure }; bool BankFormats::LoadMiles(BanksDump &db, const char *fn, unsigned bank, - const std::string &bankTitle, const char *prefix) + const std::string &bankTitle, const char *prefix, bool mt32) { #ifdef HARD_BANKS writeIni("AIL", fn, prefix, bank, INI_Both); @@ -60,7 +60,10 @@ bool BankFormats::LoadMiles(BanksDump &db, const char *fn, unsigned bank, } while(data_pos < data_end); - size_t bankDb = db.initBank(bank, bankTitle, BanksDump::BankEntry::SETUP_AIL); + uint_fast16_t bankSetup = mt32 ? + BanksDump::BankEntry::SETUP_AIL_MT32 : + BanksDump::BankEntry::SETUP_AIL; + size_t bankDb = db.initBank(bank, bankTitle, bankSetup); std::vector<BanksDump::MidiBank> bnkMelodic; bnkMelodic.resize(max_bank_number + 1, BanksDump::MidiBank()); diff --git a/utils/gen_adldata/file_formats/load_ibk.h b/utils/gen_adldata/file_formats/load_ibk.h index 9d9df20..d9780fe 100644 --- a/utils/gen_adldata/file_formats/load_ibk.h +++ b/utils/gen_adldata/file_formats/load_ibk.h @@ -5,7 +5,7 @@ bool BankFormats::LoadIBK(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix, - bool percussive, bool noRhythmMode) + bool percussive, bool noRhythmMode, bool mt32) { #ifdef HARD_BANKS writeIni("IBK", fn, prefix, bank, percussive ? INI_Drums : INI_Melodic); @@ -23,7 +23,10 @@ bool BankFormats::LoadIBK(BanksDump &db, const char *fn, unsigned bank, } std::fclose(fp); - size_t bankDb = db.initBank(bank, bankTitle, BanksDump::BankEntry::SETUP_Generic); + uint_fast16_t bankSetup = mt32 ? + BanksDump::BankEntry::SETUP_IBK_MT32 : + BanksDump::BankEntry::SETUP_Generic; + size_t bankDb = db.initBank(bank, bankTitle, bankSetup); BanksDump::MidiBank bnk; unsigned offs1_base = 0x804, offs1_len = 9; diff --git a/utils/gen_adldata/gen_adldata.cc b/utils/gen_adldata/gen_adldata.cc index 375ea79..2dabd66 100644 --- a/utils/gen_adldata/gen_adldata.cc +++ b/utils/gen_adldata/gen_adldata.cc @@ -65,6 +65,7 @@ int main(int argc, char**argv) std::string filter_p; std::string format; bool noRhythmMode = false; + bool mt32defaults = false; ini.read("name", bank_name, "Untitled"); ini.read("format", format, "Unknown"); @@ -75,6 +76,7 @@ int main(int argc, char**argv) ini.read("filter-m", filter_m, ""); ini.read("filter-p", filter_p, ""); ini.read("no-rhythm-mode", noRhythmMode, false); + ini.read("mt32-defaults", mt32defaults, false); if(filepath.empty()) { @@ -88,7 +90,7 @@ int main(int argc, char**argv) if(format == "AIL") { - if(!BankFormats::LoadMiles(db, filepath.c_str(), bank, bank_name, prefix.c_str())) + if(!BankFormats::LoadMiles(db, filepath.c_str(), bank, bank_name, prefix.c_str(), mt32defaults)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -177,7 +179,7 @@ int main(int argc, char**argv) else if(format == "IBK") { - if(!BankFormats::LoadIBK(db, filepath.c_str(), bank, bank_name, prefix.c_str(), false)) + if(!BankFormats::LoadIBK(db, filepath.c_str(), bank, bank_name, prefix.c_str(), false, false, mt32defaults)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; @@ -185,7 +187,7 @@ int main(int argc, char**argv) if(!filepath_d.empty()) { //printf("Loading %s... \n", filepath_d.c_str()); - if(!BankFormats::LoadIBK(db, filepath_d.c_str(),bank, bank_name, prefix_d.c_str(), true, noRhythmMode)) + if(!BankFormats::LoadIBK(db, filepath_d.c_str(),bank, bank_name, prefix_d.c_str(), true, noRhythmMode, mt32defaults)) { std::fprintf(stderr, "Failed to load bank %u, file %s!\n", bank, filepath.c_str()); return 1; diff --git a/utils/gen_adldata/progs_cache.h b/utils/gen_adldata/progs_cache.h index 6089d89..f942330 100644 --- a/utils/gen_adldata/progs_cache.h +++ b/utils/gen_adldata/progs_cache.h @@ -100,7 +100,9 @@ struct BanksDump /* Enable Deep-Tremolo flag */ WOPL_FLAG_DEEP_TREMOLO = 0x01, /* Enable Deep-Vibrato flag */ - WOPL_FLAG_DEEP_VIBRATO = 0x02 + WOPL_FLAG_DEEP_VIBRATO = 0x02, + /* Enable MT32 defaults (127 initials and octave-wide pitch bend by default, etc.) */ + WOPL_FLAG_MT32 = 0x04 } WOPLFileFlags; /* Volume scaling model implemented in the libADLMIDI */ @@ -119,7 +121,7 @@ struct BanksDump } WOPL_VolumeModel; /** - * @brief Suggested bank setup in dependence from a driver that does use of this + * @brief Suggested bank setup depending from a driver that does use of this */ enum BankSetup { @@ -129,7 +131,9 @@ struct BanksDump SETUP_DMX = 0x0002, SETUP_Apogee = 0x0003, SETUP_AIL = 0x0307, + SETUP_AIL_MT32= 0x0707, SETUP_IBK = 0x0301, + SETUP_IBK_MT32= 0x0700, SETUP_IMF = 0x0200, SETUP_CMF = 0x0201, SETUP_HMI = 0x0309 @@ -333,14 +337,14 @@ struct BanksDump namespace BankFormats { -bool LoadMiles(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix); +bool LoadMiles(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix, bool mt32); bool LoadBisqwit(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix); bool LoadBNK(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix, bool is_fat, bool percussive); bool LoadBNK2(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix, const std::string &melo_filter, const std::string &perc_filter); bool LoadEA(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix); -bool LoadIBK(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix, bool percussive, bool noRhythmMode = false); +bool LoadIBK(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix, bool percussive, bool noRhythmMode, bool mt32); bool LoadJunglevision(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix); bool LoadDoom(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix); bool LoadTMB(BanksDump &db, const char *fn, unsigned bank, const std::string &bankTitle, const char *prefix); |