mirror of
https://github.com/InoriRus/Kyty.git
synced 2026-08-28 05:06:40 +00:00
implement more APIs
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
#include "Emulator/Audio.h"
|
||||
#include "Emulator/Common.h"
|
||||
#include "Emulator/Libs/Libs.h"
|
||||
#include "Emulator/SymbolDatabase.h"
|
||||
|
||||
#ifdef KYTY_EMU_ENABLED
|
||||
|
||||
namespace Kyty::Libs {
|
||||
|
||||
namespace LibVoiceQoS {
|
||||
|
||||
LIB_VERSION("VoiceQoS", 1, "VoiceQoS", 0, 0);
|
||||
|
||||
namespace VoiceQoS = Audio::VoiceQoS;
|
||||
|
||||
LIB_DEFINE(InitAudio_1_VoiceQoS)
|
||||
{
|
||||
LIB_FUNC("U8IfNl6-Css", VoiceQoS::VoiceQoSInit);
|
||||
}
|
||||
|
||||
} // namespace LibVoiceQoS
|
||||
|
||||
LIB_DEFINE(InitAudio_1)
|
||||
{
|
||||
LibVoiceQoS::InitAudio_1_VoiceQoS(s);
|
||||
}
|
||||
|
||||
} // namespace Kyty::Libs
|
||||
|
||||
#endif // KYTY_EMU_ENABLED
|
||||
@@ -0,0 +1,30 @@
|
||||
#include "Emulator/Common.h"
|
||||
#include "Emulator/Dialog.h"
|
||||
#include "Emulator/Libs/Libs.h"
|
||||
#include "Emulator/SymbolDatabase.h"
|
||||
|
||||
#ifdef KYTY_EMU_ENABLED
|
||||
|
||||
namespace Kyty::Libs {
|
||||
|
||||
namespace LibCommonDialog {
|
||||
|
||||
LIB_VERSION("CommonDialog", 1, "CommonDialog", 1, 1);
|
||||
|
||||
namespace CommonDialog = Dialog::CommonDialog;
|
||||
|
||||
LIB_DEFINE(InitDialog_1_CommonDialog)
|
||||
{
|
||||
LIB_FUNC("uoUpLGNkygk", CommonDialog::CommonDialogInitialize);
|
||||
}
|
||||
|
||||
} // namespace LibCommonDialog
|
||||
|
||||
LIB_DEFINE(InitDialog_1)
|
||||
{
|
||||
LibCommonDialog::InitDialog_1_CommonDialog(s);
|
||||
}
|
||||
|
||||
} // namespace Kyty::Libs
|
||||
|
||||
#endif // KYTY_EMU_ENABLED
|
||||
@@ -122,6 +122,17 @@ static KYTY_SYSV_ABI void stack_chk_fail()
|
||||
EXIT("stack fail!!!");
|
||||
}
|
||||
|
||||
static KYTY_SYSV_ABI int sigprocmask(int /*how*/, const void* /*set*/, void* /*oset*/)
|
||||
{
|
||||
// PRINT_NAME();
|
||||
|
||||
// printf("\t how = %d\n", how);
|
||||
// printf("\t set = %016" PRIx64 "\n", reinterpret_cast<uint64_t>(set));
|
||||
// printf("\t oset = %016" PRIx64 "\n", reinterpret_cast<uint64_t>(oset));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static KYTY_SYSV_ABI KernelModule KernelLoadStartModule(const char* module_file_name, size_t args, const void* argp, uint32_t flags,
|
||||
const KernelLoadModuleOpt* opt, int* res)
|
||||
{
|
||||
@@ -511,6 +522,9 @@ LIB_DEFINE(InitLibKernel_1_Pthread)
|
||||
LIB_FUNC("8+s5BzZjxSg", LibKernel::PthreadAttrGetaffinity);
|
||||
LIB_FUNC("nsYoNRywwNg", LibKernel::PthreadAttrInit);
|
||||
LIB_FUNC("JaRMy+QcpeU", LibKernel::PthreadAttrGetdetachstate);
|
||||
LIB_FUNC("Ru36fiTtJzA", LibKernel::PthreadAttrGetstackaddr);
|
||||
LIB_FUNC("-fA+7ZlGDQs", LibKernel::PthreadAttrGetstacksize);
|
||||
LIB_FUNC("txHtngJ+eyc", LibKernel::PthreadAttrGetguardsize);
|
||||
LIB_FUNC("UTXzJbWhhTE", LibKernel::PthreadAttrSetstacksize);
|
||||
LIB_FUNC("-Wreprtu0Qs", LibKernel::PthreadAttrSetdetachstate);
|
||||
LIB_FUNC("eXbUSpEaTsA", LibKernel::PthreadAttrSetinheritsched);
|
||||
@@ -573,6 +587,7 @@ LIB_DEFINE(InitLibKernel_1)
|
||||
LIB_FUNC("Xjoosiw+XPI", LibKernel::KernelUuidCreate);
|
||||
LIB_FUNC("WslcK1FQcGI", LibKernel::KernelIsNeoMode);
|
||||
LIB_FUNC("9BcDykPmo1I", LibKernel::get_error_addr);
|
||||
LIB_FUNC("6xVpy0Fdq+I", LibKernel::sigprocmask);
|
||||
|
||||
LIB_FUNC("1jfXLRVzisc", LibKernel::KernelUsleep);
|
||||
LIB_FUNC("rNhWz+lvOMU", LibKernel::KernelSetThreadDtors);
|
||||
|
||||
@@ -0,0 +1,179 @@
|
||||
#include "Kyty/Core/Common.h"
|
||||
|
||||
#include "Emulator/Common.h"
|
||||
#include "Emulator/Libs/Libs.h"
|
||||
#include "Emulator/Network.h"
|
||||
#include "Emulator/SymbolDatabase.h"
|
||||
|
||||
#ifdef KYTY_EMU_ENABLED
|
||||
|
||||
// NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
|
||||
#define NET_CALL(func) \
|
||||
[&]() \
|
||||
{ \
|
||||
auto result = func; \
|
||||
if (result < 0) \
|
||||
{ \
|
||||
*GetNetErrorAddr() = result; \
|
||||
} \
|
||||
return result; \
|
||||
}()
|
||||
|
||||
namespace Kyty::Libs {
|
||||
|
||||
namespace Network::Net {
|
||||
struct NetEtherAddr;
|
||||
} // namespace Network::Net
|
||||
|
||||
namespace LibNet {
|
||||
|
||||
LIB_VERSION("Net", 1, "Net", 1, 1);
|
||||
|
||||
static thread_local int g_net_errno = 0;
|
||||
|
||||
namespace Net = Network::Net;
|
||||
|
||||
KYTY_SYSV_ABI int* GetNetErrorAddr()
|
||||
{
|
||||
return &g_net_errno;
|
||||
}
|
||||
|
||||
static int KYTY_SYSV_ABI NetInit()
|
||||
{
|
||||
return NET_CALL(Net::NetInit());
|
||||
}
|
||||
|
||||
int KYTY_SYSV_ABI NetPoolCreate(const char* name, int size, int flags)
|
||||
{
|
||||
return NET_CALL(Net::NetPoolCreate(name, size, flags));
|
||||
}
|
||||
|
||||
int KYTY_SYSV_ABI NetInetPton(int af, const char* src, void* dst)
|
||||
{
|
||||
return NET_CALL(Net::NetInetPton(af, src, dst));
|
||||
}
|
||||
|
||||
int KYTY_SYSV_ABI NetEtherNtostr(const Net::NetEtherAddr* n, char* str, size_t len)
|
||||
{
|
||||
return NET_CALL(Net::NetEtherNtostr(n, str, len));
|
||||
}
|
||||
|
||||
int KYTY_SYSV_ABI NetGetMacAddress(Net::NetEtherAddr* addr, int flags)
|
||||
{
|
||||
return NET_CALL(Net::NetGetMacAddress(addr, flags));
|
||||
}
|
||||
|
||||
LIB_DEFINE(InitNet_1_Net)
|
||||
{
|
||||
LIB_FUNC("Nlev7Lg8k3A", LibNet::NetInit);
|
||||
LIB_FUNC("dgJBaeJnGpo", LibNet::NetPoolCreate);
|
||||
LIB_FUNC("8Kcp5d-q1Uo", LibNet::NetInetPton);
|
||||
LIB_FUNC("v6M4txecCuo", LibNet::NetEtherNtostr);
|
||||
LIB_FUNC("6Oc0bLsIYe0", LibNet::NetGetMacAddress);
|
||||
}
|
||||
|
||||
} // namespace LibNet
|
||||
|
||||
namespace LibSsl {
|
||||
|
||||
LIB_VERSION("Ssl", 1, "Ssl", 1, 1);
|
||||
|
||||
namespace Ssl = Network::Ssl;
|
||||
|
||||
LIB_DEFINE(InitNet_1_Ssl)
|
||||
{
|
||||
LIB_FUNC("hdpVEUDFW3s", Ssl::SslInit);
|
||||
}
|
||||
|
||||
} // namespace LibSsl
|
||||
|
||||
namespace LibHttp {
|
||||
|
||||
LIB_VERSION("Http", 1, "Http", 1, 1);
|
||||
|
||||
namespace Http = Network::Http;
|
||||
|
||||
LIB_DEFINE(InitNet_1_Http)
|
||||
{
|
||||
LIB_FUNC("A9cVMUtEp4Y", Http::HttpInit);
|
||||
LIB_FUNC("0gYjPTR-6cY", Http::HttpCreateTemplate);
|
||||
}
|
||||
|
||||
} // namespace LibHttp
|
||||
|
||||
namespace LibNetCtl {
|
||||
|
||||
LIB_VERSION("NetCtl", 1, "NetCtl", 1, 1);
|
||||
|
||||
namespace NetCtl = Network::NetCtl;
|
||||
|
||||
LIB_DEFINE(InitNet_1_NetCtl)
|
||||
{
|
||||
LIB_FUNC("gky0+oaNM4k", NetCtl::NetCtlInit);
|
||||
LIB_FUNC("JO4yuTuMoKI", NetCtl::NetCtlGetNatInfo);
|
||||
LIB_FUNC("iQw3iQPhvUQ", NetCtl::NetCtlCheckCallback);
|
||||
LIB_FUNC("uBPlr0lbuiI", NetCtl::NetCtlGetState);
|
||||
LIB_FUNC("UJ+Z7Q+4ck0", NetCtl::NetCtlRegisterCallback);
|
||||
LIB_FUNC("obuxdTiwkF8", NetCtl::NetCtlGetInfo);
|
||||
}
|
||||
|
||||
} // namespace LibNetCtl
|
||||
|
||||
namespace LibNpManager {
|
||||
|
||||
LIB_VERSION("NpManager", 1, "NpManager", 1, 1);
|
||||
|
||||
namespace NpManager = Network::NpManager;
|
||||
|
||||
LIB_DEFINE(InitNet_1_NpManager)
|
||||
{
|
||||
LIB_FUNC("3Zl8BePTh9Y", NpManager::NpCheckCallback);
|
||||
LIB_FUNC("Ec63y59l9tw", NpManager::NpSetNpTitleId);
|
||||
LIB_FUNC("A2CQ3kgSopQ", NpManager::NpSetContentRestriction);
|
||||
LIB_FUNC("VfRSmPmj8Q8", NpManager::NpRegisterStateCallback);
|
||||
LIB_FUNC("uFJpaKNBAj4", NpManager::NpRegisterGamePresenceCallback);
|
||||
LIB_FUNC("GImICnh+boA", NpManager::NpRegisterPlusEventCallback);
|
||||
}
|
||||
|
||||
} // namespace LibNpManager
|
||||
|
||||
namespace LibNpTrophy {
|
||||
|
||||
LIB_VERSION("NpTrophy", 1, "NpTrophy", 1, 1);
|
||||
|
||||
namespace NpTrophy = Network::NpTrophy;
|
||||
|
||||
LIB_DEFINE(InitNet_1_NpTrophy)
|
||||
{
|
||||
LIB_FUNC("q7U6tEAQf7c", NpTrophy::NpTrophyCreateHandle);
|
||||
}
|
||||
|
||||
} // namespace LibNpTrophy
|
||||
|
||||
namespace LibNpWebApi {
|
||||
|
||||
LIB_VERSION("NpWebApi", 1, "NpWebApi", 1, 1);
|
||||
|
||||
namespace NpWebApi = Network::NpWebApi;
|
||||
|
||||
LIB_DEFINE(InitNet_1_NpWebApi)
|
||||
{
|
||||
LIB_FUNC("G3AnLNdRBjE", NpWebApi::NpWebApiInitialize);
|
||||
}
|
||||
|
||||
} // namespace LibNpWebApi
|
||||
|
||||
LIB_DEFINE(InitNet_1)
|
||||
{
|
||||
LibNet::InitNet_1_Net(s);
|
||||
LibSsl::InitNet_1_Ssl(s);
|
||||
LibHttp::InitNet_1_Http(s);
|
||||
LibNetCtl::InitNet_1_NetCtl(s);
|
||||
LibNpManager::InitNet_1_NpManager(s);
|
||||
LibNpTrophy::InitNet_1_NpTrophy(s);
|
||||
LibNpWebApi::InitNet_1_NpWebApi(s);
|
||||
}
|
||||
|
||||
} // namespace Kyty::Libs
|
||||
|
||||
#endif // KYTY_EMU_ENABLED
|
||||
@@ -0,0 +1,88 @@
|
||||
#include "Kyty/Core/Common.h"
|
||||
#include "Kyty/Core/DbgAssert.h"
|
||||
#include "Kyty/Core/String.h"
|
||||
|
||||
#include "Emulator/Common.h"
|
||||
#include "Emulator/Libs/Errno.h"
|
||||
#include "Emulator/Libs/Libs.h"
|
||||
#include "Emulator/SymbolDatabase.h"
|
||||
|
||||
#ifdef KYTY_EMU_ENABLED
|
||||
|
||||
namespace Kyty::Libs {
|
||||
|
||||
LIB_VERSION("PlayGo", 1, "PlayGo", 1, 0);
|
||||
|
||||
namespace PlayGo {
|
||||
|
||||
struct PlayGoInitParams
|
||||
{
|
||||
const void* buf_addr;
|
||||
uint32_t buf_size;
|
||||
uint32_t reserved;
|
||||
};
|
||||
|
||||
int KYTY_SYSV_ABI PlayGoInitialize(const PlayGoInitParams* init)
|
||||
{
|
||||
PRINT_NAME();
|
||||
|
||||
EXIT_NOT_IMPLEMENTED(init == nullptr);
|
||||
|
||||
printf("\t buf_addr = %016" PRIx64 "\n", reinterpret_cast<uint64_t>(init->buf_addr));
|
||||
printf("\t buf_size = %" PRIu32 "\n", init->buf_size);
|
||||
printf("\t reserved = %" PRId32 "\n", init->reserved);
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
int KYTY_SYSV_ABI PlayGoOpen(int* out_handle, const void* param)
|
||||
{
|
||||
PRINT_NAME();
|
||||
|
||||
EXIT_NOT_IMPLEMENTED(out_handle == nullptr);
|
||||
EXIT_NOT_IMPLEMENTED(param != nullptr);
|
||||
|
||||
*out_handle = 1;
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
int KYTY_SYSV_ABI PlayGoGetLocus(int handle, const uint16_t* chunk_ids, uint32_t number_of_entries, int8_t* out_loci)
|
||||
{
|
||||
PRINT_NAME();
|
||||
|
||||
printf("\t handle = %d\n", handle);
|
||||
|
||||
EXIT_NOT_IMPLEMENTED(handle != 1);
|
||||
EXIT_NOT_IMPLEMENTED(chunk_ids == nullptr);
|
||||
EXIT_NOT_IMPLEMENTED(out_loci == nullptr);
|
||||
EXIT_NOT_IMPLEMENTED(number_of_entries != 1);
|
||||
|
||||
for (uint32_t i = 0; i < number_of_entries; i++)
|
||||
{
|
||||
printf("\t chunk_ids[%u] = %" PRIu16 "\n", i, chunk_ids[i]);
|
||||
|
||||
if (chunk_ids[i] == 0)
|
||||
{
|
||||
out_loci[i] = 3;
|
||||
} else
|
||||
{
|
||||
return PLAYGO_ERROR_BAD_CHUNK_ID;
|
||||
}
|
||||
}
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
} // namespace PlayGo
|
||||
|
||||
LIB_DEFINE(InitPlayGo_1)
|
||||
{
|
||||
LIB_FUNC("ts6GlZOKRrE", PlayGo::PlayGoInitialize);
|
||||
LIB_FUNC("M1Gma1ocrGE", PlayGo::PlayGoOpen);
|
||||
LIB_FUNC("uWIYLFkkwqk", PlayGo::PlayGoGetLocus);
|
||||
}
|
||||
|
||||
} // namespace Kyty::Libs
|
||||
|
||||
#endif // KYTY_EMU_ENABLED
|
||||
@@ -0,0 +1,54 @@
|
||||
#include "Kyty/Core/String.h"
|
||||
|
||||
#include "Emulator/Common.h"
|
||||
#include "Emulator/Libs/Errno.h"
|
||||
#include "Emulator/Libs/Libs.h"
|
||||
#include "Emulator/SymbolDatabase.h"
|
||||
|
||||
#ifdef KYTY_EMU_ENABLED
|
||||
|
||||
namespace Kyty::Libs {
|
||||
|
||||
LIB_VERSION("SaveData", 1, "SaveData", 1, 1);
|
||||
|
||||
namespace SaveData {
|
||||
|
||||
int KYTY_SYSV_ABI SaveDataInitialize(const void* /*init*/)
|
||||
{
|
||||
PRINT_NAME();
|
||||
|
||||
// EXIT_NOT_IMPLEMENTED(init != nullptr);
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
int KYTY_SYSV_ABI SaveDataInitialize2(const void* /*init*/)
|
||||
{
|
||||
PRINT_NAME();
|
||||
|
||||
// EXIT_NOT_IMPLEMENTED(init != nullptr);
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
int KYTY_SYSV_ABI SaveDataInitialize3(const void* /*init*/)
|
||||
{
|
||||
PRINT_NAME();
|
||||
|
||||
// EXIT_NOT_IMPLEMENTED(init != nullptr);
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
} // namespace SaveData
|
||||
|
||||
LIB_DEFINE(InitSaveData_1)
|
||||
{
|
||||
LIB_FUNC("ZkZhskCPXFw", SaveData::SaveDataInitialize);
|
||||
LIB_FUNC("l1NmDeDpNGU", SaveData::SaveDataInitialize2);
|
||||
LIB_FUNC("TywrFKCoLGY", SaveData::SaveDataInitialize3);
|
||||
}
|
||||
|
||||
} // namespace Kyty::Libs
|
||||
|
||||
#endif // KYTY_EMU_ENABLED
|
||||
@@ -1,3 +1,4 @@
|
||||
#include "Kyty/Core/Common.h"
|
||||
#include "Kyty/Core/DbgAssert.h"
|
||||
#include "Kyty/Core/String.h"
|
||||
|
||||
@@ -79,6 +80,16 @@ namespace SystemService {
|
||||
[[maybe_unused]] constexpr int PARAM_ENTER_BUTTON_ASSIGN_CIRCLE = 0;
|
||||
[[maybe_unused]] constexpr int PARAM_ENTER_BUTTON_ASSIGN_CROSS = 1;
|
||||
|
||||
struct SystemServiceStatus
|
||||
{
|
||||
int32_t event_num = 0;
|
||||
bool is_system_ui_overlaid = false;
|
||||
bool is_in_background_execution = false;
|
||||
bool is_cpu_mode_7cpu_normal = true;
|
||||
bool is_game_live_streaming_on_air = false;
|
||||
bool is_out_of_vr_play_area = false;
|
||||
};
|
||||
|
||||
static int KYTY_SYSV_ABI SystemServiceHideSplashScreen()
|
||||
{
|
||||
PRINT_NAME();
|
||||
@@ -116,12 +127,27 @@ static int KYTY_SYSV_ABI SystemServiceParamGetInt(int param_id, int* value)
|
||||
return OK;
|
||||
}
|
||||
|
||||
static int KYTY_SYSV_ABI SystemServiceGetStatus(SystemServiceStatus* status)
|
||||
{
|
||||
PRINT_NAME();
|
||||
|
||||
if (status == nullptr)
|
||||
{
|
||||
return SYSTEM_SERVICE_ERROR_PARAMETER;
|
||||
}
|
||||
|
||||
*status = SystemServiceStatus();
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
} // namespace SystemService
|
||||
|
||||
LIB_DEFINE(InitSystemService_1)
|
||||
{
|
||||
LIB_FUNC("Vo5V8KAwCmk", SystemService::SystemServiceHideSplashScreen);
|
||||
LIB_FUNC("fZo48un7LK4", SystemService::SystemServiceParamGetInt);
|
||||
LIB_FUNC("rPo6tV8D9bM", SystemService::SystemServiceGetStatus);
|
||||
}
|
||||
|
||||
} // namespace Kyty::Libs
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include "Kyty/Core/String.h"
|
||||
|
||||
#include "Emulator/Common.h"
|
||||
#include "Emulator/Libs/Errno.h"
|
||||
#include "Emulator/Libs/Libs.h"
|
||||
#include "Emulator/SymbolDatabase.h"
|
||||
|
||||
@@ -17,7 +18,7 @@ static KYTY_SYSV_ABI int UserServiceInitialize(const void* /*params*/)
|
||||
{
|
||||
PRINT_NAME();
|
||||
|
||||
return 0;
|
||||
return OK;
|
||||
}
|
||||
|
||||
static KYTY_SYSV_ABI int UserServiceGetInitialUser(int* user_id)
|
||||
@@ -28,7 +29,16 @@ static KYTY_SYSV_ABI int UserServiceGetInitialUser(int* user_id)
|
||||
|
||||
*user_id = 1;
|
||||
|
||||
return 0;
|
||||
return OK;
|
||||
}
|
||||
|
||||
static KYTY_SYSV_ABI int UserServiceGetEvent(void* event)
|
||||
{
|
||||
PRINT_NAME();
|
||||
|
||||
EXIT_NOT_IMPLEMENTED(event == nullptr);
|
||||
|
||||
return USER_SERVICE_ERROR_NO_EVENT;
|
||||
}
|
||||
|
||||
} // namespace UserService
|
||||
@@ -37,6 +47,7 @@ LIB_DEFINE(InitUserService_1)
|
||||
{
|
||||
LIB_FUNC("j3YMu1MVNNo", UserService::UserServiceInitialize);
|
||||
LIB_FUNC("CdWp0oHWGr0", UserService::UserServiceGetInitialUser);
|
||||
LIB_FUNC("yH17Q6NWtVg", UserService::UserServiceGetEvent);
|
||||
}
|
||||
|
||||
} // namespace Kyty::Libs
|
||||
|
||||
@@ -8,30 +8,40 @@ namespace LibcInternal {
|
||||
LIB_DEFINE(InitLibcInternal_1);
|
||||
} // namespace LibcInternal
|
||||
|
||||
LIB_DEFINE(InitAudio_1);
|
||||
LIB_DEFINE(InitDebug_1);
|
||||
LIB_DEFINE(InitDialog_1);
|
||||
LIB_DEFINE(InitDiscMap_1);
|
||||
LIB_DEFINE(InitGraphicsDriver_1);
|
||||
LIB_DEFINE(InitLibC_1);
|
||||
LIB_DEFINE(InitLibKernel_1);
|
||||
LIB_DEFINE(InitVideoOut_1);
|
||||
LIB_DEFINE(InitNet_1);
|
||||
LIB_DEFINE(InitPad_1);
|
||||
LIB_DEFINE(InitPlayGo_1);
|
||||
LIB_DEFINE(InitSaveData_1);
|
||||
LIB_DEFINE(InitSysmodule_1);
|
||||
LIB_DEFINE(InitDiscMap_1);
|
||||
LIB_DEFINE(InitDebug_1);
|
||||
LIB_DEFINE(InitGraphicsDriver_1);
|
||||
LIB_DEFINE(InitSystemService_1);
|
||||
LIB_DEFINE(InitUserService_1);
|
||||
LIB_DEFINE(InitPad_1);
|
||||
LIB_DEFINE(InitVideoOut_1);
|
||||
|
||||
bool Init(const String& id, Loader::SymbolDatabase* s)
|
||||
{
|
||||
LIB_CHECK(U"libAudio_1", InitAudio_1);
|
||||
LIB_CHECK(U"libc_1", InitLibC_1);
|
||||
LIB_CHECK(U"libc_internal_1", LibcInternal::InitLibcInternal_1);
|
||||
LIB_CHECK(U"libkernel_1", InitLibKernel_1);
|
||||
LIB_CHECK(U"libVideoOut_1", InitVideoOut_1);
|
||||
LIB_CHECK(U"libSysmodule_1", InitSysmodule_1);
|
||||
LIB_CHECK(U"libDiscMap_1", InitDiscMap_1);
|
||||
LIB_CHECK(U"libDebug_1", InitDebug_1);
|
||||
LIB_CHECK(U"libDialog_1", InitDialog_1);
|
||||
LIB_CHECK(U"libDiscMap_1", InitDiscMap_1);
|
||||
LIB_CHECK(U"libGraphicsDriver_1", InitGraphicsDriver_1);
|
||||
LIB_CHECK(U"libUserService_1", InitUserService_1);
|
||||
LIB_CHECK(U"libSystemService_1", InitSystemService_1);
|
||||
LIB_CHECK(U"libkernel_1", InitLibKernel_1);
|
||||
LIB_CHECK(U"libNet_1", InitNet_1);
|
||||
LIB_CHECK(U"libPad_1", InitPad_1);
|
||||
LIB_CHECK(U"libPlayGo_1", InitPlayGo_1);
|
||||
LIB_CHECK(U"libSaveData_1", InitSaveData_1);
|
||||
LIB_CHECK(U"libSysmodule_1", InitSysmodule_1);
|
||||
LIB_CHECK(U"libSystemService_1", InitSystemService_1);
|
||||
LIB_CHECK(U"libUserService_1", InitUserService_1);
|
||||
LIB_CHECK(U"libVideoOut_1", InitVideoOut_1);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user