mirror of
https://github.com/InoriRus/Kyty.git
synced 2026-08-28 05:06:40 +00:00
more APIs
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user