From c06e5fe2d9bd03417cab36e5d81088476fa84538 Mon Sep 17 00:00:00 2001 From: RocketRobz Date: Tue, 17 Sep 2024 15:14:11 -0600 Subject: [PATCH] Set sound frequency setting for nds-bootstrap-hb when using `Direct` bootloader setting --- quickmenu/arm9/source/main.cpp | 2 +- romsel_dsimenutheme/arm9/source/main.cpp | 4 ++-- universal/include/common/nds_bootstrap_loader.h | 4 ++-- universal/source/nds_loader/nds_bootstrap_loader.c | 10 ++++++---- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/quickmenu/arm9/source/main.cpp b/quickmenu/arm9/source/main.cpp index 98f89e5a8b..1f971985cb 100644 --- a/quickmenu/arm9/source/main.cpp +++ b/quickmenu/arm9/source/main.cpp @@ -2845,7 +2845,7 @@ int dsClassicMenu(void) { perGameSettings_dsiMode == -1 ? isModernHomebrew[ms().secondaryDevice] : perGameSettings_dsiMode, perGameSettings_boostCpu == -1 ? DEFAULT_BOOST_CPU : perGameSettings_boostCpu, perGameSettings_boostVram == -1 ? DEFAULT_BOOST_VRAM : perGameSettings_boostVram, - ms().consoleModel, /* ndsPreloaded */ false); + ms().consoleModel, ms().soundFreq, /* ndsPreloaded */ false); } else { err = 1; } diff --git a/romsel_dsimenutheme/arm9/source/main.cpp b/romsel_dsimenutheme/arm9/source/main.cpp index f4ae52bee2..ceb83ac817 100644 --- a/romsel_dsimenutheme/arm9/source/main.cpp +++ b/romsel_dsimenutheme/arm9/source/main.cpp @@ -1897,7 +1897,7 @@ int dsiMenuTheme(void) { perGameSettings_dsiMode == -1 ? isModernHomebrew[CURPOS] : perGameSettings_dsiMode, perGameSettings_boostCpu == -1 ? DEFAULT_BOOST_CPU : perGameSettings_boostCpu, perGameSettings_boostVram == -1 ? DEFAULT_BOOST_VRAM : perGameSettings_boostVram, - ms().consoleModel, false); + ms().consoleModel, ms().soundFreq, false); } else { err = 1; } @@ -2655,7 +2655,7 @@ int dsiMenuTheme(void) { 0, boostCpu, boostVram, - ms().consoleModel, false); + ms().consoleModel, ms().soundFreq, false); } else { err = 1; } diff --git a/universal/include/common/nds_bootstrap_loader.h b/universal/include/common/nds_bootstrap_loader.h index 479022478b..b37a87c49b 100644 --- a/universal/include/common/nds_bootstrap_loader.h +++ b/universal/include/common/nds_bootstrap_loader.h @@ -27,9 +27,9 @@ extern "C" { #endif -int bootstrapHbRunNds (const void* loader, u32 loaderSize, u32 cluster, u32 ramDiskCluster, u32 ramDiskSize, u32 srParamsCluster, u32 patchOffsetCacheCluster, u32 cfgCluster, u32 cfgSize, int romToRamDisk, bool romIsCompressed, bool initDisc, bool dldiPatchNds, int argc, const char** argv, int language, int dsiMode, bool boostCpu, bool boostVram, int consoleModel, u32 srTid1, u32 srTid2, bool ndsPreloaded); +int bootstrapHbRunNds (const void* loader, u32 loaderSize, u32 cluster, u32 ramDiskCluster, u32 ramDiskSize, u32 srParamsCluster, u32 patchOffsetCacheCluster, u32 cfgCluster, u32 cfgSize, int romToRamDisk, bool romIsCompressed, bool initDisc, bool dldiPatchNds, int argc, const char** argv, int language, int dsiMode, bool boostCpu, bool boostVram, int consoleModel, bool soundFreq, u32 srTid1, u32 srTid2, bool ndsPreloaded); -int bootstrapHbRunNdsFile (const char* filename, const char* fatFilename, const char* ramDiskFilename, const char* cfgFilename, u32 ramDiskSize, const char* srParamsFilename, const char* patchOffsetCacheFilename, u32 cfgSize, int romToRamDisk, bool romIsCompressed, int argc, const char** argv, int language, int dsiMode, bool boostCpu, bool boostVram, int consoleModel, bool ndsPreloaded); +int bootstrapHbRunNdsFile (const char* filename, const char* fatFilename, const char* ramDiskFilename, const char* cfgFilename, u32 ramDiskSize, const char* srParamsFilename, const char* patchOffsetCacheFilename, u32 cfgSize, int romToRamDisk, bool romIsCompressed, int argc, const char** argv, int language, int dsiMode, bool boostCpu, bool boostVram, int consoleModel, bool soundFreq, bool ndsPreloaded); void bootstrapHbRunPrep (int romToRamDisk); diff --git a/universal/source/nds_loader/nds_bootstrap_loader.c b/universal/source/nds_loader/nds_bootstrap_loader.c index d3ea8f5404..edc00889e4 100644 --- a/universal/source/nds_loader/nds_bootstrap_loader.c +++ b/universal/source/nds_loader/nds_bootstrap_loader.c @@ -77,7 +77,8 @@ #define ROM_IS_COMPRESSED_OFFSET 64 #define PATCHCACHE_FILE_OFFSET 68 #define SOFTRESET_FILE_OFFSET 72 -#define PRELOADED_OFFSET 76 +#define SOUND_FREQ_OFFSET 76 +#define PRELOADED_OFFSET 80 typedef signed int addr_t; @@ -97,7 +98,7 @@ char* hbLoad_bin = (char*)0x02FC0000; char* hbLoadInject_bin = (char*)0x02FD0000; char* imgTemplateBuffer = (char*)0x02FB0000; -int bootstrapHbRunNds (const void* loader, u32 loaderSize, u32 cluster, u32 ramDiskCluster, u32 ramDiskSize, u32 srParamsCluster, u32 patchOffsetCacheCluster, u32 cfgCluster, u32 cfgSize, int romToRamDisk, bool romIsCompressed, bool initDisc, bool dldiPatchNds, int argc, const char** argv, int language, int dsiMode, bool boostCpu, bool boostVram, int consoleModel, u32 srTid1, u32 srTid2, bool ndsPreloaded) +int bootstrapHbRunNds (const void* loader, u32 loaderSize, u32 cluster, u32 ramDiskCluster, u32 ramDiskSize, u32 srParamsCluster, u32 patchOffsetCacheCluster, u32 cfgCluster, u32 cfgSize, int romToRamDisk, bool romIsCompressed, bool initDisc, bool dldiPatchNds, int argc, const char** argv, int language, int dsiMode, bool boostCpu, bool boostVram, int consoleModel, bool soundFreq, u32 srTid1, u32 srTid2, bool ndsPreloaded) { char* argStart; u16* argData; @@ -182,6 +183,7 @@ int bootstrapHbRunNds (const void* loader, u32 loaderSize, u32 cluster, u32 ramD writeAddr ((data_t*) LCDC_BANK_D, PATCHCACHE_FILE_OFFSET, patchOffsetCacheCluster); writeAddr ((data_t*) LCDC_BANK_D, SOFTRESET_FILE_OFFSET, srParamsCluster); writeAddr ((data_t*) LCDC_BANK_D, PRELOADED_OFFSET, ndsPreloaded); + writeAddr ((data_t*) LCDC_BANK_D, SOUND_FREQ_OFFSET, soundFreq); //nocashMessage("irqDisable(IRQ_ALL);"); @@ -215,7 +217,7 @@ int bootstrapHbRunNds (const void* loader, u32 loaderSize, u32 cluster, u32 ramD return true; } -int bootstrapHbRunNdsFile (const char* filename, const char* fatFilename, const char* ramDiskFilename, const char* cfgFilename, u32 ramDiskSize, const char* srParamsFilename, const char* patchOffsetCacheFilename, u32 cfgSize, int romToRamDisk, bool romIsCompressed, int argc, const char** argv, int language, int dsiMode, bool boostCpu, bool boostVram, int consoleModel, bool ndsPreloaded) { +int bootstrapHbRunNdsFile (const char* filename, const char* fatFilename, const char* ramDiskFilename, const char* cfgFilename, u32 ramDiskSize, const char* srParamsFilename, const char* patchOffsetCacheFilename, u32 cfgSize, int romToRamDisk, bool romIsCompressed, int argc, const char** argv, int language, int dsiMode, bool boostCpu, bool boostVram, int consoleModel, bool soundFreq, bool ndsPreloaded) { if (!bootloaderFound) { return 3; } @@ -300,7 +302,7 @@ int bootstrapHbRunNdsFile (const char* filename, const char* fatFilename, const //installBootStub(havedsiSD); - return bootstrapHbRunNds (hbLoad_bin, 0x10000, st.st_ino, clusterRam, ramDiskSize, clusterSr, clusterPatchCache, clusterCfg, cfgSize, romToRamDisk, romIsCompressed, true, true, argc, argv, language, dsiMode, boostCpu, boostVram, consoleModel, srBackendId[0], srBackendId[1], ndsPreloaded); + return bootstrapHbRunNds (hbLoad_bin, 0x10000, st.st_ino, clusterRam, ramDiskSize, clusterSr, clusterPatchCache, clusterCfg, cfgSize, romToRamDisk, romIsCompressed, true, true, argc, argv, language, dsiMode, boostCpu, boostVram, consoleModel, soundFreq, srBackendId[0], srBackendId[1], ndsPreloaded); } void bootstrapHbRunPrep (int romToRamDisk) {