From 019c8f8091063dbe57a4deffed48d6dce43da0aa Mon Sep 17 00:00:00 2001 From: pineappleEA Date: Sat, 24 Apr 2021 12:47:21 +0200 Subject: [PATCH] early-access version 1628 --- README.md | 2 +- src/core/file_sys/program_metadata.cpp | 6 ++++-- src/core/file_sys/program_metadata.h | 3 ++- src/core/loader/kip.cpp | 3 ++- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2d374f832..572cacbcf 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ yuzu emulator early access ============= -This is the source code for early-access 1627. +This is the source code for early-access 1628. ## Legal Notice diff --git a/src/core/file_sys/program_metadata.cpp b/src/core/file_sys/program_metadata.cpp index 9cf49bf44..83b83a044 100755 --- a/src/core/file_sys/program_metadata.cpp +++ b/src/core/file_sys/program_metadata.cpp @@ -58,7 +58,8 @@ Loader::ResultStatus ProgramMetadata::Load(VirtualFile file) { result.LoadManual( true /*is_64_bit*/, FileSys::ProgramAddressSpaceType::Is39Bit /*address_space*/, 0x2c /*main_thread_prio*/, 0 /*main_thread_core*/, 0x00100000 /*main_thread_stack_size*/, - {}, 0xFFFFFFFFFFFFFFFF /*filesystem_permissions*/, {} /*capabilities*/); + 0 /*title_id*/, 0xFFFFFFFFFFFFFFFF /*filesystem_permissions*/, + 0x1FE00000 /*system_resource_size*/, {} /*capabilities*/); return result; } @@ -66,7 +67,7 @@ Loader::ResultStatus ProgramMetadata::Load(VirtualFile file) { void ProgramMetadata::LoadManual(bool is_64_bit, ProgramAddressSpaceType address_space, s32 main_thread_prio, u32 main_thread_core, u32 main_thread_stack_size, u64 title_id, - u64 filesystem_permissions, + u64 filesystem_permissions, u32 system_resource_size, KernelCapabilityDescriptors capabilities) { npdm_header.has_64_bit_instructions.Assign(is_64_bit); npdm_header.address_space_type.Assign(address_space); @@ -75,6 +76,7 @@ void ProgramMetadata::LoadManual(bool is_64_bit, ProgramAddressSpaceType address npdm_header.main_stack_size = main_thread_stack_size; aci_header.title_id = title_id; aci_file_access.permissions = filesystem_permissions; + npdm_header.system_resource_size = system_resource_size; aci_kernel_capabilities = std ::move(capabilities); } diff --git a/src/core/file_sys/program_metadata.h b/src/core/file_sys/program_metadata.h index 1ddf00c14..1eee916be 100755 --- a/src/core/file_sys/program_metadata.h +++ b/src/core/file_sys/program_metadata.h @@ -59,7 +59,8 @@ public: /// Load from parameters instead of NPDM file, used for KIP void LoadManual(bool is_64_bit, ProgramAddressSpaceType address_space, s32 main_thread_prio, u32 main_thread_core, u32 main_thread_stack_size, u64 title_id, - u64 filesystem_permissions, KernelCapabilityDescriptors capabilities); + u64 filesystem_permissions, u32 system_resource_size, + KernelCapabilityDescriptors capabilities); bool Is64BitProgram() const; ProgramAddressSpaceType GetAddressSpaceType() const; diff --git a/src/core/loader/kip.cpp b/src/core/loader/kip.cpp index 3f4ba233d..55e6de794 100755 --- a/src/core/loader/kip.cpp +++ b/src/core/loader/kip.cpp @@ -68,7 +68,8 @@ AppLoader::LoadResult AppLoader_KIP::Load(Kernel::Process& process, FileSys::ProgramMetadata metadata; metadata.LoadManual(kip->Is64Bit(), address_space, kip->GetMainThreadPriority(), kip->GetMainThreadCpuCore(), kip->GetMainThreadStackSize(), - kip->GetTitleID(), 0xFFFFFFFFFFFFFFFF, kip->GetKernelCapabilities()); + kip->GetTitleID(), 0xFFFFFFFFFFFFFFFF, 0x1FE00000, + kip->GetKernelCapabilities()); const VAddr base_address = process.PageTable().GetCodeRegionStart(); Kernel::CodeSet codeset;