system master race
This commit is contained in:
parent
957c2b84b6
commit
ccfed873e8
|
@ -219,6 +219,10 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
|||
addWarning("Master System FM expansion is not emulated yet. wait for 0.6!");
|
||||
}
|
||||
|
||||
if (ds.system[0]==DIV_SYSTEM_NES_VRC7) {
|
||||
addWarning("Konami VRC7 is not emulated yet. wait for 0.6!");
|
||||
}
|
||||
|
||||
logI("reading pattern matrix (%d)...\n",ds.ordersLen);
|
||||
for (int i=0; i<getChannelCount(ds.system[0]); i++) {
|
||||
for (int j=0; j<ds.ordersLen; j++) {
|
||||
|
@ -265,7 +269,7 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
|||
ins->type=DIV_INS_PCE;
|
||||
ins->std.volMacroHeight=31;
|
||||
}
|
||||
if (ds.system[0]==DIV_SYSTEM_SMS_OPLL) {
|
||||
if ((ds.system[0]==DIV_SYSTEM_SMS_OPLL || ds.system[0]==DIV_SYSTEM_NES_VRC7) && ins->type==DIV_INS_FM) {
|
||||
ins->type=DIV_INS_OPLL;
|
||||
}
|
||||
|
||||
|
@ -320,7 +324,7 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
|||
ins->fm.op[j].vib=reader.readC();
|
||||
ins->fm.op[j].ws=reader.readC();
|
||||
} else {
|
||||
if (ds.system[0]==DIV_SYSTEM_SMS_OPLL) {
|
||||
if (ds.system[0]==DIV_SYSTEM_SMS_OPLL || ds.system[0]==DIV_SYSTEM_NES_VRC7) {
|
||||
if (j==0) {
|
||||
ins->fm.opllPreset=reader.readC();
|
||||
} else {
|
||||
|
@ -331,7 +335,7 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
|||
}
|
||||
}
|
||||
if (ds.version>0x03) {
|
||||
if (ds.system[0]==DIV_SYSTEM_SMS_OPLL) {
|
||||
if (ds.system[0]==DIV_SYSTEM_SMS_OPLL || ds.system[0]==DIV_SYSTEM_NES_VRC7) {
|
||||
ins->fm.op[j].ksr=reader.readC();
|
||||
ins->fm.op[j].vib=reader.readC();
|
||||
ins->fm.op[j].ksl=reader.readC();
|
||||
|
@ -672,6 +676,11 @@ bool DivEngine::loadDMF(unsigned char* file, size_t len) {
|
|||
ds.system[0]=DIV_SYSTEM_SMS;
|
||||
ds.system[1]=DIV_SYSTEM_OPLL;
|
||||
}
|
||||
if (ds.system[0]==DIV_SYSTEM_NES_VRC7) {
|
||||
ds.systemLen=2;
|
||||
ds.system[0]=DIV_SYSTEM_NES;
|
||||
ds.system[1]=DIV_SYSTEM_VRC7;
|
||||
}
|
||||
|
||||
if (active) quitDispatch();
|
||||
isBusy.lock();
|
||||
|
|
|
@ -41,6 +41,7 @@ enum DivSystem {
|
|||
DIV_SYSTEM_GB,
|
||||
DIV_SYSTEM_PCE,
|
||||
DIV_SYSTEM_NES,
|
||||
DIV_SYSTEM_NES_VRC7, // ** COMPOUND SYSTEM - DO NOT USE! **
|
||||
DIV_SYSTEM_C64_6581,
|
||||
DIV_SYSTEM_C64_8580,
|
||||
DIV_SYSTEM_ARCADE, // ** COMPOUND SYSTEM - DO NOT USE! **
|
||||
|
|
|
@ -44,6 +44,8 @@ DivSystem DivEngine::systemFromFile(unsigned char val) {
|
|||
return DIV_SYSTEM_GENESIS_EXT;
|
||||
case 0x43:
|
||||
return DIV_SYSTEM_SMS_OPLL;
|
||||
case 0x46:
|
||||
return DIV_SYSTEM_NES_VRC7;
|
||||
case 0x47:
|
||||
return DIV_SYSTEM_C64_6581;
|
||||
case 0x49:
|
||||
|
@ -163,6 +165,8 @@ unsigned char DivEngine::systemToFile(DivSystem val) {
|
|||
return 0x42;
|
||||
case DIV_SYSTEM_SMS_OPLL:
|
||||
return 0x43;
|
||||
case DIV_SYSTEM_NES_VRC7:
|
||||
return 0x46;
|
||||
case DIV_SYSTEM_C64_6581:
|
||||
return 0x47;
|
||||
case DIV_SYSTEM_YM2610_EXT:
|
||||
|
@ -283,7 +287,9 @@ int DivEngine::getChannelCount(DivSystem sys) {
|
|||
case DIV_SYSTEM_GENESIS_EXT:
|
||||
case DIV_SYSTEM_YM2610:
|
||||
case DIV_SYSTEM_SMS_OPLL:
|
||||
return 13;
|
||||
return 13;
|
||||
case DIV_SYSTEM_NES_VRC7:
|
||||
return 11;
|
||||
case DIV_SYSTEM_YM2610_EXT:
|
||||
return 16;
|
||||
// Furnace-specific systems
|
||||
|
@ -524,6 +530,8 @@ const char* DivEngine::getSystemName(DivSystem sys) {
|
|||
return "PC Engine/TurboGrafx-16";
|
||||
case DIV_SYSTEM_NES:
|
||||
return "NES";
|
||||
case DIV_SYSTEM_NES_VRC7:
|
||||
return "NES + Konami VRC7";
|
||||
case DIV_SYSTEM_C64_6581:
|
||||
return "Commodore 64 with 6581";
|
||||
case DIV_SYSTEM_C64_8580:
|
||||
|
@ -645,6 +653,8 @@ const char* DivEngine::getSystemChips(DivSystem sys) {
|
|||
return "Hudson Soft HuC6280";
|
||||
case DIV_SYSTEM_NES:
|
||||
return "Ricoh 2A03";
|
||||
case DIV_SYSTEM_NES_VRC7:
|
||||
return "Ricoh 2A03 + Konami VRC7";
|
||||
case DIV_SYSTEM_C64_6581:
|
||||
return "SID 6581";
|
||||
case DIV_SYSTEM_C64_8580:
|
||||
|
@ -1007,6 +1017,7 @@ const char* DivEngine::getChannelName(int chan) {
|
|||
return chanNames[3][dispatchChanOfChan[chan]];
|
||||
break;
|
||||
case DIV_SYSTEM_SMS_OPLL: // this is flattened to SMS + OPLL.
|
||||
case DIV_SYSTEM_NES_VRC7: // this is flattened to NES + VRC7.
|
||||
return "??";
|
||||
break;
|
||||
case DIV_SYSTEM_GB:
|
||||
|
@ -1142,6 +1153,7 @@ const char* DivEngine::getChannelShortName(int chan) {
|
|||
return chanShortNames[3][dispatchChanOfChan[chan]];
|
||||
break;
|
||||
case DIV_SYSTEM_SMS_OPLL: // this is flattened to SMS + OPLL.
|
||||
case DIV_SYSTEM_NES_VRC7: // this is flattened to NES + VRC7.
|
||||
return "??";
|
||||
break;
|
||||
case DIV_SYSTEM_GB:
|
||||
|
@ -1275,6 +1287,7 @@ int DivEngine::getChannelType(int chan) {
|
|||
return chanTypes[3][dispatchChanOfChan[chan]];
|
||||
break;
|
||||
case DIV_SYSTEM_SMS_OPLL: // this is flattened to SMS + OPLL.
|
||||
case DIV_SYSTEM_NES_VRC7: // this is flattened to NES + VRC7.
|
||||
return 0;
|
||||
break;
|
||||
case DIV_SYSTEM_GB:
|
||||
|
@ -1408,6 +1421,7 @@ DivInstrumentType DivEngine::getPreferInsType(int chan) {
|
|||
return chanPrefType[3][dispatchChanOfChan[chan]];
|
||||
break;
|
||||
case DIV_SYSTEM_SMS_OPLL: // this is flattened to SMS + OPLL.
|
||||
case DIV_SYSTEM_NES_VRC7: // this is flattened to NES + VRC7.
|
||||
return DIV_INS_OPLL;
|
||||
break;
|
||||
case DIV_SYSTEM_GB:
|
||||
|
|
Loading…
Reference in New Issue