GUI: prepare for proper VB/WS/C64 tick rates

This commit is contained in:
tildearrow 2022-12-03 23:04:58 -05:00
parent b647d17b12
commit eb657aef18
2 changed files with 54 additions and 27 deletions

View File

@ -934,8 +934,9 @@ struct FurnaceGUISysDefChip {
struct FurnaceGUISysDef {
const char* name;
const char* extra;
String definition;
FurnaceGUISysDef(const char* n, std::initializer_list<FurnaceGUISysDefChip> def);
FurnaceGUISysDef(const char* n, std::initializer_list<FurnaceGUISysDefChip> def, const char* e=NULL);
};
struct FurnaceGUISysCategory {

View File

@ -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<FurnaceGUISysDefChip> def):
name(n) {
FurnaceGUISysDef::FurnaceGUISysDef(const char* n, std::initializer_list<FurnaceGUISysDefChip> def, const char* e):
name(n),
extra(e) {
std::vector<FurnaceGUISysDefChip> uncompiled=def;
int index=0;
for (FurnaceGUISysDefChip& i: uncompiled) {
@ -2205,4 +2228,7 @@ FurnaceGUISysDef::FurnaceGUISysDef(const char* n, std::initializer_list<FurnaceG
);
index++;
}
if (extra) {
definition+=extra;
}
}