diff options
Diffstat (limited to 'src/NDSCart.cpp')
-rw-r--r-- | src/NDSCart.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/NDSCart.cpp b/src/NDSCart.cpp index 416da26..16e8435 100644 --- a/src/NDSCart.cpp +++ b/src/NDSCart.cpp @@ -601,7 +601,7 @@ void Reset() } -bool LoadROM(char* path) +bool LoadROM(const char* path, bool direct) { // TODO: streaming mode? for really big ROMs or systems with limited RAM // for now we're lazy @@ -632,10 +632,11 @@ bool LoadROM(char* path) fclose(f); //CartROM = f; - // temp. TODO: later make this user selectable - // calling this sets up shit for booting from the cart directly. - // normal behavior is booting from the BIOS. - NDS::SetupDirectBoot(); + if (direct) + { + NDS::SetupDirectBoot(); + CmdEncMode = 2; + } CartInserted = true; @@ -650,7 +651,7 @@ bool LoadROM(char* path) if (arm9base >= 0x4000) { // reencrypt secure area if needed - if (*(u32*)&CartROM[arm9base] == 0xE7FFDEFF) + if (*(u32*)&CartROM[arm9base] == 0xE7FFDEFF && *(u32*)&CartROM[arm9base+0x10] != 0xE7FFDEFF) { printf("Re-encrypting cart secure area\n"); |