diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/friend/friend.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/grc/grc.cpp | 3 | ||||
| -rw-r--r-- | src/core/hle/service/lbl/lbl.cpp | 1 | ||||
| -rw-r--r-- | src/core/hle/service/ldn/ldn.cpp | 1 | ||||
| -rw-r--r-- | src/core/hle/service/ldr/ldr.cpp | 105 | ||||
| -rw-r--r-- | src/core/hle/service/mig/mig.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/service/mm/mm_u.cpp | 32 | ||||
| -rw-r--r-- | src/core/hle/service/ncm/ncm.cpp | 20 | ||||
| -rw-r--r-- | src/core/hle/service/nfc/nfc.cpp | 6 |
9 files changed, 116 insertions, 64 deletions
diff --git a/src/core/hle/service/friend/friend.cpp b/src/core/hle/service/friend/friend.cpp index 68f259b70..b7adaffc7 100644 --- a/src/core/hle/service/friend/friend.cpp +++ b/src/core/hle/service/friend/friend.cpp | |||
| @@ -25,9 +25,13 @@ public: | |||
| 25 | {10101, &IFriendService::GetFriendList, "GetFriendList"}, | 25 | {10101, &IFriendService::GetFriendList, "GetFriendList"}, |
| 26 | {10102, nullptr, "UpdateFriendInfo"}, | 26 | {10102, nullptr, "UpdateFriendInfo"}, |
| 27 | {10110, nullptr, "GetFriendProfileImage"}, | 27 | {10110, nullptr, "GetFriendProfileImage"}, |
| 28 | {10120, nullptr, "Unknown10120"}, | ||
| 29 | {10121, nullptr, "Unknown10121"}, | ||
| 28 | {10200, nullptr, "SendFriendRequestForApplication"}, | 30 | {10200, nullptr, "SendFriendRequestForApplication"}, |
| 29 | {10211, nullptr, "AddFacedFriendRequestForApplication"}, | 31 | {10211, nullptr, "AddFacedFriendRequestForApplication"}, |
| 30 | {10400, &IFriendService::GetBlockedUserListIds, "GetBlockedUserListIds"}, | 32 | {10400, &IFriendService::GetBlockedUserListIds, "GetBlockedUserListIds"}, |
| 33 | {10420, nullptr, "Unknown10420"}, | ||
| 34 | {10421, nullptr, "Unknown10421"}, | ||
| 31 | {10500, nullptr, "GetProfileList"}, | 35 | {10500, nullptr, "GetProfileList"}, |
| 32 | {10600, nullptr, "DeclareOpenOnlinePlaySession"}, | 36 | {10600, nullptr, "DeclareOpenOnlinePlaySession"}, |
| 33 | {10601, &IFriendService::DeclareCloseOnlinePlaySession, "DeclareCloseOnlinePlaySession"}, | 37 | {10601, &IFriendService::DeclareCloseOnlinePlaySession, "DeclareCloseOnlinePlaySession"}, |
| @@ -97,6 +101,8 @@ public: | |||
| 97 | {30900, nullptr, "SendFriendInvitation"}, | 101 | {30900, nullptr, "SendFriendInvitation"}, |
| 98 | {30910, nullptr, "ReadFriendInvitation"}, | 102 | {30910, nullptr, "ReadFriendInvitation"}, |
| 99 | {30911, nullptr, "ReadAllFriendInvitations"}, | 103 | {30911, nullptr, "ReadAllFriendInvitations"}, |
| 104 | {40100, nullptr, "Unknown40100"}, | ||
| 105 | {40400, nullptr, "Unknown40400"}, | ||
| 100 | {49900, nullptr, "DeleteNetworkServiceAccountCache"}, | 106 | {49900, nullptr, "DeleteNetworkServiceAccountCache"}, |
| 101 | }; | 107 | }; |
| 102 | // clang-format on | 108 | // clang-format on |
diff --git a/src/core/hle/service/grc/grc.cpp b/src/core/hle/service/grc/grc.cpp index 24910ac6c..401e0b208 100644 --- a/src/core/hle/service/grc/grc.cpp +++ b/src/core/hle/service/grc/grc.cpp | |||
| @@ -17,6 +17,9 @@ public: | |||
| 17 | static const FunctionInfo functions[] = { | 17 | static const FunctionInfo functions[] = { |
| 18 | {1, nullptr, "OpenContinuousRecorder"}, | 18 | {1, nullptr, "OpenContinuousRecorder"}, |
| 19 | {2, nullptr, "OpenGameMovieTrimmer"}, | 19 | {2, nullptr, "OpenGameMovieTrimmer"}, |
| 20 | {3, nullptr, "OpenOffscreenRecorder"}, | ||
| 21 | {101, nullptr, "CreateMovieMaker"}, | ||
| 22 | {9903, nullptr, "SetOffscreenRecordingMarker"} | ||
| 20 | }; | 23 | }; |
| 21 | // clang-format on | 24 | // clang-format on |
| 22 | 25 | ||
diff --git a/src/core/hle/service/lbl/lbl.cpp b/src/core/hle/service/lbl/lbl.cpp index e8f9f2d29..17350b403 100644 --- a/src/core/hle/service/lbl/lbl.cpp +++ b/src/core/hle/service/lbl/lbl.cpp | |||
| @@ -47,6 +47,7 @@ public: | |||
| 47 | {26, &LBL::EnableVrMode, "EnableVrMode"}, | 47 | {26, &LBL::EnableVrMode, "EnableVrMode"}, |
| 48 | {27, &LBL::DisableVrMode, "DisableVrMode"}, | 48 | {27, &LBL::DisableVrMode, "DisableVrMode"}, |
| 49 | {28, &LBL::IsVrModeEnabled, "IsVrModeEnabled"}, | 49 | {28, &LBL::IsVrModeEnabled, "IsVrModeEnabled"}, |
| 50 | {29, nullptr, "IsAutoBrightnessControlSupported"}, | ||
| 50 | }; | 51 | }; |
| 51 | // clang-format on | 52 | // clang-format on |
| 52 | 53 | ||
diff --git a/src/core/hle/service/ldn/ldn.cpp b/src/core/hle/service/ldn/ldn.cpp index 92adde6d4..49972cd69 100644 --- a/src/core/hle/service/ldn/ldn.cpp +++ b/src/core/hle/service/ldn/ldn.cpp | |||
| @@ -69,6 +69,7 @@ public: | |||
| 69 | {101, nullptr, "GetNetworkInfoLatestUpdate"}, | 69 | {101, nullptr, "GetNetworkInfoLatestUpdate"}, |
| 70 | {102, nullptr, "Scan"}, | 70 | {102, nullptr, "Scan"}, |
| 71 | {103, nullptr, "ScanPrivate"}, | 71 | {103, nullptr, "ScanPrivate"}, |
| 72 | {104, nullptr, "SetWirelessControllerRestriction"}, | ||
| 72 | {200, nullptr, "OpenAccessPoint"}, | 73 | {200, nullptr, "OpenAccessPoint"}, |
| 73 | {201, nullptr, "CloseAccessPoint"}, | 74 | {201, nullptr, "CloseAccessPoint"}, |
| 74 | {202, nullptr, "CreateNetwork"}, | 75 | {202, nullptr, "CreateNetwork"}, |
diff --git a/src/core/hle/service/ldr/ldr.cpp b/src/core/hle/service/ldr/ldr.cpp index 6ad3be1b3..64a526b9e 100644 --- a/src/core/hle/service/ldr/ldr.cpp +++ b/src/core/hle/service/ldr/ldr.cpp | |||
| @@ -39,42 +39,61 @@ constexpr ResultCode ERROR_NOT_INITIALIZED{ErrorModule::Loader, 87}; | |||
| 39 | constexpr std::size_t MAXIMUM_LOADED_RO{0x40}; | 39 | constexpr std::size_t MAXIMUM_LOADED_RO{0x40}; |
| 40 | constexpr std::size_t MAXIMUM_MAP_RETRIES{0x200}; | 40 | constexpr std::size_t MAXIMUM_MAP_RETRIES{0x200}; |
| 41 | 41 | ||
| 42 | constexpr std::size_t TEXT_INDEX{0}; | ||
| 43 | constexpr std::size_t RO_INDEX{1}; | ||
| 44 | constexpr std::size_t DATA_INDEX{2}; | ||
| 45 | |||
| 46 | struct NRRCertification { | ||
| 47 | u64_le application_id_mask; | ||
| 48 | u64_le application_id_pattern; | ||
| 49 | INSERT_PADDING_BYTES(0x10); | ||
| 50 | std::array<u8, 0x100> public_key; // Also known as modulus | ||
| 51 | std::array<u8, 0x100> signature; | ||
| 52 | }; | ||
| 53 | static_assert(sizeof(NRRCertification) == 0x220, "NRRCertification has invalid size."); | ||
| 54 | |||
| 42 | struct NRRHeader { | 55 | struct NRRHeader { |
| 43 | u32_le magic; | 56 | u32_le magic; |
| 44 | INSERT_PADDING_BYTES(12); | 57 | u32_le certification_signature_key_generation; // 9.0.0+ |
| 45 | u64_le title_id_mask; | 58 | INSERT_PADDING_WORDS(2); |
| 46 | u64_le title_id_pattern; | 59 | NRRCertification certification; |
| 47 | INSERT_PADDING_BYTES(16); | 60 | std::array<u8, 0x100> signature; |
| 48 | std::array<u8, 0x100> modulus; | 61 | u64_le application_id; |
| 49 | std::array<u8, 0x100> signature_1; | ||
| 50 | std::array<u8, 0x100> signature_2; | ||
| 51 | u64_le title_id; | ||
| 52 | u32_le size; | 62 | u32_le size; |
| 53 | INSERT_PADDING_BYTES(4); | 63 | u8 nrr_kind; // 7.0.0+ |
| 64 | INSERT_PADDING_BYTES(3); | ||
| 54 | u32_le hash_offset; | 65 | u32_le hash_offset; |
| 55 | u32_le hash_count; | 66 | u32_le hash_count; |
| 56 | INSERT_PADDING_BYTES(8); | 67 | INSERT_PADDING_WORDS(2); |
| 68 | }; | ||
| 69 | static_assert(sizeof(NRRHeader) == 0x350, "NRRHeader has invalid size."); | ||
| 70 | |||
| 71 | struct SegmentHeader { | ||
| 72 | u32_le memory_offset; | ||
| 73 | u32_le memory_size; | ||
| 57 | }; | 74 | }; |
| 58 | static_assert(sizeof(NRRHeader) == 0x350, "NRRHeader has incorrect size."); | 75 | static_assert(sizeof(SegmentHeader) == 0x8, "SegmentHeader has invalid size."); |
| 59 | 76 | ||
| 60 | struct NROHeader { | 77 | struct NROHeader { |
| 78 | // Switchbrew calls this "Start" (0x10) | ||
| 61 | INSERT_PADDING_WORDS(1); | 79 | INSERT_PADDING_WORDS(1); |
| 62 | u32_le mod_offset; | 80 | u32_le mod_offset; |
| 63 | INSERT_PADDING_WORDS(2); | 81 | INSERT_PADDING_WORDS(2); |
| 82 | |||
| 83 | // Switchbrew calls this "Header" (0x70) | ||
| 64 | u32_le magic; | 84 | u32_le magic; |
| 65 | u32_le version; | 85 | u32_le version; |
| 66 | u32_le nro_size; | 86 | u32_le nro_size; |
| 67 | u32_le flags; | 87 | u32_le flags; |
| 68 | u32_le text_offset; | 88 | // .text, .ro, .data |
| 69 | u32_le text_size; | 89 | std::array<SegmentHeader, 3> segment_headers; |
| 70 | u32_le ro_offset; | ||
| 71 | u32_le ro_size; | ||
| 72 | u32_le rw_offset; | ||
| 73 | u32_le rw_size; | ||
| 74 | u32_le bss_size; | 90 | u32_le bss_size; |
| 75 | INSERT_PADDING_WORDS(1); | 91 | INSERT_PADDING_WORDS(1); |
| 76 | std::array<u8, 0x20> build_id; | 92 | std::array<u8, 0x20> build_id; |
| 77 | INSERT_PADDING_BYTES(0x20); | 93 | u32_le dso_handle_offset; |
| 94 | INSERT_PADDING_WORDS(1); | ||
| 95 | // .apiInfo, .dynstr, .dynsym | ||
| 96 | std::array<SegmentHeader, 3> segment_headers_2; | ||
| 78 | }; | 97 | }; |
| 79 | static_assert(sizeof(NROHeader) == 0x80, "NROHeader has invalid size."); | 98 | static_assert(sizeof(NROHeader) == 0x80, "NROHeader has invalid size."); |
| 80 | 99 | ||
| @@ -91,6 +110,7 @@ struct NROInfo { | |||
| 91 | std::size_t data_size{}; | 110 | std::size_t data_size{}; |
| 92 | VAddr src_addr{}; | 111 | VAddr src_addr{}; |
| 93 | }; | 112 | }; |
| 113 | static_assert(sizeof(NROInfo) == 0x60, "NROInfo has invalid size."); | ||
| 94 | 114 | ||
| 95 | class DebugMonitor final : public ServiceFramework<DebugMonitor> { | 115 | class DebugMonitor final : public ServiceFramework<DebugMonitor> { |
| 96 | public: | 116 | public: |
| @@ -226,11 +246,11 @@ public: | |||
| 226 | return; | 246 | return; |
| 227 | } | 247 | } |
| 228 | 248 | ||
| 229 | if (system.CurrentProcess()->GetTitleID() != header.title_id) { | 249 | if (system.CurrentProcess()->GetTitleID() != header.application_id) { |
| 230 | LOG_ERROR(Service_LDR, | 250 | LOG_ERROR(Service_LDR, |
| 231 | "Attempting to load NRR with title ID other than current process. (actual " | 251 | "Attempting to load NRR with title ID other than current process. (actual " |
| 232 | "{:016X})!", | 252 | "{:016X})!", |
| 233 | header.title_id); | 253 | header.application_id); |
| 234 | IPC::ResponseBuilder rb{ctx, 2}; | 254 | IPC::ResponseBuilder rb{ctx, 2}; |
| 235 | rb.Push(ERROR_INVALID_NRR); | 255 | rb.Push(ERROR_INVALID_NRR); |
| 236 | return; | 256 | return; |
| @@ -348,10 +368,10 @@ public: | |||
| 348 | 368 | ||
| 349 | ResultCode LoadNro(Kernel::Process* process, const NROHeader& nro_header, VAddr nro_addr, | 369 | ResultCode LoadNro(Kernel::Process* process, const NROHeader& nro_header, VAddr nro_addr, |
| 350 | VAddr start) const { | 370 | VAddr start) const { |
| 351 | const VAddr text_start{start + nro_header.text_offset}; | 371 | const VAddr text_start{start + nro_header.segment_headers[TEXT_INDEX].memory_offset}; |
| 352 | const VAddr ro_start{start + nro_header.ro_offset}; | 372 | const VAddr ro_start{start + nro_header.segment_headers[RO_INDEX].memory_offset}; |
| 353 | const VAddr data_start{start + nro_header.rw_offset}; | 373 | const VAddr data_start{start + nro_header.segment_headers[DATA_INDEX].memory_offset}; |
| 354 | const VAddr bss_start{data_start + nro_header.rw_size}; | 374 | const VAddr bss_start{data_start + nro_header.segment_headers[DATA_INDEX].memory_size}; |
| 355 | const VAddr bss_end_addr{ | 375 | const VAddr bss_end_addr{ |
| 356 | Common::AlignUp(bss_start + nro_header.bss_size, Kernel::Memory::PageSize)}; | 376 | Common::AlignUp(bss_start + nro_header.bss_size, Kernel::Memory::PageSize)}; |
| 357 | 377 | ||
| @@ -360,9 +380,12 @@ public: | |||
| 360 | system.Memory().ReadBlock(src_addr, source_data.data(), source_data.size()); | 380 | system.Memory().ReadBlock(src_addr, source_data.data(), source_data.size()); |
| 361 | system.Memory().WriteBlock(dst_addr, source_data.data(), source_data.size()); | 381 | system.Memory().WriteBlock(dst_addr, source_data.data(), source_data.size()); |
| 362 | }}; | 382 | }}; |
| 363 | CopyCode(nro_addr + nro_header.text_offset, text_start, nro_header.text_size); | 383 | CopyCode(nro_addr + nro_header.segment_headers[TEXT_INDEX].memory_offset, text_start, |
| 364 | CopyCode(nro_addr + nro_header.ro_offset, ro_start, nro_header.ro_size); | 384 | nro_header.segment_headers[TEXT_INDEX].memory_size); |
| 365 | CopyCode(nro_addr + nro_header.rw_offset, data_start, nro_header.rw_size); | 385 | CopyCode(nro_addr + nro_header.segment_headers[RO_INDEX].memory_offset, ro_start, |
| 386 | nro_header.segment_headers[RO_INDEX].memory_size); | ||
| 387 | CopyCode(nro_addr + nro_header.segment_headers[DATA_INDEX].memory_offset, data_start, | ||
| 388 | nro_header.segment_headers[DATA_INDEX].memory_size); | ||
| 366 | 389 | ||
| 367 | CASCADE_CODE(process->PageTable().SetCodeMemoryPermission( | 390 | CASCADE_CODE(process->PageTable().SetCodeMemoryPermission( |
| 368 | text_start, ro_start - text_start, Kernel::Memory::MemoryPermission::ReadAndExecute)); | 391 | text_start, ro_start - text_start, Kernel::Memory::MemoryPermission::ReadAndExecute)); |
| @@ -484,9 +507,11 @@ public: | |||
| 484 | } | 507 | } |
| 485 | 508 | ||
| 486 | // Track the loaded NRO | 509 | // Track the loaded NRO |
| 487 | nro.insert_or_assign(*map_result, NROInfo{hash, *map_result, nro_size, bss_address, | 510 | nro.insert_or_assign(*map_result, |
| 488 | bss_size, header.text_size, header.ro_size, | 511 | NROInfo{hash, *map_result, nro_size, bss_address, bss_size, |
| 489 | header.rw_size, nro_address}); | 512 | header.segment_headers[TEXT_INDEX].memory_size, |
| 513 | header.segment_headers[RO_INDEX].memory_size, | ||
| 514 | header.segment_headers[DATA_INDEX].memory_size, nro_address}); | ||
| 490 | 515 | ||
| 491 | // Invalidate JIT caches for the newly mapped process code | 516 | // Invalidate JIT caches for the newly mapped process code |
| 492 | system.InvalidateCpuInstructionCaches(); | 517 | system.InvalidateCpuInstructionCaches(); |
| @@ -584,11 +609,21 @@ private: | |||
| 584 | static bool IsValidNRO(const NROHeader& header, u64 nro_size, u64 bss_size) { | 609 | static bool IsValidNRO(const NROHeader& header, u64 nro_size, u64 bss_size) { |
| 585 | return header.magic == Common::MakeMagic('N', 'R', 'O', '0') && | 610 | return header.magic == Common::MakeMagic('N', 'R', 'O', '0') && |
| 586 | header.nro_size == nro_size && header.bss_size == bss_size && | 611 | header.nro_size == nro_size && header.bss_size == bss_size && |
| 587 | header.ro_offset == header.text_offset + header.text_size && | 612 | |
| 588 | header.rw_offset == header.ro_offset + header.ro_size && | 613 | header.segment_headers[RO_INDEX].memory_offset == |
| 589 | nro_size == header.rw_offset + header.rw_size && | 614 | header.segment_headers[TEXT_INDEX].memory_offset + |
| 590 | Common::Is4KBAligned(header.text_size) && Common::Is4KBAligned(header.ro_size) && | 615 | header.segment_headers[TEXT_INDEX].memory_size && |
| 591 | Common::Is4KBAligned(header.rw_size); | 616 | |
| 617 | header.segment_headers[DATA_INDEX].memory_offset == | ||
| 618 | header.segment_headers[RO_INDEX].memory_offset + | ||
| 619 | header.segment_headers[RO_INDEX].memory_size && | ||
| 620 | |||
| 621 | nro_size == header.segment_headers[DATA_INDEX].memory_offset + | ||
| 622 | header.segment_headers[DATA_INDEX].memory_size && | ||
| 623 | |||
| 624 | Common::Is4KBAligned(header.segment_headers[TEXT_INDEX].memory_size) && | ||
| 625 | Common::Is4KBAligned(header.segment_headers[RO_INDEX].memory_size) && | ||
| 626 | Common::Is4KBAligned(header.segment_headers[DATA_INDEX].memory_size); | ||
| 592 | } | 627 | } |
| 593 | Core::System& system; | 628 | Core::System& system; |
| 594 | }; | 629 | }; |
diff --git a/src/core/hle/service/mig/mig.cpp b/src/core/hle/service/mig/mig.cpp index d16367f2c..113a4665c 100644 --- a/src/core/hle/service/mig/mig.cpp +++ b/src/core/hle/service/mig/mig.cpp | |||
| @@ -20,6 +20,12 @@ public: | |||
| 20 | {101, nullptr, "ResumeServer"}, | 20 | {101, nullptr, "ResumeServer"}, |
| 21 | {200, nullptr, "CreateClient"}, | 21 | {200, nullptr, "CreateClient"}, |
| 22 | {201, nullptr, "ResumeClient"}, | 22 | {201, nullptr, "ResumeClient"}, |
| 23 | {1001, nullptr, "Unknown1001"}, | ||
| 24 | {1010, nullptr, "Unknown1010"}, | ||
| 25 | {1100, nullptr, "Unknown1100"}, | ||
| 26 | {1101, nullptr, "Unknown1101"}, | ||
| 27 | {1200, nullptr, "Unknown1200"}, | ||
| 28 | {1201, nullptr, "Unknown1201"} | ||
| 23 | }; | 29 | }; |
| 24 | // clang-format on | 30 | // clang-format on |
| 25 | 31 | ||
diff --git a/src/core/hle/service/mm/mm_u.cpp b/src/core/hle/service/mm/mm_u.cpp index def63dc8a..25c24e537 100644 --- a/src/core/hle/service/mm/mm_u.cpp +++ b/src/core/hle/service/mm/mm_u.cpp | |||
| @@ -14,14 +14,14 @@ public: | |||
| 14 | explicit MM_U() : ServiceFramework{"mm:u"} { | 14 | explicit MM_U() : ServiceFramework{"mm:u"} { |
| 15 | // clang-format off | 15 | // clang-format off |
| 16 | static const FunctionInfo functions[] = { | 16 | static const FunctionInfo functions[] = { |
| 17 | {0, &MM_U::Initialize, "Initialize"}, | 17 | {0, &MM_U::InitializeOld, "InitializeOld"}, |
| 18 | {1, &MM_U::Finalize, "Finalize"}, | 18 | {1, &MM_U::FinalizeOld, "FinalizeOld"}, |
| 19 | {2, &MM_U::SetAndWait, "SetAndWait"}, | 19 | {2, &MM_U::SetAndWaitOld, "SetAndWaitOld"}, |
| 20 | {3, &MM_U::Get, "Get"}, | 20 | {3, &MM_U::GetOld, "GetOld"}, |
| 21 | {4, &MM_U::InitializeWithId, "InitializeWithId"}, | 21 | {4, &MM_U::Initialize, "Initialize"}, |
| 22 | {5, &MM_U::FinalizeWithId, "FinalizeWithId"}, | 22 | {5, &MM_U::Finalize, "Finalize"}, |
| 23 | {6, &MM_U::SetAndWaitWithId, "SetAndWaitWithId"}, | 23 | {6, &MM_U::SetAndWait, "SetAndWait"}, |
| 24 | {7, &MM_U::GetWithId, "GetWithId"}, | 24 | {7, &MM_U::Get, "Get"}, |
| 25 | }; | 25 | }; |
| 26 | // clang-format on | 26 | // clang-format on |
| 27 | 27 | ||
| @@ -29,21 +29,21 @@ public: | |||
| 29 | } | 29 | } |
| 30 | 30 | ||
| 31 | private: | 31 | private: |
| 32 | void Initialize(Kernel::HLERequestContext& ctx) { | 32 | void InitializeOld(Kernel::HLERequestContext& ctx) { |
| 33 | LOG_WARNING(Service_MM, "(STUBBED) called"); | 33 | LOG_WARNING(Service_MM, "(STUBBED) called"); |
| 34 | 34 | ||
| 35 | IPC::ResponseBuilder rb{ctx, 2}; | 35 | IPC::ResponseBuilder rb{ctx, 2}; |
| 36 | rb.Push(RESULT_SUCCESS); | 36 | rb.Push(RESULT_SUCCESS); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | void Finalize(Kernel::HLERequestContext& ctx) { | 39 | void FinalizeOld(Kernel::HLERequestContext& ctx) { |
| 40 | LOG_WARNING(Service_MM, "(STUBBED) called"); | 40 | LOG_WARNING(Service_MM, "(STUBBED) called"); |
| 41 | 41 | ||
| 42 | IPC::ResponseBuilder rb{ctx, 2}; | 42 | IPC::ResponseBuilder rb{ctx, 2}; |
| 43 | rb.Push(RESULT_SUCCESS); | 43 | rb.Push(RESULT_SUCCESS); |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | void SetAndWait(Kernel::HLERequestContext& ctx) { | 46 | void SetAndWaitOld(Kernel::HLERequestContext& ctx) { |
| 47 | IPC::RequestParser rp{ctx}; | 47 | IPC::RequestParser rp{ctx}; |
| 48 | min = rp.Pop<u32>(); | 48 | min = rp.Pop<u32>(); |
| 49 | max = rp.Pop<u32>(); | 49 | max = rp.Pop<u32>(); |
| @@ -54,7 +54,7 @@ private: | |||
| 54 | rb.Push(RESULT_SUCCESS); | 54 | rb.Push(RESULT_SUCCESS); |
| 55 | } | 55 | } |
| 56 | 56 | ||
| 57 | void Get(Kernel::HLERequestContext& ctx) { | 57 | void GetOld(Kernel::HLERequestContext& ctx) { |
| 58 | LOG_WARNING(Service_MM, "(STUBBED) called"); | 58 | LOG_WARNING(Service_MM, "(STUBBED) called"); |
| 59 | 59 | ||
| 60 | IPC::ResponseBuilder rb{ctx, 3}; | 60 | IPC::ResponseBuilder rb{ctx, 3}; |
| @@ -62,7 +62,7 @@ private: | |||
| 62 | rb.Push(current); | 62 | rb.Push(current); |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | void InitializeWithId(Kernel::HLERequestContext& ctx) { | 65 | void Initialize(Kernel::HLERequestContext& ctx) { |
| 66 | LOG_WARNING(Service_MM, "(STUBBED) called"); | 66 | LOG_WARNING(Service_MM, "(STUBBED) called"); |
| 67 | 67 | ||
| 68 | IPC::ResponseBuilder rb{ctx, 3}; | 68 | IPC::ResponseBuilder rb{ctx, 3}; |
| @@ -70,14 +70,14 @@ private: | |||
| 70 | rb.Push<u32>(id); // Any non zero value | 70 | rb.Push<u32>(id); // Any non zero value |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | void FinalizeWithId(Kernel::HLERequestContext& ctx) { | 73 | void Finalize(Kernel::HLERequestContext& ctx) { |
| 74 | LOG_WARNING(Service_MM, "(STUBBED) called"); | 74 | LOG_WARNING(Service_MM, "(STUBBED) called"); |
| 75 | 75 | ||
| 76 | IPC::ResponseBuilder rb{ctx, 2}; | 76 | IPC::ResponseBuilder rb{ctx, 2}; |
| 77 | rb.Push(RESULT_SUCCESS); | 77 | rb.Push(RESULT_SUCCESS); |
| 78 | } | 78 | } |
| 79 | 79 | ||
| 80 | void SetAndWaitWithId(Kernel::HLERequestContext& ctx) { | 80 | void SetAndWait(Kernel::HLERequestContext& ctx) { |
| 81 | IPC::RequestParser rp{ctx}; | 81 | IPC::RequestParser rp{ctx}; |
| 82 | u32 input_id = rp.Pop<u32>(); | 82 | u32 input_id = rp.Pop<u32>(); |
| 83 | min = rp.Pop<u32>(); | 83 | min = rp.Pop<u32>(); |
| @@ -90,7 +90,7 @@ private: | |||
| 90 | rb.Push(RESULT_SUCCESS); | 90 | rb.Push(RESULT_SUCCESS); |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | void GetWithId(Kernel::HLERequestContext& ctx) { | 93 | void Get(Kernel::HLERequestContext& ctx) { |
| 94 | LOG_WARNING(Service_MM, "(STUBBED) called"); | 94 | LOG_WARNING(Service_MM, "(STUBBED) called"); |
| 95 | 95 | ||
| 96 | IPC::ResponseBuilder rb{ctx, 3}; | 96 | IPC::ResponseBuilder rb{ctx, 3}; |
diff --git a/src/core/hle/service/ncm/ncm.cpp b/src/core/hle/service/ncm/ncm.cpp index ec9aae04a..e38dea1f4 100644 --- a/src/core/hle/service/ncm/ncm.cpp +++ b/src/core/hle/service/ncm/ncm.cpp | |||
| @@ -28,16 +28,16 @@ public: | |||
| 28 | {7, nullptr, "ResolveApplicationLegalInformationPath"}, | 28 | {7, nullptr, "ResolveApplicationLegalInformationPath"}, |
| 29 | {8, nullptr, "RedirectApplicationLegalInformationPath"}, | 29 | {8, nullptr, "RedirectApplicationLegalInformationPath"}, |
| 30 | {9, nullptr, "Refresh"}, | 30 | {9, nullptr, "Refresh"}, |
| 31 | {10, nullptr, "RedirectProgramPath2"}, | 31 | {10, nullptr, "RedirectApplicationProgramPath"}, |
| 32 | {11, nullptr, "Refresh2"}, | 32 | {11, nullptr, "ClearApplicationRedirection"}, |
| 33 | {12, nullptr, "DeleteProgramPath"}, | 33 | {12, nullptr, "EraseProgramRedirection"}, |
| 34 | {13, nullptr, "DeleteApplicationControlPath"}, | 34 | {13, nullptr, "EraseApplicationControlRedirection"}, |
| 35 | {14, nullptr, "DeleteApplicationHtmlDocumentPath"}, | 35 | {14, nullptr, "EraseApplicationHtmlDocumentRedirection"}, |
| 36 | {15, nullptr, "DeleteApplicationLegalInformationPath"}, | 36 | {15, nullptr, "EraseApplicationLegalInformationRedirection"}, |
| 37 | {16, nullptr, ""}, | 37 | {16, nullptr, "ResolveProgramPathForDebug"}, |
| 38 | {17, nullptr, ""}, | 38 | {17, nullptr, "RedirectProgramPathForDebug"}, |
| 39 | {18, nullptr, ""}, | 39 | {18, nullptr, "RedirectApplicationProgramPathForDebug"}, |
| 40 | {19, nullptr, ""}, | 40 | {19, nullptr, "EraseProgramRedirectionForDebug"}, |
| 41 | }; | 41 | }; |
| 42 | // clang-format on | 42 | // clang-format on |
| 43 | 43 | ||
diff --git a/src/core/hle/service/nfc/nfc.cpp b/src/core/hle/service/nfc/nfc.cpp index b7b34ce7e..780ea30fe 100644 --- a/src/core/hle/service/nfc/nfc.cpp +++ b/src/core/hle/service/nfc/nfc.cpp | |||
| @@ -198,9 +198,9 @@ public: | |||
| 198 | static const FunctionInfo functions[] = { | 198 | static const FunctionInfo functions[] = { |
| 199 | {0, nullptr, "Initialize"}, | 199 | {0, nullptr, "Initialize"}, |
| 200 | {1, nullptr, "Finalize"}, | 200 | {1, nullptr, "Finalize"}, |
| 201 | {2, nullptr, "GetState"}, | 201 | {2, nullptr, "GetStateOld"}, |
| 202 | {3, nullptr, "IsNfcEnabled"}, | 202 | {3, nullptr, "IsNfcEnabledOld"}, |
| 203 | {100, nullptr, "SetNfcEnabled"}, | 203 | {100, nullptr, "SetNfcEnabledOld"}, |
| 204 | {400, nullptr, "InitializeSystem"}, | 204 | {400, nullptr, "InitializeSystem"}, |
| 205 | {401, nullptr, "FinalizeSystem"}, | 205 | {401, nullptr, "FinalizeSystem"}, |
| 206 | {402, nullptr, "GetState"}, | 206 | {402, nullptr, "GetState"}, |