mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-30 23:49:01 -05:00 
			
		
		
		
	nsp: Use title ID from NPDM metadata for extracted type NSPs
Avoids 0 being used as title ID for all extracted NSPs.
This commit is contained in:
		| @@ -85,12 +85,29 @@ Loader::ResultStatus NSP::GetProgramStatus(u64 title_id) const { | ||||
| } | ||||
|  | ||||
| u64 NSP::GetFirstTitleID() const { | ||||
|     if (IsExtractedType()) { | ||||
|         return GetProgramTitleID(); | ||||
|     } | ||||
|  | ||||
|     if (program_status.empty()) | ||||
|         return 0; | ||||
|     return program_status.begin()->first; | ||||
| } | ||||
|  | ||||
| u64 NSP::GetProgramTitleID() const { | ||||
|     if (IsExtractedType()) { | ||||
|         if (GetExeFS() == nullptr || !IsDirectoryExeFS(GetExeFS())) { | ||||
|             return 0; | ||||
|         } | ||||
|  | ||||
|         ProgramMetadata meta; | ||||
|         if (meta.Load(GetExeFS()->GetFile("main.npdm")) == Loader::ResultStatus::Success) { | ||||
|             return meta.GetTitleID(); | ||||
|         } else { | ||||
|             return 0; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     const auto out = GetFirstTitleID(); | ||||
|     if ((out & 0x800) == 0) | ||||
|         return out; | ||||
| @@ -102,6 +119,10 @@ u64 NSP::GetProgramTitleID() const { | ||||
| } | ||||
|  | ||||
| std::vector<u64> NSP::GetTitleIDs() const { | ||||
|     if (IsExtractedType()) { | ||||
|         return {GetProgramTitleID()}; | ||||
|     } | ||||
|  | ||||
|     std::vector<u64> out; | ||||
|     out.reserve(ncas.size()); | ||||
|     for (const auto& kv : ncas) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Zach Hilman
					Zach Hilman