diff --git a/arm7/source/loader/NdsLoader.cpp b/arm7/source/loader/NdsLoader.cpp index 7709061..ae13753 100644 --- a/arm7/source/loader/NdsLoader.cpp +++ b/arm7/source/loader/NdsLoader.cpp @@ -220,6 +220,7 @@ void NdsLoader::Load(BootMode bootMode) if (bootMode == BootMode::Normal) { bootType = _romHeader.IsDsiWare() ? BOOT_TYPE_NAND : BOOT_TYPE_CARD; + HandleIQueRegionFreePatching(); } else if (bootMode == BootMode::Multiboot) { @@ -1013,6 +1014,15 @@ bool NdsLoader::TryDecryptSecureArea() return true; } +void NdsLoader::HandleIQueRegionFreePatching() +{ + if ((_romHeader.flags & 0x80) == 0x80) + { + _romHeader.flags &= ~0x80; + _romHeader.headerCrc = swi_getCrc16(0xFFFF, (void*)&_romHeader, 0x15E); + } +} + ConsoleRegion NdsLoader::GetRomRegion(u32 gameCode) { u8 gameRegionCode = (gameCode >> 24) & 0xFF; diff --git a/arm7/source/loader/NdsLoader.h b/arm7/source/loader/NdsLoader.h index 14bd17a..663cc52 100644 --- a/arm7/source/loader/NdsLoader.h +++ b/arm7/source/loader/NdsLoader.h @@ -73,6 +73,7 @@ private: void InsertArgv(); bool TrySetupDsiWareSave(); bool TryDecryptSecureArea(); + void HandleIQueRegionFreePatching(); ConsoleRegion GetRomRegion(u32 gameCode); UserLanguage GetLanguageByRomRegion(ConsoleRegion romRegion); u32 GetSupportedLanguagesByRegion(ConsoleRegion region);