diff --git a/VortexEngine/src/Menus/MainMenu.cpp b/VortexEngine/src/Menus/MainMenu.cpp index 4e0bb4fe9f..31464e6d34 100644 --- a/VortexEngine/src/Menus/MainMenu.cpp +++ b/VortexEngine/src/Menus/MainMenu.cpp @@ -17,6 +17,8 @@ bool MainMenu::init() // main menus start open m_isOpen = true; m_curSelection = 0; + // set default profile colors to begin + setDefaultProfileColors(); return true; } diff --git a/VortexEngine/src/Modes/Modes.cpp b/VortexEngine/src/Modes/Modes.cpp index fadb8adcb4..0bed4a05b1 100644 --- a/VortexEngine/src/Modes/Modes.cpp +++ b/VortexEngine/src/Modes/Modes.cpp @@ -227,9 +227,14 @@ bool Modes::saveStorage() bool Modes::loadStorage() { - // NOTE: The save header is global and was already loaded in init(), the - // mode header at slot 0 of this page holds the number of modes - // stored in this profile + // NOTE: The save header lives in the global storage space and none of the + // modes below need anything from it, but loading the save header is + // part of loading storage so the device-wide settings are refreshed + if (!loadHeader()) { + return false; + } + // the mode header at slot 0 of this page holds the number of modes + // stored in this profile ByteStream modeHeader; if (!Storage::readModeHeader(modeHeader) || !modeHeader.size()) { DEBUG_LOG("Empty buffer read from storage"); @@ -422,7 +427,6 @@ bool Modes::setDefaults() Colorset set(def.numColors, def.cols); addMode(def.patternID, nullptr, &set); } - MainMenu::setDefaultProfileColors(); return true; } diff --git a/VortexEngine/src/VortexEngine.cpp b/VortexEngine/src/VortexEngine.cpp index acbb3c47a5..07257f2b99 100644 --- a/VortexEngine/src/VortexEngine.cpp +++ b/VortexEngine/src/VortexEngine.cpp @@ -81,14 +81,14 @@ bool VortexEngine::init() DEBUG_LOG("Menus failed to initialize"); return false; } - if (!Modes::init()) { - DEBUG_LOG("Settings failed to initialize"); - return false; - } if (!MainMenu::init()) { DEBUG_LOG("Main menu failed to initialize"); return false; } + if (!Modes::init()) { + DEBUG_LOG("Settings failed to initialize"); + return false; + } if (!UPDI::init()) { DEBUG_LOG("UPDI failed to initialize"); return false;