You've already forked pico-loader
mirror of
https://github.com/LNH-team/pico-loader.git
synced 2026-01-09 16:28:35 -08:00
Compare commits
3 Commits
feature/ho
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fd08fd19a1 | ||
|
|
ef50e60ff9 | ||
|
|
a424b25263 |
@@ -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)
|
||||
{
|
||||
@@ -296,6 +297,9 @@ void NdsLoader::Load(BootMode bootMode)
|
||||
{
|
||||
SetupDsiDeviceList();
|
||||
|
||||
// Set twl wram locking (REG_MBK9) settings from rom header
|
||||
REG_MBK9 = _romHeader.mbk9Setting[0] | (_romHeader.mbk9Setting[1] << 8) | (_romHeader.mbk9Setting[2] << 16);
|
||||
|
||||
u32 scfgExt7 = 0x93FBFB00 | (_romHeader.arm7ScfgExt7 & 0x40407);
|
||||
REG_SCFG_EXT = scfgExt7;
|
||||
REG_SCFG_CLK = 0x187;
|
||||
@@ -1013,6 +1017,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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -167,7 +167,7 @@ bool CardiTryReadCardDmaPatch::FindPatchTarget(PatchContext& patchContext)
|
||||
static u32 getArmBlAddress(const u32* instructionPointer)
|
||||
{
|
||||
u32 blInstruction = *instructionPointer;
|
||||
return (u32)instructionPointer + 8 + ((int)((blInstruction & 0xFFFFFF) << 8) >> 6);
|
||||
return (u32)instructionPointer + 8 + ((int)((blInstruction & 0xFFFFFF) << 8) >> 6) + ((blInstruction >> 24) == 0xFA ? 1 : 0);
|
||||
}
|
||||
|
||||
void CardiTryReadCardDmaPatch::ApplyPatch(PatchContext& patchContext)
|
||||
|
||||
Reference in New Issue
Block a user