mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #4710 from Morph1984/fix-integrated-updates
submission_package: Fix updates integrated into cartridge images.
This commit is contained in:
		
						commit
						cc0dc3280d
					
				| @ -286,12 +286,31 @@ void NSP::ReadNCAs(const std::vector<VirtualFile>& files) { | |||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 auto next_nca = std::make_shared<NCA>(std::move(next_file), nullptr, 0); |                 auto next_nca = std::make_shared<NCA>(std::move(next_file), nullptr, 0); | ||||||
|  | 
 | ||||||
|                 if (next_nca->GetType() == NCAContentType::Program) { |                 if (next_nca->GetType() == NCAContentType::Program) { | ||||||
|                     program_status[next_nca->GetTitleId()] = next_nca->GetStatus(); |                     program_status[next_nca->GetTitleId()] = next_nca->GetStatus(); | ||||||
|                 } |                 } | ||||||
|                 if (next_nca->GetStatus() == Loader::ResultStatus::Success || | 
 | ||||||
|                     (next_nca->GetStatus() == Loader::ResultStatus::ErrorMissingBKTRBaseRomFS && |                 if (next_nca->GetStatus() != Loader::ResultStatus::Success && | ||||||
|                      (next_nca->GetTitleId() & 0x800) != 0)) { |                     next_nca->GetStatus() != Loader::ResultStatus::ErrorMissingBKTRBaseRomFS) { | ||||||
|  |                     continue; | ||||||
|  |                 } | ||||||
|  | 
 | ||||||
|  |                 // If the last 3 hexadecimal digits of the CNMT TitleID is 0x800 or is missing the
 | ||||||
|  |                 // BKTRBaseRomFS, this is an update NCA. Otherwise, this is a base NCA.
 | ||||||
|  |                 if ((cnmt.GetTitleID() & 0x800) != 0 || | ||||||
|  |                     next_nca->GetStatus() == Loader::ResultStatus::ErrorMissingBKTRBaseRomFS) { | ||||||
|  |                     // If the last 3 hexadecimal digits of the NCA's TitleID is between 0x1 and
 | ||||||
|  |                     // 0x7FF, this is a multi-program update NCA. Otherwise, this is a regular
 | ||||||
|  |                     // update NCA.
 | ||||||
|  |                     if ((next_nca->GetTitleId() & 0x7FF) != 0 && | ||||||
|  |                         (next_nca->GetTitleId() & 0x800) == 0) { | ||||||
|  |                         ncas[next_nca->GetTitleId()][{cnmt.GetType(), rec.type}] = | ||||||
|  |                             std::move(next_nca); | ||||||
|  |                     } else { | ||||||
|  |                         ncas[cnmt.GetTitleID()][{cnmt.GetType(), rec.type}] = std::move(next_nca); | ||||||
|  |                     } | ||||||
|  |                 } else { | ||||||
|                     ncas[next_nca->GetTitleId()][{cnmt.GetType(), rec.type}] = std::move(next_nca); |                     ncas[next_nca->GetTitleId()][{cnmt.GetType(), rec.type}] = std::move(next_nca); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei