diff --git a/src/gui/gui.h b/src/gui/gui.h index f26786bc8..8d233f9a9 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -934,8 +934,9 @@ struct FurnaceGUISysDefChip { struct FurnaceGUISysDef { const char* name; + const char* extra; String definition; - FurnaceGUISysDef(const char* n, std::initializer_list def); + FurnaceGUISysDef(const char* n, std::initializer_list def, const char* e=NULL); }; struct FurnaceGUISysCategory { diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 74d0e0122..6072570ee 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -198,12 +198,14 @@ void FurnaceGUI::initSystemPresets() { ENTRY( "WonderSwan", { CH(DIV_SYSTEM_SWAN, 64, 0, "") - } + }, + "tickRate=75.47169811320754716981" ); ENTRY( "Virtual Boy", { CH(DIV_SYSTEM_VBOY, 64, 0, "") - } + }, + "tickRate=50.2734877734878" ); ENTRY( "Gamate", { @@ -220,7 +222,8 @@ void FurnaceGUI::initSystemPresets() { ENTRY( "Commodore PET", { CH(DIV_SYSTEM_PET, 64, 0, "") - } + }, + "tickRate=50" ); ENTRY( "Commodore VIC-20", { @@ -230,65 +233,76 @@ void FurnaceGUI::initSystemPresets() { ENTRY( "Commodore 64 (6581 SID)", { CH(DIV_SYSTEM_C64_6581, 64, 0, "clockSel=1") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (8580 SID)", { CH(DIV_SYSTEM_C64_8580, 64, 0, "clockSel=1") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (6581 SID + Sound Expander)", { CH(DIV_SYSTEM_C64_6581, 64, 0, "clockSel=1"), CH(DIV_SYSTEM_OPL, 64, 0, "") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (6581 SID + Sound Expander in drums mode)", { CH(DIV_SYSTEM_C64_6581, 64, 0, "clockSel=1"), CH(DIV_SYSTEM_OPL_DRUMS, 64, 0, "") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (8580 SID + Sound Expander)", { CH(DIV_SYSTEM_C64_8580, 64, 0, "clockSel=1"), CH(DIV_SYSTEM_OPL, 64, 0, "") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (8580 SID + Sound Expander in drums mode)", { CH(DIV_SYSTEM_C64_8580, 64, 0, "clockSel=1"), CH(DIV_SYSTEM_OPL_DRUMS, 64, 0, "") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (6581 SID + FM-YAM)", { CH(DIV_SYSTEM_C64_6581, 64, 0, "clockSel=1"), CH(DIV_SYSTEM_OPL2, 64, 0, "") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (6581 SID + FM-YAM in drums mode)", { CH(DIV_SYSTEM_C64_6581, 64, 0, "clockSel=1"), CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (8580 SID + FM-YAM)", { CH(DIV_SYSTEM_C64_8580, 64, 0, "clockSel=1"), CH(DIV_SYSTEM_OPL2, 64, 0, "") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (8580 SID + FM-YAM in drums mode)", { CH(DIV_SYSTEM_C64_8580, 64, 0, "clockSel=1"), CH(DIV_SYSTEM_OPL2_DRUMS, 64, 0, "") - } + }, + "tickRate=50.1245421" ); ENTRY( "Amiga", { - CH(DIV_SYSTEM_AMIGA, 64, 0, "") - } + CH(DIV_SYSTEM_AMIGA, 64, 0, "clockSel=1") + }, + "tickRate=50" ); ENTRY( "MSX", { @@ -1085,8 +1099,9 @@ void FurnaceGUI::initSystemPresets() { CATEGORY_BEGIN("Sample","chips/systems which use PCM or ADPCM samples for sound synthesis."); ENTRY( "Amiga", { - CH(DIV_SYSTEM_AMIGA, 64, 0, "") - } + CH(DIV_SYSTEM_AMIGA, 64, 0, "clockSel=1") + }, + "tickRate=50" ); ENTRY( "SegaPCM", { @@ -1144,7 +1159,8 @@ void FurnaceGUI::initSystemPresets() { ENTRY( "Commodore PET (pseudo-wavetable)", { CH(DIV_SYSTEM_PET, 64, 0, "") - } + }, + "tickRate=50" ); ENTRY( "Konami Bubble System WSG", { @@ -1189,12 +1205,14 @@ void FurnaceGUI::initSystemPresets() { ENTRY( "WonderSwan", { CH(DIV_SYSTEM_SWAN, 64, 0, "") - } + }, + "tickRate=75.47169811320754716981" ); ENTRY( "Virtual Boy", { CH(DIV_SYSTEM_VBOY, 64, 0, "") - } + }, + "tickRate=50.2734877734878" ); ENTRY( "Seta/Allumer X1-010", { @@ -1207,12 +1225,14 @@ void FurnaceGUI::initSystemPresets() { ENTRY( "MOS Technology SID (6581)", { CH(DIV_SYSTEM_C64_6581, 64, 0, "clockSel=1") - } + }, + "tickRate=50.1245421" ); ENTRY( "MOS Technology SID (8580)", { CH(DIV_SYSTEM_C64_8580, 64, 0, "clockSel=1") - } + }, + "tickRate=50.1245421" ); ENTRY( "Microchip AY8930", { @@ -2161,12 +2181,14 @@ void FurnaceGUI::initSystemPresets() { ENTRY( "Commodore 64 (6581 SID)", { CH(DIV_SYSTEM_C64_6581, 64, 0, "clockSel=1") - } + }, + "tickRate=50.1245421" ); ENTRY( "Commodore 64 (8580 SID)", { CH(DIV_SYSTEM_C64_8580, 64, 0, "clockSel=1") - } + }, + "tickRate=50.1245421" ); ENTRY( "Arcade (YM2151 and SegaPCM)", { @@ -2187,8 +2209,9 @@ void FurnaceGUI::initSystemPresets() { CATEGORY_END; } -FurnaceGUISysDef::FurnaceGUISysDef(const char* n, std::initializer_list def): - name(n) { +FurnaceGUISysDef::FurnaceGUISysDef(const char* n, std::initializer_list def, const char* e): + name(n), + extra(e) { std::vector uncompiled=def; int index=0; for (FurnaceGUISysDefChip& i: uncompiled) { @@ -2205,4 +2228,7 @@ FurnaceGUISysDef::FurnaceGUISysDef(const char* n, std::initializer_list