mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-10-31 07:59:02 -05:00 
			
		
		
		
	Reworked incorrect nifm stubs (#1355)
* Reworked incorrect nifm stubs Need confirmation on `CreateTemporaryNetworkProfile`, unsure which game uses it but according to reversing. It should return a uuid which we currently don't do. Any 0 client id is considered an invalid client id. GetRequestState 0 is considered invalid. * Fixups for nifm
This commit is contained in:
		| @@ -65,7 +65,7 @@ private: | ||||
|         LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 3}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.Push<u32>(0); | ||||
|         rb.Push<u32>(3); | ||||
|     } | ||||
|  | ||||
|     void GetResult(Kernel::HLERequestContext& ctx) { | ||||
| @@ -114,10 +114,11 @@ public: | ||||
|  | ||||
| private: | ||||
|     void GetClientId(Kernel::HLERequestContext& ctx) { | ||||
|         static constexpr u32 client_id = 1; | ||||
|         LOG_WARNING(Service_NIFM, "(STUBBED) called"); | ||||
|         IPC::ResponseBuilder rb{ctx, 4}; | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.Push<u64>(0); | ||||
|         rb.Push<u64>(client_id); // Client ID needs to be non zero otherwise it's considered invalid | ||||
|     } | ||||
|     void CreateScanRequest(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
| @@ -141,10 +142,16 @@ private: | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|     } | ||||
|     void CreateTemporaryNetworkProfile(Kernel::HLERequestContext& ctx) { | ||||
|         IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||||
|         ASSERT_MSG(ctx.GetReadBufferSize() == 0x17c, "NetworkProfileData is not the correct size"); | ||||
|         u128 uuid{}; | ||||
|         auto buffer = ctx.ReadBuffer(); | ||||
|         std::memcpy(&uuid, buffer.data() + 8, sizeof(u128)); | ||||
|  | ||||
|         IPC::ResponseBuilder rb{ctx, 6, 0, 1}; | ||||
|  | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|         rb.PushIpcInterface<INetworkProfile>(); | ||||
|         rb.PushRaw<u128>(uuid); | ||||
|  | ||||
|         LOG_DEBUG(Service_NIFM, "called"); | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 David
					David