rename Neo Geo to Neo Geo CD

pave the way for Neo Geo with ADPCM-B
This commit is contained in:
tildearrow 2022-02-10 03:28:20 -05:00
parent d1e166a34e
commit d27dcfecac
2 changed files with 44 additions and 48 deletions

View File

@ -149,9 +149,9 @@ DivSystem systemFromFile(unsigned char val) {
case 0xa4: case 0xa4:
return DIV_SYSTEM_OPL3_DRUMS; return DIV_SYSTEM_OPL3_DRUMS;
case 0xa5: case 0xa5:
return DIV_SYSTEM_OPL3_4OP; return DIV_SYSTEM_YM2610_FULL;
case 0xa6: case 0xa6:
return DIV_SYSTEM_OPL3_4OP_DRUMS; return DIV_SYSTEM_YM2610_FULL_EXT;
case 0xa7: case 0xa7:
return DIV_SYSTEM_OPLL_DRUMS; return DIV_SYSTEM_OPLL_DRUMS;
} }
@ -259,9 +259,9 @@ unsigned char systemToFile(DivSystem val) {
return 0xa3; return 0xa3;
case DIV_SYSTEM_OPL3_DRUMS: case DIV_SYSTEM_OPL3_DRUMS:
return 0xa4; return 0xa4;
case DIV_SYSTEM_OPL3_4OP: case DIV_SYSTEM_YM2610_FULL:
return 0xa5; return 0xa5;
case DIV_SYSTEM_OPL3_4OP_DRUMS: case DIV_SYSTEM_YM2610_FULL_EXT:
return 0xa6; return 0xa6;
case DIV_SYSTEM_OPLL_DRUMS: case DIV_SYSTEM_OPLL_DRUMS:
return 0xa7; return 0xa7;
@ -370,10 +370,10 @@ int DivEngine::getChannelCount(DivSystem sys) {
return 11; return 11;
case DIV_SYSTEM_OPL3_DRUMS: case DIV_SYSTEM_OPL3_DRUMS:
return 20; return 20;
case DIV_SYSTEM_OPL3_4OP: case DIV_SYSTEM_YM2610_FULL:
return 12; return 14;
case DIV_SYSTEM_OPL3_4OP_DRUMS: case DIV_SYSTEM_YM2610_FULL_EXT:
return 14; return 17;
case DIV_SYSTEM_OPLL_DRUMS: case DIV_SYSTEM_OPLL_DRUMS:
return 11; return 11;
} }
@ -410,10 +410,14 @@ const char* DivEngine::getSystemName(DivSystem sys) {
case DIV_SYSTEM_GENESIS_EXT: case DIV_SYSTEM_GENESIS_EXT:
return "Sega Genesis Extended Channel 3"; return "Sega Genesis Extended Channel 3";
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
return "Neo Geo"; return "Neo Geo CD";
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
return "Neo Geo Extended Channel 2"; return "Neo Geo CD Extended Channel 2";
// Furnace-specific systems // Furnace-specific systems
case DIV_SYSTEM_YM2610_FULL:
return "Neo Geo";
case DIV_SYSTEM_YM2610_FULL_EXT:
return "Neo Geo Extended Channel 2";
case DIV_SYSTEM_AY8910: case DIV_SYSTEM_AY8910:
return "AY-3-8910"; return "AY-3-8910";
case DIV_SYSTEM_AMIGA: case DIV_SYSTEM_AMIGA:
@ -488,10 +492,6 @@ const char* DivEngine::getSystemName(DivSystem sys) {
return "Yamaha OPL2 with drums"; return "Yamaha OPL2 with drums";
case DIV_SYSTEM_OPL3_DRUMS: case DIV_SYSTEM_OPL3_DRUMS:
return "Yamaha OPL3 with drums"; return "Yamaha OPL3 with drums";
case DIV_SYSTEM_OPL3_4OP:
return "Yamaha OPL3 4-op mode";
case DIV_SYSTEM_OPL3_4OP_DRUMS:
return "Yamaha OPL3 4-op with drums";
case DIV_SYSTEM_OPLL_DRUMS: case DIV_SYSTEM_OPLL_DRUMS:
return "Yamaha OPLL with drums"; return "Yamaha OPLL with drums";
} }
@ -523,9 +523,9 @@ const char* DivEngine::getSystemChips(DivSystem sys) {
case DIV_SYSTEM_GENESIS_EXT: case DIV_SYSTEM_GENESIS_EXT:
return "Yamaha YM2612 (extended channel 3) + TI SN76489"; return "Yamaha YM2612 (extended channel 3) + TI SN76489";
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
return "Yamaha YM2610"; return "Yamaha YM2610 no ADPCM-B";
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
return "Yamaha YM2610 (extended channel 2)"; return "Yamaha YM2610 no ADPCM-B (extended channel 2)";
// Furnace-specific systems // Furnace-specific systems
case DIV_SYSTEM_AY8910: case DIV_SYSTEM_AY8910:
return "AY-3-8910"; return "AY-3-8910";
@ -601,10 +601,10 @@ const char* DivEngine::getSystemChips(DivSystem sys) {
return "Yamaha YM3812 with drums"; return "Yamaha YM3812 with drums";
case DIV_SYSTEM_OPL3_DRUMS: case DIV_SYSTEM_OPL3_DRUMS:
return "Yamaha YMF262 with drums"; return "Yamaha YMF262 with drums";
case DIV_SYSTEM_OPL3_4OP: case DIV_SYSTEM_YM2610_FULL:
return "Yamaha YMF262 4-op mode"; return "Yamaha YM2610";
case DIV_SYSTEM_OPL3_4OP_DRUMS: case DIV_SYSTEM_YM2610_FULL_EXT:
return "Yamaha YMF262 4-op with drums"; return "Yamaha YM2610 (extended channel 2)";
case DIV_SYSTEM_OPLL_DRUMS: case DIV_SYSTEM_OPLL_DRUMS:
return "Yamaha YM2413 with drums"; return "Yamaha YM2413 with drums";
} }
@ -638,7 +638,11 @@ const char* DivEngine::getSystemNameJ(DivSystem sys) {
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
return "業務用ネオジオ"; return "業務用ネオジオ";
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
return ""; return "業務用ネオジオ";
case DIV_SYSTEM_YM2610_FULL:
return "業務用ネオジオ";
case DIV_SYSTEM_YM2610_FULL_EXT:
return "業務用ネオジオ";
// Furnace-specific systems // Furnace-specific systems
case DIV_SYSTEM_AY8910: case DIV_SYSTEM_AY8910:
return ""; return "";
@ -666,6 +670,8 @@ bool DivEngine::isFMSystem(DivSystem sys) {
sys==DIV_SYSTEM_ARCADE || sys==DIV_SYSTEM_ARCADE ||
sys==DIV_SYSTEM_YM2610 || sys==DIV_SYSTEM_YM2610 ||
sys==DIV_SYSTEM_YM2610_EXT || sys==DIV_SYSTEM_YM2610_EXT ||
sys==DIV_SYSTEM_YM2610_FULL ||
sys==DIV_SYSTEM_YM2610_FULL_EXT ||
sys==DIV_SYSTEM_YMU759 || sys==DIV_SYSTEM_YMU759 ||
sys==DIV_SYSTEM_YM2151 || sys==DIV_SYSTEM_YM2151 ||
sys==DIV_SYSTEM_YM2612); sys==DIV_SYSTEM_YM2612);
@ -875,9 +881,11 @@ const char* DivEngine::getChannelName(int chan) {
return chanNames[8][dispatchChanOfChan[chan]]; return chanNames[8][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
case DIV_SYSTEM_YM2610_FULL:
return chanNames[9][dispatchChanOfChan[chan]]; return chanNames[9][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
case DIV_SYSTEM_YM2610_FULL_EXT:
return chanNames[10][dispatchChanOfChan[chan]]; return chanNames[10][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_AY8910: case DIV_SYSTEM_AY8910:
@ -955,12 +963,6 @@ const char* DivEngine::getChannelName(int chan) {
case DIV_SYSTEM_OPL3_DRUMS: case DIV_SYSTEM_OPL3_DRUMS:
return chanNames[33][dispatchChanOfChan[chan]]; return chanNames[33][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_OPL3_4OP:
return chanNames[34][dispatchChanOfChan[chan]];
break;
case DIV_SYSTEM_OPL3_4OP_DRUMS:
return chanNames[35][dispatchChanOfChan[chan]];
break;
case DIV_SYSTEM_SAA1099: case DIV_SYSTEM_SAA1099:
return chanNames[16][dispatchChanOfChan[chan]]; return chanNames[16][dispatchChanOfChan[chan]];
break; break;
@ -1006,9 +1008,11 @@ const char* DivEngine::getChannelShortName(int chan) {
return chanShortNames[8][dispatchChanOfChan[chan]]; return chanShortNames[8][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
case DIV_SYSTEM_YM2610_FULL:
return chanShortNames[9][dispatchChanOfChan[chan]]; return chanShortNames[9][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
case DIV_SYSTEM_YM2610_FULL_EXT:
return chanShortNames[10][dispatchChanOfChan[chan]]; return chanShortNames[10][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_AY8910: case DIV_SYSTEM_AY8910:
@ -1086,12 +1090,6 @@ const char* DivEngine::getChannelShortName(int chan) {
case DIV_SYSTEM_OPL3_DRUMS: case DIV_SYSTEM_OPL3_DRUMS:
return chanShortNames[33][dispatchChanOfChan[chan]]; return chanShortNames[33][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_OPL3_4OP:
return chanShortNames[34][dispatchChanOfChan[chan]];
break;
case DIV_SYSTEM_OPL3_4OP_DRUMS:
return chanShortNames[35][dispatchChanOfChan[chan]];
break;
case DIV_SYSTEM_SAA1099: case DIV_SYSTEM_SAA1099:
return chanShortNames[16][dispatchChanOfChan[chan]]; return chanShortNames[16][dispatchChanOfChan[chan]];
break; break;
@ -1135,9 +1133,11 @@ int DivEngine::getChannelType(int chan) {
return chanTypes[8][dispatchChanOfChan[chan]]; return chanTypes[8][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
case DIV_SYSTEM_YM2610_FULL:
return chanTypes[9][dispatchChanOfChan[chan]]; return chanTypes[9][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
case DIV_SYSTEM_YM2610_FULL_EXT:
return chanTypes[10][dispatchChanOfChan[chan]]; return chanTypes[10][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_AY8910: case DIV_SYSTEM_AY8910:
@ -1215,12 +1215,6 @@ int DivEngine::getChannelType(int chan) {
case DIV_SYSTEM_OPL3_DRUMS: case DIV_SYSTEM_OPL3_DRUMS:
return chanTypes[33][dispatchChanOfChan[chan]]; return chanTypes[33][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_OPL3_4OP:
return chanTypes[34][dispatchChanOfChan[chan]];
break;
case DIV_SYSTEM_OPL3_4OP_DRUMS:
return chanTypes[35][dispatchChanOfChan[chan]];
break;
case DIV_SYSTEM_SAA1099: case DIV_SYSTEM_SAA1099:
return chanTypes[16][dispatchChanOfChan[chan]]; return chanTypes[16][dispatchChanOfChan[chan]];
break; break;
@ -1262,9 +1256,11 @@ DivInstrumentType DivEngine::getPreferInsType(int chan) {
return chanPrefType[8][dispatchChanOfChan[chan]]; return chanPrefType[8][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
case DIV_SYSTEM_YM2610_FULL:
return chanPrefType[9][dispatchChanOfChan[chan]]; return chanPrefType[9][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
case DIV_SYSTEM_YM2610_FULL_EXT:
return chanPrefType[10][dispatchChanOfChan[chan]]; return chanPrefType[10][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_AY8910: case DIV_SYSTEM_AY8910:
@ -1345,12 +1341,6 @@ DivInstrumentType DivEngine::getPreferInsType(int chan) {
return chanPrefType[33][dispatchChanOfChan[chan]]; return chanPrefType[33][dispatchChanOfChan[chan]];
return chanPrefType[33][dispatchChanOfChan[chan]]; return chanPrefType[33][dispatchChanOfChan[chan]];
break; break;
case DIV_SYSTEM_OPL3_4OP:
return chanPrefType[34][dispatchChanOfChan[chan]];
break;
case DIV_SYSTEM_OPL3_4OP_DRUMS:
return chanPrefType[35][dispatchChanOfChan[chan]];
break;
case DIV_SYSTEM_SAA1099: case DIV_SYSTEM_SAA1099:
return chanPrefType[16][dispatchChanOfChan[chan]]; return chanPrefType[16][dispatchChanOfChan[chan]];
break; break;
@ -3086,7 +3076,9 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write
} }
break; break;
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
case DIV_SYSTEM_YM2610_FULL:
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
case DIV_SYSTEM_YM2610_FULL_EXT:
for (int i=0; i<2; i++) { // set SL and RR to highest for (int i=0; i<2; i++) { // set SL and RR to highest
w->writeC(isSecond?0xa8:0x58); w->writeC(isSecond?0xa8:0x58);
w->writeC(0x81+i); w->writeC(0x81+i);
@ -3277,7 +3269,9 @@ void DivEngine::performVGMWrite(SafeWriter* w, DivSystem sys, DivRegWrite& write
} }
break; break;
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
case DIV_SYSTEM_YM2610_FULL:
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
case DIV_SYSTEM_YM2610_FULL_EXT:
switch (write.addr>>8) { switch (write.addr>>8) {
case 0: // port 0 case 0: // port 0
w->writeC(isSecond?0xa8:0x58); w->writeC(isSecond?0xa8:0x58);
@ -3576,7 +3570,9 @@ SafeWriter* DivEngine::saveVGM(bool* sysToExport, bool loop) {
} }
break; break;
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610:
case DIV_SYSTEM_YM2610_FULL:
case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_EXT:
case DIV_SYSTEM_YM2610_FULL_EXT:
if (!hasOPNB) { if (!hasOPNB) {
hasOPNB=disCont[i].dispatch->chipClock; hasOPNB=disCont[i].dispatch->chipClock;
willExport[i]=true; willExport[i]=true;
@ -5073,7 +5069,7 @@ int DivEngine::getEffectiveSampleRate(int rate) {
return 1789773/(1789773/rate); return 1789773/(1789773/rate);
case DIV_SYSTEM_ARCADE: case DIV_SYSTEM_ARCADE:
return (31250*MIN(255,(rate*255/31250)))/255; return (31250*MIN(255,(rate*255/31250)))/255;
case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610: case DIV_SYSTEM_YM2610_EXT: case DIV_SYSTEM_YM2610_FULL: case DIV_SYSTEM_YM2610_FULL_EXT:
return 18518; return 18518;
default: default:
break; break;

View File

@ -64,8 +64,8 @@ enum DivSystem {
DIV_SYSTEM_OPL_DRUMS, DIV_SYSTEM_OPL_DRUMS,
DIV_SYSTEM_OPL2_DRUMS, DIV_SYSTEM_OPL2_DRUMS,
DIV_SYSTEM_OPL3_DRUMS, DIV_SYSTEM_OPL3_DRUMS,
DIV_SYSTEM_OPL3_4OP, DIV_SYSTEM_YM2610_FULL,
DIV_SYSTEM_OPL3_4OP_DRUMS, DIV_SYSTEM_YM2610_FULL_EXT,
DIV_SYSTEM_OPLL_DRUMS, DIV_SYSTEM_OPLL_DRUMS,
}; };