mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-30 23:49:01 -05:00 
			
		
		
		
	Merge pull request #1494 from DarkLordZach/aoc-signature-fixes
aoc: Fix various bugs in current AOC implementation
This commit is contained in:
		| @@ -7,8 +7,10 @@ | ||||
| #include <vector> | ||||
| #include "common/logging/log.h" | ||||
| #include "core/file_sys/content_archive.h" | ||||
| #include "core/file_sys/control_metadata.h" | ||||
| #include "core/file_sys/nca_metadata.h" | ||||
| #include "core/file_sys/partition_filesystem.h" | ||||
| #include "core/file_sys/patch_manager.h" | ||||
| #include "core/file_sys/registered_cache.h" | ||||
| #include "core/hle/ipc_helpers.h" | ||||
| #include "core/hle/kernel/process.h" | ||||
| @@ -19,7 +21,7 @@ | ||||
| namespace Service::AOC { | ||||
|  | ||||
| constexpr u64 DLC_BASE_TITLE_ID_MASK = 0xFFFFFFFFFFFFE000; | ||||
| constexpr u64 DLC_BASE_TO_AOC_ID_MASK = 0x1000; | ||||
| constexpr u64 DLC_BASE_TO_AOC_ID = 0x1000; | ||||
|  | ||||
| static bool CheckAOCTitleIDMatchesBase(u64 base, u64 aoc) { | ||||
|     return (aoc & DLC_BASE_TITLE_ID_MASK) == base; | ||||
| @@ -97,14 +99,24 @@ void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
|  | ||||
|     ctx.WriteBuffer(out); | ||||
|  | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push(count); | ||||
| } | ||||
|  | ||||
| void AOC_U::GetAddOnContentBaseId(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::ResponseBuilder rb{ctx, 4}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.Push(Core::System::GetInstance().CurrentProcess()->GetTitleID() | DLC_BASE_TO_AOC_ID_MASK); | ||||
|     const auto title_id = Core::System::GetInstance().CurrentProcess()->GetTitleID(); | ||||
|     FileSys::PatchManager pm{title_id}; | ||||
|  | ||||
|     const auto res = pm.GetControlMetadata(); | ||||
|     if (res.first == nullptr) { | ||||
|         rb.Push(title_id + DLC_BASE_TO_AOC_ID); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     rb.Push(res.first->GetDLCBaseTitleId()); | ||||
| } | ||||
|  | ||||
| void AOC_U::PrepareAddOnContent(Kernel::HLERequestContext& ctx) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bunnei
					bunnei