diff --git a/src/engine/platform/msm6295.cpp b/src/engine/platform/msm6295.cpp index 886d447fd..a8c30b3e1 100644 --- a/src/engine/platform/msm6295.cpp +++ b/src/engine/platform/msm6295.cpp @@ -524,6 +524,9 @@ void DivPlatformMSM6295::setFlags(const DivConfig& flags) { case 14: chipClock=COLOR_NTSC/3.0; break; + case 15: + chipClock=3200000; + break; default: chipClock=4000000/4; break; diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index d1a21cc26..e102eae4e 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -1547,6 +1547,89 @@ void FurnaceGUI::initSystemPresets() { ) // ^^ } ); + ENTRY( + "NMK 16-bit Arcade (w/NMK112 bankswitching)", { + CH(DIV_SYSTEM_YM2203, 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" + ) // ^^ + } + ); + ENTRY( + "NMK 16-bit Arcade (w/NMK112 bankswitching, extended channel 3)", { + CH(DIV_SYSTEM_YM2203_EXT, 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" + ) // ^^ + } + ); + ENTRY( + "Atlus Power Instinct 2", { + CH(DIV_SYSTEM_YM2203, 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" + ) // ^^ + } + ); + ENTRY( + "Atlus Power Instinct 2 (extended channel 3)", { + CH(DIV_SYSTEM_YM2203_EXT, 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" + ) // ^^ + } + ); + ENTRY( + "Raizing/Eighting Battle Garegga", { + CH(DIV_SYSTEM_YM2151, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=8\n" + "isBanked=true\n" + ) // 2MHz + } + ); + ENTRY( + "Raizing/Eighting Batrider", { + CH(DIV_SYSTEM_YM2151, 1.0f, 0, "clockSel=2"), // 4MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=15\n" + "isBanked=true\n" + ), // 3.2MHz + CH(DIV_SYSTEM_MSM6295, 1.0f, 0, + "clockSel=15\n" + "rateSel=true\n" + "isBanked=true\n" + ) // 3.2MHz + } + ); ENTRY( "Kaneko DJ Boy", { CH(DIV_SYSTEM_YM2203, 1.0f, 0, "clockSel=3"), // 3MHz diff --git a/src/gui/sysConf.cpp b/src/gui/sysConf.cpp index d3070e2e3..6c2f99868 100644 --- a/src/gui/sysConf.cpp +++ b/src/gui/sysConf.cpp @@ -1523,6 +1523,10 @@ bool FurnaceGUI::drawSysConf(int chan, int sysPos, DivSystem type, DivConfig& fl clockSel=13; altered=true; } + if (ImGui::RadioButton("3.2MHz",clockSel==15)) { + clockSel=15; + altered=true; + } if (ImGui::RadioButton("3.58MHz",clockSel==4)) { clockSel=4; altered=true;