diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 64a19adb..65c7954d 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -3670,6 +3670,8 @@ bool FurnaceGUI::init() { dpiScale=settings.dpiScale; } + initSystemPresets(); + #if !(defined(__APPLE__) || defined(_WIN32)) unsigned char* furIcon=getFurnaceIcon(); SDL_Surface* icon=SDL_CreateRGBSurfaceFrom(furIcon,256,256,32,256*4,0xff,0xff00,0xff0000,0xff000000); @@ -4145,8 +4147,6 @@ FurnaceGUI::FurnaceGUI(): valueKeys[SDLK_KP_8]=8; valueKeys[SDLK_KP_9]=9; - initSystemPresets(); - memset(willExport,1,32*sizeof(bool)); peak[0]=0; diff --git a/src/gui/presets.cpp b/src/gui/presets.cpp index 65ad3a2f..1414134a 100644 --- a/src/gui/presets.cpp +++ b/src/gui/presets.cpp @@ -31,27 +31,41 @@ // )); void FurnaceGUI::initSystemPresets() { + sysCategories.clear(); + FurnaceGUISysCategory cat; cat=FurnaceGUISysCategory("FM"); - cat.systems.push_back(FurnaceGUISysDef( - "Yamaha YM2612", { - DIV_SYSTEM_YM2612, 64, 0, 0, - 0 - } - )); - cat.systems.push_back(FurnaceGUISysDef( - "Yamaha YM2612 (extended channel 3)", { - DIV_SYSTEM_YM2612_EXT, 64, 0, 0, - 0 - } - )); cat.systems.push_back(FurnaceGUISysDef( "Yamaha YM2151", { DIV_SYSTEM_YM2151, 64, 0, 0, 0 } )); + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YM2203", { + DIV_SYSTEM_OPN, 64, 0, 3, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YM2203 (extended channel 3)", { + DIV_SYSTEM_OPN_EXT, 64, 0, 3, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YM2608", { + DIV_SYSTEM_PC98, 64, 0, 3, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YM2608 (extended channel 3)", { + DIV_SYSTEM_PC98_EXT, 64, 0, 3, + 0 + } + )); cat.systems.push_back(FurnaceGUISysDef( "Yamaha YM2610", { DIV_SYSTEM_YM2610_FULL, 64, 0, 0, @@ -76,6 +90,18 @@ void FurnaceGUI::initSystemPresets() { 0 } )); + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YM2612", { + DIV_SYSTEM_YM2612, 64, 0, (int)0x80000000, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YM2612 (extended channel 3)", { + DIV_SYSTEM_YM2612_EXT, 64, 0, (int)0x80000000, + 0 + } + )); cat.systems.push_back(FurnaceGUISysDef( "Yamaha YM2413", { DIV_SYSTEM_OPLL, 64, 0, 0, @@ -94,6 +120,18 @@ void FurnaceGUI::initSystemPresets() { 0 } )); + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YM3438", { + DIV_SYSTEM_YM2612, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YM3438 (extended channel 3)", { + DIV_SYSTEM_YM2612_EXT, 64, 0, 0, + 0 + } + )); cat.systems.push_back(FurnaceGUISysDef( "Yamaha YM3526", { DIV_SYSTEM_OPL, 64, 0, 0, @@ -142,11 +180,25 @@ void FurnaceGUI::initSystemPresets() { 0 } )); + if (settings.hiddenSystems) { + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YMU759", { + DIV_SYSTEM_YMU759, 64, 0, 0, + 0 + } + )); + } sysCategories.push_back(cat); cat=FurnaceGUISysCategory("Square"); cat.systems.push_back(FurnaceGUISysDef( "TI SN76489", { + DIV_SYSTEM_SMS, 64, 0, 4, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Sega PSG (SN76489-like)", { DIV_SYSTEM_SMS, 64, 0, 0, 0 } @@ -157,12 +209,36 @@ void FurnaceGUI::initSystemPresets() { 0 } )); + cat.systems.push_back(FurnaceGUISysDef( + "Yamaha YM2149(F)", { + DIV_SYSTEM_AY8910, 64, 0, 16, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Microchip AY8930", { + DIV_SYSTEM_AY8930, 64, 0, 0, + 0 + } + )); cat.systems.push_back(FurnaceGUISysDef( "Philips SAA1099", { DIV_SYSTEM_SAA1099, 64, 0, 0, 0 } )); + cat.systems.push_back(FurnaceGUISysDef( + "PC Speaker", { + DIV_SYSTEM_PCSPKR, 32, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Commodore VIC", { + DIV_SYSTEM_VIC20, 64, 0, 1, + 0 + } + )); sysCategories.push_back(cat); cat=FurnaceGUISysCategory("Sample"); @@ -192,6 +268,128 @@ void FurnaceGUI::initSystemPresets() { )); sysCategories.push_back(cat); + cat=FurnaceGUISysCategory("Wavetable"); + cat.systems.push_back(FurnaceGUISysDef( + "PC Engine", { + DIV_SYSTEM_PCE, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Commodore PET (pseudo-wavetable)", { + DIV_SYSTEM_PET, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Konami Bubble System WSG", { + DIV_SYSTEM_BUBSYS_WSG, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Konami SCC", { + DIV_SYSTEM_SCC, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Konami SCC+", { + DIV_SYSTEM_SCC_PLUS, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Namco 163", { + DIV_SYSTEM_N163, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Famicom Disk System (chip)", { + DIV_SYSTEM_FDS, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "WonderSwan", { + DIV_SYSTEM_SWAN, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Seta/Allumer X1-010", { + DIV_SYSTEM_X1_010, 64, 0, 0, + 0 + } + )); + sysCategories.push_back(cat); + + cat=FurnaceGUISysCategory("Specialized"); + cat.systems.push_back(FurnaceGUISysDef( + "MOS Technology SID (6581)", { + DIV_SYSTEM_C64_6581, 64, 0, 1, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "MOS Technology SID (8580)", { + DIV_SYSTEM_C64_8580, 64, 0, 1, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Microchip AY8930", { + DIV_SYSTEM_AY8930, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Game Boy", { + DIV_SYSTEM_GB, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Atari Lynx", { + DIV_SYSTEM_LYNX, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Atari TIA", { + DIV_SYSTEM_TIA, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "Commander X16 (VERA only)", { + DIV_SYSTEM_VERA, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "ZX Spectrum (beeper only)", { + DIV_SYSTEM_SFX_BEEPER, 64, 0, 0, + 0 + } + )); + if (settings.hiddenSystems) { + cat.systems.push_back(FurnaceGUISysDef( + "Dummy System", { + DIV_SYSTEM_DUMMY, 64, 0, 0, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "tildearrow Sound Unit", { + DIV_SYSTEM_SOUND_UNIT, 64, 0, 0, + 0 + } + )); + } + sysCategories.push_back(cat); + cat=FurnaceGUISysCategory("Game consoles"); cat.systems.push_back(FurnaceGUISysDef( "Sega Genesis", { @@ -471,6 +669,24 @@ void FurnaceGUI::initSystemPresets() { 0 } )); + cat.systems.push_back(FurnaceGUISysDef( + "NEC PC-98 (with PC-9801-26K; extended channel 3)", { + DIV_SYSTEM_OPN_EXT, 64, 0, 3, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "NEC PC-98 (with PC-9801-86)", { + DIV_SYSTEM_PC98, 64, 0, 3, + 0 + } + )); + cat.systems.push_back(FurnaceGUISysDef( + "NEC PC-98 (with PC-9801-86; extended channel 3)", { + DIV_SYSTEM_PC98_EXT, 64, 0, 3, + 0 + } + )); cat.systems.push_back(FurnaceGUISysDef( "ZX Spectrum (48K)", { DIV_SYSTEM_AY8910, 64, 0, 2,