mirror of
https://github.com/PabloMK7/citra.git
synced 2025-09-12 05:40:04 +00:00
hle: Eliminate need to specify command headers for IPC. (#6678)
This commit is contained in:
parent
0bedb28bdc
commit
e043caac27
96 changed files with 2691 additions and 2707 deletions
|
@ -206,7 +206,7 @@ Module::Interface::Interface(std::shared_ptr<Module> cfg, const char* name, u32
|
|||
Module::Interface::~Interface() = default;
|
||||
|
||||
void Module::Interface::GetCountryCodeString(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx, 0x09, 1, 0);
|
||||
IPC::RequestParser rp(ctx);
|
||||
u16 country_code_id = rp.Pop<u16>();
|
||||
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||
|
@ -228,7 +228,7 @@ std::shared_ptr<Module> Module::Interface::Interface::GetModule() const {
|
|||
}
|
||||
|
||||
void Module::Interface::GetCountryCodeID(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx, 0x0A, 1, 0);
|
||||
IPC::RequestParser rp(ctx);
|
||||
u16 country_code = rp.Pop<u16>();
|
||||
u16 country_code_id = 0;
|
||||
|
||||
|
@ -263,16 +263,16 @@ u32 Module::GetRegionValue() {
|
|||
return Settings::values.region_value.GetValue();
|
||||
}
|
||||
|
||||
void Module::Interface::SecureInfoGetRegion(Kernel::HLERequestContext& ctx, u16 id) {
|
||||
IPC::RequestParser rp(ctx, id, 0, 0);
|
||||
void Module::Interface::SecureInfoGetRegion(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx);
|
||||
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||
rb.Push(RESULT_SUCCESS);
|
||||
rb.Push<u8>(static_cast<u8>(cfg->GetRegionValue()));
|
||||
}
|
||||
|
||||
void Module::Interface::SecureInfoGetByte101(Kernel::HLERequestContext& ctx, u16 id) {
|
||||
IPC::RequestParser rp(ctx, id, 0, 0);
|
||||
void Module::Interface::SecureInfoGetByte101(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx);
|
||||
|
||||
LOG_DEBUG(Service_CFG, "(STUBBED) called");
|
||||
|
||||
|
@ -283,7 +283,7 @@ void Module::Interface::SecureInfoGetByte101(Kernel::HLERequestContext& ctx, u16
|
|||
}
|
||||
|
||||
void Module::Interface::GenHashConsoleUnique(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx, 0x03, 1, 0);
|
||||
IPC::RequestParser rp(ctx);
|
||||
const u32 app_id_salt = rp.Pop<u32>() & 0x000FFFFF;
|
||||
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(3, 0);
|
||||
|
@ -309,7 +309,7 @@ void Module::Interface::GenHashConsoleUnique(Kernel::HLERequestContext& ctx) {
|
|||
}
|
||||
|
||||
void Module::Interface::GetRegionCanadaUSA(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx, 0x04, 0, 0);
|
||||
IPC::RequestParser rp(ctx);
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||
|
||||
rb.Push(RESULT_SUCCESS);
|
||||
|
@ -323,7 +323,7 @@ void Module::Interface::GetRegionCanadaUSA(Kernel::HLERequestContext& ctx) {
|
|||
}
|
||||
|
||||
void Module::Interface::GetSystemModel(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx, 0x05, 0, 0);
|
||||
IPC::RequestParser rp(ctx);
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||
u32 data{};
|
||||
|
||||
|
@ -345,7 +345,7 @@ void Module::Interface::GetSystemModel(Kernel::HLERequestContext& ctx) {
|
|||
}
|
||||
|
||||
void Module::Interface::GetModelNintendo2DS(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx, 0x06, 0, 0);
|
||||
IPC::RequestParser rp(ctx);
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(2, 0);
|
||||
u32 data{};
|
||||
|
||||
|
@ -356,7 +356,7 @@ void Module::Interface::GetModelNintendo2DS(Kernel::HLERequestContext& ctx) {
|
|||
}
|
||||
|
||||
void Module::Interface::GetConfigInfoBlk2(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx, 0x01, 2, 2);
|
||||
IPC::RequestParser rp(ctx);
|
||||
u32 size = rp.Pop<u32>();
|
||||
u32 block_id = rp.Pop<u32>();
|
||||
auto& buffer = rp.PopMappedBuffer();
|
||||
|
@ -368,8 +368,8 @@ void Module::Interface::GetConfigInfoBlk2(Kernel::HLERequestContext& ctx) {
|
|||
rb.PushMappedBuffer(buffer);
|
||||
}
|
||||
|
||||
void Module::Interface::GetConfigInfoBlk8(Kernel::HLERequestContext& ctx, u16 id) {
|
||||
IPC::RequestParser rp(ctx, id, 2, 2);
|
||||
void Module::Interface::GetConfigInfoBlk8(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx);
|
||||
u32 size = rp.Pop<u32>();
|
||||
u32 block_id = rp.Pop<u32>();
|
||||
auto& buffer = rp.PopMappedBuffer();
|
||||
|
@ -381,8 +381,8 @@ void Module::Interface::GetConfigInfoBlk8(Kernel::HLERequestContext& ctx, u16 id
|
|||
rb.PushMappedBuffer(buffer);
|
||||
}
|
||||
|
||||
void Module::Interface::SetConfigInfoBlk4(Kernel::HLERequestContext& ctx, u16 id) {
|
||||
IPC::RequestParser rp(ctx, id, 2, 2);
|
||||
void Module::Interface::SetConfigInfoBlk4(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx);
|
||||
u32 block_id = rp.Pop<u32>();
|
||||
u32 size = rp.Pop<u32>();
|
||||
auto& buffer = rp.PopMappedBuffer();
|
||||
|
@ -395,14 +395,14 @@ void Module::Interface::SetConfigInfoBlk4(Kernel::HLERequestContext& ctx, u16 id
|
|||
rb.PushMappedBuffer(buffer);
|
||||
}
|
||||
|
||||
void Module::Interface::UpdateConfigNANDSavegame(Kernel::HLERequestContext& ctx, u16 id) {
|
||||
IPC::RequestParser rp(ctx, id, 0, 0);
|
||||
void Module::Interface::UpdateConfigNANDSavegame(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx);
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||
rb.Push(cfg->UpdateConfigNANDSavegame());
|
||||
}
|
||||
|
||||
void Module::Interface::FormatConfig(Kernel::HLERequestContext& ctx) {
|
||||
IPC::RequestParser rp(ctx, 0x0806, 0, 0);
|
||||
IPC::RequestParser rp(ctx);
|
||||
IPC::RequestBuilder rb = rp.MakeBuilder(1, 0);
|
||||
rb.Push(cfg->FormatConfig());
|
||||
}
|
||||
|
|
|
@ -163,7 +163,7 @@ public:
|
|||
* 1 : Result of function, 0 on success, otherwise error code
|
||||
* 2 : Region value loaded from SecureInfo offset 0x100
|
||||
*/
|
||||
void SecureInfoGetRegion(Kernel::HLERequestContext& ctx, u16 id);
|
||||
void SecureInfoGetRegion(Kernel::HLERequestContext& ctx);
|
||||
|
||||
/**
|
||||
* CFG::SecureInfoGetByte101 service function
|
||||
|
@ -174,7 +174,7 @@ public:
|
|||
* 1 : Result of function, 0 on success, otherwise error code
|
||||
* 2 : Value loaded from SecureInfo offset 0x101
|
||||
*/
|
||||
void SecureInfoGetByte101(Kernel::HLERequestContext& ctx, u16 id);
|
||||
void SecureInfoGetByte101(Kernel::HLERequestContext& ctx);
|
||||
|
||||
/**
|
||||
* CFG::GenHashConsoleUnique service function
|
||||
|
@ -243,7 +243,7 @@ public:
|
|||
* Outputs:
|
||||
* 1 : Result of function, 0 on success, otherwise error code
|
||||
*/
|
||||
void GetConfigInfoBlk8(Kernel::HLERequestContext& ctx, u16 id);
|
||||
void GetConfigInfoBlk8(Kernel::HLERequestContext& ctx);
|
||||
|
||||
/**
|
||||
* CFG::SetConfigInfoBlk4 service function
|
||||
|
@ -259,7 +259,7 @@ public:
|
|||
* The parameters order is different from GetConfigInfoBlk2/8's,
|
||||
* where Block ID and Size are switched.
|
||||
*/
|
||||
void SetConfigInfoBlk4(Kernel::HLERequestContext& ctx, u16 id);
|
||||
void SetConfigInfoBlk4(Kernel::HLERequestContext& ctx);
|
||||
|
||||
/**
|
||||
* CFG::UpdateConfigNANDSavegame service function
|
||||
|
@ -268,7 +268,7 @@ public:
|
|||
* Outputs:
|
||||
* 1 : Result of function, 0 on success, otherwise error code
|
||||
*/
|
||||
void UpdateConfigNANDSavegame(Kernel::HLERequestContext& ctx, u16 id);
|
||||
void UpdateConfigNANDSavegame(Kernel::HLERequestContext& ctx);
|
||||
|
||||
/**
|
||||
* CFG::FormatConfig service function
|
||||
|
@ -279,12 +279,6 @@ public:
|
|||
*/
|
||||
void FormatConfig(Kernel::HLERequestContext& ctx);
|
||||
|
||||
/// A helper function for dispatching service functions that have multiple IDs
|
||||
template <void (Interface::*function)(Kernel::HLERequestContext& ctx, u16 id), u16 id>
|
||||
void D(Kernel::HLERequestContext& ctx) {
|
||||
(this->*function)(ctx, id);
|
||||
}
|
||||
|
||||
protected:
|
||||
std::shared_ptr<Module> cfg;
|
||||
};
|
||||
|
|
|
@ -13,50 +13,50 @@ CFG_I::CFG_I(std::shared_ptr<Module> cfg) : Module::Interface(std::move(cfg), "c
|
|||
static const FunctionInfo functions[] = {
|
||||
// cfg common
|
||||
// clang-format off
|
||||
{IPC::MakeHeader(0x0001, 2, 2), &CFG_I::GetConfigInfoBlk2, "GetConfigInfoBlk2"},
|
||||
{IPC::MakeHeader(0x0002, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetRegion, 0x0002>, "SecureInfoGetRegion"},
|
||||
{IPC::MakeHeader(0x0003, 1, 0), &CFG_I::GenHashConsoleUnique, "GenHashConsoleUnique"},
|
||||
{IPC::MakeHeader(0x0004, 0, 0), &CFG_I::GetRegionCanadaUSA, "GetRegionCanadaUSA"},
|
||||
{IPC::MakeHeader(0x0005, 0, 0), &CFG_I::GetSystemModel, "GetSystemModel"},
|
||||
{IPC::MakeHeader(0x0006, 0, 0), &CFG_I::GetModelNintendo2DS, "GetModelNintendo2DS"},
|
||||
{IPC::MakeHeader(0x0007, 1, 0), nullptr, "WriteToFirstByteCfgSavegame"},
|
||||
{IPC::MakeHeader(0x0008, 2, 0), nullptr, "GoThroughTable"},
|
||||
{IPC::MakeHeader(0x0009, 1, 0), &CFG_I::GetCountryCodeString, "GetCountryCodeString"},
|
||||
{IPC::MakeHeader(0x000A, 1, 0), &CFG_I::GetCountryCodeID, "GetCountryCodeID"},
|
||||
{IPC::MakeHeader(0x000B, 0, 0), nullptr, "IsFangateSupported"},
|
||||
{0x0001, &CFG_I::GetConfigInfoBlk2, "GetConfigInfoBlk2"},
|
||||
{0x0002, &CFG_I::SecureInfoGetRegion, "SecureInfoGetRegion"},
|
||||
{0x0003, &CFG_I::GenHashConsoleUnique, "GenHashConsoleUnique"},
|
||||
{0x0004, &CFG_I::GetRegionCanadaUSA, "GetRegionCanadaUSA"},
|
||||
{0x0005, &CFG_I::GetSystemModel, "GetSystemModel"},
|
||||
{0x0006, &CFG_I::GetModelNintendo2DS, "GetModelNintendo2DS"},
|
||||
{0x0007, nullptr, "WriteToFirstByteCfgSavegame"},
|
||||
{0x0008, nullptr, "GoThroughTable"},
|
||||
{0x0009, &CFG_I::GetCountryCodeString, "GetCountryCodeString"},
|
||||
{0x000A, &CFG_I::GetCountryCodeID, "GetCountryCodeID"},
|
||||
{0x000B, nullptr, "IsFangateSupported"},
|
||||
// cfg:i
|
||||
{IPC::MakeHeader(0x0401, 2, 2), &CFG_I::D<&CFG_I::GetConfigInfoBlk8, 0x0401>, "GetConfigInfoBlk8"},
|
||||
{IPC::MakeHeader(0x0402, 2, 2), &CFG_I::D<&CFG_I::SetConfigInfoBlk4, 0x0402>, "SetConfigInfoBlk4"},
|
||||
{IPC::MakeHeader(0x0403, 0, 0), &CFG_I::D<&CFG_I::UpdateConfigNANDSavegame, 0x0403>, "UpdateConfigNANDSavegame"},
|
||||
{IPC::MakeHeader(0x0404, 1, 2), nullptr, "GetLocalFriendCodeSeedData"},
|
||||
{IPC::MakeHeader(0x0405, 0, 0), nullptr, "GetLocalFriendCodeSeed"},
|
||||
{IPC::MakeHeader(0x0406, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetRegion, 0x0406>, "SecureInfoGetRegion"},
|
||||
{IPC::MakeHeader(0x0407, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetByte101, 0x0407>, "SecureInfoGetByte101"},
|
||||
{IPC::MakeHeader(0x0408, 1, 2), nullptr, "SecureInfoGetSerialNo"},
|
||||
{IPC::MakeHeader(0x0409, 0, 0), nullptr, "UpdateConfigBlk00040003"},
|
||||
{IPC::MakeHeader(0x0801, 2, 2), &CFG_I::D<&CFG_I::GetConfigInfoBlk8, 0x0801>, "GetConfigInfoBlk8"},
|
||||
{IPC::MakeHeader(0x0802, 2, 2), &CFG_I::D<&CFG_I::SetConfigInfoBlk4, 0x0802>, "SetConfigInfoBlk4"},
|
||||
{IPC::MakeHeader(0x0803, 0, 0), &CFG_I::D<&CFG_I::UpdateConfigNANDSavegame, 0x0803>, "UpdateConfigNANDSavegame"},
|
||||
{IPC::MakeHeader(0x0804, 3, 2), nullptr, "CreateConfigInfoBlk"},
|
||||
{IPC::MakeHeader(0x0805, 0, 0), nullptr, "DeleteConfigNANDSavefile"},
|
||||
{IPC::MakeHeader(0x0806, 0, 0), &CFG_I::FormatConfig, "FormatConfig"},
|
||||
{IPC::MakeHeader(0x0808, 0, 0), nullptr, "UpdateConfigBlk1"},
|
||||
{IPC::MakeHeader(0x0809, 0, 0), nullptr, "UpdateConfigBlk2"},
|
||||
{IPC::MakeHeader(0x080A, 0, 0), nullptr, "UpdateConfigBlk3"},
|
||||
{IPC::MakeHeader(0x080B, 2, 2), nullptr, "SetGetLocalFriendCodeSeedData"},
|
||||
{IPC::MakeHeader(0x080C, 1, 2), nullptr, "SetLocalFriendCodeSeedSignature"},
|
||||
{IPC::MakeHeader(0x080D, 0, 0), nullptr, "DeleteCreateNANDLocalFriendCodeSeed"},
|
||||
{IPC::MakeHeader(0x080E, 0, 0), nullptr, "VerifySigLocalFriendCodeSeed"},
|
||||
{IPC::MakeHeader(0x080F, 1, 2), nullptr, "GetLocalFriendCodeSeedData"},
|
||||
{IPC::MakeHeader(0x0810, 0, 0), nullptr, "GetLocalFriendCodeSeed"},
|
||||
{IPC::MakeHeader(0x0811, 2, 4), nullptr, "SetSecureInfo"},
|
||||
{IPC::MakeHeader(0x0812, 0, 0), nullptr, "DeleteCreateNANDSecureInfo"},
|
||||
{IPC::MakeHeader(0x0813, 0, 0), nullptr, "VerifySigSecureInfo"},
|
||||
{IPC::MakeHeader(0x0814, 1, 2), nullptr, "SecureInfoGetData"},
|
||||
{IPC::MakeHeader(0x0815, 1, 2), nullptr, "SecureInfoGetSignature"},
|
||||
{IPC::MakeHeader(0x0816, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetRegion, 0x0816>, "SecureInfoGetRegion"},
|
||||
{IPC::MakeHeader(0x0817, 0, 0), &CFG_I::D<&CFG_I::SecureInfoGetByte101, 0x0817>, "SecureInfoGetByte101"},
|
||||
{IPC::MakeHeader(0x0818, 1, 2), nullptr, "SecureInfoGetSerialNo"},
|
||||
{0x0401, &CFG_I::GetConfigInfoBlk8, "GetConfigInfoBlk8"},
|
||||
{0x0402, &CFG_I::SetConfigInfoBlk4, "SetConfigInfoBlk4"},
|
||||
{0x0403, &CFG_I::UpdateConfigNANDSavegame, "UpdateConfigNANDSavegame"},
|
||||
{0x0404, nullptr, "GetLocalFriendCodeSeedData"},
|
||||
{0x0405, nullptr, "GetLocalFriendCodeSeed"},
|
||||
{0x0406, &CFG_I::SecureInfoGetRegion, "SecureInfoGetRegion"},
|
||||
{0x0407, &CFG_I::SecureInfoGetByte101, "SecureInfoGetByte101"},
|
||||
{0x0408, nullptr, "SecureInfoGetSerialNo"},
|
||||
{0x0409, nullptr, "UpdateConfigBlk00040003"},
|
||||
{0x0801, &CFG_I::GetConfigInfoBlk8, "GetConfigInfoBlk8"},
|
||||
{0x0802, &CFG_I::SetConfigInfoBlk4, "SetConfigInfoBlk4"},
|
||||
{0x0803, &CFG_I::UpdateConfigNANDSavegame, "UpdateConfigNANDSavegame"},
|
||||
{0x0804, nullptr, "CreateConfigInfoBlk"},
|
||||
{0x0805, nullptr, "DeleteConfigNANDSavefile"},
|
||||
{0x0806, &CFG_I::FormatConfig, "FormatConfig"},
|
||||
{0x0808, nullptr, "UpdateConfigBlk1"},
|
||||
{0x0809, nullptr, "UpdateConfigBlk2"},
|
||||
{0x080A, nullptr, "UpdateConfigBlk3"},
|
||||
{0x080B, nullptr, "SetGetLocalFriendCodeSeedData"},
|
||||
{0x080C, nullptr, "SetLocalFriendCodeSeedSignature"},
|
||||
{0x080D, nullptr, "DeleteCreateNANDLocalFriendCodeSeed"},
|
||||
{0x080E, nullptr, "VerifySigLocalFriendCodeSeed"},
|
||||
{0x080F, nullptr, "GetLocalFriendCodeSeedData"},
|
||||
{0x0810, nullptr, "GetLocalFriendCodeSeed"},
|
||||
{0x0811, nullptr, "SetSecureInfo"},
|
||||
{0x0812, nullptr, "DeleteCreateNANDSecureInfo"},
|
||||
{0x0813, nullptr, "VerifySigSecureInfo"},
|
||||
{0x0814, nullptr, "SecureInfoGetData"},
|
||||
{0x0815, nullptr, "SecureInfoGetSignature"},
|
||||
{0x0816, &CFG_I::SecureInfoGetRegion, "SecureInfoGetRegion"},
|
||||
{0x0817, &CFG_I::SecureInfoGetByte101, "SecureInfoGetByte101"},
|
||||
{0x0818, nullptr, "SecureInfoGetSerialNo"},
|
||||
// clang-format on
|
||||
};
|
||||
RegisterHandlers(functions);
|
||||
|
|
|
@ -12,10 +12,10 @@ namespace Service::CFG {
|
|||
CFG_NOR::CFG_NOR() : ServiceFramework("cfg:nor", 23) {
|
||||
static const FunctionInfo functions[] = {
|
||||
// clang-format off
|
||||
{IPC::MakeHeader(0x0001, 1, 0), nullptr, "Initialize"},
|
||||
{IPC::MakeHeader(0x0002, 0, 0), nullptr, "Shutdown"},
|
||||
{IPC::MakeHeader(0x0005, 2, 2), nullptr, "ReadData"},
|
||||
{IPC::MakeHeader(0x0006, 2, 2), nullptr, "WriteData"},
|
||||
{0x0001, nullptr, "Initialize"},
|
||||
{0x0002, nullptr, "Shutdown"},
|
||||
{0x0005, nullptr, "ReadData"},
|
||||
{0x0006, nullptr, "WriteData"},
|
||||
// clang-format on
|
||||
};
|
||||
RegisterHandlers(functions);
|
||||
|
|
|
@ -13,27 +13,27 @@ CFG_S::CFG_S(std::shared_ptr<Module> cfg) : Module::Interface(std::move(cfg), "c
|
|||
static const FunctionInfo functions[] = {
|
||||
// cfg common
|
||||
// clang-format off
|
||||
{IPC::MakeHeader(0x0001, 2, 2), &CFG_S::GetConfigInfoBlk2, "GetConfigInfoBlk2"},
|
||||
{IPC::MakeHeader(0x0002, 0, 0), &CFG_S::D<&CFG_S::SecureInfoGetRegion, 0x0002>, "SecureInfoGetRegion"},
|
||||
{IPC::MakeHeader(0x0003, 1, 0), &CFG_S::GenHashConsoleUnique, "GenHashConsoleUnique"},
|
||||
{IPC::MakeHeader(0x0004, 0, 0), &CFG_S::GetRegionCanadaUSA, "GetRegionCanadaUSA"},
|
||||
{IPC::MakeHeader(0x0005, 0, 0), &CFG_S::GetSystemModel, "GetSystemModel"},
|
||||
{IPC::MakeHeader(0x0006, 0, 0), &CFG_S::GetModelNintendo2DS, "GetModelNintendo2DS"},
|
||||
{IPC::MakeHeader(0x0007, 1, 0), nullptr, "WriteToFirstByteCfgSavegame"},
|
||||
{IPC::MakeHeader(0x0008, 2, 0), nullptr, "GoThroughTable"},
|
||||
{IPC::MakeHeader(0x0009, 1, 0), &CFG_S::GetCountryCodeString, "GetCountryCodeString"},
|
||||
{IPC::MakeHeader(0x000A, 1, 0), &CFG_S::GetCountryCodeID, "GetCountryCodeID"},
|
||||
{IPC::MakeHeader(0x000B, 0, 0), nullptr, "IsFangateSupported"},
|
||||
{0x0001, &CFG_S::GetConfigInfoBlk2, "GetConfigInfoBlk2"},
|
||||
{0x0002, &CFG_S::SecureInfoGetRegion, "SecureInfoGetRegion"},
|
||||
{0x0003, &CFG_S::GenHashConsoleUnique, "GenHashConsoleUnique"},
|
||||
{0x0004, &CFG_S::GetRegionCanadaUSA, "GetRegionCanadaUSA"},
|
||||
{0x0005, &CFG_S::GetSystemModel, "GetSystemModel"},
|
||||
{0x0006, &CFG_S::GetModelNintendo2DS, "GetModelNintendo2DS"},
|
||||
{0x0007, nullptr, "WriteToFirstByteCfgSavegame"},
|
||||
{0x0008, nullptr, "GoThroughTable"},
|
||||
{0x0009, &CFG_S::GetCountryCodeString, "GetCountryCodeString"},
|
||||
{0x000A, &CFG_S::GetCountryCodeID, "GetCountryCodeID"},
|
||||
{0x000B, nullptr, "IsFangateSupported"},
|
||||
// cfg:s
|
||||
{IPC::MakeHeader(0x0401, 2, 2), &CFG_S::D<&CFG_S::GetConfigInfoBlk8, 0x0401>, "GetConfigInfoBlk8"},
|
||||
{IPC::MakeHeader(0x0402, 2, 2), &CFG_S::D<&CFG_S::SetConfigInfoBlk4, 0x0402>, "SetConfigInfoBlk4"},
|
||||
{IPC::MakeHeader(0x0403, 0, 0), &CFG_S::D<&CFG_S::UpdateConfigNANDSavegame, 0x0403>, "UpdateConfigNANDSavegame"},
|
||||
{IPC::MakeHeader(0x0404, 1, 2), nullptr, "GetLocalFriendCodeSeedData"},
|
||||
{IPC::MakeHeader(0x0405, 0, 0), nullptr, "GetLocalFriendCodeSeed"},
|
||||
{IPC::MakeHeader(0x0406, 0, 0), &CFG_S::D<&CFG_S::SecureInfoGetRegion, 0x0406>, "SecureInfoGetRegion"},
|
||||
{IPC::MakeHeader(0x0407, 0, 0), &CFG_S::D<&CFG_S::SecureInfoGetByte101, 0x0407>, "SecureInfoGetByte101"},
|
||||
{IPC::MakeHeader(0x0408, 1, 2), nullptr, "SecureInfoGetSerialNo"},
|
||||
{IPC::MakeHeader(0x0409, 0, 0), nullptr, "UpdateConfigBlk00040003"},
|
||||
{0x0401, &CFG_S::GetConfigInfoBlk8, "GetConfigInfoBlk8"},
|
||||
{0x0402, &CFG_S::SetConfigInfoBlk4, "SetConfigInfoBlk4"},
|
||||
{0x0403, &CFG_S::UpdateConfigNANDSavegame, "UpdateConfigNANDSavegame"},
|
||||
{0x0404, nullptr, "GetLocalFriendCodeSeedData"},
|
||||
{0x0405, nullptr, "GetLocalFriendCodeSeed"},
|
||||
{0x0406, &CFG_S::SecureInfoGetRegion, "SecureInfoGetRegion"},
|
||||
{0x0407, &CFG_S::SecureInfoGetByte101, "SecureInfoGetByte101"},
|
||||
{0x0408, nullptr, "SecureInfoGetSerialNo"},
|
||||
{0x0409, nullptr, "UpdateConfigBlk00040003"},
|
||||
// clang-format on
|
||||
};
|
||||
RegisterHandlers(functions);
|
||||
|
|
|
@ -13,17 +13,17 @@ CFG_U::CFG_U(std::shared_ptr<Module> cfg) : Module::Interface(std::move(cfg), "c
|
|||
static const FunctionInfo functions[] = {
|
||||
// cfg common
|
||||
// clang-format off
|
||||
{IPC::MakeHeader(0x0001, 2, 2), &CFG_U::GetConfigInfoBlk2, "GetConfigInfoBlk2"},
|
||||
{IPC::MakeHeader(0x0002, 0, 0), &CFG_U::D<&CFG_U::SecureInfoGetRegion, 0x0002>, "SecureInfoGetRegion"},
|
||||
{IPC::MakeHeader(0x0003, 1, 0), &CFG_U::GenHashConsoleUnique, "GenHashConsoleUnique"},
|
||||
{IPC::MakeHeader(0x0004, 0, 0), &CFG_U::GetRegionCanadaUSA, "GetRegionCanadaUSA"},
|
||||
{IPC::MakeHeader(0x0005, 0, 0), &CFG_U::GetSystemModel, "GetSystemModel"},
|
||||
{IPC::MakeHeader(0x0006, 0, 0), &CFG_U::GetModelNintendo2DS, "GetModelNintendo2DS"},
|
||||
{IPC::MakeHeader(0x0007, 1, 0), nullptr, "WriteToFirstByteCfgSavegame"},
|
||||
{IPC::MakeHeader(0x0008, 2, 0), nullptr, "GoThroughTable"},
|
||||
{IPC::MakeHeader(0x0009, 1, 0), &CFG_U::GetCountryCodeString, "GetCountryCodeString"},
|
||||
{IPC::MakeHeader(0x000A, 1, 0), &CFG_U::GetCountryCodeID, "GetCountryCodeID"},
|
||||
{IPC::MakeHeader(0x000B, 0, 0), nullptr, "IsFangateSupported"},
|
||||
{0x0001, &CFG_U::GetConfigInfoBlk2, "GetConfigInfoBlk2"},
|
||||
{0x0002, &CFG_U::SecureInfoGetRegion, "SecureInfoGetRegion"},
|
||||
{0x0003, &CFG_U::GenHashConsoleUnique, "GenHashConsoleUnique"},
|
||||
{0x0004, &CFG_U::GetRegionCanadaUSA, "GetRegionCanadaUSA"},
|
||||
{0x0005, &CFG_U::GetSystemModel, "GetSystemModel"},
|
||||
{0x0006, &CFG_U::GetModelNintendo2DS, "GetModelNintendo2DS"},
|
||||
{0x0007, nullptr, "WriteToFirstByteCfgSavegame"},
|
||||
{0x0008, nullptr, "GoThroughTable"},
|
||||
{0x0009, &CFG_U::GetCountryCodeString, "GetCountryCodeString"},
|
||||
{0x000A, &CFG_U::GetCountryCodeID, "GetCountryCodeID"},
|
||||
{0x000B, nullptr, "IsFangateSupported"},
|
||||
// clang-format on
|
||||
};
|
||||
RegisterHandlers(functions);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue