diff --git a/src/gui/gui.h b/src/gui/gui.h index fed9eea90..1cfbfc011 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -478,6 +478,7 @@ enum FurnaceGUISettingGroups: unsigned int { GUI_SETTINGS_APPEARANCE=64, GUI_SETTINGS_LAYOUTS=128, GUI_SETTINGS_COLOR=256, + GUI_SETTINGS_EMULATION=512, GUI_SETTINGS_ALL=0xffffffff }; diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 86fdcd826..b71582c7f 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -4121,51 +4121,141 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { } void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { - conf.set("mainFontSize",settings.mainFontSize); - conf.set("headFontSize",settings.headFontSize); - conf.set("patFontSize",settings.patFontSize); - conf.set("iconSize",settings.iconSize); - conf.set("audioEngine",String(audioBackends[settings.audioEngine])); - conf.set("audioDevice",settings.audioDevice); - conf.set("midiInDevice",settings.midiInDevice); - conf.set("midiOutDevice",settings.midiOutDevice); - conf.set("renderDriver",settings.renderDriver); - conf.set("sdlAudioDriver",settings.sdlAudioDriver); - conf.set("audioQuality",settings.audioQuality); - conf.set("audioHiPass",settings.audioHiPass); - conf.set("audioBufSize",settings.audioBufSize); - conf.set("audioRate",settings.audioRate); - conf.set("audioChans",settings.audioChans); - conf.set("arcadeCore",settings.arcadeCore); - conf.set("ym2612Core",settings.ym2612Core); - conf.set("snCore",settings.snCore); - conf.set("nesCore",settings.nesCore); - conf.set("fdsCore",settings.fdsCore); - conf.set("c64Core",settings.c64Core); - conf.set("pokeyCore",settings.pokeyCore); - conf.set("opnCore",settings.opnCore); - conf.set("opl2Core",settings.opl2Core); - conf.set("opl3Core",settings.opl3Core); - conf.set("arcadeCoreRender",settings.arcadeCoreRender); - conf.set("ym2612CoreRender",settings.ym2612CoreRender); - conf.set("snCoreRender",settings.snCoreRender); - conf.set("nesCoreRender",settings.nesCoreRender); - conf.set("fdsCoreRender",settings.fdsCoreRender); - conf.set("c64CoreRender",settings.c64CoreRender); - conf.set("pokeyCoreRender",settings.pokeyCoreRender); - conf.set("opnCoreRender",settings.opnCoreRender); - conf.set("opl2CoreRender",settings.opl2CoreRender); - conf.set("opl3CoreRender",settings.opl3CoreRender); - conf.set("pcSpeakerOutMethod",settings.pcSpeakerOutMethod); - conf.set("yrw801Path",settings.yrw801Path); - conf.set("tg100Path",settings.tg100Path); - conf.set("mu5Path",settings.mu5Path); - conf.set("mainFont",settings.mainFont); - conf.set("headFont",settings.headFont); - conf.set("patFont",settings.patFont); - conf.set("mainFontPath",settings.mainFontPath); - conf.set("headFontPath",settings.headFontPath); - conf.set("patFontPath",settings.patFontPath); + // general + if (groups&GUI_SETTINGS_GENERAL) { + conf.set("renderDriver",settings.renderDriver); + conf.set("noDMFCompat",settings.noDMFCompat); + + conf.set("dpiScale",settings.dpiScale); + + conf.set("initialSys2",settings.initialSys.toBase64()); + conf.set("initialSysName",settings.initialSysName); + } + + // audio + if (groups&GUI_SETTINGS_AUDIO) { + conf.set("audioEngine",String(audioBackends[settings.audioEngine])); + conf.set("audioDevice",settings.audioDevice); + conf.set("midiInDevice",settings.midiInDevice); + conf.set("midiOutDevice",settings.midiOutDevice); + conf.set("sdlAudioDriver",settings.sdlAudioDriver); + conf.set("audioQuality",settings.audioQuality); + conf.set("audioHiPass",settings.audioHiPass); + conf.set("audioBufSize",settings.audioBufSize); + conf.set("audioRate",settings.audioRate); + conf.set("audioChans",settings.audioChans); + } + + // MIDI + if (groups&GUI_SETTINGS_MIDI) { + + } + + // keyboard + if (groups&GUI_SETTINGS_KEYBOARD) { + // keybinds + for (int i=0; i