From 5f8255bc90db5068f247d8e83c80be3769710ef0 Mon Sep 17 00:00:00 2001 From: Arisotura Date: Sun, 17 Nov 2024 18:17:43 +0100 Subject: [PATCH] allow DSi mode to run with internal DS BIOS --- src/frontend/qt_sdl/EmuInstance.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/frontend/qt_sdl/EmuInstance.cpp b/src/frontend/qt_sdl/EmuInstance.cpp index 4c0d3798..563fa135 100644 --- a/src/frontend/qt_sdl/EmuInstance.cpp +++ b/src/frontend/qt_sdl/EmuInstance.cpp @@ -859,7 +859,7 @@ std::unique_ptr EmuInstance::loadARM9BIOS() noexcept { if (!globalCfg.GetBool("Emu.ExternalBIOSEnable")) { - return globalCfg.GetInt("Emu.ConsoleType") == 0 ? std::make_unique(bios_arm9_bin) : nullptr; + return std::make_unique(bios_arm9_bin); } string path = globalCfg.GetString("DS.BIOS9Path"); @@ -882,7 +882,7 @@ std::unique_ptr EmuInstance::loadARM7BIOS() noexcept { if (!globalCfg.GetBool("Emu.ExternalBIOSEnable")) { - return globalCfg.GetInt("Emu.ConsoleType") == 0 ? std::make_unique(bios_arm7_bin) : nullptr; + return std::make_unique(bios_arm7_bin); } string path = globalCfg.GetString("DS.BIOS7Path"); @@ -1006,11 +1006,12 @@ std::optional EmuInstance::loadFirmware(int type) noexcept { // If we're using built-in firmware... if (type == 1) { - Log(Error, "DSi firmware: cannot use built-in firmware in DSi mode!\n"); - return std::nullopt; + // TODO: support generating a firmware for DSi mode + } + else + { + return generateFirmware(type); } - - return generateFirmware(type); } //const string& firmwarepath = type == 1 ? Config::DSiFirmwarePath : Config::FirmwarePath; string firmwarepath; @@ -1458,16 +1459,16 @@ void EmuInstance::reset() bool EmuInstance::bootToMenu() -{ +{printf("bootToMenu 1\n"); // Keep whatever cart is in the console, if any. if (!updateConsole()) // Try to update the console, but keep the existing cart. If that fails... return false; - + printf("bootToMenu 2\n"); // BIOS and firmware files are loaded, patched, and installed in UpdateConsole if (nds->NeedsDirectBoot()) return false; - + printf("bootToMenu 3\n"); initFirmwareSaveManager(); nds->Reset(); setBatteryLevels();