mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Merge pull request #5203 from Subv/apt_title_allowed
Services/APT: Implemented the IsTitleAllowed function.
This commit is contained in:
		
						commit
						1856752b61
					
				
					 4 changed files with 30 additions and 2 deletions
				
			
		|  | @ -921,6 +921,21 @@ void Module::APTInterface::CheckNew3DS(Kernel::HLERequestContext& ctx) { | ||||||
|     LOG_WARNING(Service_APT, "(STUBBED) called"); |     LOG_WARNING(Service_APT, "(STUBBED) called"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void Module::APTInterface::IsTitleAllowed(Kernel::HLERequestContext& ctx) { | ||||||
|  |     IPC::RequestParser rp(ctx, 0x105, 4, 0); // 0x01050100
 | ||||||
|  |     const u64 program_id = rp.Pop<u64>(); | ||||||
|  |     const auto media_type = rp.PopEnum<FS::MediaType>(); | ||||||
|  |     rp.Skip(1, false); // Padding
 | ||||||
|  | 
 | ||||||
|  |     // We allow all titles to be launched, so this function is a no-op
 | ||||||
|  |     IPC::RequestBuilder rb = rp.MakeBuilder(2, 0); | ||||||
|  |     rb.Push(RESULT_SUCCESS); | ||||||
|  |     rb.Push(true); | ||||||
|  | 
 | ||||||
|  |     LOG_DEBUG(Service_APT, "called, title_id={:016X} media_type={}", program_id, | ||||||
|  |               static_cast<u32>(media_type)); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| Module::APTInterface::APTInterface(std::shared_ptr<Module> apt, const char* name, u32 max_session) | Module::APTInterface::APTInterface(std::shared_ptr<Module> apt, const char* name, u32 max_session) | ||||||
|     : ServiceFramework(name, max_session), apt(std::move(apt)) {} |     : ServiceFramework(name, max_session), apt(std::move(apt)) {} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -646,6 +646,19 @@ public: | ||||||
|          */ |          */ | ||||||
|         void CheckNew3DS(Kernel::HLERequestContext& ctx); |         void CheckNew3DS(Kernel::HLERequestContext& ctx); | ||||||
| 
 | 
 | ||||||
|  |         /**
 | ||||||
|  |          * APT::IsTitleAllowed service function | ||||||
|  |          *  Inputs: | ||||||
|  |          *      0 : Header Code[0x01050100] | ||||||
|  |          *    1-2 : Program id | ||||||
|  |          *      3 : Media type | ||||||
|  |          *      4 : Padding | ||||||
|  |          *  Outputs: | ||||||
|  |          *      1: Result code, 0 on success, otherwise error code | ||||||
|  |          *      2: u8 output, 0 if the title is not allowed, 1 if it is | ||||||
|  |          */ | ||||||
|  |         void IsTitleAllowed(Kernel::HLERequestContext& ctx); | ||||||
|  | 
 | ||||||
|     protected: |     protected: | ||||||
|         bool application_reset_prepared{}; |         bool application_reset_prepared{}; | ||||||
|         std::shared_ptr<Module> apt; |         std::shared_ptr<Module> apt; | ||||||
|  |  | ||||||
|  | @ -100,7 +100,7 @@ APT_A::APT_A(std::shared_ptr<Module> apt) | ||||||
|         {0x01010000, &APT_A::CheckNew3DSApp, "CheckNew3DSApp"}, |         {0x01010000, &APT_A::CheckNew3DSApp, "CheckNew3DSApp"}, | ||||||
|         {0x01020000, &APT_A::CheckNew3DS, "CheckNew3DS"}, |         {0x01020000, &APT_A::CheckNew3DS, "CheckNew3DS"}, | ||||||
|         {0x01040000, nullptr, "IsStandardMemoryLayout"}, |         {0x01040000, nullptr, "IsStandardMemoryLayout"}, | ||||||
|         {0x01050100, nullptr, "IsTitleAllowed"}, |         {0x01050100, &APT_A::IsTitleAllowed, "IsTitleAllowed"}, | ||||||
|     }; |     }; | ||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -100,7 +100,7 @@ APT_S::APT_S(std::shared_ptr<Module> apt) | ||||||
|         {0x01010000, &APT_S::CheckNew3DSApp, "CheckNew3DSApp"}, |         {0x01010000, &APT_S::CheckNew3DSApp, "CheckNew3DSApp"}, | ||||||
|         {0x01020000, &APT_S::CheckNew3DS, "CheckNew3DS"}, |         {0x01020000, &APT_S::CheckNew3DS, "CheckNew3DS"}, | ||||||
|         {0x01040000, nullptr, "IsStandardMemoryLayout"}, |         {0x01040000, nullptr, "IsStandardMemoryLayout"}, | ||||||
|         {0x01050100, nullptr, "IsTitleAllowed"}, |         {0x01050100, &APT_S::IsTitleAllowed, "IsTitleAllowed"}, | ||||||
|     }; |     }; | ||||||
|     RegisterHandlers(functions); |     RegisterHandlers(functions); | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue