C140 Part 2
This commit is contained in:
parent
54cd69aabf
commit
14c5d94499
21 changed files with 210 additions and 56 deletions
|
|
@ -583,6 +583,19 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write
|
|||
w->writeC(0);
|
||||
}
|
||||
break;
|
||||
case DIV_SYSTEM_C140:
|
||||
for (int i=0; i<24; i++) {
|
||||
w->writeC(0xd4); // mute
|
||||
w->writeS(baseAddr2S|(i<<4)|0);
|
||||
w->writeC(0);
|
||||
w->writeC(0xd4);
|
||||
w->writeS(baseAddr2S|(i<<4)|1);
|
||||
w->writeC(0);
|
||||
w->writeC(0xd4); // keyoff
|
||||
w->writeS(baseAddr2S|(i<<4)|5);
|
||||
w->writeC(0);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -1044,6 +1057,11 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write
|
|||
w->writeC(baseAddr2|(write.addr&0x3f));
|
||||
w->writeC(write.val&0xff);
|
||||
break;
|
||||
case DIV_SYSTEM_C140:
|
||||
w->writeC(0xd4);
|
||||
w->writeC(baseAddr2S|(write.addr&0x1ff));
|
||||
w->writeC(write.val&0xff);
|
||||
break;
|
||||
default:
|
||||
logW("write not handled!");
|
||||
break;
|
||||
|
|
@ -1217,6 +1235,7 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p
|
|||
DivDispatch* writeMSM6295[2]={NULL,NULL};
|
||||
DivDispatch* writeGA20[2]={NULL,NULL};
|
||||
DivDispatch* writeK053260[2]={NULL,NULL};
|
||||
DivDispatch* writeC140[2]={NULL,NULL};
|
||||
DivDispatch* writeNES[2]={NULL,NULL};
|
||||
|
||||
int writeNESIndex[2]={0,0};
|
||||
|
|
@ -1765,6 +1784,21 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p
|
|||
willExport[i]=true;
|
||||
}
|
||||
break;
|
||||
case DIV_SYSTEM_C140:
|
||||
if (!hasNamco) {
|
||||
hasNamco=disCont[i].dispatch->chipClock;
|
||||
CHIP_VOL(40,0.4);
|
||||
willExport[i]=true;
|
||||
writeC140[0]=disCont[i].dispatch;
|
||||
} else if (!(hasNamco&0x40000000)) {
|
||||
isSecond[i]=true;
|
||||
CHIP_VOL_SECOND(40,0.4);
|
||||
willExport[i]=true;
|
||||
writeC140[1]=disCont[i].dispatch;
|
||||
hasNamco|=0x40000000;
|
||||
howManyChips++;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
@ -2163,6 +2197,15 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop, int version, bool p
|
|||
w->writeI(0);
|
||||
w->write(writeES5506[i]->getSampleMem(),writeES5506[i]->getSampleMemUsage());
|
||||
}
|
||||
if (writeC140[i]!=NULL && writeC140[i]->getSampleMemUsage()>0) {
|
||||
w->writeC(0x67);
|
||||
w->writeC(0x66);
|
||||
w->writeC(0x8d);
|
||||
w->writeI((writeC140[i]->getSampleMemUsage()+8)|(i*0x80000000));
|
||||
w->writeI(writeC140[i]->getSampleMemCapacity());
|
||||
w->writeI(0);
|
||||
w->write(writeC140[i]->getSampleMem(),writeC140[i]->getSampleMemUsage());
|
||||
}
|
||||
}
|
||||
|
||||
// initialize streams
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue