IT/S3M/XM import: use systemChans
This commit is contained in:
parent
f1a3295a78
commit
5f2c309abd
3 changed files with 8 additions and 15 deletions
|
|
@ -1619,12 +1619,6 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
|
|||
|
||||
logV("maxChan: %d",maxChan);
|
||||
|
||||
// set channel visibility
|
||||
for (int i=maxChan; i<((maxChan+32)&(~31)); i++) {
|
||||
ds.subsong[0]->chanShow[i]=false;
|
||||
ds.subsong[0]->chanShowChanOsc[i]=false;
|
||||
}
|
||||
|
||||
// copy patterns to the rest of subsongs
|
||||
int copiesMade=0;
|
||||
for (size_t i=1; i<ds.subsong.size(); i++) {
|
||||
|
|
@ -1664,8 +1658,11 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
|
|||
}
|
||||
|
||||
// set systems
|
||||
int chansToCount=maxChan;
|
||||
for (int i=0; i<(maxChan+32)>>5; i++) {
|
||||
ds.system[i]=DIV_SYSTEM_ES5506;
|
||||
ds.systemChans[i]=MIN(32,chansToCount);
|
||||
chansToCount-=ds.systemChans[i];
|
||||
ds.systemFlags[i].set("amigaVol",true);
|
||||
if (!ds.compatFlags.linearPitch) {
|
||||
ds.systemFlags[i].set("amigaPitch",true);
|
||||
|
|
@ -1675,7 +1672,6 @@ bool DivEngine::loadIT(unsigned char* file, size_t len) {
|
|||
ds.systemName="PC";
|
||||
|
||||
// find subsongs
|
||||
ds.initDefaultSystemChans();
|
||||
ds.recalcChans();
|
||||
ds.findSubSongs();
|
||||
|
||||
|
|
|
|||
|
|
@ -345,6 +345,7 @@ bool DivEngine::loadS3M(unsigned char* file, size_t len) {
|
|||
ds.systemName="PC";
|
||||
if (hasPCM) {
|
||||
ds.system[ds.systemLen]=DIV_SYSTEM_ES5506;
|
||||
ds.systemChans[ds.systemLen]=32; // for now
|
||||
ds.systemVol[ds.systemLen]=(float)globalVol/64.0;
|
||||
ds.systemPan[ds.systemLen]=0;
|
||||
ds.systemFlags[ds.systemLen].set("volScale",3900);
|
||||
|
|
@ -354,6 +355,7 @@ bool DivEngine::loadS3M(unsigned char* file, size_t len) {
|
|||
}
|
||||
if (hasFM) {
|
||||
ds.system[ds.systemLen]=opl2 ? DIV_SYSTEM_OPL2 : DIV_SYSTEM_OPL3;
|
||||
ds.systemChans[ds.systemLen]=opl2?9:18; // for now
|
||||
ds.systemVol[ds.systemLen]=1.0f;
|
||||
ds.systemPan[ds.systemLen]=0;
|
||||
ds.systemLen++;
|
||||
|
|
@ -1179,7 +1181,6 @@ bool DivEngine::loadS3M(unsigned char* file, size_t len) {
|
|||
}
|
||||
|
||||
// find subsongs
|
||||
ds.initDefaultSystemChans();
|
||||
ds.recalcChans();
|
||||
ds.findSubSongs();
|
||||
|
||||
|
|
|
|||
|
|
@ -301,8 +301,11 @@ bool DivEngine::loadXM(unsigned char* file, size_t len) {
|
|||
}
|
||||
}
|
||||
|
||||
int chansToCount=totalChans;
|
||||
for (int i=0; i<(totalChans+31)>>5; i++) {
|
||||
ds.system[i]=DIV_SYSTEM_ES5506;
|
||||
ds.systemChans[i]=MIN(32,chansToCount);
|
||||
chansToCount-=ds.systemChans[i];
|
||||
ds.systemFlags[i].set("amigaVol",true);
|
||||
ds.systemFlags[i].set("amigaPitch",(ds.compatFlags.linearPitch==0));
|
||||
ds.systemFlags[i].set("volScale",3900);
|
||||
|
|
@ -1370,14 +1373,7 @@ bool DivEngine::loadXM(unsigned char* file, size_t len) {
|
|||
return false;
|
||||
}
|
||||
|
||||
// set channel visibility
|
||||
for (int i=totalChans; i<((totalChans+32)&(~31)); i++) {
|
||||
ds.subsong[0]->chanShow[i]=false;
|
||||
ds.subsong[0]->chanShowChanOsc[i]=false;
|
||||
}
|
||||
|
||||
// find subsongs
|
||||
ds.initDefaultSystemChans();
|
||||
ds.recalcChans();
|
||||
ds.findSubSongs();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue