aboutsummaryrefslogtreecommitdiff
path: root/utils/gen_adldata/file_formats
diff options
context:
space:
mode:
Diffstat (limited to 'utils/gen_adldata/file_formats')
-rw-r--r--utils/gen_adldata/file_formats/load_ail.h1
-rw-r--r--utils/gen_adldata/file_formats/load_bisqwit.h1
-rw-r--r--utils/gen_adldata/file_formats/load_bnk.h4
-rw-r--r--utils/gen_adldata/file_formats/load_bnk2.h10
-rw-r--r--utils/gen_adldata/file_formats/load_ea.h5
-rw-r--r--utils/gen_adldata/file_formats/load_ibk.h1
-rw-r--r--utils/gen_adldata/file_formats/load_jv.h1
-rw-r--r--utils/gen_adldata/file_formats/load_op2.h3
-rw-r--r--utils/gen_adldata/file_formats/load_tmb.h1
-rw-r--r--utils/gen_adldata/file_formats/load_wopl.h9
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)
{