Merge pull request #1328 from tildearrow/settings-ui

Settings and chip config UI: Indent radio buttons.
This commit is contained in:
tildearrow 2023-08-05 15:11:28 -05:00 committed by GitHub
commit b7f7c362d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 170 additions and 2 deletions

View file

@ -449,10 +449,12 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("Audio export loop/fade out time:"); ImGui::Text("Audio export loop/fade out time:");
ImGui::Indent();
if (ImGui::RadioButton("Set to these values on start-up:##fot0",settings.persistFadeOut==0)) { if (ImGui::RadioButton("Set to these values on start-up:##fot0",settings.persistFadeOut==0)) {
settings.persistFadeOut=0; settings.persistFadeOut=0;
} }
ImGui::BeginDisabled(settings.persistFadeOut); ImGui::BeginDisabled(settings.persistFadeOut);
ImGui::Indent();
if (ImGui::InputInt("Loops",&settings.exportLoops,1,2)) { if (ImGui::InputInt("Loops",&settings.exportLoops,1,2)) {
if (exportLoops<0) exportLoops=0; if (exportLoops<0) exportLoops=0;
exportLoops=settings.exportLoops; exportLoops=settings.exportLoops;
@ -461,10 +463,12 @@ void FurnaceGUI::drawSettings() {
if (exportFadeOut<0.0) exportFadeOut=0.0; if (exportFadeOut<0.0) exportFadeOut=0.0;
exportFadeOut=settings.exportFadeOut; exportFadeOut=settings.exportFadeOut;
} }
ImGui::Unindent();
ImGui::EndDisabled(); ImGui::EndDisabled();
if (ImGui::RadioButton("Remember last values##fot1",settings.persistFadeOut==1)) { if (ImGui::RadioButton("Remember last values##fot1",settings.persistFadeOut==1)) {
settings.persistFadeOut=1; settings.persistFadeOut=1;
} }
ImGui::Unindent();
// SUBSECTION CHIP // SUBSECTION CHIP
CONFIG_SUBSECTION("Chip"); CONFIG_SUBSECTION("Chip");
@ -656,12 +660,14 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("When creating new song:"); ImGui::Text("When creating new song:");
ImGui::Indent();
if (ImGui::RadioButton("Display system preset selector##NSB0",settings.newSongBehavior==0)) { if (ImGui::RadioButton("Display system preset selector##NSB0",settings.newSongBehavior==0)) {
settings.newSongBehavior=0; settings.newSongBehavior=0;
} }
if (ImGui::RadioButton("Start with initial system##NSB1",settings.newSongBehavior==1)) { if (ImGui::RadioButton("Start with initial system##NSB1",settings.newSongBehavior==1)) {
settings.newSongBehavior=1; settings.newSongBehavior=1;
} }
ImGui::Unindent();
bool restartOnFlagChangeB=settings.restartOnFlagChange; bool restartOnFlagChangeB=settings.restartOnFlagChange;
if (ImGui::Checkbox("Restart song when changing chip properties",&restartOnFlagChangeB)) { if (ImGui::Checkbox("Restart song when changing chip properties",&restartOnFlagChangeB)) {
@ -671,6 +677,7 @@ void FurnaceGUI::drawSettings() {
// SUBSECTION START-UP // SUBSECTION START-UP
CONFIG_SUBSECTION("Start-up"); CONFIG_SUBSECTION("Start-up");
ImGui::Text("Play intro on start-up:"); ImGui::Text("Play intro on start-up:");
ImGui::Indent();
if (ImGui::RadioButton("No##pis0",settings.alwaysPlayIntro==0)) { if (ImGui::RadioButton("No##pis0",settings.alwaysPlayIntro==0)) {
settings.alwaysPlayIntro=0; settings.alwaysPlayIntro=0;
} }
@ -683,6 +690,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Full (always)##pis3",settings.alwaysPlayIntro==3)) { if (ImGui::RadioButton("Full (always)##pis3",settings.alwaysPlayIntro==3)) {
settings.alwaysPlayIntro=3; settings.alwaysPlayIntro=3;
} }
ImGui::Unindent();
bool disableFadeInB=settings.disableFadeIn; bool disableFadeInB=settings.disableFadeIn;
if (ImGui::Checkbox("Disable fade-in during start-up",&disableFadeInB)) { if (ImGui::Checkbox("Disable fade-in during start-up",&disableFadeInB)) {
@ -1115,6 +1123,7 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("Output mode:"); ImGui::Text("Output mode:");
ImGui::Indent();
if (ImGui::RadioButton("Off (use for TX81Z)",settings.midiOutMode==0)) { if (ImGui::RadioButton("Off (use for TX81Z)",settings.midiOutMode==0)) {
settings.midiOutMode=0; settings.midiOutMode=0;
} }
@ -1125,6 +1134,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Light Show (use for Launchpad)",settings.midiOutMode==2)) { if (ImGui::RadioButton("Light Show (use for Launchpad)",settings.midiOutMode==2)) {
settings.midiOutMode=2; settings.midiOutMode=2;
}*/ }*/
ImGui::Unindent();
bool midiOutProgramChangeB=settings.midiOutProgramChange; bool midiOutProgramChangeB=settings.midiOutProgramChange;
if (ImGui::Checkbox("Send Program Change",&midiOutProgramChangeB)) { if (ImGui::Checkbox("Send Program Change",&midiOutProgramChangeB)) {
@ -1143,6 +1153,7 @@ void FurnaceGUI::drawSettings() {
if (settings.midiOutTime) { if (settings.midiOutTime) {
ImGui::Text("Timecode frame rate:"); ImGui::Text("Timecode frame rate:");
ImGui::Indent();
if (ImGui::RadioButton("Closest to Tick Rate",settings.midiOutTimeRate==0)) { if (ImGui::RadioButton("Closest to Tick Rate",settings.midiOutTimeRate==0)) {
settings.midiOutTimeRate=0; settings.midiOutTimeRate=0;
} }
@ -1158,6 +1169,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("NTSC non-drop (30fps)",settings.midiOutTimeRate==4)) { if (ImGui::RadioButton("NTSC non-drop (30fps)",settings.midiOutTimeRate==4)) {
settings.midiOutTimeRate=4; settings.midiOutTimeRate=4;
} }
ImGui::Unindent();
} }
END_SECTION; END_SECTION;
@ -1626,6 +1638,7 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("Play/edit controls layout:"); ImGui::Text("Play/edit controls layout:");
ImGui::Indent();
if (ImGui::RadioButton("Classic##ecl0",settings.controlLayout==0)) { if (ImGui::RadioButton("Classic##ecl0",settings.controlLayout==0)) {
settings.controlLayout=0; settings.controlLayout=0;
} }
@ -1638,8 +1651,10 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Split##ecl3",settings.controlLayout==3)) { if (ImGui::RadioButton("Split##ecl3",settings.controlLayout==3)) {
settings.controlLayout=3; settings.controlLayout=3;
} }
ImGui::Unindent();
ImGui::Text("Position of buttons in Orders:"); ImGui::Text("Position of buttons in Orders:");
ImGui::Indent();
if (ImGui::RadioButton("Top##obp0",settings.orderButtonPos==0)) { if (ImGui::RadioButton("Top##obp0",settings.orderButtonPos==0)) {
settings.orderButtonPos=0; settings.orderButtonPos=0;
} }
@ -1649,6 +1664,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Right##obp2",settings.orderButtonPos==2)) { if (ImGui::RadioButton("Right##obp2",settings.orderButtonPos==2)) {
settings.orderButtonPos=2; settings.orderButtonPos=2;
} }
ImGui::Unindent();
// SUBSECTION MOUSE // SUBSECTION MOUSE
CONFIG_SUBSECTION("Mouse"); CONFIG_SUBSECTION("Mouse");
@ -1671,6 +1687,7 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("Note preview behavior:"); ImGui::Text("Note preview behavior:");
ImGui::Indent();
if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) { if (ImGui::RadioButton("Never##npb0",settings.notePreviewBehavior==0)) {
settings.notePreviewBehavior=0; settings.notePreviewBehavior=0;
} }
@ -1683,8 +1700,10 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Always##npb3",settings.notePreviewBehavior==3)) { if (ImGui::RadioButton("Always##npb3",settings.notePreviewBehavior==3)) {
settings.notePreviewBehavior=3; settings.notePreviewBehavior=3;
} }
ImGui::Unindent();
ImGui::Text("Allow dragging selection:"); ImGui::Text("Allow dragging selection:");
ImGui::Indent();
if (ImGui::RadioButton("No##dms0",settings.dragMovesSelection==0)) { if (ImGui::RadioButton("No##dms0",settings.dragMovesSelection==0)) {
settings.dragMovesSelection=0; settings.dragMovesSelection=0;
} }
@ -1694,8 +1713,10 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Yes (while holding Ctrl only)##dms2",settings.dragMovesSelection==2)) { if (ImGui::RadioButton("Yes (while holding Ctrl only)##dms2",settings.dragMovesSelection==2)) {
settings.dragMovesSelection=2; settings.dragMovesSelection=2;
} }
ImGui::Unindent();
ImGui::Text("Toggle channel solo on:"); ImGui::Text("Toggle channel solo on:");
ImGui::Indent();
if (ImGui::RadioButton("Right-click or double-click##soloA",settings.soloAction==0)) { if (ImGui::RadioButton("Right-click or double-click##soloA",settings.soloAction==0)) {
settings.soloAction=0; settings.soloAction=0;
} }
@ -1705,6 +1726,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Double-click##soloD",settings.soloAction==2)) { if (ImGui::RadioButton("Double-click##soloD",settings.soloAction==2)) {
settings.soloAction=2; settings.soloAction=2;
} }
ImGui::Unindent();
bool doubleClickColumnB=settings.doubleClickColumn; bool doubleClickColumnB=settings.doubleClickColumn;
if (ImGui::Checkbox("Double click selects entire column",&doubleClickColumnB)) { if (ImGui::Checkbox("Double click selects entire column",&doubleClickColumnB)) {
@ -1729,6 +1751,7 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("Effect input behavior:"); ImGui::Text("Effect input behavior:");
ImGui::Indent();
if (ImGui::RadioButton("Move down##eicb0",settings.effectCursorDir==0)) { if (ImGui::RadioButton("Move down##eicb0",settings.effectCursorDir==0)) {
settings.effectCursorDir=0; settings.effectCursorDir=0;
} }
@ -1738,6 +1761,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Move to effect value/next effect and wrap around##eicb2",settings.effectCursorDir==2)) { if (ImGui::RadioButton("Move to effect value/next effect and wrap around##eicb2",settings.effectCursorDir==2)) {
settings.effectCursorDir=2; settings.effectCursorDir=2;
} }
ImGui::Unindent();
bool effectDeletionAltersValueB=settings.effectDeletionAltersValue; bool effectDeletionAltersValueB=settings.effectDeletionAltersValue;
if (ImGui::Checkbox("Delete effect value when deleting effect",&effectDeletionAltersValueB)) { if (ImGui::Checkbox("Delete effect value when deleting effect",&effectDeletionAltersValueB)) {
@ -1763,6 +1787,7 @@ void FurnaceGUI::drawSettings() {
CONFIG_SUBSECTION("Cursor movement"); CONFIG_SUBSECTION("Cursor movement");
ImGui::Text("Wrap horizontally:"); ImGui::Text("Wrap horizontally:");
ImGui::Indent();
if (ImGui::RadioButton("No##wrapH0",settings.wrapHorizontal==0)) { if (ImGui::RadioButton("No##wrapH0",settings.wrapHorizontal==0)) {
settings.wrapHorizontal=0; settings.wrapHorizontal=0;
} }
@ -1772,8 +1797,10 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Yes, and move to next/prev row##wrapH2",settings.wrapHorizontal==2)) { if (ImGui::RadioButton("Yes, and move to next/prev row##wrapH2",settings.wrapHorizontal==2)) {
settings.wrapHorizontal=2; settings.wrapHorizontal=2;
} }
ImGui::Unindent();
ImGui::Text("Wrap vertically:"); ImGui::Text("Wrap vertically:");
ImGui::Indent();
if (ImGui::RadioButton("No##wrapV0",settings.wrapVertical==0)) { if (ImGui::RadioButton("No##wrapV0",settings.wrapVertical==0)) {
settings.wrapVertical=0; settings.wrapVertical=0;
} }
@ -1786,14 +1813,17 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Yes, and move to next/prev pattern (wrap around)##wrapV2",settings.wrapVertical==3)) { if (ImGui::RadioButton("Yes, and move to next/prev pattern (wrap around)##wrapV2",settings.wrapVertical==3)) {
settings.wrapVertical=3; settings.wrapVertical=3;
} }
ImGui::Unindent();
ImGui::Text("Cursor movement keys behavior:"); ImGui::Text("Cursor movement keys behavior:");
ImGui::Indent();
if (ImGui::RadioButton("Move by one##cmk0",settings.scrollStep==0)) { if (ImGui::RadioButton("Move by one##cmk0",settings.scrollStep==0)) {
settings.scrollStep=0; settings.scrollStep=0;
} }
if (ImGui::RadioButton("Move by Edit Step##cmk1",settings.scrollStep==1)) { if (ImGui::RadioButton("Move by Edit Step##cmk1",settings.scrollStep==1)) {
settings.scrollStep=1; settings.scrollStep=1;
} }
ImGui::Unindent();
bool stepOnDeleteB=settings.stepOnDelete; bool stepOnDeleteB=settings.stepOnDelete;
if (ImGui::Checkbox("Move cursor by edit step on delete",&stepOnDeleteB)) { if (ImGui::Checkbox("Move cursor by edit step on delete",&stepOnDeleteB)) {
@ -1819,6 +1849,7 @@ void FurnaceGUI::drawSettings() {
CONFIG_SUBSECTION("Scrolling"); CONFIG_SUBSECTION("Scrolling");
ImGui::Text("Change order when scrolling outside of pattern bounds:"); ImGui::Text("Change order when scrolling outside of pattern bounds:");
ImGui::Indent();
if (ImGui::RadioButton("No##pscroll0",settings.scrollChangesOrder==0)) { if (ImGui::RadioButton("No##pscroll0",settings.scrollChangesOrder==0)) {
settings.scrollChangesOrder=0; settings.scrollChangesOrder=0;
} }
@ -1828,6 +1859,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Yes, and wrap around song##pscroll2",settings.scrollChangesOrder==2)) { if (ImGui::RadioButton("Yes, and wrap around song##pscroll2",settings.scrollChangesOrder==2)) {
settings.scrollChangesOrder=2; settings.scrollChangesOrder=2;
} }
ImGui::Unindent();
bool cursorFollowsOrderB=settings.cursorFollowsOrder; bool cursorFollowsOrderB=settings.cursorFollowsOrder;
if (ImGui::Checkbox("Cursor follows current order when moving it",&cursorFollowsOrderB)) { if (ImGui::Checkbox("Cursor follows current order when moving it",&cursorFollowsOrderB)) {
@ -1877,6 +1909,7 @@ void FurnaceGUI::drawSettings() {
ImGui::Text("Main font"); ImGui::Text("Main font");
ImGui::SameLine(); ImGui::SameLine();
ImGui::Combo("##MainFont",&settings.mainFont,mainFonts,7); ImGui::Combo("##MainFont",&settings.mainFont,mainFonts,7);
ImGui::Indent();
if (settings.mainFont==6) { if (settings.mainFont==6) {
ImGui::InputText("##MainFontPath",&settings.mainFontPath); ImGui::InputText("##MainFontPath",&settings.mainFontPath);
ImGui::SameLine(); ImGui::SameLine();
@ -1888,9 +1921,11 @@ void FurnaceGUI::drawSettings() {
if (settings.mainFontSize<3) settings.mainFontSize=3; if (settings.mainFontSize<3) settings.mainFontSize=3;
if (settings.mainFontSize>96) settings.mainFontSize=96; if (settings.mainFontSize>96) settings.mainFontSize=96;
} }
ImGui::Unindent();
ImGui::Text("Header font"); ImGui::Text("Header font");
ImGui::SameLine(); ImGui::SameLine();
ImGui::Combo("##HeadFont",&settings.headFont,headFonts,7); ImGui::Combo("##HeadFont",&settings.headFont,headFonts,7);
ImGui::Indent();
if (settings.headFont==6) { if (settings.headFont==6) {
ImGui::InputText("##HeadFontPath",&settings.headFontPath); ImGui::InputText("##HeadFontPath",&settings.headFontPath);
ImGui::SameLine(); ImGui::SameLine();
@ -1902,9 +1937,11 @@ void FurnaceGUI::drawSettings() {
if (settings.headFontSize<3) settings.headFontSize=3; if (settings.headFontSize<3) settings.headFontSize=3;
if (settings.headFontSize>96) settings.headFontSize=96; if (settings.headFontSize>96) settings.headFontSize=96;
} }
ImGui::Unindent();
ImGui::Text("Pattern font"); ImGui::Text("Pattern font");
ImGui::SameLine(); ImGui::SameLine();
ImGui::Combo("##PatFont",&settings.patFont,patFonts,7); ImGui::Combo("##PatFont",&settings.patFont,patFonts,7);
ImGui::Indent();
if (settings.patFont==6) { if (settings.patFont==6) {
ImGui::InputText("##PatFontPath",&settings.patFontPath); ImGui::InputText("##PatFontPath",&settings.patFontPath);
ImGui::SameLine(); ImGui::SameLine();
@ -1916,6 +1953,7 @@ void FurnaceGUI::drawSettings() {
if (settings.patFontSize<3) settings.patFontSize=3; if (settings.patFontSize<3) settings.patFontSize=3;
if (settings.patFontSize>96) settings.patFontSize=96; if (settings.patFontSize>96) settings.patFontSize=96;
} }
ImGui::Unindent();
bool loadJapaneseB=settings.loadJapanese; bool loadJapaneseB=settings.loadJapanese;
if (ImGui::Checkbox("Display Japanese characters",&loadJapaneseB)) { if (ImGui::Checkbox("Display Japanese characters",&loadJapaneseB)) {
@ -1972,6 +2010,7 @@ void FurnaceGUI::drawSettings() {
// SUBSECTION PROGRAM // SUBSECTION PROGRAM
CONFIG_SUBSECTION("Program"); CONFIG_SUBSECTION("Program");
ImGui::Text("Title bar:"); ImGui::Text("Title bar:");
ImGui::Indent();
if (ImGui::RadioButton("Furnace##tbar0",settings.titleBarInfo==0)) { if (ImGui::RadioButton("Furnace##tbar0",settings.titleBarInfo==0)) {
settings.titleBarInfo=0; settings.titleBarInfo=0;
updateWindowTitle(); updateWindowTitle();
@ -1988,6 +2027,7 @@ void FurnaceGUI::drawSettings() {
settings.titleBarInfo=3; settings.titleBarInfo=3;
updateWindowTitle(); updateWindowTitle();
} }
ImGui::Unindent();
bool titleBarSysB=settings.titleBarSys; bool titleBarSysB=settings.titleBarSys;
if (ImGui::Checkbox("Display system name on title bar",&titleBarSysB)) { if (ImGui::Checkbox("Display system name on title bar",&titleBarSysB)) {
@ -2002,6 +2042,7 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("Status bar:"); ImGui::Text("Status bar:");
ImGui::Indent();
if (ImGui::RadioButton("Cursor details##sbar0",settings.statusDisplay==0)) { if (ImGui::RadioButton("Cursor details##sbar0",settings.statusDisplay==0)) {
settings.statusDisplay=0; settings.statusDisplay=0;
} }
@ -2014,6 +2055,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Nothing##sbar3",settings.statusDisplay==3)) { if (ImGui::RadioButton("Nothing##sbar3",settings.statusDisplay==3)) {
settings.statusDisplay=3; settings.statusDisplay=3;
} }
ImGui::Unindent();
// SUBSECTION ORDERS // SUBSECTION ORDERS
CONFIG_SUBSECTION("Orders"); CONFIG_SUBSECTION("Orders");
@ -2029,12 +2071,14 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("Orders row number format:"); ImGui::Text("Orders row number format:");
ImGui::Indent();
if (ImGui::RadioButton("Decimal##orbD",settings.orderRowsBase==0)) { if (ImGui::RadioButton("Decimal##orbD",settings.orderRowsBase==0)) {
settings.orderRowsBase=0; settings.orderRowsBase=0;
} }
if (ImGui::RadioButton("Hexadecimal##orbH",settings.orderRowsBase==1)) { if (ImGui::RadioButton("Hexadecimal##orbH",settings.orderRowsBase==1)) {
settings.orderRowsBase=1; settings.orderRowsBase=1;
} }
ImGui::Unindent();
// SUBSECTION PATTERN // SUBSECTION PATTERN
CONFIG_SUBSECTION("Pattern"); CONFIG_SUBSECTION("Pattern");
@ -2054,12 +2098,14 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("Pattern row number format:"); ImGui::Text("Pattern row number format:");
ImGui::Indent();
if (ImGui::RadioButton("Decimal##prbD",settings.patRowsBase==0)) { if (ImGui::RadioButton("Decimal##prbD",settings.patRowsBase==0)) {
settings.patRowsBase=0; settings.patRowsBase=0;
} }
if (ImGui::RadioButton("Hexadecimal##prbH",settings.patRowsBase==1)) { if (ImGui::RadioButton("Hexadecimal##prbH",settings.patRowsBase==1)) {
settings.patRowsBase=1; settings.patRowsBase=1;
} }
ImGui::Unindent();
ImGui::Text("Pattern view labels:"); ImGui::Text("Pattern view labels:");
ImGui::InputTextWithHint("Note off (3-char)","OFF",&settings.noteOffLabel); ImGui::InputTextWithHint("Note off (3-char)","OFF",&settings.noteOffLabel);
@ -2114,6 +2160,7 @@ void FurnaceGUI::drawSettings() {
CONFIG_SUBSECTION("Channel"); CONFIG_SUBSECTION("Channel");
ImGui::Text("Channel style:"); ImGui::Text("Channel style:");
ImGui::Indent();
if (ImGui::RadioButton("Classic##CHS0",settings.channelStyle==0)) { if (ImGui::RadioButton("Classic##CHS0",settings.channelStyle==0)) {
settings.channelStyle=0; settings.channelStyle=0;
} }
@ -2132,8 +2179,10 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Round border##CHS5",settings.channelStyle==5)) { if (ImGui::RadioButton("Round border##CHS5",settings.channelStyle==5)) {
settings.channelStyle=5; settings.channelStyle=5;
} }
ImGui::Unindent();
ImGui::Text("Channel volume bar:"); ImGui::Text("Channel volume bar:");
ImGui::Indent();
if (ImGui::RadioButton("None##CHV0",settings.channelVolStyle==0)) { if (ImGui::RadioButton("None##CHV0",settings.channelVolStyle==0)) {
settings.channelVolStyle=0; settings.channelVolStyle=0;
} }
@ -2149,9 +2198,10 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Real (stereo)##CHV4",settings.channelVolStyle==4)) { if (ImGui::RadioButton("Real (stereo)##CHV4",settings.channelVolStyle==4)) {
settings.channelVolStyle=4; settings.channelVolStyle=4;
} }
ImGui::Unindent();
ImGui::Text("Channel feedback style:"); ImGui::Text("Channel feedback style:");
ImGui::Indent();
if (ImGui::RadioButton("Off##CHF0",settings.channelFeedbackStyle==0)) { if (ImGui::RadioButton("Off##CHF0",settings.channelFeedbackStyle==0)) {
settings.channelFeedbackStyle=0; settings.channelFeedbackStyle=0;
} }
@ -2164,15 +2214,17 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Active##CHF3",settings.channelFeedbackStyle==3)) { if (ImGui::RadioButton("Active##CHF3",settings.channelFeedbackStyle==3)) {
settings.channelFeedbackStyle=3; settings.channelFeedbackStyle=3;
} }
ImGui::Unindent();
ImGui::Text("Channel font:"); ImGui::Text("Channel font:");
ImGui::Indent();
if (ImGui::RadioButton("Regular##CHFont0",settings.channelFont==0)) { if (ImGui::RadioButton("Regular##CHFont0",settings.channelFont==0)) {
settings.channelFont=0; settings.channelFont=0;
} }
if (ImGui::RadioButton("Monospace##CHFont1",settings.channelFont==1)) { if (ImGui::RadioButton("Monospace##CHFont1",settings.channelFont==1)) {
settings.channelFont=1; settings.channelFont=1;
} }
ImGui::Unindent();
bool channelTextCenterB=settings.channelTextCenter; bool channelTextCenterB=settings.channelTextCenter;
if (ImGui::Checkbox("Center channel name",&channelTextCenterB)) { if (ImGui::Checkbox("Center channel name",&channelTextCenterB)) {
@ -2180,6 +2232,7 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("Channel colors:"); ImGui::Text("Channel colors:");
ImGui::Indent();
if (ImGui::RadioButton("Single##CHC0",settings.channelColors==0)) { if (ImGui::RadioButton("Single##CHC0",settings.channelColors==0)) {
settings.channelColors=0; settings.channelColors=0;
} }
@ -2189,8 +2242,10 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Instrument type##CHC2",settings.channelColors==2)) { if (ImGui::RadioButton("Instrument type##CHC2",settings.channelColors==2)) {
settings.channelColors=2; settings.channelColors=2;
} }
ImGui::Unindent();
ImGui::Text("Channel name colors:"); ImGui::Text("Channel name colors:");
ImGui::Indent();
if (ImGui::RadioButton("Single##CTC0",settings.channelTextColors==0)) { if (ImGui::RadioButton("Single##CTC0",settings.channelTextColors==0)) {
settings.channelTextColors=0; settings.channelTextColors=0;
} }
@ -2200,6 +2255,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Instrument type##CTC2",settings.channelTextColors==2)) { if (ImGui::RadioButton("Instrument type##CTC2",settings.channelTextColors==2)) {
settings.channelTextColors=2; settings.channelTextColors=2;
} }
ImGui::Unindent();
// SUBSECTION ASSETS // SUBSECTION ASSETS
CONFIG_SUBSECTION("Assets"); CONFIG_SUBSECTION("Assets");
@ -2226,6 +2282,7 @@ void FurnaceGUI::drawSettings() {
// SUBSECTION MACRO EDITOR // SUBSECTION MACRO EDITOR
CONFIG_SUBSECTION("Macro Editor"); CONFIG_SUBSECTION("Macro Editor");
ImGui::Text("Macro editor layout:"); ImGui::Text("Macro editor layout:");
ImGui::Indent();
if (ImGui::RadioButton("Unified##mel0",settings.macroLayout==0)) { if (ImGui::RadioButton("Unified##mel0",settings.macroLayout==0)) {
settings.macroLayout=0; settings.macroLayout=0;
} }
@ -2241,6 +2298,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Single (combo box)##mel4",settings.macroLayout==4)) { if (ImGui::RadioButton("Single (combo box)##mel4",settings.macroLayout==4)) {
settings.macroLayout=4; settings.macroLayout=4;
} }
ImGui::Unindent();
bool oldMacroVSliderB=settings.oldMacroVSlider; bool oldMacroVSliderB=settings.oldMacroVSlider;
if (ImGui::Checkbox("Use classic macro editor vertical slider",&oldMacroVSliderB)) { if (ImGui::Checkbox("Use classic macro editor vertical slider",&oldMacroVSliderB)) {
@ -2257,6 +2315,7 @@ void FurnaceGUI::drawSettings() {
// SUBSECTION FM EDITOR // SUBSECTION FM EDITOR
CONFIG_SUBSECTION("FM Editor"); CONFIG_SUBSECTION("FM Editor");
ImGui::Text("FM parameter names:"); ImGui::Text("FM parameter names:");
ImGui::Indent();
if (ImGui::RadioButton("Friendly##fmn0",settings.fmNames==0)) { if (ImGui::RadioButton("Friendly##fmn0",settings.fmNames==0)) {
settings.fmNames=0; settings.fmNames=0;
} }
@ -2266,6 +2325,7 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Technical (alternate)##fmn2",settings.fmNames==2)) { if (ImGui::RadioButton("Technical (alternate)##fmn2",settings.fmNames==2)) {
settings.fmNames=2; settings.fmNames=2;
} }
ImGui::Unindent();
bool oplStandardWaveNamesB=settings.oplStandardWaveNames; bool oplStandardWaveNamesB=settings.oplStandardWaveNames;
if (ImGui::Checkbox("Use standard OPL waveform names",&oplStandardWaveNamesB)) { if (ImGui::Checkbox("Use standard OPL waveform names",&oplStandardWaveNamesB)) {
@ -2273,6 +2333,7 @@ void FurnaceGUI::drawSettings() {
} }
ImGui::Text("FM parameter editor layout:"); ImGui::Text("FM parameter editor layout:");
ImGui::Indent();
if (ImGui::RadioButton("Modern##fml0",settings.fmLayout==0)) { if (ImGui::RadioButton("Modern##fml0",settings.fmLayout==0)) {
settings.fmLayout=0; settings.fmLayout=0;
} }
@ -2294,14 +2355,17 @@ void FurnaceGUI::drawSettings() {
if (ImGui::RadioButton("Alternate (4x1)##fml5",settings.fmLayout==6)) { if (ImGui::RadioButton("Alternate (4x1)##fml5",settings.fmLayout==6)) {
settings.fmLayout=6; settings.fmLayout=6;
} }
ImGui::Unindent();
ImGui::Text("Position of Sustain in FM editor:"); ImGui::Text("Position of Sustain in FM editor:");
ImGui::Indent();
if (ImGui::RadioButton("Between Decay and Sustain Rate##susp0",settings.susPosition==0)) { if (ImGui::RadioButton("Between Decay and Sustain Rate##susp0",settings.susPosition==0)) {
settings.susPosition=0; settings.susPosition=0;
} }
if (ImGui::RadioButton("After Release Rate##susp1",settings.susPosition==1)) { if (ImGui::RadioButton("After Release Rate##susp1",settings.susPosition==1)) {
settings.susPosition=1; settings.susPosition=1;
} }
ImGui::Unindent();
bool separateFMColorsB=settings.separateFMColors; bool separateFMColorsB=settings.separateFMColors;
if (ImGui::Checkbox("Use separate colors for carriers/modulators in FM editor",&separateFMColorsB)) { if (ImGui::Checkbox("Use separate colors for carriers/modulators in FM editor",&separateFMColorsB)) {
@ -2316,12 +2380,14 @@ void FurnaceGUI::drawSettings() {
// SUBSECTION STATISTICS // SUBSECTION STATISTICS
CONFIG_SUBSECTION("Statistics"); CONFIG_SUBSECTION("Statistics");
ImGui::Text("Chip memory usage unit:"); ImGui::Text("Chip memory usage unit:");
ImGui::Indent();
if (ImGui::RadioButton("Bytes##MUU0",settings.memUsageUnit==0)) { if (ImGui::RadioButton("Bytes##MUU0",settings.memUsageUnit==0)) {
settings.memUsageUnit=0; settings.memUsageUnit=0;
} }
if (ImGui::RadioButton("Kilobytes##MUU1",settings.memUsageUnit==1)) { if (ImGui::RadioButton("Kilobytes##MUU1",settings.memUsageUnit==1)) {
settings.memUsageUnit=1; settings.memUsageUnit=1;
} }
ImGui::Unindent();
// SUBSECTION OSCILLOSCOPE // SUBSECTION OSCILLOSCOPE
CONFIG_SUBSECTION("Oscilloscope"); CONFIG_SUBSECTION("Oscilloscope");
@ -2395,6 +2461,7 @@ void FurnaceGUI::drawSettings() {
} }
if (ImGui::TreeNode("General")) { if (ImGui::TreeNode("General")) {
ImGui::Text("Color scheme type:"); ImGui::Text("Color scheme type:");
ImGui::Indent();
if (ImGui::RadioButton("Dark##gcb0",settings.guiColorsBase==0)) { if (ImGui::RadioButton("Dark##gcb0",settings.guiColorsBase==0)) {
settings.guiColorsBase=0; settings.guiColorsBase=0;
applyUISettings(false); applyUISettings(false);
@ -2403,6 +2470,7 @@ void FurnaceGUI::drawSettings() {
settings.guiColorsBase=1; settings.guiColorsBase=1;
applyUISettings(false); applyUISettings(false);
} }
ImGui::Unindent();
if (ImGui::SliderInt("Frame shading",&settings.guiColorsShading,0,100,"%d%%")) { if (ImGui::SliderInt("Frame shading",&settings.guiColorsShading,0,100,"%d%%")) {
if (settings.guiColorsShading<0) settings.guiColorsShading=0; if (settings.guiColorsShading<0) settings.guiColorsShading=0;
if (settings.guiColorsShading>100) settings.guiColorsShading=100; if (settings.guiColorsShading>100) settings.guiColorsShading=100;

View file

@ -44,6 +44,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
bool fbAllOps=flags.getBool("fbAllOps",false); bool fbAllOps=flags.getBool("fbAllOps",false);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("NTSC (7.67MHz)",clockSel==0)) { if (ImGui::RadioButton("NTSC (7.67MHz)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -64,8 +65,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=4; clockSel=4;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Chip type:"); ImGui::Text("Chip type:");
ImGui::Indent();
if (ImGui::RadioButton("YM3438 (9-bit DAC)",chipType==0)) { if (ImGui::RadioButton("YM3438 (9-bit DAC)",chipType==0)) {
chipType=0; chipType=0;
altered=true; altered=true;
@ -78,6 +81,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=2; chipType=2;
altered=true; altered=true;
} }
ImGui::Unindent();
if (type==DIV_SYSTEM_YM2612_EXT || type==DIV_SYSTEM_YM2612_DUALPCM_EXT || type==DIV_SYSTEM_YM2612_CSM) { if (type==DIV_SYSTEM_YM2612_EXT || type==DIV_SYSTEM_YM2612_DUALPCM_EXT || type==DIV_SYSTEM_YM2612_CSM) {
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) { if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
@ -105,6 +109,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
bool noEasyNoise=flags.getBool("noEasyNoise",false); bool noEasyNoise=flags.getBool("noEasyNoise",false);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) { if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -133,7 +138,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=6; clockSel=6;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Chip type:"); ImGui::Text("Chip type:");
ImGui::Indent();
if (ImGui::RadioButton("Sega VDP/Master System",chipType==0)) { if (ImGui::RadioButton("Sega VDP/Master System",chipType==0)) {
chipType=0; chipType=0;
altered=true; altered=true;
@ -174,6 +181,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=9; chipType=9;
altered=true; altered=true;
} }
ImGui::Unindent();
if (ImGui::Checkbox("Disable noise period change phase reset",&noPhaseReset)) { if (ImGui::Checkbox("Disable noise period change phase reset",&noPhaseReset)) {
altered=true; altered=true;
@ -205,6 +213,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
altered=true; altered=true;
} }
ImGui::Text("Chip revision:"); ImGui::Text("Chip revision:");
ImGui::Indent();
if (ImGui::RadioButton("HuC6280 (original)",chipType==0)) { if (ImGui::RadioButton("HuC6280 (original)",chipType==0)) {
chipType=0; chipType=0;
altered=true; altered=true;
@ -213,6 +222,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=1; chipType=1;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -235,6 +245,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int echoVol=(signed char)flags.getInt("echoVol",0); int echoVol=(signed char)flags.getInt("echoVol",0);
ImGui::Text("CPU rate:"); ImGui::Text("CPU rate:");
ImGui::Indent();
if (ImGui::RadioButton("6.18MHz (NTSC)",clockSel==0)) { if (ImGui::RadioButton("6.18MHz (NTSC)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -243,7 +254,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=1; clockSel=1;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Sample memory:"); ImGui::Text("Sample memory:");
ImGui::Indent();
if (ImGui::RadioButton("8K (rev A/B/E)",sampleMemSize==0)) { if (ImGui::RadioButton("8K (rev A/B/E)",sampleMemSize==0)) {
sampleMemSize=0; sampleMemSize=0;
altered=true; altered=true;
@ -252,7 +265,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
sampleMemSize=1; sampleMemSize=1;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("DAC resolution:"); ImGui::Text("DAC resolution:");
ImGui::Indent();
if (ImGui::RadioButton("16-bit (rev A/B/D/F)",pdm==0)) { if (ImGui::RadioButton("16-bit (rev A/B/D/F)",pdm==0)) {
pdm=false; pdm=false;
altered=true; altered=true;
@ -261,6 +276,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
pdm=true; pdm=true;
altered=true; altered=true;
} }
ImGui::Unindent();
if (ImGui::Checkbox("Enable echo",&echo)) { if (ImGui::Checkbox("Enable echo",&echo)) {
altered=true; altered=true;
} }
@ -317,6 +333,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
altered=true; altered=true;
} }
ImGui::Text("Chip revision:"); ImGui::Text("Chip revision:");
ImGui::Indent();
if (ImGui::RadioButton("Original (DMG)",chipType==0)) { if (ImGui::RadioButton("Original (DMG)",chipType==0)) {
chipType=0; chipType=0;
altered=true; altered=true;
@ -333,8 +350,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=3; chipType=3;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Wave channel orientation:"); ImGui::Text("Wave channel orientation:");
if (chipType==3) { if (chipType==3) {
ImGui::Indent();
if (ImGui::RadioButton("Normal",!invertWave)) { if (ImGui::RadioButton("Normal",!invertWave)) {
invertWave=false; invertWave=false;
altered=true; altered=true;
@ -343,7 +362,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
invertWave=true; invertWave=true;
altered=true; altered=true;
} }
ImGui::Unindent();
} else { } else {
ImGui::Indent();
if (ImGui::RadioButton("Exact data (inverted)",!invertWave)) { if (ImGui::RadioButton("Exact data (inverted)",!invertWave)) {
invertWave=false; invertWave=false;
altered=true; altered=true;
@ -352,6 +373,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
invertWave=true; invertWave=true;
altered=true; altered=true;
} }
ImGui::Unindent();
} }
if (ImGui::Checkbox("Pretty please one more compat flag when I use arpeggio and my sound length",&enoughAlready)) { if (ImGui::Checkbox("Pretty please one more compat flag when I use arpeggio and my sound length",&enoughAlready)) {
altered=true; altered=true;
@ -375,6 +397,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
bool noTopHatFreq=flags.getBool("noTopHatFreq",false); bool noTopHatFreq=flags.getBool("noTopHatFreq",false);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("NTSC (3.58MHz)",clockSel==0)) { if (ImGui::RadioButton("NTSC (3.58MHz)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -391,8 +414,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=3; clockSel=3;
altered=true; altered=true;
} }
ImGui::Unindent();
if (type!=DIV_SYSTEM_VRC7) { if (type!=DIV_SYSTEM_VRC7) {
ImGui::Text("Patch set:"); ImGui::Text("Patch set:");
ImGui::Indent();
if (ImGui::RadioButton("Yamaha YM2413",patchSet==0)) { if (ImGui::RadioButton("Yamaha YM2413",patchSet==0)) {
patchSet=0; patchSet=0;
altered=true; altered=true;
@ -409,6 +434,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
patchSet=3; patchSet=3;
altered=true; altered=true;
} }
ImGui::Unindent();
} }
if (type==DIV_SYSTEM_OPLL_DRUMS) { if (type==DIV_SYSTEM_OPLL_DRUMS) {
@ -431,6 +457,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
case DIV_SYSTEM_YM2151: { case DIV_SYSTEM_YM2151: {
int clockSel=flags.getInt("clockSel",0); int clockSel=flags.getInt("clockSel",0);
ImGui::Indent();
if (ImGui::RadioButton("NTSC/X16 (3.58MHz)",clockSel==0)) { if (ImGui::RadioButton("NTSC/X16 (3.58MHz)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -443,6 +470,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=2; clockSel=2;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -460,6 +488,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) { if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -472,9 +501,11 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=2; clockSel=2;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("DPCM channel mode:"); ImGui::Text("DPCM channel mode:");
ImGui::Indent();
if (ImGui::RadioButton("DPCM (muffled samples; low CPU usage)",dpcmMode)) { if (ImGui::RadioButton("DPCM (muffled samples; low CPU usage)",dpcmMode)) {
dpcmMode=true; dpcmMode=true;
altered=true; altered=true;
@ -483,6 +514,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
dpcmMode=false; dpcmMode=false;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -503,6 +535,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("NTSC (1.02MHz)",clockSel==0)) { if (ImGui::RadioButton("NTSC (1.02MHz)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -515,9 +548,11 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=2; clockSel=2;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Global parameter priority:"); ImGui::Text("Global parameter priority:");
ImGui::Indent();
if (ImGui::RadioButton("Left to right",!keyPriority)) { if (ImGui::RadioButton("Left to right",!keyPriority)) {
keyPriority=false; keyPriority=false;
altered=true; altered=true;
@ -526,6 +561,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
keyPriority=true; keyPriority=true;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Hard reset envelope:"); ImGui::Text("Hard reset envelope:");
@ -576,6 +612,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int ssgVol=flags.getInt("ssgVol",128); int ssgVol=flags.getInt("ssgVol",128);
int fmVol=flags.getInt("fmVol",256); int fmVol=flags.getInt("fmVol",256);
ImGui::Indent();
if (ImGui::RadioButton("8MHz (Neo Geo MVS)",clockSel==0)) { if (ImGui::RadioButton("8MHz (Neo Geo MVS)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -584,6 +621,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=1; clockSel=1;
altered=true; altered=true;
} }
ImGui::Unindent();
if (type==DIV_SYSTEM_YM2610_EXT || type==DIV_SYSTEM_YM2610_FULL_EXT || type==DIV_SYSTEM_YM2610B_EXT || type==DIV_SYSTEM_YM2610_CSM || type==DIV_SYSTEM_YM2610B_CSM) { if (type==DIV_SYSTEM_YM2610_EXT || type==DIV_SYSTEM_YM2610_FULL_EXT || type==DIV_SYSTEM_YM2610B_EXT || type==DIV_SYSTEM_YM2610_CSM || type==DIV_SYSTEM_YM2610B_CSM) {
if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) { if (ImGui::Checkbox("Disable ExtCh FM macros (compatibility)",&noExtMacros)) {
@ -626,6 +664,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int stereoSep=flags.getInt("stereoSep",0); int stereoSep=flags.getInt("stereoSep",0);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("1.79MHz (ZX Spectrum NTSC/MSX)",clockSel==0)) { if (ImGui::RadioButton("1.79MHz (ZX Spectrum NTSC/MSX)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -686,8 +725,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=14; clockSel=14;
altered=true; altered=true;
} }
ImGui::Unindent();
if (type==DIV_SYSTEM_AY8910) { if (type==DIV_SYSTEM_AY8910) {
ImGui::Text("Chip type:"); ImGui::Text("Chip type:");
ImGui::Indent();
if (ImGui::RadioButton("AY-3-8910",chipType==0)) { if (ImGui::RadioButton("AY-3-8910",chipType==0)) {
chipType=0; chipType=0;
altered=true; altered=true;
@ -704,6 +745,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=3; chipType=3;
altered=true; altered=true;
} }
ImGui::Unindent();
if (ImGui::IsItemHovered()) { if (ImGui::IsItemHovered()) {
ImGui::SetTooltip("note: AY-3-8914 is not supported by the VGM format!"); ImGui::SetTooltip("note: AY-3-8914 is not supported by the VGM format!");
} }
@ -744,6 +786,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
case DIV_SYSTEM_SAA1099: { case DIV_SYSTEM_SAA1099: {
int clockSel=flags.getInt("clockSel",0); int clockSel=flags.getInt("clockSel",0);
ImGui::Indent();
if (ImGui::RadioButton("SAM Coupé (8MHz)",clockSel==0)) { if (ImGui::RadioButton("SAM Coupé (8MHz)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -756,6 +799,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=2; clockSel=2;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -779,6 +823,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
} rightClickable } rightClickable
ImGui::Text("Model:"); ImGui::Text("Model:");
ImGui::Indent();
if (ImGui::RadioButton("Amiga 500 (OCS)",chipType==0)) { if (ImGui::RadioButton("Amiga 500 (OCS)",chipType==0)) {
chipType=0; chipType=0;
altered=true; altered=true;
@ -787,8 +832,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=1; chipType=1;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Chip memory:"); ImGui::Text("Chip memory:");
ImGui::Indent();
if (ImGui::RadioButton("2MB (ECS/AGA max)",chipMem==21)) { if (ImGui::RadioButton("2MB (ECS/AGA max)",chipMem==21)) {
chipMem=21; chipMem=21;
altered=true; altered=true;
@ -805,6 +852,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipMem=18; chipMem=18;
altered=true; altered=true;
} }
ImGui::Unindent();
if (ImGui::Checkbox("PAL",&clockSel)) { if (ImGui::Checkbox("PAL",&clockSel)) {
@ -830,6 +878,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int mixingType=flags.getInt("mixingType",0); int mixingType=flags.getInt("mixingType",0);
ImGui::Text("Mixing mode:"); ImGui::Text("Mixing mode:");
ImGui::Indent();
if (ImGui::RadioButton("Mono",mixingType==0)) { if (ImGui::RadioButton("Mono",mixingType==0)) {
mixingType=0; mixingType=0;
altered=true; altered=true;
@ -842,6 +891,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
mixingType=2; mixingType=2;
altered=true; altered=true;
} }
ImGui::Unindent();
if (ImGui::Checkbox("PAL",&clockSel)) { if (ImGui::Checkbox("PAL",&clockSel)) {
altered=true; altered=true;
@ -860,6 +910,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int speakerType=flags.getInt("speakerType",0); int speakerType=flags.getInt("speakerType",0);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("1.19MHz (PC)",clockSel==0)) { if (ImGui::RadioButton("1.19MHz (PC)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -872,8 +923,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=2; clockSel=2;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Speaker type:"); ImGui::Text("Speaker type:");
ImGui::Indent();
if (ImGui::RadioButton("Unfiltered",speakerType==0)) { if (ImGui::RadioButton("Unfiltered",speakerType==0)) {
speakerType=0; speakerType=0;
altered=true; altered=true;
@ -890,6 +943,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
speakerType=3; speakerType=3;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -933,6 +987,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
bool stereo=flags.getBool("stereo",false); bool stereo=flags.getBool("stereo",false);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("16MHz (Seta 1)",clockSel==0)) { if (ImGui::RadioButton("16MHz (Seta 1)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -945,6 +1000,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=2; clockSel=2;
altered=true; altered=true;
} }
ImGui::Unindent();
if (ImGui::Checkbox("Stereo",&stereo)) { if (ImGui::Checkbox("Stereo",&stereo)) {
altered=true; altered=true;
@ -965,6 +1021,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
bool lenCompensate=flags.getBool("lenCompensate",false); bool lenCompensate=flags.getBool("lenCompensate",false);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) { if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -977,6 +1034,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=2; clockSel=2;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Initial channel limit:"); ImGui::Text("Initial channel limit:");
if (CWSliderInt("##N163_InitialChannelLimit",&channels,1,8)) { if (CWSliderInt("##N163_InitialChannelLimit",&channels,1,8)) {
if (channels<1) channels=1; if (channels<1) channels=1;
@ -1037,6 +1095,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int fmVol=flags.getInt("fmVol",256); int fmVol=flags.getInt("fmVol",256);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) { if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1061,7 +1120,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=5; clockSel=5;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Output rate:"); ImGui::Text("Output rate:");
ImGui::Indent();
if (ImGui::RadioButton("FM: clock / 72, SSG: clock / 16",prescale==0)) { if (ImGui::RadioButton("FM: clock / 72, SSG: clock / 16",prescale==0)) {
prescale=0; prescale=0;
altered=true; altered=true;
@ -1074,6 +1135,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
prescale=2; prescale=2;
altered=true; altered=true;
} }
ImGui::Unindent();
if (CWSliderInt("SSG Volume",&ssgVol,0,256)) { if (CWSliderInt("SSG Volume",&ssgVol,0,256)) {
if (ssgVol<0) ssgVol=0; if (ssgVol<0) ssgVol=0;
@ -1119,6 +1181,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int fmVol=flags.getInt("fmVol",256); int fmVol=flags.getInt("fmVol",256);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("8MHz (Arcade)",clockSel==0)) { if (ImGui::RadioButton("8MHz (Arcade)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1127,7 +1190,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=1; clockSel=1;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Output rate:"); ImGui::Text("Output rate:");
ImGui::Indent();
if (ImGui::RadioButton("FM: clock / 144, SSG: clock / 32",prescale==0)) { if (ImGui::RadioButton("FM: clock / 144, SSG: clock / 32",prescale==0)) {
prescale=0; prescale=0;
altered=true; altered=true;
@ -1140,6 +1205,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
prescale=2; prescale=2;
altered=true; altered=true;
} }
ImGui::Unindent();
if (CWSliderInt("SSG Volume",&ssgVol,0,256)) { if (CWSliderInt("SSG Volume",&ssgVol,0,256)) {
if (ssgVol<0) ssgVol=0; if (ssgVol<0) ssgVol=0;
@ -1179,6 +1245,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int chipType=flags.getInt("chipType",0); int chipType=flags.getInt("chipType",0);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("8MHz (FM Towns)",clockSel==0)) { if (ImGui::RadioButton("8MHz (FM Towns)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1191,7 +1258,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=2; clockSel=2;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Chip type:"); ImGui::Text("Chip type:");
ImGui::Indent();
if (ImGui::RadioButton("RF5C68 (10-bit output)",chipType==0)) { if (ImGui::RadioButton("RF5C68 (10-bit output)",chipType==0)) {
chipType=0; chipType=0;
altered=true; altered=true;
@ -1200,6 +1269,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
chipType=1; chipType=1;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1213,6 +1283,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int clockSel=flags.getInt("clockSel",0); int clockSel=flags.getInt("clockSel",0);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("4MHz",clockSel==0)) { if (ImGui::RadioButton("4MHz",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1229,6 +1300,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=3; clockSel=3;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1242,6 +1314,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
bool rateSel=flags.getBool("rateSel",false); bool rateSel=flags.getBool("rateSel",false);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("1MHz",clockSel==0)) { if (ImGui::RadioButton("1MHz",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1302,7 +1375,9 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=14; clockSel=14;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Output rate:"); ImGui::Text("Output rate:");
ImGui::Indent();
if (ImGui::RadioButton("clock / 132",rateSel==0)) { if (ImGui::RadioButton("clock / 132",rateSel==0)) {
rateSel=false; rateSel=false;
altered=true; altered=true;
@ -1311,6 +1386,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
rateSel=true; rateSel=true;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1325,6 +1401,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int clockSel=flags.getInt("clockSel",0); int clockSel=flags.getInt("clockSel",0);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("1.79MHz (NTSC/MSX)",clockSel==0)) { if (ImGui::RadioButton("1.79MHz (NTSC/MSX)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1341,6 +1418,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=3; clockSel=3;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1358,6 +1436,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int clockSel=flags.getInt("clockSel",0); int clockSel=flags.getInt("clockSel",0);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) { if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1382,6 +1461,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=5; clockSel=5;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1396,6 +1476,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
bool compatPan=flags.getBool("compatPan",false); bool compatPan=flags.getBool("compatPan",false);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("14.32MHz (NTSC)",clockSel==0)) { if (ImGui::RadioButton("14.32MHz (NTSC)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1416,6 +1497,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=4; clockSel=4;
altered=true; altered=true;
} }
ImGui::Unindent();
if (ImGui::Checkbox("Compatible panning (0800)",&compatPan)) { if (ImGui::Checkbox("Compatible panning (0800)",&compatPan)) {
altered=true; altered=true;
@ -1433,6 +1515,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int clockSel=flags.getInt("clockSel",0); int clockSel=flags.getInt("clockSel",0);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("16.9344MHz",clockSel==0)) { if (ImGui::RadioButton("16.9344MHz",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1457,6 +1540,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=5; clockSel=5;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1489,6 +1573,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
} }
ImGui::Text("Interpolation:"); ImGui::Text("Interpolation:");
ImGui::Indent();
if (ImGui::RadioButton("None",interpolation==0)) { if (ImGui::RadioButton("None",interpolation==0)) {
interpolation=0; interpolation=0;
altered=true; altered=true;
@ -1505,6 +1590,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
interpolation=3; interpolation=3;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1741,6 +1827,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
} }
ImGui::Text("Envelope mode (channel 1-4):"); ImGui::Text("Envelope mode (channel 1-4):");
ImGui::Indent();
if (ImGui::RadioButton("Capacitor (attack/decay)##EM00",groupEnv[0])) { if (ImGui::RadioButton("Capacitor (attack/decay)##EM00",groupEnv[0])) {
groupEnv[0]=true; groupEnv[0]=true;
altered=true; altered=true;
@ -1749,8 +1836,10 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
groupEnv[0]=false; groupEnv[0]=false;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Envelope mode (channel 5-8):"); ImGui::Text("Envelope mode (channel 5-8):");
ImGui::Indent();
if (ImGui::RadioButton("Capacitor (attack/decay)##EM10",groupEnv[1])) { if (ImGui::RadioButton("Capacitor (attack/decay)##EM10",groupEnv[1])) {
groupEnv[1]=true; groupEnv[1]=true;
altered=true; altered=true;
@ -1759,6 +1848,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
groupEnv[1]=false; groupEnv[1]=false;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Global vibrato:"); ImGui::Text("Global vibrato:");
@ -1834,6 +1924,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
bool romMode=flags.getBool("romMode",false); bool romMode=flags.getBool("romMode",false);
ImGui::Text("Waveform storage mode:"); ImGui::Text("Waveform storage mode:");
ImGui::Indent();
if (ImGui::RadioButton("RAM",!romMode)) { if (ImGui::RadioButton("RAM",!romMode)) {
romMode=false; romMode=false;
altered=true; altered=true;
@ -1842,6 +1933,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
romMode=true; romMode=true;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1897,6 +1989,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
int clockSel=flags.getInt("clockSel",0); int clockSel=flags.getInt("clockSel",0);
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) { if (ImGui::RadioButton("3.58MHz (NTSC)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1905,6 +1998,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=1; clockSel=1;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1919,6 +2013,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
ImGui::Text("Clock rate:"); ImGui::Text("Clock rate:");
ImGui::Indent();
if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) { if (ImGui::RadioButton("NTSC (1.79MHz)",clockSel==0)) {
clockSel=0; clockSel=0;
altered=true; altered=true;
@ -1927,9 +2022,11 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
clockSel=1; clockSel=1;
altered=true; altered=true;
} }
ImGui::Unindent();
ImGui::Text("Global parameter priority:"); ImGui::Text("Global parameter priority:");
ImGui::Indent();
if (ImGui::RadioButton("Left to right",!keyPriority)) { if (ImGui::RadioButton("Left to right",!keyPriority)) {
keyPriority=false; keyPriority=false;
altered=true; altered=true;
@ -1938,6 +2035,7 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
keyPriority=true; keyPriority=true;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {
@ -1988,11 +2086,13 @@ bool FurnaceGUI::drawSysConf(int chan, DivSystem type, DivConfig& flags, bool mo
} }
altered=true; altered=true;
} }
ImGui::Indent();
if (ImGui::InputInt("Hz",&customClock)) { if (ImGui::InputInt("Hz",&customClock)) {
if (customClock<MIN_CUSTOM_CLOCK) customClock=0; if (customClock<MIN_CUSTOM_CLOCK) customClock=0;
if (customClock>MAX_CUSTOM_CLOCK) customClock=MAX_CUSTOM_CLOCK; if (customClock>MAX_CUSTOM_CLOCK) customClock=MAX_CUSTOM_CLOCK;
altered=true; altered=true;
} }
ImGui::Unindent();
if (altered) { if (altered) {
e->lockSave([&]() { e->lockSave([&]() {