diff --git a/src/core/hle/kernel/process.h b/src/core/hle/kernel/process.h
index 20b4e401cefe8fe36eac36f20a576311c647e7d5..add98472fc6ecbb35479f19db4d7c7e843eafabd 100644
--- a/src/core/hle/kernel/process.h
+++ b/src/core/hle/kernel/process.h
@@ -131,6 +131,8 @@ public:
     /// Bitmask of allowed CPUs that this process' threads can run on. TODO(Subv): Actually parse
     /// this value from the process header.
     u32 allowed_processor_mask = THREADPROCESSORID_DEFAULT_MASK;
+    u32 allowed_thread_priority_mask = 0xFFFFFFFF;
+    u32 is_virtual_address_memory_enabled = 0;
     /// Current status of the process
     ProcessStatus status;
 
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 9c60576c1603b8c9739626a636869f164bb7990f..2f1b79f32dbcb8193804057e7ed1a23aeb0a772b 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -313,6 +313,15 @@ static ResultCode GetInfo(u64* result, u64 info_id, u64 handle, u64 info_sub_id)
     case GetInfoType::AllowedCpuIdBitmask:
         *result = g_current_process->allowed_processor_mask;
         break;
+    case GetInfoType::AllowedThreadPrioBitmask:
+        *result = g_current_process->allowed_thread_priority_mask;
+        break;
+    case GetInfoType::MapRegionBaseAddr:
+        *result = vm_manager.GetAddressSpaceBaseAddr();
+        break;
+    case GetInfoType::MapRegionSize:
+        *result = vm_manager.GetAddressSpaceSize();
+        break;
     case GetInfoType::TotalMemoryUsage:
         *result = vm_manager.GetTotalMemoryUsage();
         break;
@@ -334,6 +343,9 @@ static ResultCode GetInfo(u64* result, u64 info_id, u64 handle, u64 info_sub_id)
     case GetInfoType::NewMapRegionSize:
         *result = vm_manager.GetNewMapRegionSize();
         break;
+    case GetInfoType::IsVirtualAddressMemoryEnabled:
+        *result = g_current_process->is_virtual_address_memory_enabled;
+        break;
     default:
         UNIMPLEMENTED();
     }
diff --git a/src/core/hle/kernel/svc.h b/src/core/hle/kernel/svc.h
index 610cd1d7d71eaa9e81524b24ad5cab4b1072e755..a56fd36028543a2bbccab20ee08b259421be2d12 100644
--- a/src/core/hle/kernel/svc.h
+++ b/src/core/hle/kernel/svc.h
@@ -24,14 +24,27 @@ struct PageInfo {
 enum class GetInfoType : u64 {
     // 1.0.0+
     AllowedCpuIdBitmask = 0,
+    AllowedThreadPrioBitmask = 1,
+    MapRegionBaseAddr = 2,
+    MapRegionSize = 3,
+    HeapRegionBaseAddr = 4,
+    HeapRegionSize = 5,
     TotalMemoryUsage = 6,
     TotalHeapUsage = 7,
+    IsCurrentProcessBeingDebugged = 8,
+    ResourceHandleLimit = 9,
+    IdleTickCount = 10,
     RandomEntropy = 11,
+    PerformanceCounter = 0xF0000002,
     // 2.0.0+
     AddressSpaceBaseAddr = 12,
     AddressSpaceSize = 13,
     NewMapRegionBaseAddr = 14,
     NewMapRegionSize = 15,
+    // 3.0.0+
+    IsVirtualAddressMemoryEnabled = 16,
+    TitleId = 18,
+    PrivilegedProcessId = 19,
 };
 
 void CallSVC(u32 immediate);
diff --git a/src/core/hle/kernel/vm_manager.cpp b/src/core/hle/kernel/vm_manager.cpp
index dca637dde0d1c5a514b125578553d13b613ad330..d6d0ad996ba4249e77a42c77a9b4d4e3ad3c08d4 100644
--- a/src/core/hle/kernel/vm_manager.cpp
+++ b/src/core/hle/kernel/vm_manager.cpp
@@ -356,12 +356,12 @@ void VMManager::UpdatePageTableForVMA(const VirtualMemoryArea& vma) {
 
 u64 VMManager::GetTotalMemoryUsage() {
     LOG_WARNING(Kernel, "(STUBBED) called");
-    return 0x400000;
+    return 0xBE000000;
 }
 
 u64 VMManager::GetTotalHeapUsage() {
     LOG_WARNING(Kernel, "(STUBBED) called");
-    return 0x10000;
+    return 0x0;
 }
 
 VAddr VMManager::GetAddressSpaceBaseAddr() {