more APIs

This commit is contained in:
InoriRus
2022-06-07 16:19:01 +10:00
parent 877560b7f6
commit 16baf5cc18
26 changed files with 1862 additions and 108 deletions
+5 -5
View File
@@ -5,8 +5,8 @@
#include "Emulator/Common.h"
#include "Emulator/Libs/Errno.h"
#include "Emulator/Libs/Libs.h"
#include "Emulator/Loader/Param.h"
#include "Emulator/Loader/SymbolDatabase.h"
#include "Emulator/Loader/SystemContent.h"
#ifdef KYTY_EMU_ENABLED
@@ -84,10 +84,10 @@ int KYTY_SYSV_ABI AppContentAppParamGetInt(uint32_t param_id, int32_t* value)
*value = 3;
found = true;
break;
case 1: found = Loader::ParamSfoGetInt("USER_DEFINED_PARAM_1", value); break;
case 2: found = Loader::ParamSfoGetInt("USER_DEFINED_PARAM_2", value); break;
case 3: found = Loader::ParamSfoGetInt("USER_DEFINED_PARAM_3", value); break;
case 4: found = Loader::ParamSfoGetInt("USER_DEFINED_PARAM_4", value); break;
case 1: found = Loader::SystemContentParamSfoGetInt("USER_DEFINED_PARAM_1", value); break;
case 2: found = Loader::SystemContentParamSfoGetInt("USER_DEFINED_PARAM_2", value); break;
case 3: found = Loader::SystemContentParamSfoGetInt("USER_DEFINED_PARAM_3", value); break;
case 4: found = Loader::SystemContentParamSfoGetInt("USER_DEFINED_PARAM_4", value); break;
default: EXIT("unknown param_id: %u\n", param_id);
}
+42
View File
@@ -21,6 +21,7 @@ LIB_DEFINE(InitAudio_1_AudioOut)
LIB_FUNC("w3PdaSTSwGE", AudioOut::AudioOutOutputs);
LIB_FUNC("QOQtbeDqsT4", AudioOut::AudioOutOutput);
LIB_FUNC("s1--uE9mBFw", AudioOut::AudioOutClose);
LIB_FUNC("GrQ9s4IrNaQ", AudioOut::AudioOutGetPortState);
}
} // namespace LibAudioOut
@@ -85,6 +86,45 @@ LIB_DEFINE(InitAudio_1_AvPlayer)
} // namespace LibAvPlayer
namespace LibAudio3d {
LIB_VERSION("Audio3d", 1, "Audio3d", 1, 1);
namespace Audio3d = Audio::Audio3d;
LIB_DEFINE(InitAudio_1_Audio3d)
{
LIB_FUNC("UmCvjSmuZIw", Audio3d::Audio3dInitialize);
LIB_FUNC("Im+jOoa5WAI", Audio3d::Audio3dGetDefaultOpenParameters);
LIB_FUNC("XeDDK0xJWQA", Audio3d::Audio3dPortOpen);
LIB_FUNC("Yq9bfUQ0uJg", Audio3d::Audio3dPortSetAttribute);
LIB_FUNC("YaaDbDwKpFM", Audio3d::Audio3dPortGetQueueLevel);
LIB_FUNC("lw0qrdSjZt8", Audio3d::Audio3dPortAdvance);
LIB_FUNC("VEVhZ9qd4ZY", Audio3d::Audio3dPortPush);
}
} // namespace LibAudio3d
namespace LibNgs2 {
LIB_VERSION("Ngs2", 1, "Ngs2", 1, 1);
namespace Ngs2 = Audio::Ngs2;
LIB_DEFINE(InitAudio_1_Ngs2)
{
LIB_FUNC("mPYgU4oYpuY", Ngs2::Ngs2SystemCreateWithAllocator);
LIB_FUNC("U546k6orxQo", Ngs2::Ngs2RackCreateWithAllocator);
LIB_FUNC("cLV4aiT9JpA", Ngs2::Ngs2RackCreate);
LIB_FUNC("0eFLVCfWVds", Ngs2::Ngs2RackQueryBufferSize);
LIB_FUNC("MwmHz8pAdAo", Ngs2::Ngs2RackGetVoiceHandle);
LIB_FUNC("uu94irFOGpA", Ngs2::Ngs2VoiceControl);
LIB_FUNC("-TOuuAQ-buE", Ngs2::Ngs2VoiceGetState);
LIB_FUNC("i0VnXM-C9fc", Ngs2::Ngs2SystemRender);
}
} // namespace LibNgs2
LIB_DEFINE(InitAudio_1)
{
LibAudioOut::InitAudio_1_AudioOut(s);
@@ -92,6 +132,8 @@ LIB_DEFINE(InitAudio_1)
LibVoiceQoS::InitAudio_1_VoiceQoS(s);
LibAjm::InitAudio_1_Ajm(s);
LibAvPlayer::InitAudio_1_AvPlayer(s);
LibAudio3d::InitAudio_1_Audio3d(s);
LibNgs2::InitAudio_1_Ngs2(s);
}
} // namespace Kyty::Libs
@@ -47,6 +47,7 @@ LIB_DEFINE(InitGraphicsDriver_1)
LIB_FUNC("nvEwfYAImTs", Graphics::GraphicsRegisterResource);
LIB_FUNC("Fwvh++m9IQI", Graphics::GraphicsGetGpuCoreClockFrequency);
LIB_FUNC("jg33rEKLfVs", Graphics::GraphicsIsUserPaEnabled);
LIB_FUNC("ln33zjBrfjk", Graphics::GraphicsGetTheTessellationFactorRingBufferBaseAddress);
}
} // namespace Kyty::Libs
+7
View File
@@ -460,6 +460,7 @@ LIB_DEFINE(InitLibKernel_1_Posix)
LIB_FUNC("OxhIB8LB-PQ", Posix::pthread_create);
LIB_FUNC("h9CcP3J0oVM", Posix::pthread_join);
LIB_FUNC("7H0iTOciTLo", Posix::pthread_mutex_lock);
LIB_FUNC("K-jXhbt2gn4", Posix::pthread_mutex_trylock);
LIB_FUNC("2Z+PpY6CaJg", Posix::pthread_mutex_unlock);
LIB_FUNC("ttHNfU+qDBU", Posix::pthread_mutex_init);
LIB_FUNC("dQHWEsJtoE4", Posix::pthread_mutexattr_init);
@@ -525,6 +526,7 @@ LIB_DEFINE(InitLibKernel_1_EventFlag)
{
LIB_FUNC("BpFoboUJoZU", EventFlag::KernelCreateEventFlag);
LIB_FUNC("JTvBflhYazQ", EventFlag::KernelWaitEventFlag);
LIB_FUNC("IOnSvHzqu6A", EventFlag::KernelSetEventFlag);
}
LIB_DEFINE(InitLibKernel_1_Semaphore)
@@ -557,6 +559,7 @@ LIB_DEFINE(InitLibKernel_1_Pthread)
LIB_FUNC("1tKyG7RlMJo", LibKernel::PthreadGetprio);
LIB_FUNC("W0Hpm2X0uPE", LibKernel::PthreadSetprio);
LIB_FUNC("T72hz6ffq08", LibKernel::PthreadYield);
LIB_FUNC("EI-5-jlq2dE", LibKernel::PthreadGetthreadid);
LIB_FUNC("62KCwEMmzcM", LibKernel::PthreadAttrDestroy);
LIB_FUNC("x1X76arYMxU", LibKernel::PthreadAttrGet);
@@ -568,6 +571,7 @@ LIB_DEFINE(InitLibKernel_1_Pthread)
LIB_FUNC("txHtngJ+eyc", LibKernel::PthreadAttrGetguardsize);
LIB_FUNC("UTXzJbWhhTE", LibKernel::PthreadAttrSetstacksize);
LIB_FUNC("-Wreprtu0Qs", LibKernel::PthreadAttrSetdetachstate);
LIB_FUNC("El+cQ20DynU", LibKernel::PthreadAttrSetguardsize);
LIB_FUNC("eXbUSpEaTsA", LibKernel::PthreadAttrSetinheritsched);
LIB_FUNC("DzES9hQF4f4", LibKernel::PthreadAttrSetschedparam);
LIB_FUNC("4+h9EzwKF4I", LibKernel::PthreadAttrSetschedpolicy);
@@ -590,8 +594,11 @@ LIB_DEFINE(InitLibKernel_1_Pthread)
LIB_FUNC("QBi7HCK03hw", LibKernel::KernelClockGettime);
LIB_FUNC("ejekcaNQNq0", LibKernel::KernelGettimeofday);
LIB_FUNC("-2IRUCO--PM", LibKernel::KernelReadTsc);
LIB_FUNC("1j3S3n-tTW4", LibKernel::KernelGetTscFrequency);
LIB_FUNC("4J2sUJmuHZQ", LibKernel::KernelGetProcessTime);
LIB_FUNC("BNowx2l588E", LibKernel::KernelGetProcessTimeCounterFrequency);
LIB_FUNC("fgxnMeTNUtY", LibKernel::KernelGetProcessTimeCounter);
LIB_FUNC("7H0iTOciTLo", Posix::pthread_mutex_lock);
LIB_FUNC("2Z+PpY6CaJg", Posix::pthread_mutex_unlock);
+9
View File
@@ -100,6 +100,7 @@ LIB_DEFINE(InitNet_1_Http)
LIB_FUNC("4I8vEpuEhZ8", Http::HttpDeleteTemplate);
LIB_FUNC("s2-NPIvz+iA", Http::HttpSetNonblock);
LIB_FUNC("htyBOoWeS58", Http::HttpsSetSslCallback);
LIB_FUNC("mSQCxzWTwVI", Http::HttpsDisableOption);
LIB_FUNC("6381dWF+xsQ", Http::HttpCreateEpoll);
LIB_FUNC("wYhXVfS2Et4", Http::HttpDestroyEpoll);
LIB_FUNC("-xm7kZQNpHI", Http::HttpSetEpoll);
@@ -110,6 +111,13 @@ LIB_DEFINE(InitNet_1_Http)
LIB_FUNC("qe7oZ+v4PWA", Http::HttpDeleteRequest);
LIB_FUNC("EY28T2bkN7k", Http::HttpAddRequestHeader);
LIB_FUNC("1e2BNwI-XzE", Http::HttpSendRequest);
LIB_FUNC("Tc-hAYDKtQc", Http::HttpSetResolveTimeOut);
LIB_FUNC("K1d1LqZRQHQ", Http::HttpSetResolveRetry);
LIB_FUNC("0S9tTH0uqTU", Http::HttpSetConnectTimeOut);
LIB_FUNC("xegFfZKBVlw", Http::HttpSetSendTimeOut);
LIB_FUNC("yigr4V0-HTM", Http::HttpSetRecvTimeOut);
LIB_FUNC("T-mGo9f3Pu4", Http::HttpSetAutoRedirect);
LIB_FUNC("qFg2SuyTJJY", Http::HttpSetAuthEnabled);
}
} // namespace LibHttp
@@ -146,6 +154,7 @@ LIB_DEFINE(InitNet_1_NpManager)
LIB_FUNC("VfRSmPmj8Q8", NpManager::NpRegisterStateCallback);
LIB_FUNC("uFJpaKNBAj4", NpManager::NpRegisterGamePresenceCallback);
LIB_FUNC("GImICnh+boA", NpManager::NpRegisterPlusEventCallback);
LIB_FUNC("hw5KNqAAels", NpManager::NpRegisterNpReachabilityStateCallback);
LIB_FUNC("p-o74CnoNzY", NpManager::NpGetNpId);
LIB_FUNC("XDncXQIJUSk", NpManager::NpGetOnlineId);
LIB_FUNC("eiqMCt9UshI", NpManager::NpCreateAsyncRequest);
+30 -2
View File
@@ -6,6 +6,7 @@
#include "Emulator/Libs/Errno.h"
#include "Emulator/Libs/Libs.h"
#include "Emulator/Loader/SymbolDatabase.h"
#include "Emulator/Loader/SystemContent.h"
#ifdef KYTY_EMU_ENABLED
@@ -15,6 +16,8 @@ LIB_VERSION("PlayGo", 1, "PlayGo", 1, 0);
namespace PlayGo {
static uint32_t g_chunks_num = 0;
struct PlayGoInitParams
{
const void* buf_addr;
@@ -35,6 +38,13 @@ int KYTY_SYSV_ABI PlayGoInitialize(const PlayGoInitParams* init)
return OK;
}
int KYTY_SYSV_ABI PlayGoTerminate()
{
PRINT_NAME();
return OK;
}
int KYTY_SYSV_ABI PlayGoOpen(int* out_handle, const void* param)
{
PRINT_NAME();
@@ -44,6 +54,21 @@ int KYTY_SYSV_ABI PlayGoOpen(int* out_handle, const void* param)
*out_handle = 1;
if (!Loader::SystemContentGetChunksNum(&g_chunks_num))
{
printf("Warning: assume that chunks count is 1\n");
g_chunks_num = 1;
}
return OK;
}
int KYTY_SYSV_ABI PlayGoClose(int handle)
{
PRINT_NAME();
EXIT_NOT_IMPLEMENTED(handle != 1);
return OK;
}
@@ -56,13 +81,14 @@ int KYTY_SYSV_ABI PlayGoGetLocus(int handle, const uint16_t* chunk_ids, uint32_t
EXIT_NOT_IMPLEMENTED(handle != 1);
EXIT_NOT_IMPLEMENTED(chunk_ids == nullptr);
EXIT_NOT_IMPLEMENTED(out_loci == nullptr);
EXIT_NOT_IMPLEMENTED(number_of_entries != 1);
// EXIT_NOT_IMPLEMENTED(number_of_entries != 1);
EXIT_NOT_IMPLEMENTED(g_chunks_num == 0);
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)
if (chunk_ids[i] <= g_chunks_num)
{
out_loci[i] = 3;
} else
@@ -79,7 +105,9 @@ int KYTY_SYSV_ABI PlayGoGetLocus(int handle, const uint16_t* chunk_ids, uint32_t
LIB_DEFINE(InitPlayGo_1)
{
LIB_FUNC("ts6GlZOKRrE", PlayGo::PlayGoInitialize);
LIB_FUNC("MPe0EeBGM-E", PlayGo::PlayGoTerminate);
LIB_FUNC("M1Gma1ocrGE", PlayGo::PlayGoOpen);
LIB_FUNC("Uco1I0dlDi8", PlayGo::PlayGoClose);
LIB_FUNC("uWIYLFkkwqk", PlayGo::PlayGoGetLocus);
}