Fix ipc request headers
This commit is contained in:
parent
71235bd678
commit
4db78f0a9d
@ -51,7 +51,7 @@ Module::Interface::Interface(std::shared_ptr<Module> frd, const char* name, u32
|
|||||||
Module::Interface::~Interface() = default;
|
Module::Interface::~Interface() = default;
|
||||||
|
|
||||||
void Module::Interface::HasLoggedIn(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::HasLoggedIn(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x1, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||||
|
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
@ -59,7 +59,7 @@ void Module::Interface::HasLoggedIn(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::IsOnline(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::IsOnline(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x2, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||||
|
|
||||||
// This is actually different than HasLoggedIn,
|
// This is actually different than HasLoggedIn,
|
||||||
@ -71,7 +71,7 @@ void Module::Interface::IsOnline(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::Login(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::Login(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x3, 0, 2);
|
IPC::RequestParser rp(ctx);
|
||||||
auto event = rp.PopObject<Kernel::Event>();
|
auto event = rp.PopObject<Kernel::Event>();
|
||||||
|
|
||||||
frd->has_logged_in = true;
|
frd->has_logged_in = true;
|
||||||
@ -82,7 +82,7 @@ void Module::Interface::Login(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::Logout(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::Logout(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x4, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
|
|
||||||
frd->has_logged_in = false;
|
frd->has_logged_in = false;
|
||||||
|
|
||||||
@ -91,14 +91,14 @@ void Module::Interface::Logout(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyFriendKey(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyFriendKey(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x5, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.PushRaw(frd->my_account_data.my_key);
|
rb.PushRaw(frd->my_account_data.my_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyPreference(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyPreference(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x6, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(4, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(4, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.Push<u32>(frd->my_account_data.my_pref_public_mode);
|
rb.Push<u32>(frd->my_account_data.my_pref_public_mode);
|
||||||
@ -107,7 +107,7 @@ void Module::Interface::GetMyPreference(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyProfile(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyProfile(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x7, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(3, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(3, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.PushRaw<FriendProfile>(frd->my_account_data.my_profile);
|
rb.PushRaw<FriendProfile>(frd->my_account_data.my_profile);
|
||||||
@ -125,21 +125,21 @@ void Module::Interface::GetMyPresence(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyScreenName(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyScreenName(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x9, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(7, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(7, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.PushRaw<std::array<u16_le, FRIEND_SCREEN_NAME_SIZE>>(frd->my_account_data.my_screen_name);
|
rb.PushRaw<std::array<u16_le, FRIEND_SCREEN_NAME_SIZE>>(frd->my_account_data.my_screen_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyMii(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyMii(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0xA, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(25, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(25, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.PushRaw<Mii::ChecksummedMiiData>(frd->my_account_data.my_mii_data);
|
rb.PushRaw<Mii::ChecksummedMiiData>(frd->my_account_data.my_mii_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyLocalAccountId(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyLocalAccountId(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0xB, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.Push<u32>(1); // Assume using account ID 1
|
rb.Push<u32>(1); // Assume using account ID 1
|
||||||
@ -148,7 +148,7 @@ void Module::Interface::GetMyLocalAccountId(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyPlayingGame(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyPlayingGame(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0xC, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
||||||
|
|
||||||
TitleData title_data{};
|
TitleData title_data{};
|
||||||
@ -159,14 +159,14 @@ void Module::Interface::GetMyPlayingGame(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyFavoriteGame(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyFavoriteGame(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0xD, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(5, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.PushRaw<TitleData>(frd->my_account_data.my_fav_game);
|
rb.PushRaw<TitleData>(frd->my_account_data.my_fav_game);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyNcPrincipalId(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyNcPrincipalId(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0xE, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.Push<u32>(0); // Stubbed
|
rb.Push<u32>(0); // Stubbed
|
||||||
@ -175,14 +175,14 @@ void Module::Interface::GetMyNcPrincipalId(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyComment(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyComment(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0xF, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(10, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(10, 0);
|
||||||
rb.Push(RESULT_SUCCESS);
|
rb.Push(RESULT_SUCCESS);
|
||||||
rb.PushRaw<std::array<u16_le, FRIEND_COMMENT_SIZE>>(frd->my_account_data.my_comment);
|
rb.PushRaw<std::array<u16_le, FRIEND_COMMENT_SIZE>>(frd->my_account_data.my_comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetMyPassword(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetMyPassword(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x10, 1, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
u32 pass_len = rp.Pop<u32>();
|
u32 pass_len = rp.Pop<u32>();
|
||||||
std::vector<u8> pass_buf(pass_len);
|
std::vector<u8> pass_buf(pass_len);
|
||||||
|
|
||||||
@ -220,7 +220,7 @@ void Module::Interface::GetFriendKeyList(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetFriendPresence(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetFriendPresence(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x12, 1, 2);
|
IPC::RequestParser rp(ctx);
|
||||||
const u32 count = rp.Pop<u32>();
|
const u32 count = rp.Pop<u32>();
|
||||||
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
||||||
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
||||||
@ -235,7 +235,7 @@ void Module::Interface::GetFriendPresence(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetFriendScreenName(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetFriendScreenName(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x12, 5, 2);
|
IPC::RequestParser rp(ctx);
|
||||||
const u32 name_count = rp.Pop<u32>();
|
const u32 name_count = rp.Pop<u32>();
|
||||||
const u32 font_count = rp.Pop<u32>();
|
const u32 font_count = rp.Pop<u32>();
|
||||||
const u32 count = rp.Pop<u32>();
|
const u32 count = rp.Pop<u32>();
|
||||||
@ -267,7 +267,7 @@ void Module::Interface::GetFriendScreenName(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetFriendMii(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetFriendMii(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x14, 1, 4);
|
IPC::RequestParser rp(ctx);
|
||||||
const u32 count = rp.Pop<u32>();
|
const u32 count = rp.Pop<u32>();
|
||||||
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
||||||
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
||||||
@ -319,7 +319,7 @@ void Module::Interface::GetFriendProfile(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetFriendRelationship(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetFriendRelationship(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x16, 1, 2);
|
IPC::RequestParser rp(ctx);
|
||||||
const u32 count = rp.Pop<u32>();
|
const u32 count = rp.Pop<u32>();
|
||||||
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
||||||
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
||||||
@ -380,7 +380,7 @@ void Module::Interface::GetFriendAttributeFlags(Kernel::HLERequestContext& ctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetFriendPlayingGame(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetFriendPlayingGame(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x18, 1, 4);
|
IPC::RequestParser rp(ctx);
|
||||||
const u32 count = rp.Pop<u32>();
|
const u32 count = rp.Pop<u32>();
|
||||||
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
||||||
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
||||||
@ -400,7 +400,7 @@ void Module::Interface::GetFriendPlayingGame(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetFriendFavoriteGame(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetFriendFavoriteGame(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x19, 1, 2);
|
IPC::RequestParser rp(ctx);
|
||||||
const u32 count = rp.Pop<u32>();
|
const u32 count = rp.Pop<u32>();
|
||||||
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
const std::vector<u8> frd_keys = rp.PopStaticBuffer();
|
||||||
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
ASSERT(frd_keys.size() == count * sizeof(FriendKey));
|
||||||
@ -423,7 +423,7 @@ void Module::Interface::GetFriendFavoriteGame(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetFriendInfo(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetFriendInfo(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x1A, 3, 4);
|
IPC::RequestParser rp(ctx);
|
||||||
const u32 count = rp.Pop<u32>();
|
const u32 count = rp.Pop<u32>();
|
||||||
rp.Pop<u32>(); // replace_unknown_characters
|
rp.Pop<u32>(); // replace_unknown_characters
|
||||||
rp.Pop<u32>(); // replace_bad_words
|
rp.Pop<u32>(); // replace_bad_words
|
||||||
@ -453,7 +453,7 @@ void Module::Interface::GetFriendInfo(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::IsIncludedInFriendList(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::IsIncludedInFriendList(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x1B, 2, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
u64_le friendCode = rp.Pop<u64>();
|
u64_le friendCode = rp.Pop<u64>();
|
||||||
|
|
||||||
bool is_included = false;
|
bool is_included = false;
|
||||||
@ -501,7 +501,7 @@ void Module::Interface::UnscrambleLocalFriendCode(Kernel::HLERequestContext& ctx
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::UpdateGameModeDescription(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::UpdateGameModeDescription(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x1D, 0, 2);
|
IPC::RequestParser rp(ctx);
|
||||||
const std::vector<u8> new_game_mode_description = rp.PopStaticBuffer();
|
const std::vector<u8> new_game_mode_description = rp.PopStaticBuffer();
|
||||||
|
|
||||||
u32 copy_size = std::min<u32>(static_cast<u32>(new_game_mode_description.size()),
|
u32 copy_size = std::min<u32>(static_cast<u32>(new_game_mode_description.size()),
|
||||||
@ -513,7 +513,7 @@ void Module::Interface::UpdateGameModeDescription(Kernel::HLERequestContext& ctx
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::UpdateGameMode(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::UpdateGameMode(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x1E, 11, 2);
|
IPC::RequestParser rp(ctx);
|
||||||
auto game_mode = rp.PopRaw<GameMode>();
|
auto game_mode = rp.PopRaw<GameMode>();
|
||||||
const std::vector<u8> new_game_mode_description = rp.PopStaticBuffer();
|
const std::vector<u8> new_game_mode_description = rp.PopStaticBuffer();
|
||||||
|
|
||||||
@ -527,7 +527,7 @@ void Module::Interface::UpdateGameMode(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::AttachToEventNotification(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::AttachToEventNotification(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x20, 0, 2);
|
IPC::RequestParser rp(ctx);
|
||||||
frd->notif_event = rp.PopObject<Kernel::Event>();
|
frd->notif_event = rp.PopObject<Kernel::Event>();
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
@ -535,7 +535,7 @@ void Module::Interface::AttachToEventNotification(Kernel::HLERequestContext& ctx
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::SetNotificationMask(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::SetNotificationMask(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x21, 1, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
frd->notif_event_mask = rp.Pop<u32>();
|
frd->notif_event_mask = rp.Pop<u32>();
|
||||||
|
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
@ -543,7 +543,7 @@ void Module::Interface::SetNotificationMask(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetEventNotification(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetEventNotification(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x22, 1, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
u32 count = rp.Pop<u32>();
|
u32 count = rp.Pop<u32>();
|
||||||
|
|
||||||
// LOG_WARNING(Service_FRD, "(STUBBED) called");
|
// LOG_WARNING(Service_FRD, "(STUBBED) called");
|
||||||
@ -556,7 +556,7 @@ void Module::Interface::GetEventNotification(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetLastResponseResult(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetLastResponseResult(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x23, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
|
|
||||||
LOG_WARNING(Service_FRD, "(STUBBED) called");
|
LOG_WARNING(Service_FRD, "(STUBBED) called");
|
||||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||||
@ -564,7 +564,7 @@ void Module::Interface::GetLastResponseResult(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::RequestGameAuthentication(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::RequestGameAuthentication(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x28, 9, 4);
|
IPC::RequestParser rp(ctx);
|
||||||
u32 gameID = rp.Pop<u32>();
|
u32 gameID = rp.Pop<u32>();
|
||||||
|
|
||||||
struct ScreenNameIPC {
|
struct ScreenNameIPC {
|
||||||
@ -691,7 +691,7 @@ void Module::Interface::RequestGameAuthentication(Kernel::HLERequestContext& ctx
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Module::Interface::GetGameAuthenticationData(Kernel::HLERequestContext& ctx) {
|
void Module::Interface::GetGameAuthenticationData(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x29, 0, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
|
|
||||||
std::vector<u8> out_auth_data(sizeof(GameAuthenticationData));
|
std::vector<u8> out_auth_data(sizeof(GameAuthenticationData));
|
||||||
memcpy(out_auth_data.data(), &frd->last_game_auth_data, sizeof(GameAuthenticationData));
|
memcpy(out_auth_data.data(), &frd->last_game_auth_data, sizeof(GameAuthenticationData));
|
||||||
|
@ -671,7 +671,7 @@ void FS_USER::GetFormatInfo(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::GetProductInfo(Kernel::HLERequestContext& ctx) {
|
void FS_USER::GetProductInfo(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x82E, 1, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
|
|
||||||
u32 process_id = rp.Pop<u32>();
|
u32 process_id = rp.Pop<u32>();
|
||||||
|
|
||||||
@ -845,7 +845,7 @@ void FS_USER::ObsoletedGetSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::SetThisSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
void FS_USER::SetThisSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x86E, 3, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
u32 secure_value_slot = rp.Pop<u32>();
|
u32 secure_value_slot = rp.Pop<u32>();
|
||||||
u64 value = rp.Pop<u64>();
|
u64 value = rp.Pop<u64>();
|
||||||
|
|
||||||
@ -861,7 +861,7 @@ void FS_USER::SetThisSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::GetThisSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
void FS_USER::GetThisSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x86F, 1, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
|
|
||||||
u32 secure_value_slot = rp.Pop<u32>();
|
u32 secure_value_slot = rp.Pop<u32>();
|
||||||
|
|
||||||
@ -882,7 +882,7 @@ void FS_USER::GetThisSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::SetSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
void FS_USER::SetSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x875, 6, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
auto archive_handle = rp.PopRaw<ArchiveHandle>();
|
auto archive_handle = rp.PopRaw<ArchiveHandle>();
|
||||||
u32 secure_value_slot = rp.Pop<u32>();
|
u32 secure_value_slot = rp.Pop<u32>();
|
||||||
u64 value = rp.Pop<u64>();
|
u64 value = rp.Pop<u64>();
|
||||||
@ -901,7 +901,7 @@ void FS_USER::SetSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void FS_USER::GetSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
void FS_USER::GetSaveDataSecureValue(Kernel::HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp(ctx, 0x876, 3, 0);
|
IPC::RequestParser rp(ctx);
|
||||||
|
|
||||||
auto archive_handle = rp.PopRaw<ArchiveHandle>();
|
auto archive_handle = rp.PopRaw<ArchiveHandle>();
|
||||||
u32 secure_value_slot = rp.Pop<u32>();
|
u32 secure_value_slot = rp.Pop<u32>();
|
||||||
@ -1049,7 +1049,7 @@ FS_USER::FS_USER(Core::System& system)
|
|||||||
{0x082B, nullptr, "CardNorDirectRead_4xIO"},
|
{0x082B, nullptr, "CardNorDirectRead_4xIO"},
|
||||||
{0x082C, nullptr, "CardNorDirectCpuWriteWithoutVerify"},
|
{0x082C, nullptr, "CardNorDirectCpuWriteWithoutVerify"},
|
||||||
{0x082D, nullptr, "CardNorDirectSectorEraseWithoutVerify"},
|
{0x082D, nullptr, "CardNorDirectSectorEraseWithoutVerify"},
|
||||||
{0x082E, nullptr, "GetProductInfo"},
|
{0x082E, &FS_USER::GetProductInfo, "GetProductInfo"},
|
||||||
{0x082F, &FS_USER::GetProgramLaunchInfo, "GetProgramLaunchInfo"},
|
{0x082F, &FS_USER::GetProgramLaunchInfo, "GetProgramLaunchInfo"},
|
||||||
{0x0830, &FS_USER::ObsoletedCreateExtSaveData, "Obsoleted_3_0_CreateExtSaveData"},
|
{0x0830, &FS_USER::ObsoletedCreateExtSaveData, "Obsoleted_3_0_CreateExtSaveData"},
|
||||||
{0x0831, nullptr, "CreateSharedExtSaveData"},
|
{0x0831, nullptr, "CreateSharedExtSaveData"},
|
||||||
@ -1104,8 +1104,8 @@ FS_USER::FS_USER(Core::System& system)
|
|||||||
{0x0862, &FS_USER::SetPriority, "SetPriority"},
|
{0x0862, &FS_USER::SetPriority, "SetPriority"},
|
||||||
{0x0863, &FS_USER::GetPriority, "GetPriority"},
|
{0x0863, &FS_USER::GetPriority, "GetPriority"},
|
||||||
{0x0864, nullptr, "GetNandInfo"},
|
{0x0864, nullptr, "GetNandInfo"},
|
||||||
{0x0865, &FS_USER::SetSaveDataSecureValue, "SetSaveDataSecureValue"},
|
{0x0865, &FS_USER::ObsoletedSetSaveDataSecureValue, "SetSaveDataSecureValue"},
|
||||||
{0x0866, &FS_USER::GetSaveDataSecureValue, "GetSaveDataSecureValue"},
|
{0x0866, &FS_USER::ObsoletedGetSaveDataSecureValue, "GetSaveDataSecureValue"},
|
||||||
{0x0867, nullptr, "ControlSecureSave"},
|
{0x0867, nullptr, "ControlSecureSave"},
|
||||||
{0x0868, nullptr, "GetMediaType"},
|
{0x0868, nullptr, "GetMediaType"},
|
||||||
{0x0869, nullptr, "GetNandEraseCount"},
|
{0x0869, nullptr, "GetNandEraseCount"},
|
||||||
|
Loading…
Reference in New Issue
Block a user