diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 9d40883dd..14e2f5ce2 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -508,6 +508,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2610_FULL_EXT, 1.0f, 0, "") } ); + SUB_ENTRY( + _("MSX + Neotron (CSM)"), { + CH(DIV_SYSTEM_AY8910, 1.0f, 0, "chipType=1"), + CH(DIV_SYSTEM_YM2610_CSM, 1.0f, 0, "") + } + ); SUB_ENTRY( _("MSX + Neotron (with YM2610B)"), { CH(DIV_SYSTEM_AY8910, 1.0f, 0, "chipType=1"), @@ -520,6 +526,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2610B_EXT, 1.0f, 0, "") } ); + SUB_ENTRY( + _("MSX + Neotron (with YM2610B; CSM)"), { + CH(DIV_SYSTEM_AY8910, 1.0f, 0, "chipType=1"), + CH(DIV_SYSTEM_YM2610B_CSM, 1.0f, 0, "") + } + ); SUB_ENTRY( _("MSX + SIMPL"), { CH(DIV_SYSTEM_AY8910, 1.0f, 0, "chipType=1"), @@ -568,6 +580,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4") // external } ); + SUB_ENTRY( + _("NEC PC-88 (with PC-8801-11; CSM)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4") // external + } + ); SUB_ENTRY( _("NEC PC-88 (with PC-8801-23)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), @@ -608,6 +626,14 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=15") // "" } ); + SUB_ENTRY( + _("NEC PC-8801mk2SR (with PC-8801-10; CSM)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=15"), // external + CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=15") // "" + } + ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-11)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), @@ -636,6 +662,27 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4") // external } ); + SUB_ENTRY( + _("NEC PC-8801mk2SR (with PC-8801-11; CSM on internal OPN)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4") // external + } + ); + SUB_ENTRY( + _("NEC PC-8801mk2SR (with PC-8801-11; CSM on external OPN)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4") // external + } + ); + SUB_ENTRY( + _("NEC PC-8801mk2SR (with PC-8801-11; CSM on both OPNs)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4") // external + } + ); SUB_ENTRY( _("NEC PC-8801mk2SR (with PC-8801-23)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), @@ -664,6 +711,27 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1") // external } ); + SUB_ENTRY( + _("NEC PC-8801mk2SR (with PC-8801-23; CSM on internal OPN)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1") // external + } + ); + SUB_ENTRY( + _("NEC PC-8801mk2SR (with PC-8801-23; CSM on external OPN)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1") // external + } + ); + SUB_ENTRY( + _("NEC PC-8801mk2SR (with PC-8801-23; CSM on both OPNs)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // internal + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1") // external + } + ); SUB_ENTRY( _("NEC PC-8801mk2SR (with HMB-20 HIBIKI-8800)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), @@ -722,6 +790,27 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=4") // external } ); + SUB_ENTRY( + _("NEC PC-8801FA (with PC-8801-11; CSM on internal OPN)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), // internal + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4") // external + } + ); + SUB_ENTRY( + _("NEC PC-8801FA (with PC-8801-11; CSM on external OPN)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1"), // internal + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4") // external + } + ); + SUB_ENTRY( + _("NEC PC-8801FA (with PC-8801-11; CSM on both OPNs)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), // internal + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4") // external + } + ); SUB_ENTRY( _("NEC PC-8801FA (with PC-8801-23)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), @@ -730,26 +819,47 @@ void FurnaceGUI::initSystemPresets() { } ); SUB_ENTRY( - _("NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPN)"), { + _("NEC PC-8801FA (with PC-8801-23; extended channel 3 on internal OPNA)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1"), // internal CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1") // external } ); SUB_ENTRY( - _("NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPN)"), { + _("NEC PC-8801FA (with PC-8801-23; extended channel 3 on external OPNA)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1"), // internal CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1") // external } ); SUB_ENTRY( - _("NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNs)"), { + _("NEC PC-8801FA (with PC-8801-23; extended channel 3 on both OPNAs)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1"), // internal CH(DIV_SYSTEM_YM2608_EXT, 1.0f, 0, "clockSel=1") // external } ); + SUB_ENTRY( + _("NEC PC-8801FA (with PC-8801-23; CSM on internal OPNA)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), // internal + CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1") // external + } + ); + SUB_ENTRY( + _("NEC PC-8801FA (with PC-8801-23; CSM on external OPNA)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1"), // internal + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1") // external + } + ); + SUB_ENTRY( + _("NEC PC-8801FA (with PC-8801-23; CSM on both OPNAs)"), { + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), // internal + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1") // external + } + ); SUB_ENTRY( _("NEC PC-8801FA (with HMB-20 HIBIKI-8800)"), { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1"), @@ -779,6 +889,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with PC-9801-26/K; CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), // 3.9936MHz but some compatible card has 4MHz + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("NEC PC-98 (with Sound Orchestra)"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), @@ -793,6 +909,13 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with Sound Orchestra; CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), + CH(DIV_SYSTEM_OPL2, 1.0f, 0, "clockSel=4"), + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("NEC PC-98 (with Sound Orchestra in drums mode)"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), @@ -807,6 +930,13 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with Sound Orchestra in drums mode; CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), + CH(DIV_SYSTEM_OPL2_DRUMS, 1.0f, 0, "clockSel=4"), + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("NEC PC-98 (with Sound Orchestra V)"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), @@ -821,6 +951,13 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with Sound Orchestra V; CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), + CH(DIV_SYSTEM_Y8950, 1.0f, 0, "clockSel=4"), + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("NEC PC-98 (with Sound Orchestra V in drums mode)"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=4"), @@ -835,6 +972,13 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with Sound Orchestra V in drums mode; CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=4"), + CH(DIV_SYSTEM_Y8950_DRUMS, 1.0f, 0, "clockSel=4"), + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-86)"), { // -73 also has OPNA CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1"), @@ -863,6 +1007,20 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with PC-9801-86; CSM)"), { // -73 also has OPNA + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, + "rate=44100\n" + "outDepth=15\n" + ), + CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, + "rate=44100\n" + "outDepth=15\n" + ), + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-86) stereo"), { // -73 also has OPNA CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1"), @@ -891,6 +1049,20 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with PC-9801-86; CSM) stereo"), { // -73 also has OPNA + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_PCM_DAC, 1.0f, -1.0f, + "rate=44100\n" + "outDepth=15\n" + ), + CH(DIV_SYSTEM_PCM_DAC, 1.0f, 1.0f, + "rate=44100\n" + "outDepth=15\n" + ), + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("NEC PC-98 (with PC-9801-73)"), { CH(DIV_SYSTEM_YM2608, 1.0f, 0, "clockSel=1"), @@ -903,6 +1075,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with PC-9801-73; CSM)"), { + CH(DIV_SYSTEM_YM2608_CSM, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible)"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=2"), // 4MHz @@ -927,6 +1105,18 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible; CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, + "rate=44100\n" + "outDepth=15\n" + "stereo=true\n" + ), + CH(DIV_SYSTEM_OPL3, 1.0f, 0, "clockSel=2"), + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode)"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=2"), // 4MHz @@ -951,6 +1141,18 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") } ); + SUB_ENTRY( + _("NEC PC-98 (with Sound Blaster 16 for PC-9800 w/PC-9801-26/K compatible in drums mode; CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, + "rate=44100\n" + "outDepth=15\n" + "stereo=true\n" + ), + CH(DIV_SYSTEM_OPL3_DRUMS, 1.0f, 0, "clockSel=2"), + CH(DIV_SYSTEM_PCSPKR, 1.0f, 0, "clockSel=1") + } + ); ENTRY( _("ZX Spectrum (48K) beeper"), {} ); @@ -997,6 +1199,27 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=1") } ); + SUB_SUB_ENTRY( + _("ZX Spectrum (128K) with TurboSound FM (CSM on first OPN)"), { + CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=1") + } + ); + SUB_SUB_ENTRY( + _("ZX Spectrum (128K) with TurboSound FM (CSM on second OPN)"), { + CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=1") + } + ); + SUB_SUB_ENTRY( + _("ZX Spectrum (128K) with TurboSound FM (CSM on both OPNs)"), { + CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=1"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=1") + } + ); SUB_ENTRY( _("ZX Spectrum (128K) with TurboSound"), { CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=1"), @@ -1294,6 +1517,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=12"), CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=5") } + ); + SUB_ENTRY( + _("FM-7 (CSM)"), { + CH(DIV_SYSTEM_AY8910, 1.0f, 0, "clockSel=12"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5") + } ); ENTRY( _("FM Towns"), { @@ -1374,6 +1603,16 @@ void FurnaceGUI::initSystemPresets() { ) // software controlled 8 bit DAC } ); + SUB_ENTRY( + _("Alpha Denshi Alpha-68K (CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=3"), // 3MHz + CH(DIV_SYSTEM_OPLL, 1.0f, 0, "clockSel=0"), // 3.58MHz + CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, + "rate=7614\n" + "outDepth=7\n" + ) // software controlled 8 bit DAC + } + ); SUB_ENTRY( _("Alpha Denshi Alpha-68K (drums mode)"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=3"), // 3MHz @@ -1394,6 +1633,16 @@ void FurnaceGUI::initSystemPresets() { ) // software controlled 8 bit DAC } ); + SUB_ENTRY( + _("Alpha Denshi Alpha-68K (CSM; drums mode)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=3"), // 3MHz + CH(DIV_SYSTEM_OPLL_DRUMS, 1.0f, 0, "clockSel=0"), // 3.58MHz + CH(DIV_SYSTEM_PCM_DAC, 1.0f, 0, + "rate=7614\n" + "outDepth=7\n" + ) // software controlled 8 bit DAC + } + ); SUB_ENTRY( _("Alpha Denshi Equites"), { CH(DIV_SYSTEM_MSM5232, 1.0f, 0, "customClock=6144000"), @@ -1504,6 +1753,24 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2203_EXT, 1.0f, 0, "clockSel=5") } ); + SUB_ENTRY( + _("Capcom Arcade (CSM on first OPN)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5"), + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=5") + } + ); + SUB_ENTRY( + _("Capcom Arcade (CSM on second OPN)"), { + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=5"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5") + } + ); + SUB_ENTRY( + _("Capcom Arcade (CSM on both OPNs)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5"), + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5") + } + ); SUB_ENTRY( _("Capcom CPS-1"), { CH(DIV_SYSTEM_YM2151, 1.0f, 0, ""), // 3.58MHz @@ -1531,6 +1798,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_OPL, 1.0f, 0, "clockSel=3") // 3MHz } ); + SUB_ENTRY( + _("Data East Karnov (CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5"), // 1.5MHz + CH(DIV_SYSTEM_OPL, 1.0f, 0, "clockSel=3") // 3MHz + } + ); SUB_ENTRY( _("Data East Karnov (drums mode)"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=5"), // 1.5MHz @@ -1543,6 +1816,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_OPL_DRUMS, 1.0f, 0, "clockSel=3") // 3MHz } ); + SUB_ENTRY( + _("Data East Karnov (CSM; drums mode)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5"), // 1.5MHz + CH(DIV_SYSTEM_OPL_DRUMS, 1.0f, 0, "clockSel=3") // 3MHz + } + ); SUB_ENTRY( _("Data East Arcade"), { // Bad Dudes, RoboCop, etc CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=5"), // 1.5MHz @@ -1557,6 +1836,13 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "") // 1 to 1.056MHz; various per games or optional } ); + SUB_ENTRY( + _("Data East Arcade (CSM)"), { // Bad Dudes, RoboCop, etc + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5"), // 1.5MHz + CH(DIV_SYSTEM_OPL2, 1.0f, 0, "clockSel=3"), // 3MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "") // 1 to 1.056MHz; various per games or optional + } + ); SUB_ENTRY( _("Data East Arcade (drums mode)"), { // Bad Dudes, RoboCop, etc CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=5"), // 1.5MHz @@ -1571,6 +1857,13 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "") // 1 to 1.056MHz; various per games or optional } ); + SUB_ENTRY( + _("Data East Arcade (CSM; drums mode)"), { // Bad Dudes, RoboCop, etc + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5"), // 1.5MHz + CH(DIV_SYSTEM_OPL2_DRUMS, 1.0f, 0, "clockSel=3"), // 3MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "") // 1 to 1.056MHz; various per games or optional + } + ); SUB_ENTRY( _("Data East PCX"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=5"), // 1.5MHz @@ -1585,6 +1878,13 @@ void FurnaceGUI::initSystemPresets() { // software controlled MSM5205 } ); + SUB_ENTRY( + _("Data East PCX (CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5"), // 1.5MHz + CH(DIV_SYSTEM_PCE, 1.0f, 0, "") + // software controlled MSM5205 + } + ); SUB_ENTRY( _("Data East Dark Seal"), { // Dark Seal, Crude Buster, Vapor Trail, etc CH(DIV_SYSTEM_YM2151, 1.0f, 0, ""), // 3.580MHz (32.22MHz / 9) @@ -1603,6 +1903,15 @@ void FurnaceGUI::initSystemPresets() { // HuC6280 is for controlling them; internal sound isn't used } ); + SUB_ENTRY( + _("Data East Dark Seal (CSM)"), { // Dark Seal, Crude Buster, Vapor Trail, etc + CH(DIV_SYSTEM_YM2151, 1.0f, 0, ""), // 3.580MHz (32.22MHz / 9) + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4.0275MHz (32.22MHz / 8); optional + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, ""), // 1.007MHz (32.22MHz / 32) + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "clockSel=8") // 2.014MHz (32.22MHz / 16); optional + // HuC6280 is for controlling them; internal sound isn't used + } + ); SUB_ENTRY( _("Data East Deco 156"), { CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "clockSel=0"), // 1 or 1.007MHz (32.22MHz / 32); various per games @@ -1674,6 +1983,13 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_MSM6295, 1.0f, 1.0f, "clockSel=12") // 1.5MHz, Right output } ); + SUB_ENTRY( + _("Kaneko DJ Boy (CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=3"), // 3MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, -1.0f, "clockSel=12"), // 1.5MHz, Left output + CH(DIV_SYSTEM_MSM6295, 1.0f, 1.0f, "clockSel=12") // 1.5MHz, Right output + } + ); SUB_ENTRY( _("Kaneko Air Buster"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=3"), // 3MHz @@ -1692,6 +2008,15 @@ void FurnaceGUI::initSystemPresets() { ) // 3MHz } ); + SUB_ENTRY( + _("Kaneko Air Buster (CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=3"), // 3MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=13\n" + "rateSel=true\n" + ) // 3MHz + } + ); SUB_ENTRY( _("Kaneko Toybox System"), { CH(DIV_SYSTEM_AY8910, 1.0f, 0, @@ -1995,6 +2320,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_SEGAPCM, 1.0f, 0, "") // discrete logics, 62.5KHz output rate } ); + SUB_ENTRY( + _("Sega Hang-On (CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_SEGAPCM, 1.0f, 0, "") // discrete logics, 62.5KHz output rate + } + ); SUB_ENTRY( _("Sega OutRun/X Board"), { CH(DIV_SYSTEM_YM2151, 1.0f, 0, "clockSel=2"), // 4MHz @@ -2038,6 +2369,27 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_RF5C68, 1.0f, 0, "clockSel=1") // 10MHz } ); + SUB_ENTRY( + _("Sega System 18 (CSM on first OPN2C)"), { + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=2"), // discrete 8MHz YM3438 + CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=2"), // ^^ + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, "clockSel=1") // 10MHz + } + ); + SUB_ENTRY( + _("Sega System 18 (CSM on second OPN2C)"), { + CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=2"), // discrete 8MHz YM3438 + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=2"), // ^^ + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, "clockSel=1") // 10MHz + } + ); + SUB_ENTRY( + _("Sega System 18 (CSM on both OPN2Cs)"), { + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=2"), // discrete 8MHz YM3438 + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=2"), // ^^ + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, "clockSel=1") // 10MHz + } + ); SUB_ENTRY( _("Sega System 32"), { CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 @@ -2078,6 +2430,36 @@ void FurnaceGUI::initSystemPresets() { ) // 12.5MHz } ); + SUB_ENTRY( + _("Sega System 32 (CSM on first OPN2C)"), { + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 + CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // ^^ + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n" + "chipType=1\n" + ) // 12.5MHz + } + ); + SUB_ENTRY( + _("Sega System 32 (CSM on second OPN2C)"), { + CH(DIV_SYSTEM_YM2612, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=4"), // ^^ + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n" + "chipType=1\n" + ) // 12.5MHz + } + ); + SUB_ENTRY( + _("Sega System 32 (CSM on both OPN2Cs)"), { + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=4"), // discrete 8.05MHz YM3438 + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=4"), // ^^ + CH(DIV_SYSTEM_RF5C68, 1.0f, 0, + "clockSel=2\n" + "chipType=1\n" + ) // 12.5MHz + } + ); ENTRY( _("Seta"), {} @@ -2099,6 +2481,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2612_EXT, 1.0f, 0, "clockSel=2") // Discrete YM3438 } ); + SUB_ENTRY( + _("Seta 1 + FM add-on (CSM)"), { + CH(DIV_SYSTEM_X1_010, 1.0f, 0, ""), + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=2") // Discrete YM3438 + } + ); SUB_ENTRY( _("Seta 2"), { CH(DIV_SYSTEM_X1_010, 1.0f, 0, @@ -2126,6 +2514,11 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2610_FULL_EXT, 1.0f, 0, "") } ); + SUB_ENTRY( + _("Neo Geo MVS (CSM)"), { + CH(DIV_SYSTEM_YM2610_CSM, 1.0f, 0, "") + } + ); SUB_ENTRY( _("SNK Ikari Warriors"), { CH(DIV_SYSTEM_OPL, 1.0f, 0, "clockSel=2"), @@ -2247,6 +2640,12 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "clockSel=1") // 1.056MHz } ); + SUB_ENTRY( + _("Sunsoft Arcade (CSM)"), { + CH(DIV_SYSTEM_YM2612_CSM, 1.0f, 0, "clockSel=2"), // discrete YM3438 8MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "clockSel=1") // 1.056MHz + } + ); ENTRY( _("Taito"), {} @@ -2261,6 +2660,11 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_YM2610B_EXT, 1.0f, 0, "") } ); + SUB_ENTRY( + _("Taito Arcade (CSM)"), { + CH(DIV_SYSTEM_YM2610B_CSM, 1.0f, 0, "") + } + ); SUB_ENTRY( _("Taito Metal Soldier Isaac II"), { CH(DIV_SYSTEM_MSM5232, 1.0f, 0, ""), @@ -2330,6 +2734,27 @@ void FurnaceGUI::initSystemPresets() { CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "") // 1MHz } ); + SUB_ENTRY( + _("Tecmo Ninja Gaiden (CSM on first OPN)"), { // Ninja Gaiden, Raiga, etc + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "") // 1MHz + } + ); + SUB_ENTRY( + _("Tecmo Ninja Gaiden (CSM on second OPN)"), { // Ninja Gaiden, Raiga, etc + CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "") // 1MHz + } + ); + SUB_ENTRY( + _("Tecmo Ninja Gaiden (CSM on both OPNs)"), { // Ninja Gaiden, Raiga, etc + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, "") // 1MHz + } + ); SUB_ENTRY( _("Tecmo System"), { CH(DIV_SYSTEM_OPL3, 1.0f, 0, ""), @@ -2407,6 +2832,19 @@ void FurnaceGUI::initSystemPresets() { ) // ^^ } ); + SUB_ENTRY( + _("NMK 16-bit Arcade (CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5"), // 1.5MHz; optional + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=2\n" + "rateSel=true\n" + ), // 4MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=2\n" + "rateSel=true\n" + ) // ^^ + } + ); SUB_ENTRY( _("NMK 16-bit Arcade (w/NMK112 bankswitching)"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=5"), // 1.5MHz; optional @@ -2437,6 +2875,21 @@ void FurnaceGUI::initSystemPresets() { ) // ^^ } ); + SUB_ENTRY( + _("NMK 16-bit Arcade (w/NMK112 bankswitching, CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=5"), // 1.5MHz; optional + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=2\n" + "rateSel=true\n" + "isBanked=true\n" + ), // 4MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=2\n" + "rateSel=true\n" + "isBanked=true\n" + ) // ^^ + } + ); SUB_ENTRY( _("Atlus Power Instinct 2"), { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=2"), // 4MHz @@ -2467,6 +2920,21 @@ void FurnaceGUI::initSystemPresets() { ) // ^^ } ); + SUB_ENTRY( + _("Atlus Power Instinct 2 (CSM)"), { + CH(DIV_SYSTEM_YM2203_CSM, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=13\n" + "rateSel=true\n" + "isBanked=true\n" + ), // 3MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=13\n" + "rateSel=true\n" + "isBanked=true\n" + ) // ^^ + } + ); SUB_ENTRY( _("Raizing/Eighting Battle Garegga"), { CH(DIV_SYSTEM_YM2151, 1.0f, 0, "clockSel=2"), // 4MHz