From 90b8d4dd367db6a69c32584c9a0e762de883706e Mon Sep 17 00:00:00 2001
From: Yuri Kunde Schlesner <yuriks@yuriks.net>
Date: Sun, 18 Jun 2017 18:38:40 -0700
Subject: [PATCH 1/2] Kernel: Add comment about the extended linear heap area

---
 src/core/hle/kernel/process.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/core/hle/kernel/process.cpp b/src/core/hle/kernel/process.cpp
index 1c31ec9503..522ad2333c 100644
--- a/src/core/hle/kernel/process.cpp
+++ b/src/core/hle/kernel/process.cpp
@@ -151,6 +151,8 @@ void Process::Run(s32 main_thread_priority, u32 stack_size) {
 }
 
 VAddr Process::GetLinearHeapAreaAddress() const {
+    // Starting from system version 8.0.0 a new linear heap layout is supported to allow usage of
+    // the extra RAM in the n3DS.
     return kernel_version < 0x22C ? Memory::LINEAR_HEAP_VADDR : Memory::NEW_LINEAR_HEAP_VADDR;
 }
 

From 42b198eb0a5c3caf9dcb2c15fdf5d4d864e8e4fc Mon Sep 17 00:00:00 2001
From: Yuri Kunde Schlesner <yuriks@yuriks.net>
Date: Sun, 18 Jun 2017 18:39:17 -0700
Subject: [PATCH 2/2] Memory: Add enum definitions for the n3DS FCRAM size

---
 src/core/memory.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/core/memory.h b/src/core/memory.h
index 802aa465e4..71fb278adf 100644
--- a/src/core/memory.h
+++ b/src/core/memory.h
@@ -55,8 +55,10 @@ enum : PAddr {
 
     /// Main FCRAM
     FCRAM_PADDR = 0x20000000,
-    FCRAM_SIZE = 0x08000000, ///< FCRAM size (128MB)
+    FCRAM_SIZE = 0x08000000,      ///< FCRAM size on the Old 3DS (128MB)
+    FCRAM_N3DS_SIZE = 0x10000000, ///< FCRAM size on the New 3DS (256MB)
     FCRAM_PADDR_END = FCRAM_PADDR + FCRAM_SIZE,
+    FCRAM_N3DS_PADDR_END = FCRAM_PADDR + FCRAM_N3DS_SIZE,
 };
 
 /// Virtual user-space memory regions