aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/gen_adldata/file_formats/load_ail.h7
-rw-r--r--utils/gen_adldata/file_formats/load_ibk.h7
-rw-r--r--utils/gen_adldata/gen_adldata.cc8
-rw-r--r--utils/gen_adldata/progs_cache.h12
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);