aboutsummaryrefslogtreecommitdiff
path: root/src/gen_adldata/file_formats/load_ail.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gen_adldata/file_formats/load_ail.h')
-rw-r--r--src/gen_adldata/file_formats/load_ail.h102
1 files changed, 0 insertions, 102 deletions
diff --git a/src/gen_adldata/file_formats/load_ail.h b/src/gen_adldata/file_formats/load_ail.h
deleted file mode 100644
index 4c6c482..0000000
--- a/src/gen_adldata/file_formats/load_ail.h
+++ /dev/null
@@ -1,102 +0,0 @@
-#ifndef LOAD_AIL_H
-#define LOAD_AIL_H
-
-#include "../progs_cache.h"
-#include "../midi_inst_list.h"
-
-static bool LoadMiles(const char *fn, unsigned bank, const char *prefix)
-{
- #ifdef HARD_BANKS
- writeIni("AIL", fn, prefix, bank, INI_Both);
- #endif
- FILE *fp = std::fopen(fn, "rb");
- if(!fp)
- return false;
- std::fseek(fp, 0, SEEK_END);
- std::vector<unsigned char> data(size_t(std::ftell(fp)));
- std::rewind(fp);
- if(std::fread(&data[0], 1, data.size(), fp) != data.size())
- {
- std::fclose(fp);
- return false;
- }
- std::fclose(fp);
-
- for(unsigned a = 0; a < 2000; ++a)
- {
- unsigned gm_patch = data[a * 6 + 0];
- unsigned gm_bank = data[a * 6 + 1];
- unsigned offset = *(unsigned *)&data[a * 6 + 2];
-
- if(gm_patch == 0xFF)
- break;
-
- int gmno = gm_bank == 0x7F ? int(gm_patch + 0x80) : int(gm_patch);
- int midi_index = gmno < 128 ? gmno
- : gmno < 128 + 35 ? -1
- : gmno < 128 + 88 ? gmno - 35
- : -1;
- unsigned length = data[offset] + data[offset + 1] * 256;
- signed char notenum = ((signed char)data[offset + 2]);
-
- /*printf("%02X %02X %08X ", gmnumber,gmnumber2, offset);
- for(unsigned b=0; b<length; ++b)
- {
- if(b > 3 && (b-3)%11 == 0) printf("\n ");
- printf("%02X ", data[offset+b]);
- }
- printf("\n");*/
-
- if(gm_bank != 0 && gm_bank != 0x7F)
- continue;
-
- char name2[512];
- sprintf(name2, "%s%c%u", prefix,
- (gmno < 128 ? 'M' : 'P'), gmno & 127);
-
- insdata tmp[200];
-
- const unsigned inscount = (length - 3) / 11;
- for(unsigned i = 0; i < inscount; ++i)
- {
- unsigned o = offset + 3 + i * 11;
- tmp[i].finetune = (gmno < 128 && i == 0) ? notenum : 0;
- tmp[i].diff = false;
- tmp[i].data[0] = data[o + 0]; // 20
- tmp[i].data[8] = data[o + 1]; // 40 (vol)
- tmp[i].data[2] = data[o + 2]; // 60
- tmp[i].data[4] = data[o + 3]; // 80
- tmp[i].data[6] = data[o + 4]; // E0
- tmp[i].data[1] = data[o + 6]; // 23
- tmp[i].data[9] = data[o + 7]; // 43 (vol)
- tmp[i].data[3] = data[o + 8]; // 63
- tmp[i].data[5] = data[o + 9]; // 83
- tmp[i].data[7] = data[o + 10]; // E3
-
- unsigned fb_c = data[offset + 3 + 5];
- tmp[i].data[10] = uint8_t(fb_c);
- if(i == 1)
- {
- tmp[0].data[10] = fb_c & 0x0F;
- tmp[1].data[10] = uint8_t((fb_c & 0x0E) | (fb_c >> 7));
- }
- }
- if(inscount == 1)
- tmp[1] = tmp[0];
-
- if(inscount <= 2)
- {
- struct ins tmp2;
- tmp2.notenum = gmno < 128 ? 0 : (unsigned char)notenum;
- tmp2.pseudo4op = false;
- tmp2.voice2_fine_tune = 0.0;
- std::string name;
- if(midi_index >= 0) name = std::string(1, '\377') + MidiInsName[midi_index];
- size_t resno = InsertIns(tmp[0], tmp[1], tmp2, name, name2);
- SetBank(bank, (unsigned int)gmno, resno);
- }
- }
- return true;
-}
-
-#endif // LOAD_AIL_H