aboutsummaryrefslogtreecommitdiff
path: root/src/NDSCart.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/NDSCart.cpp')
-rw-r--r--src/NDSCart.cpp13
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");