diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c36c026fc..3da7163dd 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -390,7 +390,7 @@ jobs:
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
- cache-name: ${{ runner.os }}-sdl-cache-cmake-configuration
+ cache-name: ${{ runner.os }}-sdl-gcc-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
@@ -401,7 +401,7 @@ jobs:
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.14
env:
- cache-name: ${{ runner.os }}-sdl-cache-cmake-build
+ cache-name: ${{ runner.os }}-sdl-gcc-cache-cmake-build
with:
append-timestamp: false
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
@@ -426,7 +426,7 @@ jobs:
- name: Cache CMake Configuration
uses: actions/cache@v4
env:
- cache-name: ${{ runner.os }}-qt-cache-cmake-configuration
+ cache-name: ${{ runner.os }}-qt-gcc-cache-cmake-configuration
with:
path: |
${{github.workspace}}/build
@@ -437,7 +437,7 @@ jobs:
- name: Cache CMake Build
uses: hendrikmuhs/ccache-action@v1.2.14
env:
- cache-name: ${{ runner.os }}-qt-cache-cmake-build
+ cache-name: ${{ runner.os }}-qt-gcc-cache-cmake-build
with:
append-timestamp: false
key: ${{ env.cache-name }}-${{ hashFiles('**/CMakeLists.txt', 'cmake/**') }}
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8ec04dad5..30cb033ed 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -250,10 +250,14 @@ set(KERNEL_LIB src/core/libraries/kernel/sync/mutex.cpp
src/core/libraries/kernel/time.h
src/core/libraries/kernel/orbis_error.h
src/core/libraries/kernel/posix_error.h
+ src/core/libraries/kernel/aio.cpp
+ src/core/libraries/kernel/aio.h
)
set(NETWORK_LIBS src/core/libraries/network/http.cpp
src/core/libraries/network/http.h
+ src/core/libraries/network/http2.cpp
+ src/core/libraries/network/http2.h
src/core/libraries/network/net.cpp
src/core/libraries/network/netctl.cpp
src/core/libraries/network/netctl.h
@@ -263,6 +267,8 @@ set(NETWORK_LIBS src/core/libraries/network/http.cpp
src/core/libraries/network/net.h
src/core/libraries/network/ssl.cpp
src/core/libraries/network/ssl.h
+ src/core/libraries/network/ssl2.cpp
+ src/core/libraries/network/ssl2.h
)
set(AVPLAYER_LIB src/core/libraries/avplayer/avplayer_common.cpp
@@ -415,7 +421,9 @@ set(VDEC_LIB src/core/libraries/videodec/videodec2_impl.cpp
src/core/libraries/videodec/videodec_impl.h
)
-set(NP_LIBS src/core/libraries/np_manager/np_manager.cpp
+set(NP_LIBS src/core/libraries/np_common/np_common.cpp
+ src/core/libraries/np_common/np_common.h
+ src/core/libraries/np_manager/np_manager.cpp
src/core/libraries/np_manager/np_manager.h
src/core/libraries/np_score/np_score.cpp
src/core/libraries/np_score/np_score.h
@@ -424,6 +432,8 @@ set(NP_LIBS src/core/libraries/np_manager/np_manager.cpp
src/core/libraries/np_trophy/trophy_ui.cpp
src/core/libraries/np_trophy/trophy_ui.h
src/core/libraries/np_trophy/np_trophy_error.h
+ src/core/libraries/np_web_api/np_web_api.cpp
+ src/core/libraries/np_web_api/np_web_api.h
)
set(MISC_LIBS src/core/libraries/screenshot/screenshot.cpp
diff --git a/dist/net.shadps4.shadPS4.metainfo.xml b/dist/net.shadps4.shadPS4.metainfo.xml
index 384cf75e8..d8f51baac 100644
--- a/dist/net.shadps4.shadPS4.metainfo.xml
+++ b/dist/net.shadps4.shadPS4.metainfo.xml
@@ -26,7 +26,7 @@
https://cdn.jsdelivr.net/gh/shadps4-emu/shadps4@main/documents/Screenshots/3.png
- Yakuza Kiwami
+ Yakuza 0
https://cdn.jsdelivr.net/gh/shadps4-emu/shadps4@main/documents/Screenshots/4.png
diff --git a/externals/sdl3 b/externals/sdl3
index 3a1d76d29..22422f774 160000
--- a/externals/sdl3
+++ b/externals/sdl3
@@ -1 +1 @@
-Subproject commit 3a1d76d298db023f6cf37fb08ee766f20a4e12ab
+Subproject commit 22422f7748d5128135995ed34c8f8012861c7332
diff --git a/externals/sirit b/externals/sirit
index 1e74f4ef8..26ad5a9d0 160000
--- a/externals/sirit
+++ b/externals/sirit
@@ -1 +1 @@
-Subproject commit 1e74f4ef8d2a0e3221a4de51977663f342b53c35
+Subproject commit 26ad5a9d0fe13260b0d7d6c64419d01a196b2e32
diff --git a/src/common/adaptive_mutex.h b/src/common/adaptive_mutex.h
new file mode 100644
index 000000000..f174f5996
--- /dev/null
+++ b/src/common/adaptive_mutex.h
@@ -0,0 +1,27 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#ifdef __linux__
+#include
+#endif
+
+namespace Common {
+
+#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
+class AdaptiveMutex {
+public:
+ void lock() {
+ pthread_mutex_lock(&mutex);
+ }
+ void unlock() {
+ pthread_mutex_unlock(&mutex);
+ }
+
+private:
+ pthread_mutex_t mutex = PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP;
+};
+#endif // PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
+
+} // namespace Common
diff --git a/src/common/config.cpp b/src/common/config.cpp
index e2015b549..23924bf64 100644
--- a/src/common/config.cpp
+++ b/src/common/config.cpp
@@ -45,6 +45,8 @@ static std::string logFilter;
static std::string logType = "async";
static std::string userName = "shadPS4";
static std::string updateChannel;
+static u16 deadZoneLeft = 2.0;
+static u16 deadZoneRight = 2.0;
static std::string backButtonBehavior = "left";
static std::string widgetStyle = "Fusion";
static bool useSpecialPad = false;
@@ -62,9 +64,10 @@ static u32 vblankDivider = 1;
static bool vkValidation = false;
static bool vkValidationSync = false;
static bool vkValidationGpu = false;
-static bool rdocEnable = false;
-static bool vkMarkers = false;
static bool vkCrashDiagnostic = false;
+static bool vkHostMarkers = false;
+static bool vkGuestMarkers = false;
+static bool rdocEnable = false;
static s16 cursorState = HideCursorState::Idle;
static int cursorHideTimeout = 5; // 5 seconds (default)
static bool separateupdatefolder = false;
@@ -73,6 +76,7 @@ static bool checkCompatibilityOnStartup = false;
static std::string trophyKey;
// Gui
+static bool load_game_size = true;
std::vector settings_install_dirs = {};
std::filesystem::path settings_addon_install_dir = {};
u32 main_window_geometry_x = 400;
@@ -103,6 +107,14 @@ void setTrophyKey(std::string key) {
trophyKey = key;
}
+bool GetLoadGameSizeEnabled() {
+ return load_game_size;
+}
+
+void setLoadGameSizeEnabled(bool enable) {
+ load_game_size = enable;
+}
+
bool isNeoModeConsole() {
return isNeo;
}
@@ -131,6 +143,14 @@ bool getEnableDiscordRPC() {
return enableDiscordRPC;
}
+u16 leftDeadZone() {
+ return deadZoneLeft;
+}
+
+u16 rightDeadZone() {
+ return deadZoneRight;
+}
+
s16 getCursorState() {
return cursorState;
}
@@ -223,10 +243,6 @@ bool isRdocEnabled() {
return rdocEnable;
}
-bool isMarkersEnabled() {
- return vkMarkers;
-}
-
u32 vblankDiv() {
return vblankDivider;
}
@@ -243,14 +259,20 @@ bool vkValidationGpuEnabled() {
return vkValidationGpu;
}
-bool vkMarkersEnabled() {
- return vkMarkers || vkCrashDiagnostic; // Crash diagnostic forces markers on
-}
-
bool vkCrashDiagnosticEnabled() {
return vkCrashDiagnostic;
}
+bool vkHostMarkersEnabled() {
+ // Forced on when crash diagnostic enabled.
+ return vkHostMarkers || vkCrashDiagnostic;
+}
+
+bool vkGuestMarkersEnabled() {
+ // Forced on when crash diagnostic enabled.
+ return vkGuestMarkers || vkCrashDiagnostic;
+}
+
bool getSeparateUpdateEnabled() {
return separateupdatefolder;
}
@@ -617,6 +639,8 @@ void load(const std::filesystem::path& path) {
if (data.contains("Input")) {
const toml::value& input = data.at("Input");
+ deadZoneLeft = toml::find_or(input, "deadZoneLeft", 2.0);
+ deadZoneRight = toml::find_or(input, "deadZoneRight", 2.0);
cursorState = toml::find_or(input, "cursorState", HideCursorState::Idle);
cursorHideTimeout = toml::find_or(input, "cursorHideTimeout", 5);
backButtonBehavior = toml::find_or(input, "backButtonBehavior", "left");
@@ -644,9 +668,10 @@ void load(const std::filesystem::path& path) {
vkValidation = toml::find_or(vk, "validation", false);
vkValidationSync = toml::find_or(vk, "validation_sync", false);
vkValidationGpu = toml::find_or(vk, "validation_gpu", true);
- rdocEnable = toml::find_or(vk, "rdocEnable", false);
- vkMarkers = toml::find_or(vk, "rdocMarkersEnable", false);
vkCrashDiagnostic = toml::find_or(vk, "crashDiagnostic", false);
+ vkHostMarkers = toml::find_or(vk, "hostMarkers", false);
+ vkGuestMarkers = toml::find_or(vk, "guestMarkers", false);
+ rdocEnable = toml::find_or(vk, "rdocEnable", false);
}
if (data.contains("Debug")) {
@@ -659,6 +684,7 @@ void load(const std::filesystem::path& path) {
if (data.contains("GUI")) {
const toml::value& gui = data.at("GUI");
+ load_game_size = toml::find_or(gui, "loadGameSizeEnabled", true);
m_icon_size = toml::find_or(gui, "iconSize", 0);
m_icon_size_grid = toml::find_or(gui, "iconSizeGrid", 0);
m_slider_pos = toml::find_or(gui, "sliderPos", 0);
@@ -735,6 +761,8 @@ void save(const std::filesystem::path& path) {
data["General"]["separateUpdateEnabled"] = separateupdatefolder;
data["General"]["compatibilityEnabled"] = compatibilityData;
data["General"]["checkCompatibilityOnStartup"] = checkCompatibilityOnStartup;
+ data["Input"]["deadZoneLeft"] = deadZoneLeft;
+ data["Input"]["deadZoneRight"] = deadZoneRight;
data["Input"]["cursorState"] = cursorState;
data["Input"]["cursorHideTimeout"] = cursorHideTimeout;
data["Input"]["backButtonBehavior"] = backButtonBehavior;
@@ -752,9 +780,10 @@ void save(const std::filesystem::path& path) {
data["Vulkan"]["validation"] = vkValidation;
data["Vulkan"]["validation_sync"] = vkValidationSync;
data["Vulkan"]["validation_gpu"] = vkValidationGpu;
- data["Vulkan"]["rdocEnable"] = rdocEnable;
- data["Vulkan"]["rdocMarkersEnable"] = vkMarkers;
data["Vulkan"]["crashDiagnostic"] = vkCrashDiagnostic;
+ data["Vulkan"]["hostMarkers"] = vkHostMarkers;
+ data["Vulkan"]["guestMarkers"] = vkGuestMarkers;
+ data["Vulkan"]["rdocEnable"] = rdocEnable;
data["Debug"]["DebugDump"] = isDebugDump;
data["Debug"]["CollectShader"] = isShaderDebug;
@@ -765,6 +794,7 @@ void save(const std::filesystem::path& path) {
install_dirs.emplace_back(std::string{fmt::UTF(dirString.u8string()).data});
}
data["GUI"]["installDirs"] = install_dirs;
+ data["GUI"]["loadGameSizeEnabled"] = load_game_size;
data["GUI"]["addonInstallDir"] =
std::string{fmt::UTF(settings_addon_install_dir.u8string()).data};
@@ -853,9 +883,10 @@ void setDefaultValues() {
vkValidation = false;
vkValidationSync = false;
vkValidationGpu = false;
- rdocEnable = false;
- vkMarkers = false;
vkCrashDiagnostic = false;
+ vkHostMarkers = false;
+ vkGuestMarkers = false;
+ rdocEnable = false;
emulator_language = "en";
m_language = 1;
gpuId = -1;
diff --git a/src/common/config.h b/src/common/config.h
index 3178c5d39..6f4a4a313 100644
--- a/src/common/config.h
+++ b/src/common/config.h
@@ -17,6 +17,8 @@ void saveMainWindow(const std::filesystem::path& path);
std::string getTrophyKey();
void setTrophyKey(std::string key);
+bool GetLoadGameSizeEnabled();
+void setLoadGameSizeEnabled(bool enable);
bool getIsFullscreen();
std::string getFullscreenMode();
bool isNeoModeConsole();
@@ -34,6 +36,8 @@ std::string getWidgetStyle();
std::string getUserName();
std::string getUpdateChannel();
+u16 leftDeadZone();
+u16 rightDeadZone();
s16 getCursorState();
int getCursorHideTimeout();
std::string getBackButtonBehavior();
@@ -100,8 +104,9 @@ void setRdocEnabled(bool enable);
bool vkValidationEnabled();
bool vkValidationSyncEnabled();
bool vkValidationGpuEnabled();
-bool vkMarkersEnabled();
bool vkCrashDiagnosticEnabled();
+bool vkHostMarkersEnabled();
+bool vkGuestMarkersEnabled();
// Gui
void setMainWindowGeometry(u32 x, u32 y, u32 w, u32 h);
diff --git a/src/common/logging/filter.cpp b/src/common/logging/filter.cpp
index 5ee2dce73..168d03948 100644
--- a/src/common/logging/filter.cpp
+++ b/src/common/logging/filter.cpp
@@ -95,12 +95,16 @@ bool ParseFilterRule(Filter& instance, Iterator begin, Iterator end) {
SUB(Lib, SaveData) \
SUB(Lib, SaveDataDialog) \
SUB(Lib, Http) \
+ SUB(Lib, Http2) \
SUB(Lib, Ssl) \
+ SUB(Lib, Ssl2) \
SUB(Lib, SysModule) \
SUB(Lib, Move) \
+ SUB(Lib, NpCommon) \
SUB(Lib, NpManager) \
SUB(Lib, NpScore) \
SUB(Lib, NpTrophy) \
+ SUB(Lib, NpWebApi) \
SUB(Lib, Screenshot) \
SUB(Lib, LibCInternal) \
SUB(Lib, AppContent) \
diff --git a/src/common/logging/types.h b/src/common/logging/types.h
index 6829e2d1b..4ca88e1be 100644
--- a/src/common/logging/types.h
+++ b/src/common/logging/types.h
@@ -63,11 +63,15 @@ enum class Class : u8 {
Lib_SaveData, ///< The LibSceSaveData implementation.
Lib_SaveDataDialog, ///< The LibSceSaveDataDialog implementation.
Lib_Ssl, ///< The LibSceSsl implementation.
+ Lib_Ssl2, ///< The LibSceSsl2 implementation.
Lib_Http, ///< The LibSceHttp implementation.
+ Lib_Http2, ///< The LibSceHttp2 implementation.
Lib_SysModule, ///< The LibSceSysModule implementation
+ Lib_NpCommon, ///< The LibSceNpCommon implementation
Lib_NpManager, ///< The LibSceNpManager implementation
Lib_NpScore, ///< The LibSceNpScore implementation
Lib_NpTrophy, ///< The LibSceNpTrophy implementation
+ Lib_NpWebApi, ///< The LibSceWebApi implementation
Lib_Screenshot, ///< The LibSceScreenshot implementation
Lib_LibCInternal, ///< The LibCInternal implementation.
Lib_AppContent, ///< The LibSceAppContent implementation.
diff --git a/src/common/thread.h b/src/common/thread.h
index 175ba9445..92cc0c59d 100644
--- a/src/common/thread.h
+++ b/src/common/thread.h
@@ -37,6 +37,10 @@ public:
void Start();
void End();
+
+ std::chrono::nanoseconds GetTotalWait() const {
+ return total_wait;
+ }
};
} // namespace Common
diff --git a/src/core/debug_state.h b/src/core/debug_state.h
index 6a8e15baa..a9e6f48b7 100644
--- a/src/core/debug_state.h
+++ b/src/core/debug_state.h
@@ -131,6 +131,8 @@ class DebugStateImpl {
friend class Core::Devtools::Widget::FrameGraph;
friend class Core::Devtools::Widget::ShaderList;
+ bool showing_debug_menu_bar = false;
+
std::queue debug_message_popup;
std::mutex guest_threads_mutex{};
@@ -153,6 +155,9 @@ class DebugStateImpl {
std::vector shader_dump_list{};
public:
+ float Framerate = 1.0f / 60.0f;
+ float FrameDeltaTime;
+
void ShowDebugMessage(std::string message) {
if (message.empty()) {
return;
@@ -160,6 +165,10 @@ public:
debug_message_popup.push(std::move(message));
}
+ bool& IsShowingDebugMenuBar() {
+ return showing_debug_menu_bar;
+ }
+
void AddCurrentThreadToGuestList();
void RemoveCurrentThreadFromGuestList();
diff --git a/src/core/devtools/layer.cpp b/src/core/devtools/layer.cpp
index 776f3377d..c652849e7 100644
--- a/src/core/devtools/layer.cpp
+++ b/src/core/devtools/layer.cpp
@@ -28,7 +28,6 @@ static bool show_simple_fps = false;
static bool visibility_toggled = false;
static float fps_scale = 1.0f;
-static bool show_advanced_debug = false;
static int dump_frame_count = 1;
static Widget::FrameGraph frame_graph;
@@ -253,8 +252,8 @@ void L::DrawAdvanced() {
}
void L::DrawSimple() {
- const auto io = GetIO();
- Text("%.1f FPS (%.2f ms)", io.Framerate, 1000.0f / io.Framerate);
+ const float frameRate = DebugState.Framerate;
+ Text("%d FPS (%.1f ms)", static_cast(std::round(frameRate)), 1000.0f / frameRate);
}
static void LoadSettings(const char* line) {
@@ -265,7 +264,7 @@ static void LoadSettings(const char* line) {
return;
}
if (sscanf(line, "show_advanced_debug=%d", &i) == 1) {
- show_advanced_debug = i != 0;
+ DebugState.IsShowingDebugMenuBar() = i != 0;
return;
}
if (sscanf(line, "show_frame_graph=%d", &i) == 1) {
@@ -310,7 +309,7 @@ void L::SetupSettings() {
handler.WriteAllFn = [](ImGuiContext*, ImGuiSettingsHandler* handler, ImGuiTextBuffer* buf) {
buf->appendf("[%s][Data]\n", handler->TypeName);
buf->appendf("fps_scale=%f\n", fps_scale);
- buf->appendf("show_advanced_debug=%d\n", show_advanced_debug);
+ buf->appendf("show_advanced_debug=%d\n", DebugState.IsShowingDebugMenuBar());
buf->appendf("show_frame_graph=%d\n", frame_graph.is_open);
buf->appendf("dump_frame_count=%d\n", dump_frame_count);
buf->append("\n");
@@ -336,12 +335,12 @@ void L::Draw() {
if (!DebugState.IsGuestThreadsPaused()) {
const auto fn = DebugState.flip_frame_count.load();
- frame_graph.AddFrame(fn, io.DeltaTime);
+ frame_graph.AddFrame(fn, DebugState.FrameDeltaTime);
}
if (IsKeyPressed(ImGuiKey_F10, false)) {
if (io.KeyCtrl) {
- show_advanced_debug = !show_advanced_debug;
+ DebugState.IsShowingDebugMenuBar() ^= true;
} else {
show_simple_fps = !show_simple_fps;
}
@@ -376,7 +375,7 @@ void L::Draw() {
End();
}
- if (show_advanced_debug) {
+ if (DebugState.IsShowingDebugMenuBar()) {
PushFont(io.Fonts->Fonts[IMGUI_FONT_MONO]);
PushID("DevtoolsLayer");
DrawAdvanced();
diff --git a/src/core/devtools/widget/frame_graph.cpp b/src/core/devtools/widget/frame_graph.cpp
index 0e170db38..d93de571a 100644
--- a/src/core/devtools/widget/frame_graph.cpp
+++ b/src/core/devtools/widget/frame_graph.cpp
@@ -83,15 +83,13 @@ void FrameGraph::Draw() {
auto isSystemPaused = DebugState.IsGuestThreadsPaused();
- static float deltaTime;
- static float frameRate;
-
if (!isSystemPaused) {
- deltaTime = io.DeltaTime * 1000.0f;
+ deltaTime = DebugState.FrameDeltaTime * 1000.0f;
frameRate = 1000.0f / deltaTime;
}
Text("Frame time: %.3f ms (%.1f FPS)", deltaTime, frameRate);
+ Text("Presenter time: %.3f ms (%.1f FPS)", io.DeltaTime * 1000.0f, 1.0f / io.DeltaTime);
Text("Flip frame: %d Gnm submit frame: %d", DebugState.flip_frame_count.load(),
DebugState.gnm_frame_count.load());
diff --git a/src/core/devtools/widget/frame_graph.h b/src/core/devtools/widget/frame_graph.h
index 40a68ffa7..aef3c0747 100644
--- a/src/core/devtools/widget/frame_graph.h
+++ b/src/core/devtools/widget/frame_graph.h
@@ -16,6 +16,9 @@ class FrameGraph {
std::array frame_list{};
+ float deltaTime{};
+ float frameRate{};
+
void DrawFrameGraph();
public:
diff --git a/src/core/devtools/widget/reg_popup.cpp b/src/core/devtools/widget/reg_popup.cpp
index fae620901..7bb38df24 100644
--- a/src/core/devtools/widget/reg_popup.cpp
+++ b/src/core/devtools/widget/reg_popup.cpp
@@ -105,7 +105,8 @@ void RegPopup::DrawDepthBuffer(const DepthBuffer& depth_data) {
"DEPTH_SLICE.TILE_MAX", depth_buffer.depth_slice.tile_max,
"Pitch()", depth_buffer.Pitch(),
"Height()", depth_buffer.Height(),
- "Address()", depth_buffer.Address(),
+ "DepthAddress()", depth_buffer.DepthAddress(),
+ "StencilAddress()", depth_buffer.StencilAddress(),
"NumSamples()", depth_buffer.NumSamples(),
"NumBits()", depth_buffer.NumBits(),
"GetDepthSliceSize()", depth_buffer.GetDepthSliceSize()
diff --git a/src/core/devtools/widget/reg_view.cpp b/src/core/devtools/widget/reg_view.cpp
index a1b7937df..fa3c5e3e6 100644
--- a/src/core/devtools/widget/reg_view.cpp
+++ b/src/core/devtools/widget/reg_view.cpp
@@ -155,7 +155,7 @@ void RegView::DrawGraphicsRegs() {
TableNextColumn();
TextUnformatted("Depth buffer");
TableNextColumn();
- if (regs.depth_buffer.Address() == 0 || !regs.depth_control.depth_enable) {
+ if (regs.depth_buffer.DepthAddress() == 0 || !regs.depth_control.depth_enable) {
TextUnformatted("N/A");
} else {
const char* text = last_selected_cb == depth_id && default_reg_popup.open ? "x" : "->";
@@ -241,7 +241,7 @@ void RegView::SetData(DebugStateType::RegDump _data, const std::string& base_tit
default_reg_popup.open = false;
if (last_selected_cb == depth_id) {
const auto& has_depth =
- regs.depth_buffer.Address() != 0 && regs.depth_control.depth_enable;
+ regs.depth_buffer.DepthAddress() != 0 && regs.depth_control.depth_enable;
if (has_depth) {
default_reg_popup.SetData(title, regs.depth_buffer, regs.depth_control);
default_reg_popup.open = true;
diff --git a/src/core/libraries/kernel/aio.cpp b/src/core/libraries/kernel/aio.cpp
new file mode 100644
index 000000000..e017010cb
--- /dev/null
+++ b/src/core/libraries/kernel/aio.cpp
@@ -0,0 +1,339 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include
+
+#include "aio.h"
+#include "common/assert.h"
+#include "common/debug.h"
+#include "common/logging/log.h"
+#include "core/libraries/kernel/equeue.h"
+#include "core/libraries/kernel/orbis_error.h"
+#include "core/libraries/libs.h"
+#include "file_system.h"
+
+namespace Libraries::Kernel {
+
+#define MAX_QUEUE 512
+
+static s32* id_state;
+static s32 id_index;
+
+s32 sceKernelAioInitializeImpl(void* p, s32 size) {
+
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioDeleteRequest(OrbisKernelAioSubmitId id, s32* ret) {
+ if (ret == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ id_state[id] = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ *ret = 0;
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioDeleteRequests(OrbisKernelAioSubmitId id[], s32 num, s32 ret[]) {
+ if (ret == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ for (s32 i = 0; i < num; i++) {
+ id_state[id[i]] = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ ret[i] = 0;
+ }
+
+ return 0;
+}
+s32 PS4_SYSV_ABI sceKernelAioPollRequest(OrbisKernelAioSubmitId id, s32* state) {
+ if (state == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ *state = id_state[id];
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioPollRequests(OrbisKernelAioSubmitId id[], s32 num, s32 state[]) {
+ if (state == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ for (s32 i = 0; i < num; i++) {
+ state[i] = id_state[id[i]];
+ }
+
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioCancelRequest(OrbisKernelAioSubmitId id, s32* state) {
+ if (state == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ if (id) {
+ id_state[id] = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ *state = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ } else {
+ *state = ORBIS_KERNEL_AIO_STATE_PROCESSING;
+ }
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioCancelRequests(OrbisKernelAioSubmitId id[], s32 num, s32 state[]) {
+ if (state == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ for (s32 i = 0; i < num; i++) {
+ if (id[i]) {
+ id_state[id[i]] = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ state[i] = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ } else {
+ state[i] = ORBIS_KERNEL_AIO_STATE_PROCESSING;
+ }
+ }
+
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioWaitRequest(OrbisKernelAioSubmitId id, s32* state, u32* usec) {
+ if (state == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ u32 timer = 0;
+
+ s32 timeout = 0;
+
+ while (id_state[id] == ORBIS_KERNEL_AIO_STATE_PROCESSING) {
+ sceKernelUsleep(10);
+
+ timer += 10;
+ if (*usec) {
+ if (timer > *usec) {
+ timeout = 1;
+ break;
+ }
+ }
+ }
+
+ *state = id_state[id];
+
+ if (timeout)
+ return ORBIS_KERNEL_ERROR_ETIMEDOUT;
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioWaitRequests(OrbisKernelAioSubmitId id[], s32 num, s32 state[],
+ u32 mode, u32* usec) {
+ if (state == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ u32 timer = 0;
+ s32 timeout = 0;
+ s32 completion = 0;
+
+ for (s32 i = 0; i < num; i++) {
+ if (!completion && !timeout) {
+ while (id_state[id[i]] == ORBIS_KERNEL_AIO_STATE_PROCESSING) {
+ sceKernelUsleep(10);
+ timer += 10;
+
+ if (*usec) {
+ if (timer > *usec) {
+ timeout = 1;
+ break;
+ }
+ }
+ }
+ }
+
+ if (mode == 0x02) {
+ if (id_state[id[i]] == ORBIS_KERNEL_AIO_STATE_COMPLETED)
+ completion = 1;
+ }
+
+ state[i] = id_state[id[i]];
+ }
+
+ if (timeout)
+ return ORBIS_KERNEL_ERROR_ETIMEDOUT;
+
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioSubmitReadCommands(OrbisKernelAioRWRequest req[], s32 size, s32 prio,
+ OrbisKernelAioSubmitId* id) {
+ if (req == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ if (id == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_PROCESSING;
+
+ for (s32 i = 0; i < size; i++) {
+
+ s64 ret = sceKernelPread(req[i].fd, req[i].buf, req[i].nbyte, req[i].offset);
+
+ if (ret < 0) {
+ req[i].result->state = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ req[i].result->returnValue = ret;
+
+ } else {
+ req[i].result->state = ORBIS_KERNEL_AIO_STATE_COMPLETED;
+ req[i].result->returnValue = ret;
+ }
+ }
+
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_COMPLETED;
+
+ *id = id_index;
+
+ id_index = (id_index + 1) % MAX_QUEUE;
+
+ if (!id_index)
+ id_index++;
+
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioSubmitReadCommandsMultiple(OrbisKernelAioRWRequest req[], s32 size,
+ s32 prio, OrbisKernelAioSubmitId id[]) {
+ if (req == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ if (id == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ for (s32 i = 0; i < size; i++) {
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_PROCESSING;
+
+ s64 ret = sceKernelPread(req[i].fd, req[i].buf, req[i].nbyte, req[i].offset);
+
+ if (ret < 0) {
+ req[i].result->state = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ req[i].result->returnValue = ret;
+
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_ABORTED;
+
+ } else {
+ req[i].result->state = ORBIS_KERNEL_AIO_STATE_COMPLETED;
+ req[i].result->returnValue = ret;
+
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_COMPLETED;
+ }
+
+ id[i] = id_index;
+
+ id_index = (id_index + 1) % MAX_QUEUE;
+
+ if (!id_index)
+ id_index++;
+ }
+
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioSubmitWriteCommands(OrbisKernelAioRWRequest req[], s32 size, s32 prio,
+ OrbisKernelAioSubmitId* id) {
+ if (req == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ if (id == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ for (s32 i = 0; i < size; i++) {
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_PROCESSING;
+
+ s64 ret = sceKernelPwrite(req[i].fd, req[i].buf, req[i].nbyte, req[i].offset);
+
+ if (ret < 0) {
+ req[i].result->state = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ req[i].result->returnValue = ret;
+
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_ABORTED;
+
+ } else {
+ req[i].result->state = ORBIS_KERNEL_AIO_STATE_COMPLETED;
+ req[i].result->returnValue = ret;
+
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_COMPLETED;
+ }
+ }
+
+ *id = id_index;
+
+ id_index = (id_index + 1) % MAX_QUEUE;
+
+ // skip id_index equals 0 , because sceKernelAioCancelRequest will submit id
+ // equal to 0
+ if (!id_index)
+ id_index++;
+
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioSubmitWriteCommandsMultiple(OrbisKernelAioRWRequest req[], s32 size,
+ s32 prio, OrbisKernelAioSubmitId id[]) {
+ if (req == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ if (id == nullptr) {
+ return ORBIS_KERNEL_ERROR_EFAULT;
+ }
+ for (s32 i = 0; i < size; i++) {
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_PROCESSING;
+ s64 ret = sceKernelPwrite(req[i].fd, req[i].buf, req[i].nbyte, req[i].offset);
+
+ if (ret < 0) {
+ req[i].result->state = ORBIS_KERNEL_AIO_STATE_ABORTED;
+ req[i].result->returnValue = ret;
+
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_ABORTED;
+
+ } else {
+ req[i].result->state = ORBIS_KERNEL_AIO_STATE_COMPLETED;
+ req[i].result->returnValue = ret;
+ id_state[id_index] = ORBIS_KERNEL_AIO_STATE_COMPLETED;
+ }
+
+ id[i] = id_index;
+ id_index = (id_index + 1) % MAX_QUEUE;
+
+ if (!id_index)
+ id_index++;
+ }
+ return 0;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioSetParam() {
+ LOG_ERROR(Kernel, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceKernelAioInitializeParam() {
+ LOG_ERROR(Kernel, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+void RegisterAio(Core::Loader::SymbolsResolver* sym) {
+ id_index = 1;
+ id_state = (int*)malloc(sizeof(int) * MAX_QUEUE);
+ memset(id_state, 0, sizeof(sizeof(int) * MAX_QUEUE));
+
+ LIB_FUNCTION("fR521KIGgb8", "libkernel", 1, "libkernel", 1, 1, sceKernelAioCancelRequest);
+ LIB_FUNCTION("3Lca1XBrQdY", "libkernel", 1, "libkernel", 1, 1, sceKernelAioCancelRequests);
+ LIB_FUNCTION("5TgME6AYty4", "libkernel", 1, "libkernel", 1, 1, sceKernelAioDeleteRequest);
+ LIB_FUNCTION("Ft3EtsZzAoY", "libkernel", 1, "libkernel", 1, 1, sceKernelAioDeleteRequests);
+ LIB_FUNCTION("vYU8P9Td2Zo", "libkernel", 1, "libkernel", 1, 1, sceKernelAioInitializeImpl);
+ LIB_FUNCTION("nu4a0-arQis", "libkernel", 1, "libkernel", 1, 1, sceKernelAioInitializeParam);
+ LIB_FUNCTION("2pOuoWoCxdk", "libkernel", 1, "libkernel", 1, 1, sceKernelAioPollRequest);
+ LIB_FUNCTION("o7O4z3jwKzo", "libkernel", 1, "libkernel", 1, 1, sceKernelAioPollRequests);
+ LIB_FUNCTION("9WK-vhNXimw", "libkernel", 1, "libkernel", 1, 1, sceKernelAioSetParam);
+ LIB_FUNCTION("HgX7+AORI58", "libkernel", 1, "libkernel", 1, 1, sceKernelAioSubmitReadCommands);
+ LIB_FUNCTION("lXT0m3P-vs4", "libkernel", 1, "libkernel", 1, 1,
+ sceKernelAioSubmitReadCommandsMultiple);
+ LIB_FUNCTION("XQ8C8y+de+E", "libkernel", 1, "libkernel", 1, 1, sceKernelAioSubmitWriteCommands);
+ LIB_FUNCTION("xT3Cpz0yh6Y", "libkernel", 1, "libkernel", 1, 1,
+ sceKernelAioSubmitWriteCommandsMultiple);
+ LIB_FUNCTION("KOF-oJbQVvc", "libkernel", 1, "libkernel", 1, 1, sceKernelAioWaitRequest);
+ LIB_FUNCTION("lgK+oIWkJyA", "libkernel", 1, "libkernel", 1, 1, sceKernelAioWaitRequests);
+}
+
+} // namespace Libraries::Kernel
\ No newline at end of file
diff --git a/src/core/libraries/kernel/aio.h b/src/core/libraries/kernel/aio.h
new file mode 100644
index 000000000..0ad21e938
--- /dev/null
+++ b/src/core/libraries/kernel/aio.h
@@ -0,0 +1,43 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include
+#include
+#include
+#include
+#include
+
+#include "common/types.h"
+
+namespace Core::Loader {
+class SymbolsResolver;
+}
+
+namespace Libraries::Kernel {
+
+enum AioState {
+ ORBIS_KERNEL_AIO_STATE_SUBMITTED = 1,
+ ORBIS_KERNEL_AIO_STATE_PROCESSING = 2,
+ ORBIS_KERNEL_AIO_STATE_COMPLETED = 3,
+ ORBIS_KERNEL_AIO_STATE_ABORTED = 4
+};
+
+struct OrbisKernelAioResult {
+ s64 returnValue;
+ u32 state;
+};
+
+typedef s32 OrbisKernelAioSubmitId;
+
+struct OrbisKernelAioRWRequest {
+ s64 offset;
+ s64 nbyte;
+ void* buf;
+ OrbisKernelAioResult* result;
+ s32 fd;
+};
+
+void RegisterAio(Core::Loader::SymbolsResolver* sym);
+} // namespace Libraries::Kernel
\ No newline at end of file
diff --git a/src/core/libraries/kernel/file_system.h b/src/core/libraries/kernel/file_system.h
index 6443962ff..1838df2fe 100644
--- a/src/core/libraries/kernel/file_system.h
+++ b/src/core/libraries/kernel/file_system.h
@@ -67,7 +67,8 @@ constexpr int ORBIS_KERNEL_O_DIRECTORY = 0x00020000;
s64 PS4_SYSV_ABI sceKernelWrite(int d, const void* buf, size_t nbytes);
s64 PS4_SYSV_ABI sceKernelRead(int d, void* buf, size_t nbytes);
-
+s64 PS4_SYSV_ABI sceKernelPread(int d, void* buf, size_t nbytes, s64 offset);
+s64 PS4_SYSV_ABI sceKernelPwrite(int d, void* buf, size_t nbytes, s64 offset);
void RegisterFileSystem(Core::Loader::SymbolsResolver* sym);
} // namespace Libraries::Kernel
diff --git a/src/core/libraries/kernel/kernel.cpp b/src/core/libraries/kernel/kernel.cpp
index b05c96fad..2b7735219 100644
--- a/src/core/libraries/kernel/kernel.cpp
+++ b/src/core/libraries/kernel/kernel.cpp
@@ -28,6 +28,7 @@
#include
#endif
#include
+#include "aio.h"
namespace Libraries::Kernel {
@@ -59,7 +60,7 @@ static void KernelServiceThread(std::stop_token stoken) {
}
io_context.run();
- io_context.reset();
+ io_context.restart();
asio_requests = 0;
}
@@ -218,6 +219,7 @@ void RegisterKernel(Core::Loader::SymbolsResolver* sym) {
Libraries::Kernel::RegisterEventQueue(sym);
Libraries::Kernel::RegisterProcess(sym);
Libraries::Kernel::RegisterException(sym);
+ Libraries::Kernel::RegisterAio(sym);
LIB_OBJ("f7uOxY9mM1U", "libkernel", 1, "libkernel", 1, 1, &g_stack_chk_guard);
LIB_FUNCTION("PfccT7qURYE", "libkernel", 1, "libkernel", 1, 1, kernel_ioctl);
diff --git a/src/core/libraries/kernel/threads/condvar.cpp b/src/core/libraries/kernel/threads/condvar.cpp
index 853526559..0b0545ace 100644
--- a/src/core/libraries/kernel/threads/condvar.cpp
+++ b/src/core/libraries/kernel/threads/condvar.cpp
@@ -339,6 +339,8 @@ int PS4_SYSV_ABI posix_pthread_condattr_setpshared(PthreadCondAttrT* attr, int p
void RegisterCond(Core::Loader::SymbolsResolver* sym) {
// Posix
LIB_FUNCTION("mKoTx03HRWA", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_condattr_init);
+ LIB_FUNCTION("dJcuQVn6-Iw", "libScePosix", 1, "libkernel", 1, 1,
+ posix_pthread_condattr_destroy);
LIB_FUNCTION("0TyVk4MSLt0", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_cond_init);
LIB_FUNCTION("2MOy+rUfuhQ", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_cond_signal);
LIB_FUNCTION("RXXqi4CtF8w", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_cond_destroy);
@@ -347,8 +349,11 @@ void RegisterCond(Core::Loader::SymbolsResolver* sym) {
LIB_FUNCTION("mkx2fVhNMsg", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_cond_broadcast);
// Posix-Kernel
+ LIB_FUNCTION("0TyVk4MSLt0", "libkernel", 1, "libkernel", 1, 1, posix_pthread_cond_init);
LIB_FUNCTION("Op8TBGY5KHg", "libkernel", 1, "libkernel", 1, 1, posix_pthread_cond_wait);
LIB_FUNCTION("mkx2fVhNMsg", "libkernel", 1, "libkernel", 1, 1, posix_pthread_cond_broadcast);
+ LIB_FUNCTION("mKoTx03HRWA", "libkernel", 1, "libkernel", 1, 1, posix_pthread_condattr_init);
+ LIB_FUNCTION("dJcuQVn6-Iw", "libkernel", 1, "libkernel", 1, 1, posix_pthread_condattr_destroy);
// Orbis
LIB_FUNCTION("2Tb92quprl0", "libkernel", 1, "libkernel", 1, 1, ORBIS(scePthreadCondInit));
diff --git a/src/core/libraries/kernel/threads/exception.cpp b/src/core/libraries/kernel/threads/exception.cpp
index cc391e928..5e2f35d69 100644
--- a/src/core/libraries/kernel/threads/exception.cpp
+++ b/src/core/libraries/kernel/threads/exception.cpp
@@ -153,6 +153,11 @@ int PS4_SYSV_ABI sceKernelDebugRaiseException() {
return 0;
}
+int PS4_SYSV_ABI sceKernelDebugRaiseExceptionOnReleaseMode() {
+ UNREACHABLE();
+ return 0;
+}
+
void RegisterException(Core::Loader::SymbolsResolver* sym) {
LIB_FUNCTION("il03nluKfMk", "libkernel_unity", 1, "libkernel", 1, 1, sceKernelRaiseException);
LIB_FUNCTION("WkwEd3N7w0Y", "libkernel_unity", 1, "libkernel", 1, 1,
@@ -160,6 +165,8 @@ void RegisterException(Core::Loader::SymbolsResolver* sym) {
LIB_FUNCTION("Qhv5ARAoOEc", "libkernel_unity", 1, "libkernel", 1, 1,
sceKernelRemoveExceptionHandler)
LIB_FUNCTION("OMDRKKAZ8I4", "libkernel", 1, "libkernel", 1, 1, sceKernelDebugRaiseException);
+ LIB_FUNCTION("zE-wXIZjLoM", "libkernel", 1, "libkernel", 1, 1,
+ sceKernelDebugRaiseExceptionOnReleaseMode);
}
} // namespace Libraries::Kernel
diff --git a/src/core/libraries/kernel/threads/mutex.cpp b/src/core/libraries/kernel/threads/mutex.cpp
index 4f11e32da..956e5ef65 100644
--- a/src/core/libraries/kernel/threads/mutex.cpp
+++ b/src/core/libraries/kernel/threads/mutex.cpp
@@ -438,8 +438,11 @@ void RegisterMutex(Core::Loader::SymbolsResolver* sym) {
LIB_FUNCTION("K-jXhbt2gn4", "libScePosix", 1, "libkernel", 1, 1, posix_pthread_mutex_trylock);
// Posix-Kernel
+ LIB_FUNCTION("ttHNfU+qDBU", "libkernel", 1, "libkernel", 1, 1, posix_pthread_mutex_init);
LIB_FUNCTION("7H0iTOciTLo", "libkernel", 1, "libkernel", 1, 1, posix_pthread_mutex_lock);
LIB_FUNCTION("2Z+PpY6CaJg", "libkernel", 1, "libkernel", 1, 1, posix_pthread_mutex_unlock);
+ LIB_FUNCTION("dQHWEsJtoE4", "libkernel", 1, "libkernel", 1, 1, posix_pthread_mutexattr_init);
+ LIB_FUNCTION("mDmgMOGVUqg", "libkernel", 1, "libkernel", 1, 1, posix_pthread_mutexattr_settype);
// Orbis
LIB_FUNCTION("cmo1RIYva9o", "libkernel", 1, "libkernel", 1, 1, ORBIS(scePthreadMutexInit));
diff --git a/src/core/libraries/kernel/threads/pthread.cpp b/src/core/libraries/kernel/threads/pthread.cpp
index e81207a0d..641fbe10d 100644
--- a/src/core/libraries/kernel/threads/pthread.cpp
+++ b/src/core/libraries/kernel/threads/pthread.cpp
@@ -386,6 +386,9 @@ int PS4_SYSV_ABI posix_sched_get_priority_min() {
}
int PS4_SYSV_ABI posix_pthread_rename_np(PthreadT thread, const char* name) {
+ if (thread == nullptr) {
+ return POSIX_EINVAL;
+ }
LOG_INFO(Kernel_Pthread, "name = {}", name);
Common::SetThreadName(reinterpret_cast(thread->native_thr.GetHandle()), name);
thread->name = name;
@@ -535,6 +538,7 @@ void RegisterThread(Core::Loader::SymbolsResolver* sym) {
LIB_FUNCTION("6XG4B33N09g", "libScePosix", 1, "libkernel", 1, 1, sched_yield);
// Posix-Kernel
+ LIB_FUNCTION("Z4QosVuAsA0", "libkernel", 1, "libkernel", 1, 1, posix_pthread_once);
LIB_FUNCTION("EotR8a3ASf4", "libkernel", 1, "libkernel", 1, 1, posix_pthread_self);
LIB_FUNCTION("OxhIB8LB-PQ", "libkernel", 1, "libkernel", 1, 1, posix_pthread_create);
diff --git a/src/core/libraries/kernel/time.h b/src/core/libraries/kernel/time.h
index 6aa281aaf..407b6f9ed 100644
--- a/src/core/libraries/kernel/time.h
+++ b/src/core/libraries/kernel/time.h
@@ -82,6 +82,7 @@ int PS4_SYSV_ABI sceKernelConvertLocaltimeToUtc(time_t param_1, int64_t param_2,
int PS4_SYSV_ABI sceKernelConvertUtcToLocaltime(time_t time, time_t* local_time, OrbisTimesec* st,
u64* dst_sec);
+int PS4_SYSV_ABI sceKernelUsleep(u32 microseconds);
void RegisterTime(Core::Loader::SymbolsResolver* sym);
diff --git a/src/core/libraries/libs.cpp b/src/core/libraries/libs.cpp
index 69728e523..6dc455028 100644
--- a/src/core/libraries/libs.cpp
+++ b/src/core/libraries/libs.cpp
@@ -21,12 +21,16 @@
#include "core/libraries/mouse/mouse.h"
#include "core/libraries/move/move.h"
#include "core/libraries/network/http.h"
+#include "core/libraries/network/http2.h"
#include "core/libraries/network/net.h"
#include "core/libraries/network/netctl.h"
#include "core/libraries/network/ssl.h"
+#include "core/libraries/network/ssl2.h"
+#include "core/libraries/np_common/np_common.h"
#include "core/libraries/np_manager/np_manager.h"
#include "core/libraries/np_score/np_score.h"
#include "core/libraries/np_trophy/np_trophy.h"
+#include "core/libraries/np_web_api/np_web_api.h"
#include "core/libraries/pad/pad.h"
#include "core/libraries/playgo/playgo.h"
#include "core/libraries/playgo/playgo_dialog.h"
@@ -64,17 +68,21 @@ void InitHLELibs(Core::Loader::SymbolsResolver* sym) {
Libraries::MsgDialog::RegisterlibSceMsgDialog(sym);
Libraries::AudioOut::RegisterlibSceAudioOut(sym);
Libraries::Http::RegisterlibSceHttp(sym);
+ Libraries::Http2::RegisterlibSceHttp2(sym);
Libraries::Net::RegisterlibSceNet(sym);
Libraries::NetCtl::RegisterlibSceNetCtl(sym);
Libraries::SaveData::RegisterlibSceSaveData(sym);
Libraries::SaveData::Dialog::RegisterlibSceSaveDataDialog(sym);
Libraries::Ssl::RegisterlibSceSsl(sym);
+ Libraries::Ssl2::RegisterlibSceSsl2(sym);
Libraries::SysModule::RegisterlibSceSysmodule(sym);
Libraries::Posix::Registerlibsceposix(sym);
Libraries::AudioIn::RegisterlibSceAudioIn(sym);
+ Libraries::NpCommon::RegisterlibSceNpCommon(sym);
Libraries::NpManager::RegisterlibSceNpManager(sym);
Libraries::NpScore::RegisterlibSceNpScore(sym);
Libraries::NpTrophy::RegisterlibSceNpTrophy(sym);
+ Libraries::NpWebApi::RegisterlibSceNpWebApi(sym);
Libraries::ScreenShot::RegisterlibSceScreenShot(sym);
Libraries::AppContent::RegisterlibSceAppContent(sym);
Libraries::PngDec::RegisterlibScePngDec(sym);
diff --git a/src/core/libraries/network/http2.cpp b/src/core/libraries/network/http2.cpp
new file mode 100644
index 000000000..52f73edc6
--- /dev/null
+++ b/src/core/libraries/network/http2.cpp
@@ -0,0 +1,360 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "common/logging/log.h"
+#include "core/libraries/error_codes.h"
+#include "core/libraries/libs.h"
+#include "core/libraries/network/http2.h"
+
+namespace Libraries::Http2 {
+
+int PS4_SYSV_ABI _Z5dummyv() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2AbortRequest() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2AddCookie() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2AddRequestHeader() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2AuthCacheFlush() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2CookieExport() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2CookieFlush() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2CookieImport() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2CreateCookieBox() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2CreateRequestWithURL() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2CreateTemplate() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2DeleteCookieBox() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2DeleteRequest() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2DeleteTemplate() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2GetAllResponseHeaders() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2GetAuthEnabled() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2GetAutoRedirect() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2GetCookie() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2GetCookieBox() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2GetCookieStats() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2GetMemoryPoolStats() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2GetResponseContentLength() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2GetStatusCode() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2Init(int net_id, int ssl_id, size_t pool_size, int max_requests) {
+ LOG_ERROR(Lib_Http2, "(DUMMY) called");
+ static int id = 0;
+ return ++id;
+}
+
+int PS4_SYSV_ABI sceHttp2ReadData() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2ReadDataAsync() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2RedirectCacheFlush() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2RemoveRequestHeader() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SendRequest() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SendRequestAsync() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetAuthEnabled() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetAuthInfoCallback() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetAutoRedirect() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetConnectionWaitTimeOut() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetConnectTimeOut() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetCookieBox() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetCookieMaxNum() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetCookieMaxNumPerDomain() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetCookieMaxSize() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetCookieRecvCallback() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetCookieSendCallback() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetInflateGZIPEnabled() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetMinSslVersion() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetPreSendCallback() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetRecvTimeOut() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetRedirectCallback() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetRequestContentLength() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetResolveRetry() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetResolveTimeOut() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetSendTimeOut() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetSslCallback() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SetTimeOut() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SslDisableOption() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2SslEnableOption() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2Term() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceHttp2WaitAsync() {
+ LOG_ERROR(Lib_Http2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+void RegisterlibSceHttp2(Core::Loader::SymbolsResolver* sym) {
+ LIB_FUNCTION("AS45QoYHjc4", "libSceHttp2", 1, "libSceHttp2", 1, 1, _Z5dummyv);
+ LIB_FUNCTION("IZ-qjhRqvjk", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2AbortRequest);
+ LIB_FUNCTION("flPxnowtvWY", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2AddCookie);
+ LIB_FUNCTION("nrPfOE8TQu0", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2AddRequestHeader);
+ LIB_FUNCTION("WeuDjj5m4YU", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2AuthCacheFlush);
+ LIB_FUNCTION("JlFGR4v50Kw", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2CookieExport);
+ LIB_FUNCTION("5VlQSzXW-SQ", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2CookieFlush);
+ LIB_FUNCTION("B5ibZI5UlzU", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2CookieImport);
+ LIB_FUNCTION("N4UfjvWJsMw", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2CreateCookieBox);
+ LIB_FUNCTION("mmyOCxQMVYQ", "libSceHttp2", 1, "libSceHttp2", 1, 1,
+ sceHttp2CreateRequestWithURL);
+ LIB_FUNCTION("+wCt7fCijgk", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2CreateTemplate);
+ LIB_FUNCTION("O9ync3F-JVI", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2DeleteCookieBox);
+ LIB_FUNCTION("c8D9qIjo8EY", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2DeleteRequest);
+ LIB_FUNCTION("pDom5-078DA", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2DeleteTemplate);
+ LIB_FUNCTION("-rdXUi2XW90", "libSceHttp2", 1, "libSceHttp2", 1, 1,
+ sceHttp2GetAllResponseHeaders);
+ LIB_FUNCTION("m-OL13q8AI8", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2GetAuthEnabled);
+ LIB_FUNCTION("od5QCZhZSfw", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2GetAutoRedirect);
+ LIB_FUNCTION("GQFGj0rYX+A", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2GetCookie);
+ LIB_FUNCTION("IX23slKvtQI", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2GetCookieBox);
+ LIB_FUNCTION("eij7UzkUqK8", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2GetCookieStats);
+ LIB_FUNCTION("otUQuZa-mv0", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2GetMemoryPoolStats);
+ LIB_FUNCTION("o0DBQpFE13o", "libSceHttp2", 1, "libSceHttp2", 1, 1,
+ sceHttp2GetResponseContentLength);
+ LIB_FUNCTION("9XYJwCf3lEA", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2GetStatusCode);
+ LIB_FUNCTION("3JCe3lCbQ8A", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2Init);
+ LIB_FUNCTION("QygCNNmbGss", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2ReadData);
+ LIB_FUNCTION("bGN-6zbo7ms", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2ReadDataAsync);
+ LIB_FUNCTION("klwUy2Wg+q8", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2RedirectCacheFlush);
+ LIB_FUNCTION("jHdP0CS4ZlA", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2RemoveRequestHeader);
+ LIB_FUNCTION("rbqZig38AT8", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SendRequest);
+ LIB_FUNCTION("A+NVAFu4eCg", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SendRequestAsync);
+ LIB_FUNCTION("jjFahkBPCYs", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetAuthEnabled);
+ LIB_FUNCTION("Wwj6HbB2mOo", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetAuthInfoCallback);
+ LIB_FUNCTION("b9AvoIaOuHI", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetAutoRedirect);
+ LIB_FUNCTION("n8hMLe31OPA", "libSceHttp2", 1, "libSceHttp2", 1, 1,
+ sceHttp2SetConnectionWaitTimeOut);
+ LIB_FUNCTION("-HIO4VT87v8", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetConnectTimeOut);
+ LIB_FUNCTION("jrVHsKCXA0g", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetCookieBox);
+ LIB_FUNCTION("mPKVhQqh2Es", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetCookieMaxNum);
+ LIB_FUNCTION("o7+WXe4WadE", "libSceHttp2", 1, "libSceHttp2", 1, 1,
+ sceHttp2SetCookieMaxNumPerDomain);
+ LIB_FUNCTION("6a0N6GPD7RM", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetCookieMaxSize);
+ LIB_FUNCTION("zdtXKn9X7no", "libSceHttp2", 1, "libSceHttp2", 1, 1,
+ sceHttp2SetCookieRecvCallback);
+ LIB_FUNCTION("McYmUpQ3-DY", "libSceHttp2", 1, "libSceHttp2", 1, 1,
+ sceHttp2SetCookieSendCallback);
+ LIB_FUNCTION("uRosf8GQbHQ", "libSceHttp2", 1, "libSceHttp2", 1, 1,
+ sceHttp2SetInflateGZIPEnabled);
+ LIB_FUNCTION("09tk+kIA1Ns", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetMinSslVersion);
+ LIB_FUNCTION("UL4Fviw+IAM", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetPreSendCallback);
+ LIB_FUNCTION("izvHhqgDt44", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetRecvTimeOut);
+ LIB_FUNCTION("BJgi0CH7al4", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetRedirectCallback);
+ LIB_FUNCTION("FSAFOzi0FpM", "libSceHttp2", 1, "libSceHttp2", 1, 1,
+ sceHttp2SetRequestContentLength);
+ LIB_FUNCTION("Gcjh+CisAZM", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetResolveRetry);
+ LIB_FUNCTION("ACjtE27aErY", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetResolveTimeOut);
+ LIB_FUNCTION("XPtW45xiLHk", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetSendTimeOut);
+ LIB_FUNCTION("YrWX+DhPHQY", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetSslCallback);
+ LIB_FUNCTION("VYMxTcBqSE0", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SetTimeOut);
+ LIB_FUNCTION("B37SruheQ5Y", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SslDisableOption);
+ LIB_FUNCTION("EWcwMpbr5F8", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2SslEnableOption);
+ LIB_FUNCTION("YiBUtz-pGkc", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2Term);
+ LIB_FUNCTION("MOp-AUhdfi8", "libSceHttp2", 1, "libSceHttp2", 1, 1, sceHttp2WaitAsync);
+};
+
+} // namespace Libraries::Http2
\ No newline at end of file
diff --git a/src/core/libraries/network/http2.h b/src/core/libraries/network/http2.h
new file mode 100644
index 000000000..aa1d0c5b4
--- /dev/null
+++ b/src/core/libraries/network/http2.h
@@ -0,0 +1,72 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "common/types.h"
+
+namespace Core::Loader {
+class SymbolsResolver;
+}
+
+namespace Libraries::Http2 {
+
+int PS4_SYSV_ABI _Z5dummyv();
+int PS4_SYSV_ABI sceHttp2AbortRequest();
+int PS4_SYSV_ABI sceHttp2AddCookie();
+int PS4_SYSV_ABI sceHttp2AddRequestHeader();
+int PS4_SYSV_ABI sceHttp2AuthCacheFlush();
+int PS4_SYSV_ABI sceHttp2CookieExport();
+int PS4_SYSV_ABI sceHttp2CookieFlush();
+int PS4_SYSV_ABI sceHttp2CookieImport();
+int PS4_SYSV_ABI sceHttp2CreateCookieBox();
+int PS4_SYSV_ABI sceHttp2CreateRequestWithURL();
+int PS4_SYSV_ABI sceHttp2CreateTemplate();
+int PS4_SYSV_ABI sceHttp2DeleteCookieBox();
+int PS4_SYSV_ABI sceHttp2DeleteRequest();
+int PS4_SYSV_ABI sceHttp2DeleteTemplate();
+int PS4_SYSV_ABI sceHttp2GetAllResponseHeaders();
+int PS4_SYSV_ABI sceHttp2GetAuthEnabled();
+int PS4_SYSV_ABI sceHttp2GetAutoRedirect();
+int PS4_SYSV_ABI sceHttp2GetCookie();
+int PS4_SYSV_ABI sceHttp2GetCookieBox();
+int PS4_SYSV_ABI sceHttp2GetCookieStats();
+int PS4_SYSV_ABI sceHttp2GetMemoryPoolStats();
+int PS4_SYSV_ABI sceHttp2GetResponseContentLength();
+int PS4_SYSV_ABI sceHttp2GetStatusCode();
+int PS4_SYSV_ABI sceHttp2Init(int net_id, int ssl_id, size_t pool_size, int max_requests);
+int PS4_SYSV_ABI sceHttp2ReadData();
+int PS4_SYSV_ABI sceHttp2ReadDataAsync();
+int PS4_SYSV_ABI sceHttp2RedirectCacheFlush();
+int PS4_SYSV_ABI sceHttp2RemoveRequestHeader();
+int PS4_SYSV_ABI sceHttp2SendRequest();
+int PS4_SYSV_ABI sceHttp2SendRequestAsync();
+int PS4_SYSV_ABI sceHttp2SetAuthEnabled();
+int PS4_SYSV_ABI sceHttp2SetAuthInfoCallback();
+int PS4_SYSV_ABI sceHttp2SetAutoRedirect();
+int PS4_SYSV_ABI sceHttp2SetConnectionWaitTimeOut();
+int PS4_SYSV_ABI sceHttp2SetConnectTimeOut();
+int PS4_SYSV_ABI sceHttp2SetCookieBox();
+int PS4_SYSV_ABI sceHttp2SetCookieMaxNum();
+int PS4_SYSV_ABI sceHttp2SetCookieMaxNumPerDomain();
+int PS4_SYSV_ABI sceHttp2SetCookieMaxSize();
+int PS4_SYSV_ABI sceHttp2SetCookieRecvCallback();
+int PS4_SYSV_ABI sceHttp2SetCookieSendCallback();
+int PS4_SYSV_ABI sceHttp2SetInflateGZIPEnabled();
+int PS4_SYSV_ABI sceHttp2SetMinSslVersion();
+int PS4_SYSV_ABI sceHttp2SetPreSendCallback();
+int PS4_SYSV_ABI sceHttp2SetRecvTimeOut();
+int PS4_SYSV_ABI sceHttp2SetRedirectCallback();
+int PS4_SYSV_ABI sceHttp2SetRequestContentLength();
+int PS4_SYSV_ABI sceHttp2SetResolveRetry();
+int PS4_SYSV_ABI sceHttp2SetResolveTimeOut();
+int PS4_SYSV_ABI sceHttp2SetSendTimeOut();
+int PS4_SYSV_ABI sceHttp2SetSslCallback();
+int PS4_SYSV_ABI sceHttp2SetTimeOut();
+int PS4_SYSV_ABI sceHttp2SslDisableOption();
+int PS4_SYSV_ABI sceHttp2SslEnableOption();
+int PS4_SYSV_ABI sceHttp2Term();
+int PS4_SYSV_ABI sceHttp2WaitAsync();
+
+void RegisterlibSceHttp2(Core::Loader::SymbolsResolver* sym);
+} // namespace Libraries::Http2
\ No newline at end of file
diff --git a/src/core/libraries/network/netctl.cpp b/src/core/libraries/network/netctl.cpp
index b167d2789..00d980663 100644
--- a/src/core/libraries/network/netctl.cpp
+++ b/src/core/libraries/network/netctl.cpp
@@ -93,7 +93,7 @@ int PS4_SYSV_ABI sceNetCtlUnregisterCallbackV6() {
}
int PS4_SYSV_ABI sceNetCtlCheckCallback() {
- netctl.CheckCallback();
+ LOG_DEBUG(Lib_NetCtl, "(STUBBED) called");
return ORBIS_OK;
}
@@ -373,7 +373,7 @@ int PS4_SYSV_ABI Func_D8DCB6973537A3DC() {
}
int PS4_SYSV_ABI sceNetCtlCheckCallbackForNpToolkit() {
- netctl.CheckNpToolkitCallback();
+ LOG_DEBUG(Lib_NetCtl, "(STUBBED) called");
return ORBIS_OK;
}
diff --git a/src/core/libraries/network/ssl2.cpp b/src/core/libraries/network/ssl2.cpp
new file mode 100644
index 000000000..8ca29526e
--- /dev/null
+++ b/src/core/libraries/network/ssl2.cpp
@@ -0,0 +1,353 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "common/logging/log.h"
+#include "core/libraries/error_codes.h"
+#include "core/libraries/libs.h"
+#include "core/libraries/network/ssl2.h"
+
+namespace Libraries::Ssl2 {
+
+int PS4_SYSV_ABI CA_MGMT_extractKeyBlobEx() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI CA_MGMT_extractPublicKeyInfo() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI CA_MGMT_freeKeyBlob() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI CRYPTO_initAsymmetricKey() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI CRYPTO_uninitAsymmetricKey() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI RSA_verifySignature() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslCheckRecvPending() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslClose() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslConnect() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslCreateConnection() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslCreateSslConnection() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslDeleteConnection() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslDeleteSslConnection() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslDisableOption() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslDisableOptionInternal() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslDisableOptionInternalInsecure() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslDisableVerifyOption() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslEnableOption() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslEnableOptionInternal() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslEnableVerifyOption() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslFreeCaCerts() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslFreeCaList() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslFreeSslCertName() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetAlpnSelected() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetCaCerts() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetCaList() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetFingerprint() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetIssuerName() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetMemoryPoolStats() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetNameEntryCount() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetNameEntryInfo() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetNanoSSLModuleId() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetNotAfter() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetNotBefore() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetPeerCert() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetPem() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetSerialNumber() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetSslError() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslGetSubjectName() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslInit(std::size_t poolSize) {
+ LOG_ERROR(Lib_Ssl2, "(DUMMY) called poolSize = {}", poolSize);
+ // return a value >1
+ static int id = 0;
+ return ++id;
+}
+
+int PS4_SYSV_ABI sceSslLoadCert() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslLoadRootCACert() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslRead() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslRecv() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslReuseConnection() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslSend() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslSetAlpn() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslSetMinSslVersion() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslSetSslVersion() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslSetVerifyCallback() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslTerm() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslUnloadCert() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceSslWrite() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI VLONG_freeVlongQueue() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_22E76E60BC0587D7() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_28F8791A771D39C7() {
+ LOG_ERROR(Lib_Ssl2, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+void RegisterlibSceSsl2(Core::Loader::SymbolsResolver* sym) {
+ LIB_FUNCTION("Md+HYkCBZB4", "libSceSsl", 1, "libSceSsl", 2, 1, CA_MGMT_extractKeyBlobEx);
+ LIB_FUNCTION("9bKYzKP6kYU", "libSceSsl", 1, "libSceSsl", 2, 1, CA_MGMT_extractPublicKeyInfo);
+ LIB_FUNCTION("ipLIammTj2Q", "libSceSsl", 1, "libSceSsl", 2, 1, CA_MGMT_freeKeyBlob);
+ LIB_FUNCTION("PRWr3-ytpdg", "libSceSsl", 1, "libSceSsl", 2, 1, CRYPTO_initAsymmetricKey);
+ LIB_FUNCTION("cW7VCIMCh9A", "libSceSsl", 1, "libSceSsl", 2, 1, CRYPTO_uninitAsymmetricKey);
+ LIB_FUNCTION("pBwtarKd7eg", "libSceSsl", 1, "libSceSsl", 2, 1, RSA_verifySignature);
+ LIB_FUNCTION("1VM0h1JrUfA", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslCheckRecvPending);
+ LIB_FUNCTION("viRXSHZYd0c", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslClose);
+ LIB_FUNCTION("zXvd6iNyfgc", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslConnect);
+ LIB_FUNCTION("tuscfitnhEo", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslCreateConnection);
+ LIB_FUNCTION("P14ATpXc4J8", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslCreateSslConnection);
+ LIB_FUNCTION("HJ1n138CQ2g", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslDeleteConnection);
+ LIB_FUNCTION("hwrHV6Pprk4", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslDeleteSslConnection);
+ LIB_FUNCTION("iLKz4+ukLqk", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslDisableOption);
+ LIB_FUNCTION("-WqxBRAUVM4", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslDisableOptionInternal);
+ LIB_FUNCTION("w1+L-27nYas", "libSceSsl", 1, "libSceSsl", 2, 1,
+ sceSslDisableOptionInternalInsecure);
+ LIB_FUNCTION("PwsHbErG+e8", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslDisableVerifyOption);
+ LIB_FUNCTION("m-zPyAsIpco", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslEnableOption);
+ LIB_FUNCTION("g-zCwUKstEQ", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslEnableOptionInternal);
+ LIB_FUNCTION("po1X86mgHDU", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslEnableVerifyOption);
+ LIB_FUNCTION("qIvLs0gYxi0", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslFreeCaCerts);
+ LIB_FUNCTION("+DzXseDVkeI", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslFreeCaList);
+ LIB_FUNCTION("RwXD8grHZHM", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslFreeSslCertName);
+ LIB_FUNCTION("4O7+bRkRUe8", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetAlpnSelected);
+ LIB_FUNCTION("TDfQqO-gMbY", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetCaCerts);
+ LIB_FUNCTION("qOn+wm28wmA", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetCaList);
+ LIB_FUNCTION("brRtwGBu4A8", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetFingerprint);
+ LIB_FUNCTION("7whYpYfHP74", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetIssuerName);
+ LIB_FUNCTION("-PoIzr3PEk0", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetMemoryPoolStats);
+ LIB_FUNCTION("R1ePzopYPYM", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetNameEntryCount);
+ LIB_FUNCTION("7RBSTKGrmDA", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetNameEntryInfo);
+ LIB_FUNCTION("AzUipl-DpIw", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetNanoSSLModuleId);
+ LIB_FUNCTION("xHpt6+2pGYk", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetNotAfter);
+ LIB_FUNCTION("Eo0S65Jy28Q", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetNotBefore);
+ LIB_FUNCTION("-TbZc8pwPNc", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetPeerCert);
+ LIB_FUNCTION("kLB5aGoUJXg", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetPem);
+ LIB_FUNCTION("DOwXL+FQMEY", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetSerialNumber);
+ LIB_FUNCTION("0XcZknp7-Wc", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetSslError);
+ LIB_FUNCTION("dQReuBX9sD8", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslGetSubjectName);
+ LIB_FUNCTION("hdpVEUDFW3s", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslInit);
+ LIB_FUNCTION("Ab7+DH+gYyM", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslLoadCert);
+ LIB_FUNCTION("3-643mGVFJo", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslLoadRootCACert);
+ LIB_FUNCTION("jltWpVKtetg", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslRead);
+ LIB_FUNCTION("hi0veU3L2pU", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslRecv);
+ LIB_FUNCTION("50R2xYaYZwE", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslReuseConnection);
+ LIB_FUNCTION("p5bM5PPufFY", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslSend);
+ LIB_FUNCTION("TL86glUrmUw", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslSetAlpn);
+ LIB_FUNCTION("QWSxBzf6lAg", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslSetMinSslVersion);
+ LIB_FUNCTION("bKaEtQnoUuQ", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslSetSslVersion);
+ LIB_FUNCTION("E4a-ahM57QQ", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslSetVerifyCallback);
+ LIB_FUNCTION("0K1yQ6Lv-Yc", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslTerm);
+ LIB_FUNCTION("UQ+3Qu7v3cA", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslUnloadCert);
+ LIB_FUNCTION("iNjkt9Poblw", "libSceSsl", 1, "libSceSsl", 2, 1, sceSslWrite);
+ LIB_FUNCTION("wcVuyTUr5ys", "libSceSsl", 1, "libSceSsl", 2, 1, VLONG_freeVlongQueue);
+ LIB_FUNCTION("IuduYLwFh9c", "libSceSsl", 1, "libSceSsl", 2, 1, Func_22E76E60BC0587D7);
+ LIB_FUNCTION("KPh5GncdOcc", "libSceSsl", 1, "libSceSsl", 2, 1, Func_28F8791A771D39C7);
+};
+
+} // namespace Libraries::Ssl2
\ No newline at end of file
diff --git a/src/core/libraries/network/ssl2.h b/src/core/libraries/network/ssl2.h
new file mode 100644
index 000000000..03ee3b86e
--- /dev/null
+++ b/src/core/libraries/network/ssl2.h
@@ -0,0 +1,14 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "common/types.h"
+
+namespace Core::Loader {
+class SymbolsResolver;
+}
+
+namespace Libraries::Ssl2 {
+void RegisterlibSceSsl2(Core::Loader::SymbolsResolver* sym);
+} // namespace Libraries::Ssl2
\ No newline at end of file
diff --git a/src/core/libraries/np_common/np_common.cpp b/src/core/libraries/np_common/np_common.cpp
new file mode 100644
index 000000000..1234705cc
--- /dev/null
+++ b/src/core/libraries/np_common/np_common.cpp
@@ -0,0 +1,7915 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "common/logging/log.h"
+#include "core/libraries/error_codes.h"
+#include "core/libraries/libs.h"
+#include "core/libraries/np_common/np_common.h"
+#include "core/libraries/np_common/np_common_error.h"
+
+namespace Libraries::NpCommon {
+
+int PS4_SYSV_ABI sceNpCmpNpId(OrbisNpId* np_id1, OrbisNpId* np_id2) {
+ if (np_id1 == nullptr || np_id2 == nullptr) {
+ return ORBIS_NP_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Compare data
+ if (std::strncmp(np_id1->handle.data, np_id2->handle.data, ORBIS_NP_ONLINEID_MAX_LENGTH) != 0) {
+ return ORBIS_NP_UTIL_ERROR_NOT_MATCH;
+ }
+
+ // Compare opt
+ for (u32 i = 0; i < 8; i++) {
+ if (np_id1->opt[i] != np_id2->opt[i]) {
+ return ORBIS_NP_UTIL_ERROR_NOT_MATCH;
+ }
+ }
+
+ // Compare reserved
+ for (u32 i = 0; i < 8; i++) {
+ if (np_id1->reserved[i] != np_id2->reserved[i]) {
+ return ORBIS_NP_UTIL_ERROR_NOT_MATCH;
+ }
+ }
+
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCmpNpIdInOrder(OrbisNpId* np_id1, OrbisNpId* np_id2, u32* out_result) {
+ if (np_id1 == nullptr || np_id2 == nullptr || out_result == nullptr) {
+ return ORBIS_NP_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Compare data
+ u32 compare =
+ std::strncmp(np_id1->handle.data, np_id2->handle.data, ORBIS_NP_ONLINEID_MAX_LENGTH);
+ if (compare < 0) {
+ *out_result = -1;
+ return ORBIS_OK;
+ } else if (compare > 0) {
+ *out_result = 1;
+ return ORBIS_OK;
+ }
+
+ // Compare opt
+ for (u32 i = 0; i < 8; i++) {
+ if (np_id1->opt[i] < np_id2->opt[i]) {
+ *out_result = -1;
+ return ORBIS_OK;
+ } else if (np_id1->opt[i] > np_id2->opt[i]) {
+ *out_result = 1;
+ return ORBIS_OK;
+ }
+ }
+
+ // Compare reserved
+ for (u32 i = 0; i < 8; i++) {
+ if (np_id1->reserved[i] < np_id2->reserved[i]) {
+ *out_result = -1;
+ return ORBIS_OK;
+ } else if (np_id1->reserved[i] > np_id2->reserved[i]) {
+ *out_result = 1;
+ return ORBIS_OK;
+ }
+ }
+
+ *out_result = 0;
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCmpOnlineId(OrbisNpOnlineId* online_id1, OrbisNpOnlineId* online_id2) {
+ if (online_id1 == nullptr || online_id2 == nullptr) {
+ return ORBIS_NP_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (std::strncmp(online_id1->data, online_id2->data, ORBIS_NP_ONLINEID_MAX_LENGTH) != 0) {
+ return ORBIS_NP_UTIL_ERROR_NOT_MATCH;
+ }
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorExConvertAllocator() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorExFree() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorExMalloc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorExRealloc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorExStrdup() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorExStrndup() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorFree() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorMalloc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorRealloc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorStrdup() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpAllocatorStrndup() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpFree() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpHeapFree() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpHeapMalloc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpHeapRealloc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpHeapStrdup() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpHeapStrndup() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpMalloc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _sceNpRealloc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable10IsCanceledEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable10LockCancelEPKciS3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable11CheckCancelEPKciS3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable12UnlockCancelEPKciS3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable13SetCancelableEb() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable14SetupSubCancelEPS1_PKciS4_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable16CleanupSubCancelEPS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable4InitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable6CancelEij() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelableC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelableD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelableD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelableD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelLock3EndEPKciS3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelLock5BeginEPNS0_6HandleEPKciS5_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelLockC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelLockC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelLockD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10CancelLockD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue10ClearAbortEt() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue10TryDequeueEPvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue4InitEPKcmm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue5AbortEt() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue7DequeueEPvmj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue7EnqueueEPKvmj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueueC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueueD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueueD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10EventQueueD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonObject16DeleteFieldValueEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonObject5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonParser4InitEPK7JsonDefPNS1_12EventHandlerE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonParser5ParseEPKcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonParserC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonParserD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonParserD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonParserD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonString5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10JsonString6SetStrEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile4ReadEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile4SyncEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile5CloseEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile5WriteEPNS0_6HandleEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile8TruncateEl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFileC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFileD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFileD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFileD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI
+_ZN3sce2np12HttpTemplate19SetAuthInfoCallbackEPFii15SceHttpAuthTypePKcPcS5_iPPhPmPiPvESA_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplate4InitEiPKcib() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplate7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamBufferixEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader4ReadEPNS0_6HandleEPNS0_9StreamCtxEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader7ReadAllEPNS0_6HandleEPNS0_9StreamCtxEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader7ReadAllEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader8ReadDataEPNS0_6HandleEPNS0_9StreamCtxEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader8ReadDataEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader8SkipDataEPNS0_6HandleElPl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader8SkipDataEPNS0_6HandleEPNS0_9StreamCtxElPl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter15WriteFilledDataEPNS0_6HandleEcl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter15WriteFilledDataEPNS0_6HandleEPNS0_9StreamCtxEcl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter5WriteEPNS0_6HandleEPNS0_9StreamCtxEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter9WriteDataEPNS0_6HandleEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter9WriteDataEPNS0_6HandleEPNS0_9StreamCtxEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThread10ThreadMainEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadC1EPNS0_9WorkQueueE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadC2EPNS0_9WorkQueueE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParser5ParseEPKcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParser9GetResultEPPNS0_10JsonObjectE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParser9GetResultEPPNS0_9JsonValueE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParserC2EP16SceNpAllocatorExPK7JsonDef() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParserD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParserD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParserD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecret5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC1EPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC1ERK16SceNpTitleSecret() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC1ERKS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC2EPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC2ERK16SceNpTitleSecret() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC2ERKS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory4InitEm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory6ExpandEm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemoryC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemoryD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemoryD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemoryD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContext4InitEPKcimm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContext4InitEPKNS1_5ParamE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContext7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilder12BuildBufSizeEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilder16EscapeJsonStringEPKcPcmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilder23EscapeJsonStringBufSizeEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilder5BuildEPcmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderC1ERKNS0_9JsonValueE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderC2ERKNS0_9JsonValueE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScope3EndEiPKciS3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScope5BeginEPNS0_6HandleEPKciS5_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScopeC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScopeD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScopeD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScopeD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np16StreamReadBufferC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np16StreamReadBufferD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np16StreamReadBufferD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPool13InvalidateAllEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPool4InitEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPool7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolC1EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReader4ReadEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderC1EPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderC2EPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriter5WriteEPNS0_6HandleEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterC1EPvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterC2EPvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReader4ReadEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReader5CloseEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReaderC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReaderD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReaderD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReaderD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient10DisconnectEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient11IsConnectedEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient16invokeSyncMethodEjPKvmPvPmm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient4InitEPKNS2_6ConfigE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient7ConnectEPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI
+_ZN3sce2np3ipc13ServiceClientC1EPNS1_17ServiceIpmiClientEPKNS1_17ServiceClientInfoE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI
+_ZN3sce2np3ipc13ServiceClientC2EPNS1_17ServiceIpmiClientEPKNS1_17ServiceClientInfoE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient10DisconnectEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient10EndRequestEii() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient11findServiceEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient11InitServiceEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient11TermServiceEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient11WaitRequestEiij() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient12AbortRequestEii() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient12BeginRequestEii() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient13CreateRequestEPiiPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient13DeleteRequestEii() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient13PollEventFlagEijmjPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient13WaitEventFlagEijmjPmj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient14PollEventQueueEiPvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient15CancelEventFlagEijm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient15RegisterServiceEPKNS1_17ServiceClientInfoE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient16RegisterServicesEPKNS1_17ServiceClientInfoE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient17invokeInitServiceEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient17invokeTermServiceEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient17UnregisterServiceEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient18EndRequestForAsyncEii() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient19WaitRequestForAsyncEiij() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient20AbortRequestForAsyncEii() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI
+_ZN3sce2np3ipc17ServiceIpmiClient20BeginRequestForAsyncEiiPN4IPMI6Client12EventNotifeeE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient21CreateRequestForAsyncEPiiPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient21DeleteRequestForAsyncEii() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient4InitEPNS2_6ConfigE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient7ConnectEPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Cond4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Cond4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Cond4InitEPKcPNS0_5MutexE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Cond4WaitEj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Cond6SignalEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Cond7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Cond9SignalAllEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4CondC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4CondC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4CondD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4CondD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4CondD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Path11BuildAppendEPcmcPKcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Path12AddDelimiterEPcmc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Path5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Path6SetStrEPKcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4PathD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4PathD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4PathD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Time10AddMinutesEl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Time10AddSecondsEl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Time12GetUserClockEPS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Time15AddMicroSecondsEl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Time15GetNetworkClockEPS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Time20GetDebugNetworkClockEPS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Time7AddDaysEl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4Time8AddHoursEl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4TimeplERK10SceRtcTick() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np4TimeplERKS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5Mutex4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5Mutex4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5Mutex4InitEPKcj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5Mutex4LockEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5Mutex6UnlockEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5Mutex7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5Mutex7TryLockEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5MutexC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5MutexC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5MutexD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5MutexD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5MutexD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np5NpEnv8GetNpEnvEPS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Handle10CancelImplEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Handle4InitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Handle7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6HandleC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6HandleC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6HandleD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6HandleD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6HandleD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdaEPv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdaEPvR14SceNpAllocator() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdaEPvR16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdlEPv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdlEPvR14SceNpAllocator() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdlEPvR16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectnaEmR14SceNpAllocator() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectnaEmR16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectnwEmR14SceNpAllocator() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ObjectnwEmR16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread12DoThreadMainEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread4InitEPKcimm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread4InitEPKNS1_5ParamE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread4JoinEPi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread5StartEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread9EntryFuncEPv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread9GetResultEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6Thread9IsRunningEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ThreadC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ThreadD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ThreadD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np6ThreadD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7Callout10IsTimedoutEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7Callout11CalloutFuncEPv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7Callout4StopEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7Callout5StartEjPNS1_7HandlerE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7Callout5StartEmPNS1_7HandlerE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7Callout9IsStartedEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7CalloutC1EPNS0_14CalloutContextE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7CalloutC2EPNS0_14CalloutContextE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7CalloutD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7CalloutD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7CalloutD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7HttpUri5BuildEPKS1_PcmPmj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7HttpUri5ParseEPS1_PKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriC1EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf14CheckinForReadEm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf15CheckinForWriteEm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf15CheckoutForReadEPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf16CheckoutForWriteEPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4InitEPvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4PeekEmPvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4ReadEPvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf5WriteEPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBufC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBufC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBufD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBufD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np7RingBufD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8HttpFile4ReadEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8HttpFile5CloseEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8HttpFileC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8HttpFileD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8HttpFileD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8HttpFileD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8JsonBool5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8JsonBool7SetBoolEb() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8JsonFile5CloseEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8JsonFileD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8JsonFileD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8JsonFileD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8JsonNull5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommId5BuildERKS1_Pcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommId5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommId5ParseEPS1_PKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommId5ParseEPS1_PKcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC1ERK20SceNpCommunicationId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC1ERKS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC2ERK20SceNpCommunicationId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC2ERKS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8Selector4InitEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8SelectorD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8SelectorD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8SelectorD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem10SetPendingEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem10SetRunningEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem11SetFinishedEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem14FinishCallbackEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem15RemoveFromQueueEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem6CancelEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem9BindQueueEPNS0_9WorkQueueEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItemC2EPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItemD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItemD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np8WorkItemD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag3SetEm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4OpenEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4PollEmjPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4WaitEmjPmj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag5ClearEm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag6CancelEm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag6CreateEPKcj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans10SetTimeoutEPKNS1_12TimeoutParamE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans11SendRequestEPNS0_6HandleEPKvm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans12RecvResponseEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans12SkipResponseEPNS0_6HandleE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans16AddRequestHeaderEPKcS3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans16SetRequestHeaderEPKcS3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans21GetResponseStatusCodeEPNS0_6HandleEPi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans21SetRequestContentTypeEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans23SetRequestContentLengthEm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans24GetResponseContentLengthEPNS0_6HandleEPbPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans4InitERKNS0_12HttpTemplateEPNS0_18HttpConnectionPoolEiPKcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI
+_ZN3sce2np9HttpTrans4InitERKNS0_12HttpTemplateEPNS0_18HttpConnectionPoolEiPKcS8_tS8_m() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans4ReadEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans5WriteEPNS0_6HandleEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransC1EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransC2EP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9JsonArray12AddItemArrayEPPS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9JsonArray5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9JsonValue12GetItemValueEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9JsonValue13GetFieldValueEiPPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9JsonValue13GetFieldValueEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9JsonValueD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9JsonValueD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9JsonValueD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile4ReadEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile4SeekEliPl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile4SyncEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile5CloseEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile5WriteEPNS0_6HandleEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile6RemoveEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile8TruncateEl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleId5BuildERKS1_Pcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleId5ClearEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleId5ParseEPS1_PKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleId5ParseEPS1_PKcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC1ERK12SceNpTitleId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC1ERKS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC2ERK12SceNpTitleId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC2ERKS1_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9RefObject6AddRefEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9RefObject7ReleaseEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore4OpenEPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore4WaitEj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore6CreateEiiPKc() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore6SignalEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue11GetItemByIdEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue15GetFinishedItemENS0_14WorkItemStatusE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue16WorkItemFinishedEPNS0_8WorkItemEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue17ProcFinishedItemsENS0_14WorkItemStatusE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue18RemoveFinishedItemEPNS0_8WorkItemE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue18WaitForPendingItemEPPNS0_8WorkItemEPb() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4ctorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4dtorEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4InitEPKcimm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4InitEPKNS0_6Thread5ParamE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4StopEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue5StartEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue6CancelEii() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue7DestroyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue7EnqueueEiPNS0_8WorkItemE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue9CancelAllEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue9IsRunningEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueC1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueC2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueD2Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERK10SceRtcTickRKNS0_4TimeE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERK12SceNpTitleIdRKNS0_9NpTitleIdE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERK16SceNpTitleSecretRKNS0_13NpTitleSecretE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERK20SceNpCommunicationIdRKNS0_8NpCommIdE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_13NpTitleSecretERK16SceNpTitleSecret() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_13NpTitleSecretES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_4TimeERK10SceRtcTick() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_4TimeES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_8NpCommIdERK20SceNpCommunicationId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_8NpCommIdES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_9NpTitleIdERK12SceNpTitleId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_9NpTitleIdES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npgeERK10SceRtcTickRKNS0_4TimeE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npgeERKNS0_4TimeERK10SceRtcTick() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npgeERKNS0_4TimeES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npgtERK10SceRtcTickRKNS0_4TimeE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npgtERKNS0_4TimeERK10SceRtcTick() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npgtERKNS0_4TimeES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npleERK10SceRtcTickRKNS0_4TimeE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npleERKNS0_4TimeERK10SceRtcTick() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npleERKNS0_4TimeES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npltERK10SceRtcTickRKNS0_4TimeE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npltERKNS0_4TimeERK10SceRtcTick() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npltERKNS0_4TimeES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERK10SceRtcTickRKNS0_4TimeE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERK12SceNpTitleIdRKNS0_9NpTitleIdE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERK16SceNpTitleSecretRKNS0_13NpTitleSecretE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERK20SceNpCommunicationIdRKNS0_8NpCommIdE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_13NpTitleSecretERK16SceNpTitleSecret() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_13NpTitleSecretES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_4TimeERK10SceRtcTick() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_4TimeES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_8NpCommIdERK20SceNpCommunicationId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_8NpCommIdES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_9NpTitleIdERK12SceNpTitleId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_9NpTitleIdES3_() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10Cancelable6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10EventQueue6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10EventQueue7IsEmptyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber5CloneEP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPj() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber9GetNumStrEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonObject5CloneEP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonString5CloneEP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonString6GetStrEPcm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonString6GetStrEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np10JsonString9GetLengthEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np12HttpTemplate6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np18HttpConnectionPool6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np3ipc10IpmiClient6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np3ipc17ServiceIpmiClient6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np4Cond6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np4Time18ConvertToPosixTimeEPl() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np5Mutex6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np6Handle6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np6Thread6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np7RingBuf11GetDataSizeEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np7RingBuf11GetFreeSizeEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np7RingBuf6IsFullEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np7RingBuf7IsEmptyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np8JsonBool5CloneEP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np8JsonBool7GetBoolEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np8JsonNull5CloneEP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np8NpCommId7IsEmptyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np9EventFlag6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np9HttpTrans6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np9JsonArray5CloneEP16SceNpAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np9JsonValue12GetItemValueEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np9NpTitleId7IsEmptyEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZNK3sce2np9Semaphore6IsInitEv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn16_N3sce2np10MemoryFile5WriteEPNS0_6HandleEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn16_N3sce2np10MemoryFileD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn16_N3sce2np10MemoryFileD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn16_N3sce2np9HttpTrans5WriteEPNS0_6HandleEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn16_N3sce2np9HttpTransD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn16_N3sce2np9HttpTransD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn16_N3sce2np9LocalFile5WriteEPNS0_6HandleEPKvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn16_N3sce2np9LocalFileD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn16_N3sce2np9LocalFileD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np10MemoryFile4ReadEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np10MemoryFileD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np10MemoryFileD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np6Handle10CancelImplEi() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np6HandleD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np6HandleD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np9HttpTrans4ReadEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np9HttpTransD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np9HttpTransD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np9LocalFile4ReadEPNS0_6HandleEPvmPm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np9LocalFileD0Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZThn8_N3sce2np9LocalFileD1Ev() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZTVN3sce2np10JsonNumberE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZTVN3sce2np10JsonObjectE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZTVN3sce2np10JsonStringE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZTVN3sce2np8JsonBoolE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZTVN3sce2np8JsonNullE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZTVN3sce2np8SelectorE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZTVN3sce2np9JsonArrayE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI _ZTVN3sce2np9JsonValueE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpAllocateKernelMemoryNoAlignment() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpAllocateKernelMemoryWithAlignment() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpArchInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpArchTerm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpAtomicCas32() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpAtomicDec32() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpAtomicInc32() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpBase64Decoder() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpBase64Encoder() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpBase64GetDecodeSize() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpBase64UrlDecoder() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpBase64UrlEncoder() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpBase64UrlGetDecodeSize() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCalloutInitCtx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCalloutStartOnCtx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCalloutStartOnCtx64() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCalloutStopOnCtx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCalloutTermCtx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCancelEventFlag() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpClearEventFlag() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCloseEventFlag() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCloseSema() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCondDestroy() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCondInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCondSignal() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCondSignalAll() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCondSignalTo() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCondTimedwait() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCondWait() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCreateEventFlag() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCreateSema() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpCreateThread() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpDbgAssignDebugId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpDbgDumpBinary() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpDbgDumpText() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpDeleteEventFlag() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpDeleteSema() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpEventGetCurrentNetworkTick() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpFreeKernelMemory() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGetNavSdkVersion() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGetPlatformType() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGetProcessId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGetRandom() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGetSdkVersion() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGetSdkVersionUInt() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGetSystemClockUsec() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGlobalHeapGetAllocator() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGlobalHeapGetAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGlobalHeapGetAllocatorExPtr() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpGlobalHeapGetAllocatorPtr() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpHeapDestroy() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpHeapGetAllocator() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpHeapGetStat() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpHeapInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpHeapShowStat() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpHexToInt() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpInt32ToStr() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpInt64ToStr() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpIntGetPlatformType() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpIntIsOnlineIdString() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpIntIsValidOnlineId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpIntSetPlatformType() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpIntToHex() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpIpc2ClientInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpIpc2ClientTerm() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpJoinThread() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpJsonParse() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpJsonParseBuf() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpJsonParseBufInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpJsonParseEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpJsonParseExInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpJsonParseInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwCondDestroy() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwCondInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwCondSignal() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwCondSignalAll() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwCondSignalTo() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwCondWait() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwMutexDestroy() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwMutexInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwMutexLock() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwMutexTryLock() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpLwMutexUnlock() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpMemoryHeapDestroy() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpMemoryHeapGetAllocator() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpMemoryHeapGetAllocatorEx() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpMemoryHeapInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpMutexDestroy() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpMutexInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpMutexLock() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpMutexTryLock() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpMutexUnlock() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpOpenEventFlag() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpOpenSema() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpPanic() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpPollEventFlag() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpPollSema() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpRtcConvertToPosixTime() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpRtcFormatRFC3339() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpRtcParseRFC3339() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpServerErrorJsonGetErrorCode() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpServerErrorJsonMultiGetErrorCode() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpServerErrorJsonParse() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpServerErrorJsonParseInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpServerErrorJsonParseMultiInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpSetEventFlag() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpSetPlatformType() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpSignalSema() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpStrBuildHex() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpStrcpyToBuf() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpStrncpyToBuf() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpStrnParseHex() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpStrParseHex() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpStrToInt32() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpStrToInt64() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpStrToUInt32() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpStrToUInt64() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpThreadGetId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUInt32ToStr() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUInt64ToStr() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUserGetUserIdList() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilBuildTitleId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilCanonicalizeNpIdForPs4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilCanonicalizeNpIdForPsp2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilCmpAccountId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetDateSetAuto() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetDbgCommerce() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetEnv() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetFakeDisplayNameMode() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetFakeRateLimit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetIgnoreNpTitleId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetNpDebug() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetNpLanguageCode() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetNpLanguageCode2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetNpLanguageCode2Str() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetNpLanguageCodeStr() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetNpTestPatch() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetNthChar() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetShareTitleCheck() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetSystemLanguage() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetTrcNotify() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetWebApi2FakeRateLimit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetWebApi2FakeRateLimitTarget() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilGetWebTraceSetting() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilHttpUrlEncode() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilJidToNpId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilJsonEscape() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilJsonGetOneChar() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilJsonUnescape() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilNpIdToJid() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilNumChars() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilParseJid() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilParseTitleId() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilSerializeJid() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilXmlEscape() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilXmlGetOneChar() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpUtilXmlUnescape() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpWaitEventFlag() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpWaitSema() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpXmlParse() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI sceNpXmlParseInit() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_00FD578C2DD966DF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0131A2EA80689F4C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_01443C54863BDD20() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_01BC55BDC5C0ADAD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_01D1ECF5750F40E8() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_020A479A74F5FBAC() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_024AF5E1D9472AB5() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_027C5D488713A6B3() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_02FE9D94C6858355() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_041F34F1C70D15C1() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0530B1D276114248() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_065DAA14E9C73AD9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_06AFF4E5D042BC3E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_06EE369299F73997() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_07C92D9F8D76B617() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_07E9117498F1E4BF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_08F3E0AF3664F275() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0A9937C01EF21375() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0ACBE6ACCBA3876D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0AE07D3354510CE6() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0AEC3C342AE67B7C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0B318420C11E7C23() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0BB6C37B03F35D89() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0BBE8A9ACDD90FDF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0C7B62905E224E9C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0D35913117241AF9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0D5EE95CEED879A7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0D6FB24B27AB1DA2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0DE8032D534AC41C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0DF4CCA9DCA9E742() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0E7449B1D3D98C01() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0E77094B7750CB37() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0ECAB397B6D50603() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0F1DE1D1EADA2948() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_0F8AFEFA1D26BF1A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_11881710562A6BAD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_11AFD88BBD0C70DB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_11E704A30A4B8877() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_125014842452F94B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_126F0071E11CAC46() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_12926DCF35994B01() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_12CC7ABFBF31618F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_13C4E51F44592AA2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_15330E7C56338254() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1566B358CABF2612() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1625818F268F45EF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_16D32B40D28A9AC2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_183F4483BDBD25CD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1887E9E95AF62F3D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_18A3CE95FD893D3A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_18B3665E4854E7E9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1923B003948AF47E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_19B533DA4C59A532() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1BB399772DB68E08() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1C0AC612D3A2971B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1C5599B779990A43() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1CCBB296B04317BE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1CD045542FB93002() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1DECECA673AB77B7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1E03E024E26C1A7F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1F101732BB0D7E21() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1F4D153EC3DD47BB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1F7C47F63FAF0CBE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_1FBE2EE68C0F31B6() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2038C1628914B9C9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_203FCB56FDB86A74() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_20569C107C6CB08C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_20AB2D734EDE55F0() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_22B1281180FB0A5E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_22F1AADA66A449AE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_238B215EFFDF3D30() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_24E8EC51D149FA15() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_25728E78A3962C02() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_25E649A1C6891C05() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_264B8A38B577705D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_266ED08DC1C82A0E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_27BB4DE62AB58BAD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_283AA96A196EA2EA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_285315A390A85A94() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_29049DBB1EF3194E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_29F7BA9C3732CB47() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2A732DF331ACCB37() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2AA01660EC75B6FB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2B37CBCE941C1681() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2CAA3B64D0544E55() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2CCD79617EC10A75() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2CD8B69716AC0667() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2D74F7C0FF9B5E9C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2DCA5A8080544E95() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2E69F2743CE7CE57() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_2EAF1F3BAFF0527D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_31493E55BB4E8F66() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_317EDCAD00FB5F5E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_31E01CFA8A18CDA2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_32AFD782A061B526() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_32B5CDEB093B8189() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_34155152513C93AE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_34E4EFFF8EF6C9FE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3572FA0D5C54563B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_367C479B264E0DB9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_36884FBC964B29CC() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3860081BB7559949() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_39314F7E674AB132() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3A02E780FCC556A5() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3A17B885BA4849B6() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3A38EACAEA5E23A4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3B34A5E07F0DBC1F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3B4E8FFC00FC7EA4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3BAB18FDA235107A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3BDF9996A0A33F11() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3C1952F1A45CC37A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3CA37906CDB05F3B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3CDB2908ACEE3A6F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3D3ED165F2BDCD33() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3DA4D7D1575FCDCE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3DDFB612CD0BC769() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3E0415E167DEADC7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3E7E9F0F1581C1E6() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3ED389DB8280ED65() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3F0C7F6C0C35487D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3FDA7200389EF0D2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_3FF3C258BA516E58() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4029453F628A3C5D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_405826DDB4AE538E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_405A926759F25865() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_406608FDEE7AE88A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_40DDA5558C17DDCF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_419D12E52FF60664() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4296E539474BE77F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_42F41FC563CC3654() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_43CCC86F4C93026A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4409F60BDABC65E1() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4563C70AEC675382() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_45E66370219BD05E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_466A54F072785696() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_46CD2536976F209A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4863717BD2FDD157() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4902EBD19A263149() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4904F7FE8D83F40C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4A5E13F784ABFCE7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4B65EEB135C12781() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4C19D49978DA85E2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4DE5D620FF66F136() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4E170C12B57A8F9E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4E2F3FA405C3260C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4EA9350577513B4D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_4F78EB6FC4B5F21F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_50348BE4331117B7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_508C7E8CDD281CAA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_521C1D2C028F5A7E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_522FF24A35E67291() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5470FE90C25CDD4C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_557F260F9A4ACD18() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5586F97209F391EB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_55B2C9B7ADA95C3C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_55B488A3A540B936() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5642DFE82AF43143() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_574E046F294AE187() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_578926EBF8AA6CBF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_585DA5FC650896BC() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_58D6EB27349EC276() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5906B7317949872D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5910B5614335BE70() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_593D7DA8911F08C9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_59757FE6A93B0D53() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_598E60F862B1141E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5A45351666680DAF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5AABE9EA702E6A7F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5AEA4AE472355B80() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5B20E53CDE598741() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5B480B59FAE947E0() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5B5EEC23690AB9BD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5C0AC5B0AF3EDAE0() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5D2E999BEA0762D4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5D55BBFD45110E16() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_5DEE15403D2BB5FD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6020C708CA74B130() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_606E1415503C34D2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_612140E8EE9A693E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_61F13F551DAF61DF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6206D39131752328() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_621D4543EF0344DE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6259A9A8E56D0273() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_625F9C7016346F4E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_62EF8DF746CD8C4A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_636D2A99FD1E6B2B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_68013EDF66FE7425() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6971F7067DD639D1() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_69896ADB3AB410B2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6A1389AA6E561387() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6A5560D89F12B2E7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6ABF99CF854ABCF1() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6B4FDDC6500D8DCB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6CA11D5B49D1928A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6D6C0FB61E6D0715() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6D750745FE1348F5() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6E1AF3F9D09914BE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6E53ED4C08B2A521() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6EF43ACA1ED6B968() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_6F6FA09F3E1B6A60() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7035C340C7195901() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7038E21CB5CF641B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_706345DCDA5BA44D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7120714EBF10BF1F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_713D28A91BC803DD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7153BD76A53AA012() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_715C625CC7041B6B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_71E467BDB18711D0() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_720D17965C1F4E3F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_734380C9BCF65B9A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_73F4C08CCD4BBCCF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_74403101B7B29D46() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7525B081ACD66FF4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_75BF4477C13A05CA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7609793F5987C6F7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7616ED01B04769AA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_764F873D91A124D8() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7706F1E123059565() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_77F2D07EB6D806E6() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_79C3704CDCD59E57() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_79DA0BBA21351545() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_79FA2447B5F3F0C4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7A4D6F65FF6195A5() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7B3195CD114DECE7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7B3238F2301AD36D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7C77FC70750A3266() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7D23A9DC459D6D18() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7D5988C748D0A05F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7D9597147A99F4F4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7E2953F407DD8346() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_7EE34E5099709B32() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_80470E5511D5CA00() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_807179701C08F069() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8096E81FFAF24E46() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_80B764F4F1B87042() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_80BF691438AD008B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_80CF6CFC96012442() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_80EA772F8C0519FD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_81D0AFD0084D327A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_821EB8A72176FD67() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_82D2FAB54127273F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_836AE669C42A59E9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8559A25BFEC3518C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_85C1F66C767A49D2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8689ED1383F87BA7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8796CD9E5355D3A6() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_87D37EB6DDC19D99() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_880AA48F70F84FDD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_897B07562093665B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8ACAF55F16368087() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8AE8A5589B30D4E0() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8AE997909831B331() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8B2D640BE0D0FB99() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8B3D9AB4668DAECB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8B5EFAAAACE0B46C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8C27943F40A988DB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8C54096C75F5F2D0() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8D7663A0A5168814() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8E618F509994FAD7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8F19E6CC064E2B98() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_8F6A8AEAEE922FF5() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_9010E1AD8EBBFBCA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_90A955A0E7001AE9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_90F9D6067FEECC05() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_9348F3D19546A1DA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_93D3C011DB19388A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_956E7A4FD9F89103() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_95F699E042C3E40F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_96877B39AA0E8735() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_96CE07C49ED234EA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_976BB178235B5681() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_978C0B25E588C4D6() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_98BA2612BEF238D6() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_995BDD4931AF9137() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_9966E39A926B7250() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_99C2306F18963464() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_99C92C613B776BA7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_9A4E4B938CC8AD39() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_9B23F7B4B7F72081() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_9C0EAEEAE705A8DB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_9D47AC59545DE9E8() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A13052D8B1B2ACFA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A1AA43E3A78F6F62() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A1E48CDF54649DC9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A2E7DEE5B0AF5D14() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A2F5C7FD9FF113F5() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A36296E2269D46BC() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A3EE2A7B9F0D88AF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A4471F9F7E0BFA82() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A449BBA521EA34E1() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A48E666C334E726C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A49B7449B4DDE69C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A5748451125C9EA4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A690A28D648CC176() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A6A86DE1B1CBB1D9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A8F2BB7B815740A1() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_A93F64C06A6F7397() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_AB35925FC97D6AA3() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_AC014AA2C991FA29() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_AC06E10901404AEB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_AC75C68813523505() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_AD441BC497082C3E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_AD4F25F021D354C3() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_ADFA04A85541A4FE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_AE9610A6B5217A23() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_AF201923826F0A58() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_AFC021B4389CA3FA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B015E999A3373D8F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B0384B86107FC652() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B0C630653B316563() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B100DCCD88D5C73D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B11A3FEA5E4D9EA4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B2E7F8DC199C0B93() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B3AB61A296F6DDC8() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B3F32F6AE619EC82() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B4227AB213BF8CF5() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B4652BF42B604360() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B536C1F13BFE97CB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B645CC264184BC89() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B67E17B1582C6FBD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B6D047C5D7695A4D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B75ED8E1EA62EFC7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B7A9A944DBD7E100() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B7C4E75BE94F31F3() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B888B1F92C464121() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B8DEC22564AA057B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_B9BADD1CBBBAE4F8() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_BAA9F7169C85E59F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_BAEE5C38908D62DB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_BCC855EB25183F84() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_BD01F637029C7364() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_BDD29F5AC7077E53() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_BED83DD33ECAD50D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_BEE7D5D098ABF728() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C0DB15CCF59AE62C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C1C229FEE0FD60FA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C228B9AD68298E98() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C298525CEF6FB283() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C350F09351F6D6B5() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C3742E80FA580319() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C3C9853D5D4D45D4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C3F5DAD4FB9FC340() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C45FB0E4CCE9AED6() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C4979CB948B7E3C7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C49B25BA16CF0B8C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C551345D9631201E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C57A294421368298() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C5DC91CAD721D628() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C6DECEE589135357() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C81F8B20D67AC78D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C820FA56FAC87BEA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C878EA9114C5E490() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C8A813EBFF477509() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C966A663D5A35482() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C97C4C67FD3674D3() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_C990550F15848B07() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_CA59737A8EC1BBBE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_CAC5FDE8F80D7B65() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_CB135B30D0639B83() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_CB8A1AAA61F64C3A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_CB9E674672580757() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_CC2B9D25EAEAAB1D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_CD1B252BBEDF5B53() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_CF003BE90CBE1A27() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_CF008E34884AC1E2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D0B8F4B3A3687AB2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D0EE19B8E91F60F5() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D12B9294BD0E0F56() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D1CC8626D8FA328B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D2FA2BB9EB8B63AC() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D32197880CF93CEB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D326F5C26CC81B8E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D4FA06B95A321B7A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D52A37A901E04B21() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D5504DFC399AB400() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D56105CB27F8F5DC() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D568AB19235ECB19() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D6DF7BF6639FE611() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D8608A903119D746() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D9E8FC707D59914D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_D9F079E62DEE5B29() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DA17CE4F29748536() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DA40B9EFD7F61185() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DA6B274FEBC2666A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DAD01535C87A51FC() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DB4511D448510EC4() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DB8EF1FFFC66269C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DBB508FA1B9DA8F7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DC59C9B870B729A2() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DC669ED6CBF6751C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DCB8A2849A41C991() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DD8F9916D7F03AF7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DDC33F2F4E480C2A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_DE0B420BDE8B22D7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E0C0BC29898FE370() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E0CD893E46FB55BA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E25530164B7F659F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E3682F43FDF76C58() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E38177E1C78A80FA() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E3CA74CFF965DF0A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E45BB191B49B2ED9() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E465B9D6B60E6D7D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E4D82876C296C38A() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E4DDB5350FA5B538() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E54BFF6FB72BC7BE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E592A93203020BBB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E5A44AF6D7D48AFD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E639A97CF9FF1430() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E6AC0179E48A8927() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E751596682775D83() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E788B1E52EF82702() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E94F17613F5C9D31() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E9590113128D55E0() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_E9E0B0DD12560B16() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_EAF5C8ECE64C7B05() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_EB98BF5C42D4A7EB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_EBABC4AAC43A468C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_EBF00085F082CC8B() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_ECB659EE058D06AF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_ECF096AB751487AE() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_EE5A271701DB33C0() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_EF64CB6A1625248E() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_EF6C8A357C7ED863() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F00FE94F7E699994() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F1A51DBA30329038() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F216E766A90FDC12() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F2A10584ABE5D82C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F2D99D395E5421A3() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F38001E528BA1371() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F39EC9C8FA7687B3() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F3AFFFDCD632775C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F3B8DFF33748BFD3() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F5E47F9550F7A147() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F6E93714D1A939CF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F6FD19AD48E4EF09() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F744EBFC620F7CBF() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F76E4525ACBACC7F() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F7957A48882F42CB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F7A80B07809BA838() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F8571C6CC5B6B59D() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_F9787CFA873836FB() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_FA789F6D34D383F8() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_FABA574083AC1E6C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_FC04FDBBAE368FB7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_FD2DAFBF2E40EEE7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_FD55EE6D35F950AD() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_FE55EE32098D0D58() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_FE79841022E1DA1C() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+int PS4_SYSV_ABI Func_FFF4A3E279FB44A7() {
+ LOG_ERROR(Lib_NpCommon, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+void RegisterlibSceNpCommon(Core::Loader::SymbolsResolver* sym) {
+ LIB_FUNCTION("i8UmXTSq7N4", "libSceNpCommonCompat", 1, "libSceNpCommon", 1, 1, sceNpCmpNpId);
+ LIB_FUNCTION("TcwEFnakiSc", "libSceNpCommonCompat", 1, "libSceNpCommon", 1, 1,
+ sceNpCmpNpIdInOrder);
+ LIB_FUNCTION("dj+O5aD2a0Q", "libSceNpCommonCompat", 1, "libSceNpCommon", 1, 1,
+ sceNpCmpOnlineId);
+ LIB_FUNCTION("0gdlCVNNHCI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _sceNpAllocatorExConvertAllocator);
+ LIB_FUNCTION("Zh23aSLeeZo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpAllocatorExFree);
+ LIB_FUNCTION("a2qdVU8RWb4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _sceNpAllocatorExMalloc);
+ LIB_FUNCTION("kKF3w-XkCWA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _sceNpAllocatorExRealloc);
+ LIB_FUNCTION("Cmd4+m7V00c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _sceNpAllocatorExStrdup);
+ LIB_FUNCTION("EziLjfyTnKI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _sceNpAllocatorExStrndup);
+ LIB_FUNCTION("BztTl7QeYqE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpAllocatorFree);
+ LIB_FUNCTION("mzlILsFx0cU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpAllocatorMalloc);
+ LIB_FUNCTION("VWcTu8wKwlQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _sceNpAllocatorRealloc);
+ LIB_FUNCTION("c8-4aC9opYE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpAllocatorStrdup);
+ LIB_FUNCTION("vqA9bl6WsF0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _sceNpAllocatorStrndup);
+ LIB_FUNCTION("z5kwfM5InpI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpFree);
+ LIB_FUNCTION("p1vvpKGRXe4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpHeapFree);
+ LIB_FUNCTION("kwW5qddf+Lo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpHeapMalloc);
+ LIB_FUNCTION("wsfyvM+VbUk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpHeapRealloc);
+ LIB_FUNCTION("atWcfgasESY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpHeapStrdup);
+ LIB_FUNCTION("RzLv+HR5E2A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpHeapStrndup);
+ LIB_FUNCTION("w2+qV1RJgcI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpMalloc);
+ LIB_FUNCTION("UmzxltBpiiY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _sceNpRealloc);
+ LIB_FUNCTION("LJvHO3uCNm4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable10IsCanceledEv);
+ LIB_FUNCTION("fd+grYAEph0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable10LockCancelEPKciS3_);
+ LIB_FUNCTION("IwDQAbQxvD0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable11CheckCancelEPKciS3_);
+ LIB_FUNCTION("-zbpF68OGDs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable12UnlockCancelEPKciS3_);
+ LIB_FUNCTION("bBLapYYwyr0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable13SetCancelableEb);
+ LIB_FUNCTION("j4gLOIpHgNk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable14SetupSubCancelEPS1_PKciS4_);
+ LIB_FUNCTION("vmt3ZOlQu3o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable16CleanupSubCancelEPS1_);
+ LIB_FUNCTION("Y7f+qBjKxdo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable4InitEv);
+ LIB_FUNCTION("Jhbrpz0YhHU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable6CancelEij);
+ LIB_FUNCTION("v2yJZLY0w1U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10Cancelable7DestroyEv);
+ LIB_FUNCTION("vqekW3s-eFg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelableC2Ev);
+ LIB_FUNCTION("kdOC-2AE06w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelableD0Ev);
+ LIB_FUNCTION("upzdrzOYkS0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelableD1Ev);
+ LIB_FUNCTION("vZXDqs2x7t0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelableD2Ev);
+ LIB_FUNCTION("nleHqndSeQ0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelLock3EndEPKciS3_);
+ LIB_FUNCTION("lJ2Efd9PUKI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelLock5BeginEPNS0_6HandleEPKciS5_);
+ LIB_FUNCTION("Vq9LKkPXkIQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelLockC1Ev);
+ LIB_FUNCTION("MecB8wAHCfE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelLockC2Ev);
+ LIB_FUNCTION("K7FjXiy2z+A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelLockD1Ev);
+ LIB_FUNCTION("1iHBAKrdE90", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10CancelLockD2Ev);
+ LIB_FUNCTION("aoas3bJANfY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueue10ClearAbortEt);
+ LIB_FUNCTION("QlP4t2SGZ4I", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueue10TryDequeueEPvm);
+ LIB_FUNCTION("xu9qWN0YYC4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueue4ctorEv);
+ LIB_FUNCTION("N1gnYosdK7Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueue4dtorEv);
+ LIB_FUNCTION("b20e017Ei94", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueue4InitEPKcmm);
+ LIB_FUNCTION("slmKkuIoC28", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueue5AbortEt);
+ LIB_FUNCTION("suxln7PooIo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueue7DequeueEPvmj);
+ LIB_FUNCTION("qvpEuKumIGM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueue7DestroyEv);
+ LIB_FUNCTION("AV5jHo8O3+E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueue7EnqueueEPKvmj);
+ LIB_FUNCTION("esiO4He2WTU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueueC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("E4uoqSdo8ek", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueueD0Ev);
+ LIB_FUNCTION("lQXgvDXBGtA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueueD1Ev);
+ LIB_FUNCTION("8kUkQPQP7bA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10EventQueueD2Ev);
+ LIB_FUNCTION("YHNEgBCSL2o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonNumber5ClearEv);
+ LIB_FUNCTION("UgmqDr1BCLw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonNumber6SetNumEi);
+ LIB_FUNCTION("PccynQ5NdVQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonNumber6SetNumEj);
+ LIB_FUNCTION("MY0CSk24EcY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonNumber6SetNumEl);
+ LIB_FUNCTION("qbW7qOvVafI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonNumber6SetNumEm);
+ LIB_FUNCTION("VyCn9EVJGlU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonNumber6SetNumEPKc);
+ LIB_FUNCTION("-WgnISXjJ7A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonObject16DeleteFieldValueEPKc);
+ LIB_FUNCTION("DiHxx2k5zfM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonObject5ClearEv);
+ LIB_FUNCTION("AGadQiCfKDY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonParser4InitEPK7JsonDefPNS1_12EventHandlerE);
+ LIB_FUNCTION("CDzSgHA6hWg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonParser5ParseEPKcm);
+ LIB_FUNCTION("ZJbPQt+FTnY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonParserC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("u+A16O-TAHk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonParserD0Ev);
+ LIB_FUNCTION("qJb7IXDg9xk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonParserD1Ev);
+ LIB_FUNCTION("AvvE5A5A6ZA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonParserD2Ev);
+ LIB_FUNCTION("kXE1imLw7yo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonString5ClearEv);
+ LIB_FUNCTION("SN4IgvT26To", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10JsonString6SetStrEPKc);
+ LIB_FUNCTION("EyhtbPFMWNA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10MemoryFile4ReadEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("AZTMWob-mog", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10MemoryFile4SyncEv);
+ LIB_FUNCTION("dl6+SFHLke0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10MemoryFile5CloseEv);
+ LIB_FUNCTION("r2O0f9X-mqs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10MemoryFile5WriteEPNS0_6HandleEPKvmPm);
+ LIB_FUNCTION("1DtavqenQjg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10MemoryFile8TruncateEl);
+ LIB_FUNCTION("ev77AviWYu8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10MemoryFileC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("6Vst7HqJMXU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10MemoryFileD0Ev);
+ LIB_FUNCTION("ZUf92uPkRuA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10MemoryFileD1Ev);
+ LIB_FUNCTION("lGjyfcI++PY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np10MemoryFileD2Ev);
+ LIB_FUNCTION(
+ "ezJnmv7hkAg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12HttpTemplate19SetAuthInfoCallbackEPFii15SceHttpAuthTypePKcPcS5_iPPhPmPiPvESA_);
+ LIB_FUNCTION("iOTsJTR6Y9U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12HttpTemplate4InitEiPKcib);
+ LIB_FUNCTION("73qbxKjBH0o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12HttpTemplate7DestroyEv);
+ LIB_FUNCTION("Vj7HiXK-tTg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12HttpTemplateC1Ev);
+ LIB_FUNCTION("hw-UPUK9T+w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12HttpTemplateC2Ev);
+ LIB_FUNCTION("cXYOwTVAuMs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12HttpTemplateD0Ev);
+ LIB_FUNCTION("Bm74HLvoNY4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12HttpTemplateD1Ev);
+ LIB_FUNCTION("h6XPsGpHAtc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12HttpTemplateD2Ev);
+ LIB_FUNCTION("jr0OcEeQJ8o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamBufferixEi);
+ LIB_FUNCTION("rCRh3V03bPs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamReader4ReadEPNS0_6HandleEPNS0_9StreamCtxEPvmPm);
+ LIB_FUNCTION("2SKuIvr9sYU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamReader7ReadAllEPNS0_6HandleEPNS0_9StreamCtxEPvmPm);
+ LIB_FUNCTION("f1ncwa-JXlA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamReader7ReadAllEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("z8qO7hql4Fs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamReader8ReadDataEPNS0_6HandleEPNS0_9StreamCtxEPvmPm);
+ LIB_FUNCTION("oNqSobbGC80", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamReader8ReadDataEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("MSMPXUL5AuM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamReader8SkipDataEPNS0_6HandleElPl);
+ LIB_FUNCTION("fJB07vDf7no", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamReader8SkipDataEPNS0_6HandleEPNS0_9StreamCtxElPl);
+ LIB_FUNCTION("etMUeqIhN+w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamWriter15WriteFilledDataEPNS0_6HandleEcl);
+ LIB_FUNCTION("SP2010+gtqw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamWriter15WriteFilledDataEPNS0_6HandleEPNS0_9StreamCtxEcl);
+ LIB_FUNCTION("Z1MRG-L+V0o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamWriter5WriteEPNS0_6HandleEPNS0_9StreamCtxEPKvmPm);
+ LIB_FUNCTION("vHaV+tsSVu4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamWriter9WriteDataEPNS0_6HandleEPKvmPm);
+ LIB_FUNCTION("u9s1aUWSZB0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12StreamWriter9WriteDataEPNS0_6HandleEPNS0_9StreamCtxEPKvmPm);
+ LIB_FUNCTION("gimH2zdBANg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12WorkerThread10ThreadMainEv);
+ LIB_FUNCTION("YKz2oBW3ZkM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12WorkerThreadC1EPNS0_9WorkQueueE);
+ LIB_FUNCTION("L9Ty-fG1IM4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12WorkerThreadC2EPNS0_9WorkQueueE);
+ LIB_FUNCTION("f5L6ax7EWHk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12WorkerThreadD0Ev);
+ LIB_FUNCTION("PvGTq9AGFfk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12WorkerThreadD1Ev);
+ LIB_FUNCTION("+qB+WcQlMio", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np12WorkerThreadD2Ev);
+ LIB_FUNCTION("4nCyBD9jBus", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13JsonDocParser5ParseEPKcm);
+ LIB_FUNCTION("sgh9D+MBBKA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13JsonDocParser9GetResultEPPNS0_10JsonObjectE);
+ LIB_FUNCTION("lZWmdDoBDmI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13JsonDocParser9GetResultEPPNS0_9JsonValueE);
+ LIB_FUNCTION("yPmQcnrgR2Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13JsonDocParserC2EP16SceNpAllocatorExPK7JsonDef);
+ LIB_FUNCTION("p5hRe1k4Wlg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13JsonDocParserD0Ev);
+ LIB_FUNCTION("iFOXfoXRHFQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13JsonDocParserD1Ev);
+ LIB_FUNCTION("xS-Hjw1psYs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13JsonDocParserD2Ev);
+ LIB_FUNCTION("X0vEo7cZamA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecret5ClearEv);
+ LIB_FUNCTION("IjOpzNzl57o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretC1EPKvm);
+ LIB_FUNCTION("bC4+qi0mqJE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretC1ERK16SceNpTitleSecret);
+ LIB_FUNCTION("fYr7Ahl-vNA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretC1ERKS1_);
+ LIB_FUNCTION("08AQ2wYpzpk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretC1Ev);
+ LIB_FUNCTION("Ft-VezxSErk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretC2EPKvm);
+ LIB_FUNCTION("9QN7g5mQgCU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretC2ERK16SceNpTitleSecret);
+ LIB_FUNCTION("JHG9CTmkdQw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretC2ERKS1_);
+ LIB_FUNCTION("K1+uzxxReX0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretC2Ev);
+ LIB_FUNCTION("dJRIc7d5iqU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretD0Ev);
+ LIB_FUNCTION("XBzzdzT3qyg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretD1Ev);
+ LIB_FUNCTION("QDlnJL6stA0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13NpTitleSecretD2Ev);
+ LIB_FUNCTION("RPv5L-o5qRQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemory4ctorEv);
+ LIB_FUNCTION("NfhXX6LFmj8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemory4dtorEv);
+ LIB_FUNCTION("BkuxOAPlMMw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemory4InitEm);
+ LIB_FUNCTION("do0t--lEKMM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemory6ExpandEm);
+ LIB_FUNCTION("zdRXyt-65kA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemory6IsInitEv);
+ LIB_FUNCTION("Za00SEoNA2A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemory7DestroyEv);
+ LIB_FUNCTION("lGIw3qfqI60", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemoryC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("70qFzq4z3UI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemoryD0Ev);
+ LIB_FUNCTION("C1TJsMv9wb8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemoryD1Ev);
+ LIB_FUNCTION("EaxLv8TfsrM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np13RingBufMemoryD2Ev);
+ LIB_FUNCTION("j6CorpmdjRk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14CalloutContext4InitEPKcimm);
+ LIB_FUNCTION("oLpLfV2Ov9A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14CalloutContext4InitEPKNS1_5ParamE);
+ LIB_FUNCTION("C282U0P6Nwg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14CalloutContext7DestroyEv);
+ LIB_FUNCTION("dV+zK-Ce-2E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14CalloutContextC1Ev);
+ LIB_FUNCTION("j4IAvbKKTzw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14CalloutContextC2Ev);
+ LIB_FUNCTION("WR4mjQeqz6s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14CalloutContextD0Ev);
+ LIB_FUNCTION("S+a+rgnGX8A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14CalloutContextD1Ev);
+ LIB_FUNCTION("wY9g+hVxLTM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14CalloutContextD2Ev);
+ LIB_FUNCTION("PYBehFWVd60", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14JsonDocBuilder12BuildBufSizeEv);
+ LIB_FUNCTION("cLdoHqi5Ezg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14JsonDocBuilder16EscapeJsonStringEPKcPcmPm);
+ LIB_FUNCTION("V5xX2eroaWY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14JsonDocBuilder23EscapeJsonStringBufSizeEPKc);
+ LIB_FUNCTION("irex3q-O6po", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14JsonDocBuilder5BuildEPcmPm);
+ LIB_FUNCTION("ikFI73f3hP4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14JsonDocBuilderC1ERKNS0_9JsonValueE);
+ LIB_FUNCTION("dhJGQPKLmn0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14JsonDocBuilderC2ERKNS0_9JsonValueE);
+ LIB_FUNCTION("wDLaq7IgfIc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14JsonDocBuilderD0Ev);
+ LIB_FUNCTION("Kfv9jPxf7qA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14JsonDocBuilderD1Ev);
+ LIB_FUNCTION("MH0LyghLJEE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np14JsonDocBuilderD2Ev);
+ LIB_FUNCTION("pCIB7QX5e1g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np15CancelableScope3EndEiPKciS3_);
+ LIB_FUNCTION("Etvu03IpTEc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np15CancelableScope5BeginEPNS0_6HandleEPKciS5_);
+ LIB_FUNCTION("pp88xnRgJrM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np15CancelableScopeC2Ev);
+ LIB_FUNCTION("E8yuDNYbzl0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np15CancelableScopeD0Ev);
+ LIB_FUNCTION("km5-rjNjSFk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np15CancelableScopeD1Ev);
+ LIB_FUNCTION("xpLjHhJBhpo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np15CancelableScopeD2Ev);
+ LIB_FUNCTION("LCk8T5b1h+4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np16StreamReadBufferC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("ZufKqNXItD0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np16StreamReadBufferD1Ev);
+ LIB_FUNCTION("bH7ljyLOsBw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np16StreamReadBufferD2Ev);
+ LIB_FUNCTION("et05S+nkWG8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18HttpConnectionPool13InvalidateAllEv);
+ LIB_FUNCTION("Vzob5RCgfnY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18HttpConnectionPool4InitEi);
+ LIB_FUNCTION("iBdEFRdfpgg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18HttpConnectionPool7DestroyEv);
+ LIB_FUNCTION("PznfSvchYJ8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18HttpConnectionPoolC1EP16SceNpAllocatorEx);
+ LIB_FUNCTION("-2TYwZ4ERbM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18HttpConnectionPoolC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("5HWP63cOH+w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18HttpConnectionPoolD0Ev);
+ LIB_FUNCTION("kTfkKhcdW5Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18HttpConnectionPoolD1Ev);
+ LIB_FUNCTION("3MVW8+eWnjs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18HttpConnectionPoolD2Ev);
+ LIB_FUNCTION("ELa6nMcCO9w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamReader4ReadEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("UHj0GDTA2CU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamReaderC1EPKvm);
+ LIB_FUNCTION("WXRruhGp9dI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamReaderC2EPKvm);
+ LIB_FUNCTION("gA0CaCjJpg0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamReaderD0Ev);
+ LIB_FUNCTION("oULMh4JVC4o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamReaderD1Ev);
+ LIB_FUNCTION("rNJ1+3KoZP4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamReaderD2Ev);
+ LIB_FUNCTION("VxKQGrudnzk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamWriter5WriteEPNS0_6HandleEPKvmPm);
+ LIB_FUNCTION("Lkdm2yqZN1c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamWriterC1EPvm);
+ LIB_FUNCTION("abQ7xd3yVXM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamWriterC2EPvm);
+ LIB_FUNCTION("TXJnPiKuTf8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamWriterD0Ev);
+ LIB_FUNCTION("3VdCUl+DkNw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamWriterD1Ev);
+ LIB_FUNCTION("YmOVGwSJmzk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np18MemoryStreamWriterD2Ev);
+ LIB_FUNCTION("INZSjlRcuyQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np20BufferedStreamReader4ReadEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("3Ku9r8b6gCg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np20BufferedStreamReader5CloseEv);
+ LIB_FUNCTION("l6s7aomzWGA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np20BufferedStreamReaderC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("i28bR54-QFQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np20BufferedStreamReaderD0Ev);
+ LIB_FUNCTION("Tgr66MThOxA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np20BufferedStreamReaderD1Ev);
+ LIB_FUNCTION("PHWvRXbOnYs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np20BufferedStreamReaderD2Ev);
+ LIB_FUNCTION("7dyKpPHU+Yk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClient10DisconnectEv);
+ LIB_FUNCTION("prj9aMR74bA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClient11IsConnectedEv);
+ LIB_FUNCTION("r7UpNm1Po9s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClient16invokeSyncMethodEjPKvmPvPmm);
+ LIB_FUNCTION("+EQNga+wsPc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClient4ctorEv);
+ LIB_FUNCTION("2h59YqPcrdM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClient4dtorEv);
+ LIB_FUNCTION("iRH-NE2evR4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClient4InitEPKNS2_6ConfigE);
+ LIB_FUNCTION("CGKtxL26XqI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClient7ConnectEPKvm);
+ LIB_FUNCTION("+xvhXA8Ci4E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClient7DestroyEv);
+ LIB_FUNCTION("6aKYLBS8Di8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClientC1Ev);
+ LIB_FUNCTION("dqjlsaUX0sc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClientC2Ev);
+ LIB_FUNCTION("3LuoWoXJ1WI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClientD0Ev);
+ LIB_FUNCTION("DRbjyNom-BE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClientD1Ev);
+ LIB_FUNCTION("J1lpiTKAEuk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc10IpmiClientD2Ev);
+ LIB_FUNCTION(
+ "aQzxfON3l2Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc13ServiceClientC1EPNS1_17ServiceIpmiClientEPKNS1_17ServiceClientInfoE);
+ LIB_FUNCTION(
+ "Mx6wrcdGC2w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc13ServiceClientC2EPNS1_17ServiceIpmiClientEPKNS1_17ServiceClientInfoE);
+ LIB_FUNCTION("uvYTUK5xYG8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient10DisconnectEv);
+ LIB_FUNCTION("fFGPlE0oNhw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient10EndRequestEii);
+ LIB_FUNCTION("F2xYmg5DiR4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient11findServiceEi);
+ LIB_FUNCTION("G4FYQtsjOX0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient11InitServiceEi);
+ LIB_FUNCTION("0rqwC4+sgzU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient11TermServiceEi);
+ LIB_FUNCTION("oCx3mVNvqzU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient11WaitRequestEiij);
+ LIB_FUNCTION("tQOrMf4KtIo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient12AbortRequestEii);
+ LIB_FUNCTION("9aiQo-uRPJY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient12BeginRequestEii);
+ LIB_FUNCTION("H35UsHYlhB4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient13CreateRequestEPiiPKvm);
+ LIB_FUNCTION("cMj7li0eXgw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient13DeleteRequestEii);
+ LIB_FUNCTION("+ZC8QYB-BA8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient13PollEventFlagEijmjPm);
+ LIB_FUNCTION("4GZ9O-OrfzE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient13WaitEventFlagEijmjPmj);
+ LIB_FUNCTION("q+uCQLffwQE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient14PollEventQueueEiPvm);
+ LIB_FUNCTION("bH08FzR5rFU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient15CancelEventFlagEijm);
+ LIB_FUNCTION("stUzNgtFmtY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient15RegisterServiceEPKNS1_17ServiceClientInfoE);
+ LIB_FUNCTION("fqAS9GQTmOU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient16RegisterServicesEPKNS1_17ServiceClientInfoE);
+ LIB_FUNCTION("BJCXJJCi0Zc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient17invokeInitServiceEi);
+ LIB_FUNCTION("GuruEy9Q-Zk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient17invokeTermServiceEi);
+ LIB_FUNCTION("k9jCtANC+QM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient17UnregisterServiceEi);
+ LIB_FUNCTION("8TpAxZoLLRw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient18EndRequestForAsyncEii);
+ LIB_FUNCTION("1ONFW86TETY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient19WaitRequestForAsyncEiij);
+ LIB_FUNCTION("nQm4o5iOye0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient20AbortRequestForAsyncEii);
+ LIB_FUNCTION(
+ "ktb6iOBLnd4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient20BeginRequestForAsyncEiiPN4IPMI6Client12EventNotifeeE);
+ LIB_FUNCTION("v5Z2LAKua28", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient21CreateRequestForAsyncEPiiPKvm);
+ LIB_FUNCTION("7oJpAd+vJQA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient21DeleteRequestForAsyncEii);
+ LIB_FUNCTION("KxlKRHLf9AY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient4ctorEv);
+ LIB_FUNCTION("s+dG6iqG7j0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient4dtorEv);
+ LIB_FUNCTION("qFdG8Ucfeqg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient4InitEPNS2_6ConfigE);
+ LIB_FUNCTION("NTPZ5GZIA6U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient7ConnectEPKvm);
+ LIB_FUNCTION("IGngArGbzHo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClient7DestroyEv);
+ LIB_FUNCTION("FubuBXanVWk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClientC1Ev);
+ LIB_FUNCTION("zARyDXgocuk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClientC2Ev);
+ LIB_FUNCTION("PmsH4f3z8Yk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClientD0Ev);
+ LIB_FUNCTION("90XdvAqFFn8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClientD1Ev);
+ LIB_FUNCTION("agYDXAyL-K8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np3ipc17ServiceIpmiClientD2Ev);
+ LIB_FUNCTION("n9pzAHeCCVU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Cond4ctorEv);
+ LIB_FUNCTION("BtXPJQEg41Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Cond4dtorEv);
+ LIB_FUNCTION("wWTqVcTnep8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Cond4InitEPKcPNS0_5MutexE);
+ LIB_FUNCTION("SLPuaDLbeD4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Cond4WaitEj);
+ LIB_FUNCTION("OQiPXR6gfj0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Cond6SignalEv);
+ LIB_FUNCTION("I5uzTXxbziU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Cond7DestroyEv);
+ LIB_FUNCTION("-hchsElmzXY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Cond9SignalAllEv);
+ LIB_FUNCTION("3z5EPY-ph14", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np4CondC1Ev);
+ LIB_FUNCTION("6nW8WXQYRgM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np4CondC2Ev);
+ LIB_FUNCTION("AKiHGWhC2KU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np4CondD0Ev);
+ LIB_FUNCTION("yX9ISVXv+0M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np4CondD1Ev);
+ LIB_FUNCTION("6RQRpTn+-cc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np4CondD2Ev);
+ LIB_FUNCTION("6r6ssbPbKc4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Path11BuildAppendEPcmcPKcm);
+ LIB_FUNCTION("vfBKsg+lKWc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Path12AddDelimiterEPcmc);
+ LIB_FUNCTION("BqFx1VLEMPk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Path5ClearEv);
+ LIB_FUNCTION("AcG6blobOQE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Path6SetStrEPKcm);
+ LIB_FUNCTION("0fwoTW7gqfM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np4PathD0Ev);
+ LIB_FUNCTION("-3UvpBs-26g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np4PathD1Ev);
+ LIB_FUNCTION("1nF0eXrBZYM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np4PathD2Ev);
+ LIB_FUNCTION("KhoD7EapiYI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Time10AddMinutesEl);
+ LIB_FUNCTION("PgiCaoqRKKc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Time10AddSecondsEl);
+ LIB_FUNCTION("vINvzJOaqws", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Time12GetUserClockEPS1_);
+ LIB_FUNCTION("dLNhHwYyt4c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Time15AddMicroSecondsEl);
+ LIB_FUNCTION("WZqwoPoMzFA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Time15GetNetworkClockEPS1_);
+ LIB_FUNCTION("fimORKx4RDg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Time20GetDebugNetworkClockEPS1_);
+ LIB_FUNCTION("++qSDotsHuE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Time7AddDaysEl);
+ LIB_FUNCTION("Zc+a6k6i7gY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4Time8AddHoursEl);
+ LIB_FUNCTION("Fgm7cz6AX4k", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4TimeplERK10SceRtcTick);
+ LIB_FUNCTION("F9khEfgTmsE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np4TimeplERKS1_);
+ LIB_FUNCTION("I1kBZV6keO4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np5Mutex4ctorEv);
+ LIB_FUNCTION("mo+gaebiE+M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np5Mutex4dtorEv);
+ LIB_FUNCTION("aTNOl9EB4V4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np5Mutex4InitEPKcj);
+ LIB_FUNCTION("VM+CXTW4F-s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np5Mutex4LockEv);
+ LIB_FUNCTION("eYgHIWx0Hco", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np5Mutex6UnlockEv);
+ LIB_FUNCTION("RgGW4f0ox1g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np5Mutex7DestroyEv);
+ LIB_FUNCTION("TJNrs69haak", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np5Mutex7TryLockEv);
+ LIB_FUNCTION("O1AvlQU33pI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np5MutexC1Ev);
+ LIB_FUNCTION("2beu2bHw6qo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np5MutexC2Ev);
+ LIB_FUNCTION("omf1GoUEJCA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np5MutexD0Ev);
+ LIB_FUNCTION("9zi9FTPol74", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np5MutexD1Ev);
+ LIB_FUNCTION("CI7ciM21NXs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np5MutexD2Ev);
+ LIB_FUNCTION("uuyEiBHghY4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np5NpEnv8GetNpEnvEPS1_);
+ LIB_FUNCTION("-c9QK+CpQLg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Handle10CancelImplEi);
+ LIB_FUNCTION("ifqJb-V1QZw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Handle4InitEv);
+ LIB_FUNCTION("1atFu71dFAU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Handle7DestroyEv);
+ LIB_FUNCTION("KUJtztDMJYY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np6HandleC1Ev);
+ LIB_FUNCTION("OhpofCxYOJc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np6HandleC2Ev);
+ LIB_FUNCTION("ZOHgNNSZq4Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np6HandleD0Ev);
+ LIB_FUNCTION("YWt5S4-cg9c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np6HandleD1Ev);
+ LIB_FUNCTION("dt0A2cWjwLs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np6HandleD2Ev);
+ LIB_FUNCTION("1x0jThSUr4w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectdaEPv);
+ LIB_FUNCTION("4il4PZAZOnQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectdaEPvR14SceNpAllocator);
+ LIB_FUNCTION("q2USyzLF4kI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectdaEPvR16SceNpAllocatorEx);
+ LIB_FUNCTION("CnDHI7sU+l0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectdlEPv);
+ LIB_FUNCTION("05KEwpDf4Ls", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectdlEPvR14SceNpAllocator);
+ LIB_FUNCTION("iwDNdnEGyhI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectdlEPvR16SceNpAllocatorEx);
+ LIB_FUNCTION("V75N47uYdQc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectnaEmR14SceNpAllocator);
+ LIB_FUNCTION("bKMVqRcCQ1U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectnaEmR16SceNpAllocatorEx);
+ LIB_FUNCTION("0syNkhJANVw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectnwEmR14SceNpAllocator);
+ LIB_FUNCTION("orRb69nSo64", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6ObjectnwEmR16SceNpAllocatorEx);
+ LIB_FUNCTION("Ehkz-BkTPwI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread12DoThreadMainEv);
+ LIB_FUNCTION("3CJl5ewd7-0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread4ctorEv);
+ LIB_FUNCTION("-3gV5N2u-sc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread4dtorEv);
+ LIB_FUNCTION("EqX45DhWUpo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread4InitEPKcimm);
+ LIB_FUNCTION("OoK0Ah0l1ko", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread4InitEPKNS1_5ParamE);
+ LIB_FUNCTION("ne77q1GOlF8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread4JoinEPi);
+ LIB_FUNCTION("VNKdE2Dgp0Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread5StartEv);
+ LIB_FUNCTION("sPti0OkVM8c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread7DestroyEv);
+ LIB_FUNCTION("uphWwLZAuXA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread9EntryFuncEPv);
+ LIB_FUNCTION("gnwCmkY-V70", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread9GetResultEv);
+ LIB_FUNCTION("qy4V8O+snLU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np6Thread9IsRunningEv);
+ LIB_FUNCTION("0f3ylOQJwqE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np6ThreadC2Ev);
+ LIB_FUNCTION("MEYMyfJxWXg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np6ThreadD0Ev);
+ LIB_FUNCTION("0Q5aKjYErBA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np6ThreadD1Ev);
+ LIB_FUNCTION("6750DaF5Pas", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, _ZN3sce2np6ThreadD2Ev);
+ LIB_FUNCTION("xxOTJpEyoj4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7Callout10IsTimedoutEv);
+ LIB_FUNCTION("Zw3QlKu49eM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7Callout11CalloutFuncEPv);
+ LIB_FUNCTION("14PDhhMEBKY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7Callout4StopEv);
+ LIB_FUNCTION("TDuC6To9HJ8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7Callout5StartEjPNS1_7HandlerE);
+ LIB_FUNCTION("r0PYNWZLZS8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7Callout5StartEmPNS1_7HandlerE);
+ LIB_FUNCTION("3ErXia+y89M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7Callout9IsStartedEv);
+ LIB_FUNCTION("XEXFdmQj5oI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7CalloutC1EPNS0_14CalloutContextE);
+ LIB_FUNCTION("Bpay3NjseSU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7CalloutC2EPNS0_14CalloutContextE);
+ LIB_FUNCTION("Fx2UwoQVVmo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7CalloutD0Ev);
+ LIB_FUNCTION("kUitiIVR43g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7CalloutD1Ev);
+ LIB_FUNCTION("ebomQLbpptw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7CalloutD2Ev);
+ LIB_FUNCTION("YtzL-Rso9bk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7HttpUri5BuildEPKS1_PcmPmj);
+ LIB_FUNCTION("Xp92SsA5atA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7HttpUri5ParseEPS1_PKc);
+ LIB_FUNCTION("LL9z5QvmwaA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7HttpUriC1EP16SceNpAllocatorEx);
+ LIB_FUNCTION("q4G7qxTJWps", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7HttpUriC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("w+C8QXqZKSw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7HttpUriD0Ev);
+ LIB_FUNCTION("wSCKvDDBPy4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7HttpUriD1Ev);
+ LIB_FUNCTION("D-dT+vERWmU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7HttpUriD2Ev);
+ LIB_FUNCTION("oaSKGgwTWG0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf14CheckinForReadEm);
+ LIB_FUNCTION("78yvwepeL7U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf15CheckinForWriteEm);
+ LIB_FUNCTION("d8NGGmSEFfU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf15CheckoutForReadEPm);
+ LIB_FUNCTION("E2QFpAcDPq4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf16CheckoutForWriteEPm);
+ LIB_FUNCTION("1P-MUvbtyTM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf4ctorEv);
+ LIB_FUNCTION("rvz8xYxhMW0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf4dtorEv);
+ LIB_FUNCTION("IL3Wk7QuRhA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf4InitEPvm);
+ LIB_FUNCTION("kDaQLJv89bs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf4PeekEmPvm);
+ LIB_FUNCTION("Mg-IhL6SWfg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf4ReadEPvm);
+ LIB_FUNCTION("IZOGdJ+LFFU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf5ClearEv);
+ LIB_FUNCTION("8Y5OOBb0B5Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf5WriteEPKvm);
+ LIB_FUNCTION("u-TlLaJUJEA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBuf7DestroyEv);
+ LIB_FUNCTION("L5BnZpuQImk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBufC1Ev);
+ LIB_FUNCTION("e2a1ZA+lJC4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBufC2Ev);
+ LIB_FUNCTION("hfJ1gGLgvq8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBufD0Ev);
+ LIB_FUNCTION("7w+LeZ5ymys", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBufD1Ev);
+ LIB_FUNCTION("9+NmoosRoBA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np7RingBufD2Ev);
+ LIB_FUNCTION("d+xJZ63-wrc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8HttpFile4ReadEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("jcPO4bt5i3o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8HttpFile5CloseEv);
+ LIB_FUNCTION("RXdPqxVnrvo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8HttpFileC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("T2w3ndcG-+Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8HttpFileD0Ev);
+ LIB_FUNCTION("6fomUWNk6Xc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8HttpFileD1Ev);
+ LIB_FUNCTION("WAat5MtCKpc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8HttpFileD2Ev);
+ LIB_FUNCTION("uDyILPgHF9Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8JsonBool5ClearEv);
+ LIB_FUNCTION("FdpYFbq5C3Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8JsonBool7SetBoolEb);
+ LIB_FUNCTION("mFZezLIogNI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8JsonFile5CloseEv);
+ LIB_FUNCTION("hqPavTyQlNg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8JsonFileD0Ev);
+ LIB_FUNCTION("wzqAM7IYGzU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8JsonFileD1Ev);
+ LIB_FUNCTION("QFYVZvAJNC8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8JsonFileD2Ev);
+ LIB_FUNCTION("88GKkivBFhI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8JsonNull5ClearEv);
+ LIB_FUNCTION("WcLP8wPB9X4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommId5BuildERKS1_Pcm);
+ LIB_FUNCTION("LnjjzlJ+L5c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommId5ClearEv);
+ LIB_FUNCTION("1TjLUwirok0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommId5ParseEPS1_PKc);
+ LIB_FUNCTION("UrJocI5M8GY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommId5ParseEPS1_PKcm);
+ LIB_FUNCTION("To1XvNOzjo0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommIdC1ERK20SceNpCommunicationId);
+ LIB_FUNCTION("N6SkkX1GkFU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommIdC1ERKS1_);
+ LIB_FUNCTION("AQyiYChNI0c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommIdC1Ev);
+ LIB_FUNCTION("WywlusFissg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommIdC2ERK20SceNpCommunicationId);
+ LIB_FUNCTION("rB0oqLSjH6g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommIdC2ERKS1_);
+ LIB_FUNCTION("BBtBjx9-bMI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommIdC2Ev);
+ LIB_FUNCTION("XeCZTzqIk2k", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommIdD0Ev);
+ LIB_FUNCTION("EPJbX73AVeU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommIdD1Ev);
+ LIB_FUNCTION("hP18CDS6eBU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8NpCommIdD2Ev);
+ LIB_FUNCTION("5WuiSZkU3mg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8Selector4InitEPKc);
+ LIB_FUNCTION("2HkOOhiWK3M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8SelectorD0Ev);
+ LIB_FUNCTION("asZdig1mPlA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8SelectorD1Ev);
+ LIB_FUNCTION("PA9VYFAVKIE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8SelectorD2Ev);
+ LIB_FUNCTION("2YbS+GhInZQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItem10SetPendingEv);
+ LIB_FUNCTION("XUCjhejJvPc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItem10SetRunningEv);
+ LIB_FUNCTION("-91vFSqiuKw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItem11SetFinishedEi);
+ LIB_FUNCTION("zepqHjfGe0M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItem14FinishCallbackEv);
+ LIB_FUNCTION("3rGzxcMK-Mg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItem15RemoveFromQueueEv);
+ LIB_FUNCTION("Oq5aepLkEWg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItem6CancelEi);
+ LIB_FUNCTION("gnh2cpEgSS8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItem9BindQueueEPNS0_9WorkQueueEi);
+ LIB_FUNCTION("HldN461O2Dw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItemC2EPKc);
+ LIB_FUNCTION("Y-I66cSNp+A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItemD0Ev);
+ LIB_FUNCTION("dnwItoXLoy4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItemD1Ev);
+ LIB_FUNCTION("ga4OW9MGahU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np8WorkItemD2Ev);
+ LIB_FUNCTION("8i-vOVRVt5w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag3SetEm);
+ LIB_FUNCTION("vhbvgH7wWiE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag4ctorEv);
+ LIB_FUNCTION("5nM4Yy92Qwg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag4dtorEv);
+ LIB_FUNCTION("5Wy+JxpCBxg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag4OpenEPKc);
+ LIB_FUNCTION("37Rd2JS+FCM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag4PollEmjPm);
+ LIB_FUNCTION("1s+c3SG0WYc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag4WaitEmjPmj);
+ LIB_FUNCTION("03UlDLFsTfw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag5ClearEm);
+ LIB_FUNCTION("wJ-k9+UShJg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag6CancelEm);
+ LIB_FUNCTION("amFi-Av19hU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag6CreateEPKcj);
+ LIB_FUNCTION("QlaBcxSFPZI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlag7DestroyEv);
+ LIB_FUNCTION("cMOgkE2M2e8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlagC1Ev);
+ LIB_FUNCTION("Uv1IQpTWecw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlagC2Ev);
+ LIB_FUNCTION("uHOOEbuzjEQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlagD0Ev);
+ LIB_FUNCTION("WWW4bvT-rSw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlagD1Ev);
+ LIB_FUNCTION("RpWWfCEs9xA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9EventFlagD2Ev);
+ LIB_FUNCTION("jDDvll2aQpQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans10SetTimeoutEPKNS1_12TimeoutParamE);
+ LIB_FUNCTION("+hKyaJJCE+0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans11SendRequestEPNS0_6HandleEPKvm);
+ LIB_FUNCTION("EhLaOnhdcXo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans12RecvResponseEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("fV+Q5a6p+zQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans12SkipResponseEPNS0_6HandleE);
+ LIB_FUNCTION("Qfsmqs-bHeY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans16AddRequestHeaderEPKcS3_);
+ LIB_FUNCTION("6bYsRATI3tQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans16SetRequestHeaderEPKcS3_);
+ LIB_FUNCTION("WoFp77mNyw0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans21GetResponseStatusCodeEPNS0_6HandleEPi);
+ LIB_FUNCTION("RJOlguLEy-E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans21SetRequestContentTypeEPKc);
+ LIB_FUNCTION("ws3x3yjUyeE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans23SetRequestContentLengthEm);
+ LIB_FUNCTION("YW09CP0Vrtw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans24GetResponseContentLengthEPNS0_6HandleEPbPm);
+ LIB_FUNCTION("JEYp0T1VC58", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans4InitERKNS0_12HttpTemplateEPNS0_18HttpConnectionPoolEiPKcm);
+ LIB_FUNCTION(
+ "O+FeLkOM7w0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans4InitERKNS0_12HttpTemplateEPNS0_18HttpConnectionPoolEiPKcS8_tS8_m);
+ LIB_FUNCTION("aWo+7jvpllY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans4ReadEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("cocNRQpq+NA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans5WriteEPNS0_6HandleEPKvmPm);
+ LIB_FUNCTION("2e9GLlHTKA4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTrans7DestroyEv);
+ LIB_FUNCTION("sqNxD6H5ZOQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTransC1EP16SceNpAllocatorEx);
+ LIB_FUNCTION("HEeXBdgvJI4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTransC2EP16SceNpAllocatorEx);
+ LIB_FUNCTION("Pe9fHKX7krE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTransD0Ev);
+ LIB_FUNCTION("ls8yIODZmzc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTransD1Ev);
+ LIB_FUNCTION("GSVe-aaTiEg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9HttpTransD2Ev);
+ LIB_FUNCTION("4cIJxNKQK5g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9JsonArray12AddItemArrayEPPS1_);
+ LIB_FUNCTION("cWsZswBMjqg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9JsonArray5ClearEv);
+ LIB_FUNCTION("aCZjveAsynw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9JsonValue12GetItemValueEi);
+ LIB_FUNCTION("aIV+HI6llz4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9JsonValue13GetFieldValueEiPPKc);
+ LIB_FUNCTION("BDie4qEtKuA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9JsonValue13GetFieldValueEPKc);
+ LIB_FUNCTION("LotC9rVP3Lo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9JsonValueD0Ev);
+ LIB_FUNCTION("hBuLbn3mGBw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9JsonValueD1Ev);
+ LIB_FUNCTION("FfSNfBmn+K8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9JsonValueD2Ev);
+ LIB_FUNCTION("PsP6LYRZ7Dc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFile4ReadEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("Flyyg6hzUOM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFile4SeekEliPl);
+ LIB_FUNCTION("YtvLEI7uZRI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFile4SyncEv);
+ LIB_FUNCTION("9q+h2q5YprU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFile5CloseEv);
+ LIB_FUNCTION("0xL7AwgxphE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFile5WriteEPNS0_6HandleEPKvmPm);
+ LIB_FUNCTION("haDbtVOmaao", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFile6RemoveEPKc);
+ LIB_FUNCTION("Sgo7wy9okFI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFile8TruncateEl);
+ LIB_FUNCTION("QWlZu1JZOww", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFileC1Ev);
+ LIB_FUNCTION("HP4jsVYqBKg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFileC2Ev);
+ LIB_FUNCTION("-n0CR0QxhnY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFileD0Ev);
+ LIB_FUNCTION("3eoh4hjcYag", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFileD1Ev);
+ LIB_FUNCTION("s-C88O6Y8iU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9LocalFileD2Ev);
+ LIB_FUNCTION("euE6Yo5hkrY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleId5BuildERKS1_Pcm);
+ LIB_FUNCTION("a76a3D9Adts", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleId5ClearEv);
+ LIB_FUNCTION("4O8lYvForpk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleId5ParseEPS1_PKc);
+ LIB_FUNCTION("-swgMjedLUQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleId5ParseEPS1_PKcm);
+ LIB_FUNCTION("Fcvdbqpwpnw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleIdC1ERK12SceNpTitleId);
+ LIB_FUNCTION("wd+YWDKMTQE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleIdC1ERKS1_);
+ LIB_FUNCTION("-Ja2aT6A3fg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleIdC1Ev);
+ LIB_FUNCTION("9n60S+t4Cxs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleIdC2ERK12SceNpTitleId);
+ LIB_FUNCTION("IefAhNUAivM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleIdC2ERKS1_);
+ LIB_FUNCTION("OL7DU1kkm+4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleIdC2Ev);
+ LIB_FUNCTION("rFcQRK+GMcQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleIdD0Ev);
+ LIB_FUNCTION("TGJ5bE+Fb1s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleIdD1Ev);
+ LIB_FUNCTION("XKVRBLdw+7I", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9NpTitleIdD2Ev);
+ LIB_FUNCTION("zurkNUps5o8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9RefObject6AddRefEv);
+ LIB_FUNCTION("5tYi1l9CXD0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9RefObject7ReleaseEv);
+ LIB_FUNCTION("brUrttJp6MM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9RefObjectC1Ev);
+ LIB_FUNCTION("JRtw5pROOiM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9RefObjectC2Ev);
+ LIB_FUNCTION("8DrClRz7Z2U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9RefObjectD0Ev);
+ LIB_FUNCTION("lPQzOhwPjuw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9RefObjectD1Ev);
+ LIB_FUNCTION("417JucZaE3g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9RefObjectD2Ev);
+ LIB_FUNCTION("EFffsPLsOio", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9Semaphore4OpenEPKc);
+ LIB_FUNCTION("hQLw6eE4O44", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9Semaphore4WaitEj);
+ LIB_FUNCTION("wcOCedFKan4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9Semaphore6CreateEiiPKc);
+ LIB_FUNCTION("b7qnGORh+H4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9Semaphore6SignalEv);
+ LIB_FUNCTION("Es-CwSVnalY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9Semaphore7DestroyEv);
+ LIB_FUNCTION("Tuth2BRl4x0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9SemaphoreC1Ev);
+ LIB_FUNCTION("8k1rNqvczTc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9SemaphoreC2Ev);
+ LIB_FUNCTION("S6luQz76AQ4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9SemaphoreD0Ev);
+ LIB_FUNCTION("nW9XeX3eokI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9SemaphoreD1Ev);
+ LIB_FUNCTION("OukNoRur97E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9SemaphoreD2Ev);
+ LIB_FUNCTION("F2umEBpQFHc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue11GetItemByIdEi);
+ LIB_FUNCTION("wM4q1JMisvA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue15GetFinishedItemENS0_14WorkItemStatusE);
+ LIB_FUNCTION("UYAD7sUQcYU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue16WorkItemFinishedEPNS0_8WorkItemEi);
+ LIB_FUNCTION("-9cU3y6rXVM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue17ProcFinishedItemsENS0_14WorkItemStatusE);
+ LIB_FUNCTION("ovc4ZvD0YjY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue18RemoveFinishedItemEPNS0_8WorkItemE);
+ LIB_FUNCTION("vPju3W13byw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue18WaitForPendingItemEPPNS0_8WorkItemEPb);
+ LIB_FUNCTION("XMIv42L5bEA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue4ctorEv);
+ LIB_FUNCTION("wESN-qrVhOU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue4dtorEv);
+ LIB_FUNCTION("+dGO+GS2ZXQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue4InitEPKcimm);
+ LIB_FUNCTION("U0YoWwgg8aI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue4InitEPKNS0_6Thread5ParamE);
+ LIB_FUNCTION("4DE+nnCVRPA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue4StopEv);
+ LIB_FUNCTION("VnQolo6vTr4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue5StartEv);
+ LIB_FUNCTION("laqZEULcfgw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue6CancelEii);
+ LIB_FUNCTION("CznMfhTIvVY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue6IsInitEv);
+ LIB_FUNCTION("NeopmYshD0U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue7DestroyEv);
+ LIB_FUNCTION("KQSxXJBepQ4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue7EnqueueEiPNS0_8WorkItemE);
+ LIB_FUNCTION("zmOmSLnqlBQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue9CancelAllEi);
+ LIB_FUNCTION("eTy3L1azX4E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueue9IsRunningEv);
+ LIB_FUNCTION("X6NVkdpRnog", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueueC1Ev);
+ LIB_FUNCTION("p+bd65J177I", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueueC2Ev);
+ LIB_FUNCTION("uyNO0GnFhPw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueueD0Ev);
+ LIB_FUNCTION("1QFKnDJxk3A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueueD1Ev);
+ LIB_FUNCTION("AIDhc3KCK7w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2np9WorkQueueD2Ev);
+ LIB_FUNCTION("XLpPRMl5jro", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERK10SceRtcTickRKNS0_4TimeE);
+ LIB_FUNCTION("6jHOZ6fItFU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERK12SceNpTitleIdRKNS0_9NpTitleIdE);
+ LIB_FUNCTION("i+xzwYeeEtk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERK16SceNpTitleSecretRKNS0_13NpTitleSecretE);
+ LIB_FUNCTION("ZWZ9KqoIvQY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERK20SceNpCommunicationIdRKNS0_8NpCommIdE);
+ LIB_FUNCTION("Vsj50ZwNUFM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERKNS0_13NpTitleSecretERK16SceNpTitleSecret);
+ LIB_FUNCTION("WM5DPO-LryU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERKNS0_13NpTitleSecretES3_);
+ LIB_FUNCTION("ps246w9eXI8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERKNS0_4TimeERK10SceRtcTick);
+ LIB_FUNCTION("UVLmT9lzRYA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERKNS0_4TimeES3_);
+ LIB_FUNCTION("WaNQzws1ATU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERKNS0_8NpCommIdERK20SceNpCommunicationId);
+ LIB_FUNCTION("E-mYAG-aa1A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERKNS0_8NpCommIdES3_);
+ LIB_FUNCTION("FmDmhB16wwE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERKNS0_9NpTitleIdERK12SceNpTitleId);
+ LIB_FUNCTION("niXN2N4o3yY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npeqERKNS0_9NpTitleIdES3_);
+ LIB_FUNCTION("gKruhA35EXQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npgeERK10SceRtcTickRKNS0_4TimeE);
+ LIB_FUNCTION("1mnghWFX0wQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npgeERKNS0_4TimeERK10SceRtcTick);
+ LIB_FUNCTION("svAQxJ3yow4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npgeERKNS0_4TimeES3_);
+ LIB_FUNCTION("oVZ6spoeeN0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npgtERK10SceRtcTickRKNS0_4TimeE);
+ LIB_FUNCTION("snloJp6qQCc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npgtERKNS0_4TimeERK10SceRtcTick);
+ LIB_FUNCTION("EFES6UR65oU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npgtERKNS0_4TimeES3_);
+ LIB_FUNCTION("UIrMxV07mL0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npleERK10SceRtcTickRKNS0_4TimeE);
+ LIB_FUNCTION("cAeFZE72SXU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npleERKNS0_4TimeERK10SceRtcTick);
+ LIB_FUNCTION("ttA9TcO06uA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npleERKNS0_4TimeES3_);
+ LIB_FUNCTION("rVtImV4rxSA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npltERK10SceRtcTickRKNS0_4TimeE);
+ LIB_FUNCTION("nVB1Nsjwpj0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npltERKNS0_4TimeERK10SceRtcTick);
+ LIB_FUNCTION("d0zSLZMER34", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npltERKNS0_4TimeES3_);
+ LIB_FUNCTION("MVY+jtY-WiQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERK10SceRtcTickRKNS0_4TimeE);
+ LIB_FUNCTION("tDs31ASQGV8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERK12SceNpTitleIdRKNS0_9NpTitleIdE);
+ LIB_FUNCTION("OwsjgCQyZUI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERK16SceNpTitleSecretRKNS0_13NpTitleSecretE);
+ LIB_FUNCTION("O5QkjyiPM4c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERK20SceNpCommunicationIdRKNS0_8NpCommIdE);
+ LIB_FUNCTION("7b5y1XSa+KQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERKNS0_13NpTitleSecretERK16SceNpTitleSecret);
+ LIB_FUNCTION("zbliTwZKRyU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERKNS0_13NpTitleSecretES3_);
+ LIB_FUNCTION("yXMjXN--3rY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERKNS0_4TimeERK10SceRtcTick);
+ LIB_FUNCTION("cnoM7EjlLe4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERKNS0_4TimeES3_);
+ LIB_FUNCTION("SM7OEf11LCA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERKNS0_8NpCommIdERK20SceNpCommunicationId);
+ LIB_FUNCTION("QQCqBHk79sI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERKNS0_8NpCommIdES3_);
+ LIB_FUNCTION("ONgEITYl9mA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERKNS0_9NpTitleIdERK12SceNpTitleId);
+ LIB_FUNCTION("9pp9-dwqIHM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZN3sce2npneERKNS0_9NpTitleIdES3_);
+ LIB_FUNCTION("KyDWNwpREH4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np10Cancelable6IsInitEv);
+ LIB_FUNCTION("VI8AHrfLdqY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np10EventQueue6IsInitEv);
+ LIB_FUNCTION("jxPY-0x8e-M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np10EventQueue7IsEmptyEv);
+ LIB_FUNCTION("COxqqhvLSyM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np10JsonNumber5CloneEP16SceNpAllocatorEx);
+ LIB_FUNCTION("m+dAaZ5pyO4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np10JsonNumber6GetNumEPcm);
+ LIB_FUNCTION("Sk8AdNQUDm8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np10JsonNumber6GetNumEPi);
+ LIB_FUNCTION("nHgo2VpnCB8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np10JsonNumber6GetNumEPj);
+ LIB_FUNCTION("Agsyrf4L8uA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np10JsonNumber6GetNumEPl);
+ LIB_FUNCTION("P2cGbJ5nD1w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np10JsonNumber6GetNumEPm);
+ LIB_FUNCTION("EcboqmwkrMY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np9JsonArray5CloneEP16SceNpAllocatorEx);
+ LIB_FUNCTION("JcAsZlyr3Mo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np9JsonValue12GetItemValueEi);
+ LIB_FUNCTION("XZTZqqSVGlY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np9NpTitleId7IsEmptyEv);
+ LIB_FUNCTION("sreH33xjV0A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZNK3sce2np9Semaphore6IsInitEv);
+ LIB_FUNCTION("QwO4sr6XzSY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn16_N3sce2np10MemoryFile5WriteEPNS0_6HandleEPKvmPm);
+ LIB_FUNCTION("ojBk-UJxzWw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn16_N3sce2np10MemoryFileD0Ev);
+ LIB_FUNCTION("8S1mWU-N9kM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn16_N3sce2np10MemoryFileD1Ev);
+ LIB_FUNCTION("eRlqlofFKYg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn16_N3sce2np9HttpTrans5WriteEPNS0_6HandleEPKvmPm);
+ LIB_FUNCTION("zWIFe+d77PU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn16_N3sce2np9HttpTransD0Ev);
+ LIB_FUNCTION("GG1Y+vBUkdU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn16_N3sce2np9HttpTransD1Ev);
+ LIB_FUNCTION("+3ySpB1buMs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn16_N3sce2np9LocalFile5WriteEPNS0_6HandleEPKvmPm);
+ LIB_FUNCTION("hSnLhjGefsU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn16_N3sce2np9LocalFileD0Ev);
+ LIB_FUNCTION("q3s6++iIzjE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn16_N3sce2np9LocalFileD1Ev);
+ LIB_FUNCTION("E6GYo9uzjds", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np10MemoryFile4ReadEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("7bzUdBtIQhE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np10MemoryFileD0Ev);
+ LIB_FUNCTION("lNs-oTKpG9s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np10MemoryFileD1Ev);
+ LIB_FUNCTION("xDrWJARfCbk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np6Handle10CancelImplEi);
+ LIB_FUNCTION("YqMS-iAjFY8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np6HandleD0Ev);
+ LIB_FUNCTION("lUsG1QfgVN4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np6HandleD1Ev);
+ LIB_FUNCTION("G+v692ul7MA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np9HttpTrans4ReadEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("sGhCzaJf+jQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np9HttpTransD0Ev);
+ LIB_FUNCTION("PUqCtFwnNvA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np9HttpTransD1Ev);
+ LIB_FUNCTION("NtsHoOq2ao4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np9LocalFile4ReadEPNS0_6HandleEPvmPm);
+ LIB_FUNCTION("Gh35wbyg4U8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np9LocalFileD0Ev);
+ LIB_FUNCTION("kD3l0P19Wzg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZThn8_N3sce2np9LocalFileD1Ev);
+ LIB_FUNCTION("IvTsS4VJq1w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZTVN3sce2np10JsonNumberE);
+ LIB_FUNCTION("aLGD1kOLQXE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZTVN3sce2np10JsonObjectE);
+ LIB_FUNCTION("1At86OClqtY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZTVN3sce2np10JsonStringE);
+ LIB_FUNCTION("jsHe99x6l0w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZTVN3sce2np8JsonBoolE);
+ LIB_FUNCTION("A742Lh-FnVE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZTVN3sce2np8JsonNullE);
+ LIB_FUNCTION("FfXZGW1TMvo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZTVN3sce2np8SelectorE);
+ LIB_FUNCTION("0qrLVqNUn2Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZTVN3sce2np9JsonArrayE);
+ LIB_FUNCTION("S8TLtKfZCfc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ _ZTVN3sce2np9JsonValueE);
+ LIB_FUNCTION("MWPOkqzYss0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpAllocateKernelMemoryNoAlignment);
+ LIB_FUNCTION("gMlY6eewr-c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpAllocateKernelMemoryWithAlignment);
+ LIB_FUNCTION("jGF+MaB4b-M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpArchInit);
+ LIB_FUNCTION("UskWpVWxSvg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpArchTerm);
+ LIB_FUNCTION("+9+kKMY9YIw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpAtomicCas32);
+ LIB_FUNCTION("Yohe0MMDfj0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpAtomicDec32);
+ LIB_FUNCTION("pfJgSA4jO3M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpAtomicInc32);
+ LIB_FUNCTION("l67qBmMmKP4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpBase64Decoder);
+ LIB_FUNCTION("pu39pU8UgCo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpBase64Encoder);
+ LIB_FUNCTION("a5IfPlpchXI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpBase64GetDecodeSize);
+ LIB_FUNCTION("moGcgMNTHvQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpBase64UrlDecoder);
+ LIB_FUNCTION("IeNj+OcWgU8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpBase64UrlEncoder);
+ LIB_FUNCTION("7BjZKcN+oZ4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpBase64UrlGetDecodeSize);
+ LIB_FUNCTION("9+m5nRdJ-wQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCalloutInitCtx);
+ LIB_FUNCTION("fClnlkZmA6k", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpCalloutStartOnCtx);
+ LIB_FUNCTION("lpr66Gby8dQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpCalloutStartOnCtx64);
+ LIB_FUNCTION("in19gH7G040", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCalloutStopOnCtx);
+ LIB_FUNCTION("AqJ4xkWsV+I", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCalloutTermCtx);
+ LIB_FUNCTION("kb2thTuS8t8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCancelEventFlag);
+ LIB_FUNCTION("9pLoHoPMxeg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpClearEventFlag);
+ LIB_FUNCTION("+nmn+Z0nWDo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCloseEventFlag);
+ LIB_FUNCTION("8hPzfjZzV88", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCloseSema);
+ LIB_FUNCTION("i8UmXTSq7N4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCmpNpId);
+ LIB_FUNCTION("TcwEFnakiSc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCmpNpIdInOrder);
+ LIB_FUNCTION("dj+O5aD2a0Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCmpOnlineId);
+ LIB_FUNCTION("1a+iY5YUJcI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCondDestroy);
+ LIB_FUNCTION("q2tsVO3lM4A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCondInit);
+ LIB_FUNCTION("uMJFOA62mVU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCondSignal);
+ LIB_FUNCTION("bsjWg59A7aE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCondSignalAll);
+ LIB_FUNCTION("bAHIOyNnx5Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCondSignalTo);
+ LIB_FUNCTION("ss2xO9IJxKQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCondTimedwait);
+ LIB_FUNCTION("fZShld2PQ7w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCondWait);
+ LIB_FUNCTION("6jFWpAfqAcc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCreateEventFlag);
+ LIB_FUNCTION("LHZtCT2W1Pw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCreateSema);
+ LIB_FUNCTION("fhJ5uKzcn0w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpCreateThread);
+ LIB_FUNCTION("90pmGqDK4BI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpDbgAssignDebugId);
+ LIB_FUNCTION("Etq15-l9yko", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpDbgDumpBinary);
+ LIB_FUNCTION("ZaKa5x61hGA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpDbgDumpText);
+ LIB_FUNCTION("sjnIeFCuTD0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpDeleteEventFlag);
+ LIB_FUNCTION("xPrF2nGPBXQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpDeleteSema);
+ LIB_FUNCTION("OQTweRLgFr8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpEventGetCurrentNetworkTick);
+ LIB_FUNCTION("vjwlDmsGtME", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpFreeKernelMemory);
+ LIB_FUNCTION("QmDEFikd3VA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpGetNavSdkVersion);
+ LIB_FUNCTION("sXVQUIGmk2U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpGetPlatformType);
+ LIB_FUNCTION("Z3mnqcGmf8E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpGetProcessId);
+ LIB_FUNCTION("pJlGhXEt5CU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpGetRandom);
+ LIB_FUNCTION("Pglk7zFj0DI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpGetSdkVersion);
+ LIB_FUNCTION("ljqnF0hmLjo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpGetSdkVersionUInt);
+ LIB_FUNCTION("PVVsRmMkO1g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpGetSystemClockUsec);
+ LIB_FUNCTION("-gN6uE+zWng", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpGlobalHeapGetAllocator);
+ LIB_FUNCTION("VUHUasztbUY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpGlobalHeapGetAllocatorEx);
+ LIB_FUNCTION("P4YpPziLBd4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpGlobalHeapGetAllocatorExPtr);
+ LIB_FUNCTION("DI5n4aOdxmk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpGlobalHeapGetAllocatorPtr);
+ LIB_FUNCTION("wVdn78HKc30", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpHeapDestroy);
+ LIB_FUNCTION("lvek8w7yqyE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpHeapGetAllocator);
+ LIB_FUNCTION("2jdHoPpS+W0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpHeapGetStat);
+ LIB_FUNCTION("B+yGIX1+BTI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpHeapInit);
+ LIB_FUNCTION("evz0-93ucJc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpHeapShowStat);
+ LIB_FUNCTION("Hvpr+otU4bo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpHexToInt);
+ LIB_FUNCTION("5y0wMPQkaeU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpInt32ToStr);
+ LIB_FUNCTION("HoPC33siDD4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpInt64ToStr);
+ LIB_FUNCTION("G6qytFoBJ-w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpIntGetPlatformType);
+ LIB_FUNCTION("fY4XQoA20i8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpIntIsOnlineIdString);
+ LIB_FUNCTION("hkeX9iuCwlI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpIntIsValidOnlineId);
+ LIB_FUNCTION("X6emt+LbSEI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpIntSetPlatformType);
+ LIB_FUNCTION("TWPY1x1Atys", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpIntToHex);
+ LIB_FUNCTION("kgDwlmy78k0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpIpc2ClientInit);
+ LIB_FUNCTION("CI2p6Viee9w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpIpc2ClientTerm);
+ LIB_FUNCTION("EjMsfO3GCIA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpJoinThread);
+ LIB_FUNCTION("vJGDnNh4I0g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpJsonParse);
+ LIB_FUNCTION("RgfCYkjW7As", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpJsonParseBuf);
+ LIB_FUNCTION("SnAdybtBK3o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpJsonParseBufInit);
+ LIB_FUNCTION("p5ZkSMRR7AU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpJsonParseEx);
+ LIB_FUNCTION("nhgjiwPUIzI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpJsonParseExInit);
+ LIB_FUNCTION("teVnFAL6GNY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpJsonParseInit);
+ LIB_FUNCTION("zNb6IxegrCE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwCondDestroy);
+ LIB_FUNCTION("++eqYdzB8Go", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwCondInit);
+ LIB_FUNCTION("Xkn6VoN-wuQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwCondSignal);
+ LIB_FUNCTION("FJ4DCt8VzVE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwCondSignalAll);
+ LIB_FUNCTION("Bwi+EP8VQ+g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwCondSignalTo);
+ LIB_FUNCTION("ExeLuE3EQCQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwCondWait);
+ LIB_FUNCTION("4zxevggtYrQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwMutexDestroy);
+ LIB_FUNCTION("1CiXI-MyEKs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwMutexInit);
+ LIB_FUNCTION("18j+qk6dRwk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwMutexLock);
+ LIB_FUNCTION("hp0kVgu5Fxw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwMutexTryLock);
+ LIB_FUNCTION("CQG2oyx1-nM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpLwMutexUnlock);
+ LIB_FUNCTION("dfXSH2Tsjkw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpMemoryHeapDestroy);
+ LIB_FUNCTION("FaMNvjMA6to", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpMemoryHeapGetAllocator);
+ LIB_FUNCTION("xHAiSVEEjSI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpMemoryHeapGetAllocatorEx);
+ LIB_FUNCTION("kZizwrFvWZY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpMemoryHeapInit);
+ LIB_FUNCTION("lQ11BpMM4LU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpMutexDestroy);
+ LIB_FUNCTION("uEwag-0YZPc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpMutexInit);
+ LIB_FUNCTION("r9Bet+s6fKc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpMutexLock);
+ LIB_FUNCTION("DuslmoqQ+nk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpMutexTryLock);
+ LIB_FUNCTION("oZyb9ktuCpA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpMutexUnlock);
+ LIB_FUNCTION("5DkyduAF2rs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpOpenEventFlag);
+ LIB_FUNCTION("-blITIdtUd0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpOpenSema);
+ LIB_FUNCTION("ZoXUrTiwKNw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpPanic);
+ LIB_FUNCTION("9YmBJ8KF9eI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpPollEventFlag);
+ LIB_FUNCTION("xmF0yIF4iXc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpPollSema);
+ LIB_FUNCTION("VMjIo2Z-aW0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpRtcConvertToPosixTime);
+ LIB_FUNCTION("W0YWLVDndx0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpRtcFormatRFC3339);
+ LIB_FUNCTION("LtkeQwMIEWY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpRtcParseRFC3339);
+ LIB_FUNCTION("0lZHbA-HRD0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpServerErrorJsonGetErrorCode);
+ LIB_FUNCTION("cRabutqUG7c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpServerErrorJsonMultiGetErrorCode);
+ LIB_FUNCTION("WSQxnAVLKgw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpServerErrorJsonParse);
+ LIB_FUNCTION("UbStlMKTBeU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpServerErrorJsonParseInit);
+ LIB_FUNCTION("hbe+DdooIi4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpServerErrorJsonParseMultiInit);
+ LIB_FUNCTION("29ftOGIrUCo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpSetEventFlag);
+ LIB_FUNCTION("m9JzZSoDVFY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpSetPlatformType);
+ LIB_FUNCTION("-W28+9p1CKI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpSignalSema);
+ LIB_FUNCTION("i5TP5NLmkoQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpStrBuildHex);
+ LIB_FUNCTION("ivnnssCwjGI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpStrcpyToBuf);
+ LIB_FUNCTION("PHrpHMSU8Cs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpStrncpyToBuf);
+ LIB_FUNCTION("h1SWCcBdImo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpStrnParseHex);
+ LIB_FUNCTION("DUHzVPNlugg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpStrParseHex);
+ LIB_FUNCTION("fElyBSn-l24", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpStrToInt32);
+ LIB_FUNCTION("CwqYdG4TrjA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpStrToInt64);
+ LIB_FUNCTION("uj86YxCYid0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpStrToUInt32);
+ LIB_FUNCTION("Ted2YU9lv94", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpStrToUInt64);
+ LIB_FUNCTION("yvaNTRiKXmo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpThreadGetId);
+ LIB_FUNCTION("rRN89jBArEM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUInt32ToStr);
+ LIB_FUNCTION("QjNUYQbGoHA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUInt64ToStr);
+ LIB_FUNCTION("Gh74vNl06sg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUserGetUserIdList);
+ LIB_FUNCTION("N3tAHlBnowE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilBuildTitleId);
+ LIB_FUNCTION("4mEAk-UKVNw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilCanonicalizeNpIdForPs4);
+ LIB_FUNCTION("N3FB4r8JoRE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilCanonicalizeNpIdForPsp2);
+ LIB_FUNCTION("xPRHNaD3kTc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilCmpAccountId);
+ LIB_FUNCTION("owm52JoZ8uc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetDateSetAuto);
+ LIB_FUNCTION("1Gfhi+tZ9IE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetDbgCommerce);
+ LIB_FUNCTION("kBON3bAtfGs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilGetEnv);
+ LIB_FUNCTION("MUj0IV6XFGs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetFakeDisplayNameMode);
+ LIB_FUNCTION("O86rgZ2azfg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetFakeRateLimit);
+ LIB_FUNCTION("FrxliFYAO8Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetIgnoreNpTitleId);
+ LIB_FUNCTION("GRvK1ZE+FEQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilGetNpDebug);
+ LIB_FUNCTION("OFiFmfsADas", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetNpLanguageCode);
+ LIB_FUNCTION("X9CqyP164Hc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetNpLanguageCode2);
+ LIB_FUNCTION("Fxux7Ob+Ynk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetNpLanguageCode2Str);
+ LIB_FUNCTION("RfiA17kV+xs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetNpLanguageCodeStr);
+ LIB_FUNCTION("OA8f3KF9JsM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetNpTestPatch);
+ LIB_FUNCTION("KCk4OGu8+sc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilGetNthChar);
+ LIB_FUNCTION("fB5hE65pzbU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetShareTitleCheck);
+ LIB_FUNCTION("SXUNKr9Zkv0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetSystemLanguage);
+ LIB_FUNCTION("AjzLvR0g5Zs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilGetTrcNotify);
+ LIB_FUNCTION("pmHBFJyju9E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetWebApi2FakeRateLimit);
+ LIB_FUNCTION("ZRxKp9vjcNc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetWebApi2FakeRateLimitTarget);
+ LIB_FUNCTION("4CqfNm3pisU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilGetWebTraceSetting);
+ LIB_FUNCTION("ajoqGz0D9Dw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilHttpUrlEncode);
+ LIB_FUNCTION("458yjI+OECI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilJidToNpId);
+ LIB_FUNCTION("EftEB4kmkSg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilJsonEscape);
+ LIB_FUNCTION("vj04qzp7uKY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilJsonGetOneChar);
+ LIB_FUNCTION("4YJ5gYtRAAE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilJsonUnescape);
+ LIB_FUNCTION("KyB1IAY2BiU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilNpIdToJid);
+ LIB_FUNCTION("c+ssxRf1Si0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilNumChars);
+ LIB_FUNCTION("oz2SlXNAnuI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilParseJid);
+ LIB_FUNCTION("EfnfZtjjyR0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilParseTitleId);
+ LIB_FUNCTION("okX7IjW0QsI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilSerializeJid);
+ LIB_FUNCTION("5bBPLZV49kY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilXmlEscape);
+ LIB_FUNCTION("Ls4eWDrbNmg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1,
+ sceNpUtilXmlGetOneChar);
+ LIB_FUNCTION("+0rj9KhmYb0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpUtilXmlUnescape);
+ LIB_FUNCTION("ZbdPHUm7jOY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpWaitEventFlag);
+ LIB_FUNCTION("6adrFGe2cpU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpWaitSema);
+ LIB_FUNCTION("fEcrs9UPPyo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpXmlParse);
+ LIB_FUNCTION("MCLGkfBmw4c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, sceNpXmlParseInit);
+ LIB_FUNCTION("AP1XjC3ZZt8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_00FD578C2DD966DF);
+ LIB_FUNCTION("ATGi6oBon0w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0131A2EA80689F4C);
+ LIB_FUNCTION("AUQ8VIY73SA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_01443C54863BDD20);
+ LIB_FUNCTION("AbxVvcXAra0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_01BC55BDC5C0ADAD);
+ LIB_FUNCTION("AdHs9XUPQOg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_01D1ECF5750F40E8);
+ LIB_FUNCTION("AgpHmnT1+6w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_020A479A74F5FBAC);
+ LIB_FUNCTION("Akr14dlHKrU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_024AF5E1D9472AB5);
+ LIB_FUNCTION("AnxdSIcTprM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_027C5D488713A6B3);
+ LIB_FUNCTION("Av6dlMaFg1U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_02FE9D94C6858355);
+ LIB_FUNCTION("BB808ccNFcE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_041F34F1C70D15C1);
+ LIB_FUNCTION("BTCx0nYRQkg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0530B1D276114248);
+ LIB_FUNCTION("Bl2qFOnHOtk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_065DAA14E9C73AD9);
+ LIB_FUNCTION("Bq-05dBCvD4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_06AFF4E5D042BC3E);
+ LIB_FUNCTION("Bu42kpn3OZc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_06EE369299F73997);
+ LIB_FUNCTION("B8ktn412thc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_07C92D9F8D76B617);
+ LIB_FUNCTION("B+kRdJjx5L8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_07E9117498F1E4BF);
+ LIB_FUNCTION("CPPgrzZk8nU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_08F3E0AF3664F275);
+ LIB_FUNCTION("Cpk3wB7yE3U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0A9937C01EF21375);
+ LIB_FUNCTION("CsvmrMujh20", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0ACBE6ACCBA3876D);
+ LIB_FUNCTION("CuB9M1RRDOY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0AE07D3354510CE6);
+ LIB_FUNCTION("Cuw8NCrme3w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0AEC3C342AE67B7C);
+ LIB_FUNCTION("CzGEIMEefCM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0B318420C11E7C23);
+ LIB_FUNCTION("C7bDewPzXYk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0BB6C37B03F35D89);
+ LIB_FUNCTION("C76Kms3ZD98", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0BBE8A9ACDD90FDF);
+ LIB_FUNCTION("DHtikF4iTpw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0C7B62905E224E9C);
+ LIB_FUNCTION("DTWRMRckGvk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0D35913117241AF9);
+ LIB_FUNCTION("DV7pXO7Yeac", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0D5EE95CEED879A7);
+ LIB_FUNCTION("DW+ySyerHaI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0D6FB24B27AB1DA2);
+ LIB_FUNCTION("DegDLVNKxBw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0DE8032D534AC41C);
+ LIB_FUNCTION("DfTMqdyp50I", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0DF4CCA9DCA9E742);
+ LIB_FUNCTION("DnRJsdPZjAE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0E7449B1D3D98C01);
+ LIB_FUNCTION("DncJS3dQyzc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0E77094B7750CB37);
+ LIB_FUNCTION("Dsqzl7bVBgM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0ECAB397B6D50603);
+ LIB_FUNCTION("Dx3h0eraKUg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0F1DE1D1EADA2948);
+ LIB_FUNCTION("D4r++h0mvxo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_0F8AFEFA1D26BF1A);
+ LIB_FUNCTION("EYgXEFYqa60", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_11881710562A6BAD);
+ LIB_FUNCTION("Ea-Yi70McNs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_11AFD88BBD0C70DB);
+ LIB_FUNCTION("EecEowpLiHc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_11E704A30A4B8877);
+ LIB_FUNCTION("ElAUhCRS+Us", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_125014842452F94B);
+ LIB_FUNCTION("Em8AceEcrEY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_126F0071E11CAC46);
+ LIB_FUNCTION("EpJtzzWZSwE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_12926DCF35994B01);
+ LIB_FUNCTION("Esx6v78xYY8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_12CC7ABFBF31618F);
+ LIB_FUNCTION("E8TlH0RZKqI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_13C4E51F44592AA2);
+ LIB_FUNCTION("FTMOfFYzglQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_15330E7C56338254);
+ LIB_FUNCTION("FWazWMq-JhI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1566B358CABF2612);
+ LIB_FUNCTION("FiWBjyaPRe8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1625818F268F45EF);
+ LIB_FUNCTION("FtMrQNKKmsI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_16D32B40D28A9AC2);
+ LIB_FUNCTION("GD9Eg729Jc0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_183F4483BDBD25CD);
+ LIB_FUNCTION("GIfp6Vr2Lz0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1887E9E95AF62F3D);
+ LIB_FUNCTION("GKPOlf2JPTo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_18A3CE95FD893D3A);
+ LIB_FUNCTION("GLNmXkhU5+k", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_18B3665E4854E7E9);
+ LIB_FUNCTION("GSOwA5SK9H4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1923B003948AF47E);
+ LIB_FUNCTION("GbUz2kxZpTI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_19B533DA4C59A532);
+ LIB_FUNCTION("G7OZdy22jgg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1BB399772DB68E08);
+ LIB_FUNCTION("HArGEtOilxs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1C0AC612D3A2971B);
+ LIB_FUNCTION("HFWZt3mZCkM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1C5599B779990A43);
+ LIB_FUNCTION("HMuylrBDF74", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1CCBB296B04317BE);
+ LIB_FUNCTION("HNBFVC+5MAI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1CD045542FB93002);
+ LIB_FUNCTION("HezspnOrd7c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1DECECA673AB77B7);
+ LIB_FUNCTION("HgPgJOJsGn8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1E03E024E26C1A7F);
+ LIB_FUNCTION("HxAXMrsNfiE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1F101732BB0D7E21);
+ LIB_FUNCTION("H00VPsPdR7s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1F4D153EC3DD47BB);
+ LIB_FUNCTION("H3xH9j+vDL4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1F7C47F63FAF0CBE);
+ LIB_FUNCTION("H74u5owPMbY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_1FBE2EE68C0F31B6);
+ LIB_FUNCTION("IDjBYokUuck", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2038C1628914B9C9);
+ LIB_FUNCTION("ID-LVv24anQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_203FCB56FDB86A74);
+ LIB_FUNCTION("IFacEHxssIw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_20569C107C6CB08C);
+ LIB_FUNCTION("IKstc07eVfA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_20AB2D734EDE55F0);
+ LIB_FUNCTION("IrEoEYD7Cl4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_22B1281180FB0A5E);
+ LIB_FUNCTION("IvGq2makSa4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_22F1AADA66A449AE);
+ LIB_FUNCTION("I4shXv-fPTA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_238B215EFFDF3D30);
+ LIB_FUNCTION("JOjsUdFJ+hU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_24E8EC51D149FA15);
+ LIB_FUNCTION("JXKOeKOWLAI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_25728E78A3962C02);
+ LIB_FUNCTION("JeZJocaJHAU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_25E649A1C6891C05);
+ LIB_FUNCTION("JkuKOLV3cF0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_264B8A38B577705D);
+ LIB_FUNCTION("Jm7QjcHIKg4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_266ED08DC1C82A0E);
+ LIB_FUNCTION("J7tN5iq1i60", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_27BB4DE62AB58BAD);
+ LIB_FUNCTION("KDqpahluouo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_283AA96A196EA2EA);
+ LIB_FUNCTION("KFMVo5CoWpQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_285315A390A85A94);
+ LIB_FUNCTION("KQSdux7zGU4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_29049DBB1EF3194E);
+ LIB_FUNCTION("Kfe6nDcyy0c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_29F7BA9C3732CB47);
+ LIB_FUNCTION("KnMt8zGsyzc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2A732DF331ACCB37);
+ LIB_FUNCTION("KqAWYOx1tvs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2AA01660EC75B6FB);
+ LIB_FUNCTION("KzfLzpQcFoE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2B37CBCE941C1681);
+ LIB_FUNCTION("LKo7ZNBUTlU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2CAA3B64D0544E55);
+ LIB_FUNCTION("LM15YX7BCnU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2CCD79617EC10A75);
+ LIB_FUNCTION("LNi2lxasBmc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2CD8B69716AC0667);
+ LIB_FUNCTION("LXT3wP+bXpw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2D74F7C0FF9B5E9C);
+ LIB_FUNCTION("LcpagIBUTpU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2DCA5A8080544E95);
+ LIB_FUNCTION("LmnydDznzlc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2E69F2743CE7CE57);
+ LIB_FUNCTION("Lq8fO6-wUn0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_2EAF1F3BAFF0527D);
+ LIB_FUNCTION("MUk+VbtOj2Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_31493E55BB4E8F66);
+ LIB_FUNCTION("MX7crQD7X14", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_317EDCAD00FB5F5E);
+ LIB_FUNCTION("MeAc+ooYzaI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_31E01CFA8A18CDA2);
+ LIB_FUNCTION("Mq-XgqBhtSY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_32AFD782A061B526);
+ LIB_FUNCTION("MrXN6wk7gYk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_32B5CDEB093B8189);
+ LIB_FUNCTION("NBVRUlE8k64", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_34155152513C93AE);
+ LIB_FUNCTION("NOTv-472yf4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_34E4EFFF8EF6C9FE);
+ LIB_FUNCTION("NXL6DVxUVjs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3572FA0D5C54563B);
+ LIB_FUNCTION("NnxHmyZODbk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_367C479B264E0DB9);
+ LIB_FUNCTION("NohPvJZLKcw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_36884FBC964B29CC);
+ LIB_FUNCTION("OGAIG7dVmUk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3860081BB7559949);
+ LIB_FUNCTION("OTFPfmdKsTI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_39314F7E674AB132);
+ LIB_FUNCTION("OgLngPzFVqU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3A02E780FCC556A5);
+ LIB_FUNCTION("Ohe4hbpISbY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3A17B885BA4849B6);
+ LIB_FUNCTION("OjjqyupeI6Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3A38EACAEA5E23A4);
+ LIB_FUNCTION("OzSl4H8NvB8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3B34A5E07F0DBC1F);
+ LIB_FUNCTION("O06P-AD8fqQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3B4E8FFC00FC7EA4);
+ LIB_FUNCTION("O6sY-aI1EHo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3BAB18FDA235107A);
+ LIB_FUNCTION("O9+ZlqCjPxE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3BDF9996A0A33F11);
+ LIB_FUNCTION("PBlS8aRcw3o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3C1952F1A45CC37A);
+ LIB_FUNCTION("PKN5Bs2wXzs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3CA37906CDB05F3B);
+ LIB_FUNCTION("PNspCKzuOm8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3CDB2908ACEE3A6F);
+ LIB_FUNCTION("PT7RZfK9zTM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3D3ED165F2BDCD33);
+ LIB_FUNCTION("PaTX0Vdfzc4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3DA4D7D1575FCDCE);
+ LIB_FUNCTION("Pd+2Es0Lx2k", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3DDFB612CD0BC769);
+ LIB_FUNCTION("PgQV4Wfercc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3E0415E167DEADC7);
+ LIB_FUNCTION("Pn6fDxWBweY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3E7E9F0F1581C1E6);
+ LIB_FUNCTION("PtOJ24KA7WU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3ED389DB8280ED65);
+ LIB_FUNCTION("Pwx-bAw1SH0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3F0C7F6C0C35487D);
+ LIB_FUNCTION("P9pyADie8NI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3FDA7200389EF0D2);
+ LIB_FUNCTION("P-PCWLpRblg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_3FF3C258BA516E58);
+ LIB_FUNCTION("QClFP2KKPF0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4029453F628A3C5D);
+ LIB_FUNCTION("QFgm3bSuU44", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_405826DDB4AE538E);
+ LIB_FUNCTION("QFqSZ1nyWGU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_405A926759F25865);
+ LIB_FUNCTION("QGYI-e566Io", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_406608FDEE7AE88A);
+ LIB_FUNCTION("QN2lVYwX3c8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_40DDA5558C17DDCF);
+ LIB_FUNCTION("QZ0S5S-2BmQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_419D12E52FF60664);
+ LIB_FUNCTION("QpblOUdL538", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4296E539474BE77F);
+ LIB_FUNCTION("QvQfxWPMNlQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_42F41FC563CC3654);
+ LIB_FUNCTION("Q8zIb0yTAmo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_43CCC86F4C93026A);
+ LIB_FUNCTION("RAn2C9q8ZeE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4409F60BDABC65E1);
+ LIB_FUNCTION("RWPHCuxnU4I", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4563C70AEC675382);
+ LIB_FUNCTION("ReZjcCGb0F4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_45E66370219BD05E);
+ LIB_FUNCTION("RmpU8HJ4VpY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_466A54F072785696);
+ LIB_FUNCTION("Rs0lNpdvIJo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_46CD2536976F209A);
+ LIB_FUNCTION("SGNxe9L90Vc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4863717BD2FDD157);
+ LIB_FUNCTION("SQLr0ZomMUk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4902EBD19A263149);
+ LIB_FUNCTION("SQT3-o2D9Aw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4904F7FE8D83F40C);
+ LIB_FUNCTION("Sl4T94Sr-Oc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4A5E13F784ABFCE7);
+ LIB_FUNCTION("S2XusTXBJ4E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4B65EEB135C12781);
+ LIB_FUNCTION("TBnUmXjaheI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4C19D49978DA85E2);
+ LIB_FUNCTION("TeXWIP9m8TY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4DE5D620FF66F136);
+ LIB_FUNCTION("ThcMErV6j54", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4E170C12B57A8F9E);
+ LIB_FUNCTION("Ti8-pAXDJgw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4E2F3FA405C3260C);
+ LIB_FUNCTION("Tqk1BXdRO00", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4EA9350577513B4D);
+ LIB_FUNCTION("T3jrb8S18h8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_4F78EB6FC4B5F21F);
+ LIB_FUNCTION("UDSL5DMRF7c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_50348BE4331117B7);
+ LIB_FUNCTION("UIx+jN0oHKo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_508C7E8CDD281CAA);
+ LIB_FUNCTION("UhwdLAKPWn4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_521C1D2C028F5A7E);
+ LIB_FUNCTION("Ui-ySjXmcpE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_522FF24A35E67291);
+ LIB_FUNCTION("VHD+kMJc3Uw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5470FE90C25CDD4C);
+ LIB_FUNCTION("VX8mD5pKzRg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_557F260F9A4ACD18);
+ LIB_FUNCTION("VYb5cgnzkes", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5586F97209F391EB);
+ LIB_FUNCTION("VbLJt62pXDw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_55B2C9B7ADA95C3C);
+ LIB_FUNCTION("VbSIo6VAuTY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_55B488A3A540B936);
+ LIB_FUNCTION("VkLf6Cr0MUM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5642DFE82AF43143);
+ LIB_FUNCTION("V04EbylK4Yc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_574E046F294AE187);
+ LIB_FUNCTION("V4km6-iqbL8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_578926EBF8AA6CBF);
+ LIB_FUNCTION("WF2l-GUIlrw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_585DA5FC650896BC);
+ LIB_FUNCTION("WNbrJzSewnY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_58D6EB27349EC276);
+ LIB_FUNCTION("WQa3MXlJhy0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5906B7317949872D);
+ LIB_FUNCTION("WRC1YUM1vnA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5910B5614335BE70);
+ LIB_FUNCTION("WT19qJEfCMk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_593D7DA8911F08C9);
+ LIB_FUNCTION("WXV-5qk7DVM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_59757FE6A93B0D53);
+ LIB_FUNCTION("WY5g+GKxFB4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_598E60F862B1141E);
+ LIB_FUNCTION("WkU1FmZoDa8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5A45351666680DAF);
+ LIB_FUNCTION("Wqvp6nAuan8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5AABE9EA702E6A7F);
+ LIB_FUNCTION("WupK5HI1W4A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5AEA4AE472355B80);
+ LIB_FUNCTION("WyDlPN5Zh0E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5B20E53CDE598741);
+ LIB_FUNCTION("W0gLWfrpR+A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5B480B59FAE947E0);
+ LIB_FUNCTION("W17sI2kKub0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5B5EEC23690AB9BD);
+ LIB_FUNCTION("XArFsK8+2uA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5C0AC5B0AF3EDAE0);
+ LIB_FUNCTION("XS6Zm+oHYtQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5D2E999BEA0762D4);
+ LIB_FUNCTION("XVW7-UURDhY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5D55BBFD45110E16);
+ LIB_FUNCTION("Xe4VQD0rtf0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_5DEE15403D2BB5FD);
+ LIB_FUNCTION("YCDHCMp0sTA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6020C708CA74B130);
+ LIB_FUNCTION("YG4UFVA8NNI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_606E1415503C34D2);
+ LIB_FUNCTION("YSFA6O6aaT4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_612140E8EE9A693E);
+ LIB_FUNCTION("YfE-VR2vYd8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_61F13F551DAF61DF);
+ LIB_FUNCTION("YgbTkTF1Iyg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6206D39131752328);
+ LIB_FUNCTION("Yh1FQ+8DRN4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_621D4543EF0344DE);
+ LIB_FUNCTION("YlmpqOVtAnM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6259A9A8E56D0273);
+ LIB_FUNCTION("Yl+ccBY0b04", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_625F9C7016346F4E);
+ LIB_FUNCTION("Yu+N90bNjEo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_62EF8DF746CD8C4A);
+ LIB_FUNCTION("Y20qmf0eays", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_636D2A99FD1E6B2B);
+ LIB_FUNCTION("aAE+32b+dCU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_68013EDF66FE7425);
+ LIB_FUNCTION("aXH3Bn3WOdE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6971F7067DD639D1);
+ LIB_FUNCTION("aYlq2zq0ELI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_69896ADB3AB410B2);
+ LIB_FUNCTION("ahOJqm5WE4c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6A1389AA6E561387);
+ LIB_FUNCTION("alVg2J8Ssuc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6A5560D89F12B2E7);
+ LIB_FUNCTION("ar+Zz4VKvPE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6ABF99CF854ABCF1);
+ LIB_FUNCTION("a0-dxlANjcs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6B4FDDC6500D8DCB);
+ LIB_FUNCTION("bKEdW0nRkoo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6CA11D5B49D1928A);
+ LIB_FUNCTION("bWwPth5tBxU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6D6C0FB61E6D0715);
+ LIB_FUNCTION("bXUHRf4TSPU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6D750745FE1348F5);
+ LIB_FUNCTION("bhrz+dCZFL4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6E1AF3F9D09914BE);
+ LIB_FUNCTION("blPtTAiypSE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6E53ED4C08B2A521);
+ LIB_FUNCTION("bvQ6yh7WuWg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6EF43ACA1ED6B968);
+ LIB_FUNCTION("b2+gnz4bamA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_6F6FA09F3E1B6A60);
+ LIB_FUNCTION("cDXDQMcZWQE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7035C340C7195901);
+ LIB_FUNCTION("cDjiHLXPZBs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7038E21CB5CF641B);
+ LIB_FUNCTION("cGNF3NpbpE0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_706345DCDA5BA44D);
+ LIB_FUNCTION("cSBxTr8Qvx8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7120714EBF10BF1F);
+ LIB_FUNCTION("cT0oqRvIA90", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_713D28A91BC803DD);
+ LIB_FUNCTION("cVO9dqU6oBI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7153BD76A53AA012);
+ LIB_FUNCTION("cVxiXMcEG2s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_715C625CC7041B6B);
+ LIB_FUNCTION("ceRnvbGHEdA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_71E467BDB18711D0);
+ LIB_FUNCTION("cg0XllwfTj8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_720D17965C1F4E3F);
+ LIB_FUNCTION("c0OAybz2W5o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_734380C9BCF65B9A);
+ LIB_FUNCTION("c-TAjM1LvM8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_73F4C08CCD4BBCCF);
+ LIB_FUNCTION("dEAxAbeynUY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_74403101B7B29D46);
+ LIB_FUNCTION("dSWwgazWb-Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7525B081ACD66FF4);
+ LIB_FUNCTION("db9Ed8E6Bco", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_75BF4477C13A05CA);
+ LIB_FUNCTION("dgl5P1mHxvc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7609793F5987C6F7);
+ LIB_FUNCTION("dhbtAbBHaao", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7616ED01B04769AA);
+ LIB_FUNCTION("dk+HPZGhJNg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_764F873D91A124D8);
+ LIB_FUNCTION("dwbx4SMFlWU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7706F1E123059565);
+ LIB_FUNCTION("d-LQfrbYBuY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_77F2D07EB6D806E6);
+ LIB_FUNCTION("ecNwTNzVnlc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_79C3704CDCD59E57);
+ LIB_FUNCTION("edoLuiE1FUU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_79DA0BBA21351545);
+ LIB_FUNCTION("efokR7Xz8MQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_79FA2447B5F3F0C4);
+ LIB_FUNCTION("ek1vZf9hlaU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7A4D6F65FF6195A5);
+ LIB_FUNCTION("ezGVzRFN7Oc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7B3195CD114DECE7);
+ LIB_FUNCTION("ezI48jAa020", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7B3238F2301AD36D);
+ LIB_FUNCTION("fHf8cHUKMmY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7C77FC70750A3266);
+ LIB_FUNCTION("fSOp3EWdbRg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7D23A9DC459D6D18);
+ LIB_FUNCTION("fVmIx0jQoF8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7D5988C748D0A05F);
+ LIB_FUNCTION("fZWXFHqZ9PQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7D9597147A99F4F4);
+ LIB_FUNCTION("filT9Afdg0Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7E2953F407DD8346);
+ LIB_FUNCTION("fuNOUJlwmzI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_7EE34E5099709B32);
+ LIB_FUNCTION("gEcOVRHVygA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_80470E5511D5CA00);
+ LIB_FUNCTION("gHF5cBwI8Gk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_807179701C08F069);
+ LIB_FUNCTION("gJboH-ryTkY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8096E81FFAF24E46);
+ LIB_FUNCTION("gLdk9PG4cEI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_80B764F4F1B87042);
+ LIB_FUNCTION("gL9pFDitAIs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_80BF691438AD008B);
+ LIB_FUNCTION("gM9s-JYBJEI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_80CF6CFC96012442);
+ LIB_FUNCTION("gOp3L4wFGf0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_80EA772F8C0519FD);
+ LIB_FUNCTION("gdCv0AhNMno", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_81D0AFD0084D327A);
+ LIB_FUNCTION("gh64pyF2-Wc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_821EB8A72176FD67);
+ LIB_FUNCTION("gtL6tUEnJz8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_82D2FAB54127273F);
+ LIB_FUNCTION("g2rmacQqWek", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_836AE669C42A59E9);
+ LIB_FUNCTION("hVmiW-7DUYw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8559A25BFEC3518C);
+ LIB_FUNCTION("hcH2bHZ6SdI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_85C1F66C767A49D2);
+ LIB_FUNCTION("hontE4P4e6c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8689ED1383F87BA7);
+ LIB_FUNCTION("h5bNnlNV06Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8796CD9E5355D3A6);
+ LIB_FUNCTION("h9N+tt3BnZk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_87D37EB6DDC19D99);
+ LIB_FUNCTION("iAqkj3D4T90", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_880AA48F70F84FDD);
+ LIB_FUNCTION("iXsHViCTZls", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_897B07562093665B);
+ LIB_FUNCTION("isr1XxY2gIc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8ACAF55F16368087);
+ LIB_FUNCTION("iuilWJsw1OA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8AE8A5589B30D4E0);
+ LIB_FUNCTION("iumXkJgxszE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8AE997909831B331);
+ LIB_FUNCTION("iy1kC+DQ+5k", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8B2D640BE0D0FB99);
+ LIB_FUNCTION("iz2atGaNrss", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8B3D9AB4668DAECB);
+ LIB_FUNCTION("i176qqzgtGw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8B5EFAAAACE0B46C);
+ LIB_FUNCTION("jCeUP0CpiNs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8C27943F40A988DB);
+ LIB_FUNCTION("jFQJbHX18tA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8C54096C75F5F2D0);
+ LIB_FUNCTION("jXZjoKUWiBQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8D7663A0A5168814);
+ LIB_FUNCTION("jmGPUJmU+tc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8E618F509994FAD7);
+ LIB_FUNCTION("jxnmzAZOK5g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8F19E6CC064E2B98);
+ LIB_FUNCTION("j2qK6u6SL-U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_8F6A8AEAEE922FF5);
+ LIB_FUNCTION("kBDhrY67+8o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_9010E1AD8EBBFBCA);
+ LIB_FUNCTION("kKlVoOcAGuk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_90A955A0E7001AE9);
+ LIB_FUNCTION("kPnWBn-uzAU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_90F9D6067FEECC05);
+ LIB_FUNCTION("k0jz0ZVGodo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_9348F3D19546A1DA);
+ LIB_FUNCTION("k9PAEdsZOIo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_93D3C011DB19388A);
+ LIB_FUNCTION("lW56T9n4kQM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_956E7A4FD9F89103);
+ LIB_FUNCTION("lfaZ4ELD5A8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_95F699E042C3E40F);
+ LIB_FUNCTION("lod7OaoOhzU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_96877B39AA0E8735);
+ LIB_FUNCTION("ls4HxJ7SNOo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_96CE07C49ED234EA);
+ LIB_FUNCTION("l2uxeCNbVoE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_976BB178235B5681);
+ LIB_FUNCTION("l4wLJeWIxNY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_978C0B25E588C4D6);
+ LIB_FUNCTION("mLomEr7yONY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_98BA2612BEF238D6);
+ LIB_FUNCTION("mVvdSTGvkTc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_995BDD4931AF9137);
+ LIB_FUNCTION("mWbjmpJrclA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_9966E39A926B7250);
+ LIB_FUNCTION("mcIwbxiWNGQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_99C2306F18963464);
+ LIB_FUNCTION("mcksYTt3a6c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_99C92C613B776BA7);
+ LIB_FUNCTION("mk5Lk4zIrTk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_9A4E4B938CC8AD39);
+ LIB_FUNCTION("myP3tLf3IIE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_9B23F7B4B7F72081);
+ LIB_FUNCTION("nA6u6ucFqNs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_9C0EAEEAE705A8DB);
+ LIB_FUNCTION("nUesWVRd6eg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_9D47AC59545DE9E8);
+ LIB_FUNCTION("oTBS2LGyrPo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A13052D8B1B2ACFA);
+ LIB_FUNCTION("oapD46ePb2I", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A1AA43E3A78F6F62);
+ LIB_FUNCTION("oeSM31Rknck", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A1E48CDF54649DC9);
+ LIB_FUNCTION("oufe5bCvXRQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A2E7DEE5B0AF5D14);
+ LIB_FUNCTION("ovXH-Z-xE-U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A2F5C7FD9FF113F5);
+ LIB_FUNCTION("o2KW4iadRrw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A36296E2269D46BC);
+ LIB_FUNCTION("o+4qe58NiK8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A3EE2A7B9F0D88AF);
+ LIB_FUNCTION("pEcfn34L+oI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A4471F9F7E0BFA82);
+ LIB_FUNCTION("pEm7pSHqNOE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A449BBA521EA34E1);
+ LIB_FUNCTION("pI5mbDNOcmw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A48E666C334E726C);
+ LIB_FUNCTION("pJt0SbTd5pw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A49B7449B4DDE69C);
+ LIB_FUNCTION("pXSEURJcnqQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A5748451125C9EA4);
+ LIB_FUNCTION("ppCijWSMwXY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A690A28D648CC176);
+ LIB_FUNCTION("pqht4bHLsdk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A6A86DE1B1CBB1D9);
+ LIB_FUNCTION("qPK7e4FXQKE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A8F2BB7B815740A1);
+ LIB_FUNCTION("qT9kwGpvc5c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_A93F64C06A6F7397);
+ LIB_FUNCTION("qzWSX8l9aqM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_AB35925FC97D6AA3);
+ LIB_FUNCTION("rAFKosmR+ik", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_AC014AA2C991FA29);
+ LIB_FUNCTION("rAbhCQFASus", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_AC06E10901404AEB);
+ LIB_FUNCTION("rHXGiBNSNQU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_AC75C68813523505);
+ LIB_FUNCTION("rUQbxJcILD4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_AD441BC497082C3E);
+ LIB_FUNCTION("rU8l8CHTVMM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_AD4F25F021D354C3);
+ LIB_FUNCTION("rfoEqFVBpP4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_ADFA04A85541A4FE);
+ LIB_FUNCTION("rpYQprUheiM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_AE9610A6B5217A23);
+ LIB_FUNCTION("ryAZI4JvClg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_AF201923826F0A58);
+ LIB_FUNCTION("r8AhtDico-o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_AFC021B4389CA3FA);
+ LIB_FUNCTION("sBXpmaM3PY8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B015E999A3373D8F);
+ LIB_FUNCTION("sDhLhhB-xlI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B0384B86107FC652);
+ LIB_FUNCTION("sMYwZTsxZWM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B0C630653B316563);
+ LIB_FUNCTION("sQDczYjVxz0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B100DCCD88D5C73D);
+ LIB_FUNCTION("sRo-6l5NnqQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B11A3FEA5E4D9EA4);
+ LIB_FUNCTION("suf43BmcC5M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B2E7F8DC199C0B93);
+ LIB_FUNCTION("s6thopb23cg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B3AB61A296F6DDC8);
+ LIB_FUNCTION("s-MvauYZ7II", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B3F32F6AE619EC82);
+ LIB_FUNCTION("tCJ6shO-jPU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B4227AB213BF8CF5);
+ LIB_FUNCTION("tGUr9CtgQ2A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B4652BF42B604360);
+ LIB_FUNCTION("tTbB8Tv+l8s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B536C1F13BFE97CB);
+ LIB_FUNCTION("tkXMJkGEvIk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B645CC264184BC89);
+ LIB_FUNCTION("tn4XsVgsb70", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B67E17B1582C6FBD);
+ LIB_FUNCTION("ttBHxddpWk0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B6D047C5D7695A4D);
+ LIB_FUNCTION("t17Y4epi78c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B75ED8E1EA62EFC7);
+ LIB_FUNCTION("t6mpRNvX4QA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B7A9A944DBD7E100);
+ LIB_FUNCTION("t8TnW+lPMfM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B7C4E75BE94F31F3);
+ LIB_FUNCTION("uIix+SxGQSE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B888B1F92C464121);
+ LIB_FUNCTION("uN7CJWSqBXs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B8DEC22564AA057B);
+ LIB_FUNCTION("ubrdHLu65Pg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_B9BADD1CBBBAE4F8);
+ LIB_FUNCTION("uqn3FpyF5Z8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_BAA9F7169C85E59F);
+ LIB_FUNCTION("uu5cOJCNYts", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_BAEE5C38908D62DB);
+ LIB_FUNCTION("vMhV6yUYP4Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_BCC855EB25183F84);
+ LIB_FUNCTION("vQH2NwKcc2Q", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_BD01F637029C7364);
+ LIB_FUNCTION("vdKfWscHflM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_BDD29F5AC7077E53);
+ LIB_FUNCTION("vtg90z7K1Q0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_BED83DD33ECAD50D);
+ LIB_FUNCTION("vufV0Jir9yg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_BEE7D5D098ABF728);
+ LIB_FUNCTION("wNsVzPWa5iw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C0DB15CCF59AE62C);
+ LIB_FUNCTION("wcIp-uD9YPo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C1C229FEE0FD60FA);
+ LIB_FUNCTION("wii5rWgpjpg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C228B9AD68298E98);
+ LIB_FUNCTION("wphSXO9vsoM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C298525CEF6FB283);
+ LIB_FUNCTION("w1Dwk1H21rU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C350F09351F6D6B5);
+ LIB_FUNCTION("w3QugPpYAxk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C3742E80FA580319);
+ LIB_FUNCTION("w8mFPV1NRdQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C3C9853D5D4D45D4);
+ LIB_FUNCTION("w-Xa1Pufw0A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C3F5DAD4FB9FC340);
+ LIB_FUNCTION("xF+w5MzprtY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C45FB0E4CCE9AED6);
+ LIB_FUNCTION("xJecuUi348c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C4979CB948B7E3C7);
+ LIB_FUNCTION("xJsluhbPC4w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C49B25BA16CF0B8C);
+ LIB_FUNCTION("xVE0XZYxIB4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C551345D9631201E);
+ LIB_FUNCTION("xXopRCE2gpg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C57A294421368298);
+ LIB_FUNCTION("xdyRytch1ig", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C5DC91CAD721D628);
+ LIB_FUNCTION("xt7O5YkTU1c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C6DECEE589135357);
+ LIB_FUNCTION("yB+LINZ6x40", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C81F8B20D67AC78D);
+ LIB_FUNCTION("yCD6VvrIe+o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C820FA56FAC87BEA);
+ LIB_FUNCTION("yHjqkRTF5JA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C878EA9114C5E490);
+ LIB_FUNCTION("yKgT6-9HdQk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C8A813EBFF477509);
+ LIB_FUNCTION("yWamY9WjVII", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C966A663D5A35482);
+ LIB_FUNCTION("yXxMZ-02dNM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C97C4C67FD3674D3);
+ LIB_FUNCTION("yZBVDxWEiwc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_C990550F15848B07);
+ LIB_FUNCTION("yllzeo7Bu74", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_CA59737A8EC1BBBE);
+ LIB_FUNCTION("ysX96PgNe2U", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_CAC5FDE8F80D7B65);
+ LIB_FUNCTION("yxNbMNBjm4M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_CB135B30D0639B83);
+ LIB_FUNCTION("y4oaqmH2TDo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_CB8A1AAA61F64C3A);
+ LIB_FUNCTION("y55nRnJYB1c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_CB9E674672580757);
+ LIB_FUNCTION("zCudJerqqx0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_CC2B9D25EAEAAB1D);
+ LIB_FUNCTION("zRslK77fW1M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_CD1B252BBEDF5B53);
+ LIB_FUNCTION("zwA76Qy+Gic", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_CF003BE90CBE1A27);
+ LIB_FUNCTION("zwCONIhKweI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_CF008E34884AC1E2);
+ LIB_FUNCTION("0Lj0s6NoerI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D0B8F4B3A3687AB2);
+ LIB_FUNCTION("0O4ZuOkfYPU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D0EE19B8E91F60F5);
+ LIB_FUNCTION("0SuSlL0OD1Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D12B9294BD0E0F56);
+ LIB_FUNCTION("0cyGJtj6Mos", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D1CC8626D8FA328B);
+ LIB_FUNCTION("0vorueuLY6w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D2FA2BB9EB8B63AC);
+ LIB_FUNCTION("0yGXiAz5POs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D32197880CF93CEB);
+ LIB_FUNCTION("0yb1wmzIG44", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D326F5C26CC81B8E);
+ LIB_FUNCTION("1PoGuVoyG3o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D4FA06B95A321B7A);
+ LIB_FUNCTION("1So3qQHgSyE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D52A37A901E04B21);
+ LIB_FUNCTION("1VBN-DmatAA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D5504DFC399AB400);
+ LIB_FUNCTION("1WEFyyf49dw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D56105CB27F8F5DC);
+ LIB_FUNCTION("1WirGSNeyxk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D568AB19235ECB19);
+ LIB_FUNCTION("1t979mOf5hE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D6DF7BF6639FE611);
+ LIB_FUNCTION("2GCKkDEZ10Y", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D8608A903119D746);
+ LIB_FUNCTION("2ej8cH1ZkU0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D9E8FC707D59914D);
+ LIB_FUNCTION("2fB55i3uWyk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_D9F079E62DEE5B29);
+ LIB_FUNCTION("2hfOTyl0hTY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DA17CE4F29748536);
+ LIB_FUNCTION("2kC579f2EYU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DA40B9EFD7F61185);
+ LIB_FUNCTION("2msnT+vCZmo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DA6B274FEBC2666A);
+ LIB_FUNCTION("2tAVNch6Ufw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DAD01535C87A51FC);
+ LIB_FUNCTION("20UR1EhRDsQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DB4511D448510EC4);
+ LIB_FUNCTION("247x--xmJpw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DB8EF1FFFC66269C);
+ LIB_FUNCTION("27UI+hudqPc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DBB508FA1B9DA8F7);
+ LIB_FUNCTION("3FnJuHC3KaI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DC59C9B870B729A2);
+ LIB_FUNCTION("3Gae1sv2dRw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DC669ED6CBF6751C);
+ LIB_FUNCTION("3LiihJpByZE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DCB8A2849A41C991);
+ LIB_FUNCTION("3Y+ZFtfwOvc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DD8F9916D7F03AF7);
+ LIB_FUNCTION("3cM-L05IDCo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DDC33F2F4E480C2A);
+ LIB_FUNCTION("3gtCC96LItc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_DE0B420BDE8B22D7);
+ LIB_FUNCTION("4MC8KYmP43A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E0C0BC29898FE370);
+ LIB_FUNCTION("4M2JPkb7Vbo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E0CD893E46FB55BA);
+ LIB_FUNCTION("4lUwFkt-ZZ8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E25530164B7F659F);
+ LIB_FUNCTION("42gvQ-33bFg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E3682F43FDF76C58);
+ LIB_FUNCTION("44F34ceKgPo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E38177E1C78A80FA);
+ LIB_FUNCTION("48p0z-ll3wo", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E3CA74CFF965DF0A);
+ LIB_FUNCTION("5FuxkbSbLtk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E45BB191B49B2ED9);
+ LIB_FUNCTION("5GW51rYObX0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E465B9D6B60E6D7D);
+ LIB_FUNCTION("5NgodsKWw4o", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E4D82876C296C38A);
+ LIB_FUNCTION("5N21NQ+ltTg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E4DDB5350FA5B538);
+ LIB_FUNCTION("5Uv-b7crx74", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E54BFF6FB72BC7BE);
+ LIB_FUNCTION("5ZKpMgMCC7s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E592A93203020BBB);
+ LIB_FUNCTION("5aRK9tfUiv0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E5A44AF6D7D48AFD);
+ LIB_FUNCTION("5jmpfPn-FDA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E639A97CF9FF1430);
+ LIB_FUNCTION("5qwBeeSKiSc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E6AC0179E48A8927);
+ LIB_FUNCTION("51FZZoJ3XYM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E751596682775D83);
+ LIB_FUNCTION("54ix5S74JwI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E788B1E52EF82702);
+ LIB_FUNCTION("6U8XYT9cnTE", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E94F17613F5C9D31);
+ LIB_FUNCTION("6VkBExKNVeA", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E9590113128D55E0);
+ LIB_FUNCTION("6eCw3RJWCxY", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_E9E0B0DD12560B16);
+ LIB_FUNCTION("6vXI7OZMewU", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_EAF5C8ECE64C7B05);
+ LIB_FUNCTION("65i-XELUp+s", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_EB98BF5C42D4A7EB);
+ LIB_FUNCTION("66vEqsQ6Row", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_EBABC4AAC43A468C);
+ LIB_FUNCTION("6-AAhfCCzIs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_EBF00085F082CC8B);
+ LIB_FUNCTION("7LZZ7gWNBq8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_ECB659EE058D06AF);
+ LIB_FUNCTION("7PCWq3UUh64", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_ECF096AB751487AE);
+ LIB_FUNCTION("7lonFwHbM8A", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_EE5A271701DB33C0);
+ LIB_FUNCTION("72TLahYlJI4", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_EF64CB6A1625248E);
+ LIB_FUNCTION("72yKNXx+2GM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_EF6C8A357C7ED863);
+ LIB_FUNCTION("8A-pT35pmZQ", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F00FE94F7E699994);
+ LIB_FUNCTION("8aUdujAykDg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F1A51DBA30329038);
+ LIB_FUNCTION("8hbnZqkP3BI", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F216E766A90FDC12);
+ LIB_FUNCTION("8qEFhKvl2Cw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F2A10584ABE5D82C);
+ LIB_FUNCTION("8tmdOV5UIaM", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F2D99D395E5421A3);
+ LIB_FUNCTION("84AB5Si6E3E", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F38001E528BA1371);
+ LIB_FUNCTION("857JyPp2h7M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F39EC9C8FA7687B3);
+ LIB_FUNCTION("86--3NYyd1w", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F3AFFFDCD632775C);
+ LIB_FUNCTION("87jf8zdIv9M", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F3B8DFF33748BFD3);
+ LIB_FUNCTION("9eR-lVD3oUc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F5E47F9550F7A147);
+ LIB_FUNCTION("9uk3FNGpOc8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F6E93714D1A939CF);
+ LIB_FUNCTION("9v0ZrUjk7wk", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F6FD19AD48E4EF09);
+ LIB_FUNCTION("90Tr-GIPfL8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F744EBFC620F7CBF);
+ LIB_FUNCTION("925FJay6zH8", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F76E4525ACBACC7F);
+ LIB_FUNCTION("95V6SIgvQss", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F7957A48882F42CB);
+ LIB_FUNCTION("96gLB4CbqDg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F7A80B07809BA838);
+ LIB_FUNCTION("+FccbMW2tZ0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F8571C6CC5B6B59D);
+ LIB_FUNCTION("+Xh8+oc4Nvs", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_F9787CFA873836FB);
+ LIB_FUNCTION("+nifbTTTg-g", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_FA789F6D34D383F8);
+ LIB_FUNCTION("+rpXQIOsHmw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_FABA574083AC1E6C);
+ LIB_FUNCTION("-AT9u642j7c", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_FC04FDBBAE368FB7);
+ LIB_FUNCTION("-S2vvy5A7uc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_FD2DAFBF2E40EEE7);
+ LIB_FUNCTION("-VXubTX5UK0", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_FD55EE6D35F950AD);
+ LIB_FUNCTION("-lXuMgmNDVg", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_FE55EE32098D0D58);
+ LIB_FUNCTION("-nmEECLh2hw", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_FE79841022E1DA1C);
+ LIB_FUNCTION("--Sj4nn7RKc", "libSceNpCommon", 1, "libSceNpCommon", 1, 1, Func_FFF4A3E279FB44A7);
+};
+
+} // namespace Libraries::NpCommon
\ No newline at end of file
diff --git a/src/core/libraries/np_common/np_common.h b/src/core/libraries/np_common/np_common.h
new file mode 100644
index 000000000..886610ccc
--- /dev/null
+++ b/src/core/libraries/np_common/np_common.h
@@ -0,0 +1,1245 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "common/types.h"
+
+namespace Core::Loader {
+class SymbolsResolver;
+}
+
+namespace Libraries::NpCommon {
+
+constexpr int ORBIS_NP_ONLINEID_MAX_LENGTH = 16;
+
+struct OrbisNpOnlineId {
+ char data[ORBIS_NP_ONLINEID_MAX_LENGTH];
+ s8 term;
+ s8 dummy[3];
+};
+
+struct OrbisNpId {
+ OrbisNpOnlineId handle;
+ u8 opt[8];
+ u8 reserved[8];
+};
+
+int PS4_SYSV_ABI sceNpCmpNpId(OrbisNpId* np_id1, OrbisNpId* np_id2);
+int PS4_SYSV_ABI sceNpCmpNpIdInOrder(OrbisNpId* np_id1, OrbisNpId* np_id2, u32* out_result);
+int PS4_SYSV_ABI sceNpCmpOnlineId(OrbisNpOnlineId* online_id1, OrbisNpOnlineId* online_id2);
+int PS4_SYSV_ABI _sceNpAllocatorExConvertAllocator();
+int PS4_SYSV_ABI _sceNpAllocatorExFree();
+int PS4_SYSV_ABI _sceNpAllocatorExMalloc();
+int PS4_SYSV_ABI _sceNpAllocatorExRealloc();
+int PS4_SYSV_ABI _sceNpAllocatorExStrdup();
+int PS4_SYSV_ABI _sceNpAllocatorExStrndup();
+int PS4_SYSV_ABI _sceNpAllocatorFree();
+int PS4_SYSV_ABI _sceNpAllocatorMalloc();
+int PS4_SYSV_ABI _sceNpAllocatorRealloc();
+int PS4_SYSV_ABI _sceNpAllocatorStrdup();
+int PS4_SYSV_ABI _sceNpAllocatorStrndup();
+int PS4_SYSV_ABI _sceNpFree();
+int PS4_SYSV_ABI _sceNpHeapFree();
+int PS4_SYSV_ABI _sceNpHeapMalloc();
+int PS4_SYSV_ABI _sceNpHeapRealloc();
+int PS4_SYSV_ABI _sceNpHeapStrdup();
+int PS4_SYSV_ABI _sceNpHeapStrndup();
+int PS4_SYSV_ABI _sceNpMalloc();
+int PS4_SYSV_ABI _sceNpRealloc();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable10IsCanceledEv();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable10LockCancelEPKciS3_();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable11CheckCancelEPKciS3_();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable12UnlockCancelEPKciS3_();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable13SetCancelableEb();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable14SetupSubCancelEPS1_PKciS4_();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable16CleanupSubCancelEPS1_();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable4InitEv();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable6CancelEij();
+int PS4_SYSV_ABI _ZN3sce2np10Cancelable7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np10CancelableC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np10CancelableD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np10CancelableD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np10CancelableD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np10CancelLock3EndEPKciS3_();
+int PS4_SYSV_ABI _ZN3sce2np10CancelLock5BeginEPNS0_6HandleEPKciS5_();
+int PS4_SYSV_ABI _ZN3sce2np10CancelLockC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np10CancelLockC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np10CancelLockD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np10CancelLockD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue10ClearAbortEt();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue10TryDequeueEPvm();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue4InitEPKcmm();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue5AbortEt();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue7DequeueEPvmj();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueue7EnqueueEPKvmj();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueueC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueueD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueueD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np10EventQueueD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEi();
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEj();
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEl();
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEm();
+int PS4_SYSV_ABI _ZN3sce2np10JsonNumber6SetNumEPKc();
+int PS4_SYSV_ABI _ZN3sce2np10JsonObject16DeleteFieldValueEPKc();
+int PS4_SYSV_ABI _ZN3sce2np10JsonObject5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np10JsonParser4InitEPK7JsonDefPNS1_12EventHandlerE();
+int PS4_SYSV_ABI _ZN3sce2np10JsonParser5ParseEPKcm();
+int PS4_SYSV_ABI _ZN3sce2np10JsonParserC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np10JsonParserD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np10JsonParserD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np10JsonParserD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np10JsonString5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np10JsonString6SetStrEPKc();
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile4ReadEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile4SyncEv();
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile5CloseEv();
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile5WriteEPNS0_6HandleEPKvmPm();
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFile8TruncateEl();
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFileC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFileD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFileD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np10MemoryFileD2Ev();
+int PS4_SYSV_ABI
+_ZN3sce2np12HttpTemplate19SetAuthInfoCallbackEPFii15SceHttpAuthTypePKcPcS5_iPPhPmPiPvESA_();
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplate4InitEiPKcib();
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplate7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np12HttpTemplateD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np12StreamBufferixEi();
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader4ReadEPNS0_6HandleEPNS0_9StreamCtxEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader7ReadAllEPNS0_6HandleEPNS0_9StreamCtxEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader7ReadAllEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader8ReadDataEPNS0_6HandleEPNS0_9StreamCtxEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader8ReadDataEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader8SkipDataEPNS0_6HandleElPl();
+int PS4_SYSV_ABI _ZN3sce2np12StreamReader8SkipDataEPNS0_6HandleEPNS0_9StreamCtxElPl();
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter15WriteFilledDataEPNS0_6HandleEcl();
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter15WriteFilledDataEPNS0_6HandleEPNS0_9StreamCtxEcl();
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter5WriteEPNS0_6HandleEPNS0_9StreamCtxEPKvmPm();
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter9WriteDataEPNS0_6HandleEPKvmPm();
+int PS4_SYSV_ABI _ZN3sce2np12StreamWriter9WriteDataEPNS0_6HandleEPNS0_9StreamCtxEPKvmPm();
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThread10ThreadMainEv();
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadC1EPNS0_9WorkQueueE();
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadC2EPNS0_9WorkQueueE();
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np12WorkerThreadD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParser5ParseEPKcm();
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParser9GetResultEPPNS0_10JsonObjectE();
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParser9GetResultEPPNS0_9JsonValueE();
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParserC2EP16SceNpAllocatorExPK7JsonDef();
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParserD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParserD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np13JsonDocParserD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecret5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC1EPKvm();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC1ERK16SceNpTitleSecret();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC1ERKS1_();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC2EPKvm();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC2ERK16SceNpTitleSecret();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC2ERKS1_();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np13NpTitleSecretD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory4InitEm();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory6ExpandEm();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory6IsInitEv();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemory7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemoryC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemoryD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemoryD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np13RingBufMemoryD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContext4InitEPKcimm();
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContext4InitEPKNS1_5ParamE();
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContext7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np14CalloutContextD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilder12BuildBufSizeEv();
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilder16EscapeJsonStringEPKcPcmPm();
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilder23EscapeJsonStringBufSizeEPKc();
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilder5BuildEPcmPm();
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderC1ERKNS0_9JsonValueE();
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderC2ERKNS0_9JsonValueE();
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np14JsonDocBuilderD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScope3EndEiPKciS3_();
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScope5BeginEPNS0_6HandleEPKciS5_();
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScopeC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScopeD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScopeD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np15CancelableScopeD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np16StreamReadBufferC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np16StreamReadBufferD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np16StreamReadBufferD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPool13InvalidateAllEv();
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPool4InitEi();
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPool7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolC1EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np18HttpConnectionPoolD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReader4ReadEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderC1EPKvm();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderC2EPKvm();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamReaderD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriter5WriteEPNS0_6HandleEPKvmPm();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterC1EPvm();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterC2EPvm();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np18MemoryStreamWriterD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReader4ReadEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReader5CloseEv();
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReaderC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReaderD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReaderD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np20BufferedStreamReaderD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient10DisconnectEv();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient11IsConnectedEv();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient16invokeSyncMethodEjPKvmPvPmm();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient4InitEPKNS2_6ConfigE();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient7ConnectEPKvm();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClient7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np3ipc10IpmiClientD2Ev();
+int PS4_SYSV_ABI
+_ZN3sce2np3ipc13ServiceClientC1EPNS1_17ServiceIpmiClientEPKNS1_17ServiceClientInfoE();
+int PS4_SYSV_ABI
+_ZN3sce2np3ipc13ServiceClientC2EPNS1_17ServiceIpmiClientEPKNS1_17ServiceClientInfoE();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient10DisconnectEv();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient10EndRequestEii();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient11findServiceEi();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient11InitServiceEi();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient11TermServiceEi();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient11WaitRequestEiij();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient12AbortRequestEii();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient12BeginRequestEii();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient13CreateRequestEPiiPKvm();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient13DeleteRequestEii();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient13PollEventFlagEijmjPm();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient13WaitEventFlagEijmjPmj();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient14PollEventQueueEiPvm();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient15CancelEventFlagEijm();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient15RegisterServiceEPKNS1_17ServiceClientInfoE();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient16RegisterServicesEPKNS1_17ServiceClientInfoE();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient17invokeInitServiceEi();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient17invokeTermServiceEi();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient17UnregisterServiceEi();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient18EndRequestForAsyncEii();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient19WaitRequestForAsyncEiij();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient20AbortRequestForAsyncEii();
+int PS4_SYSV_ABI
+_ZN3sce2np3ipc17ServiceIpmiClient20BeginRequestForAsyncEiiPN4IPMI6Client12EventNotifeeE();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient21CreateRequestForAsyncEPiiPKvm();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient21DeleteRequestForAsyncEii();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient4InitEPNS2_6ConfigE();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient7ConnectEPKvm();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClient7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np3ipc17ServiceIpmiClientD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np4Cond4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np4Cond4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np4Cond4InitEPKcPNS0_5MutexE();
+int PS4_SYSV_ABI _ZN3sce2np4Cond4WaitEj();
+int PS4_SYSV_ABI _ZN3sce2np4Cond6SignalEv();
+int PS4_SYSV_ABI _ZN3sce2np4Cond7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np4Cond9SignalAllEv();
+int PS4_SYSV_ABI _ZN3sce2np4CondC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np4CondC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np4CondD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np4CondD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np4CondD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np4Path11BuildAppendEPcmcPKcm();
+int PS4_SYSV_ABI _ZN3sce2np4Path12AddDelimiterEPcmc();
+int PS4_SYSV_ABI _ZN3sce2np4Path5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np4Path6SetStrEPKcm();
+int PS4_SYSV_ABI _ZN3sce2np4PathD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np4PathD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np4PathD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np4Time10AddMinutesEl();
+int PS4_SYSV_ABI _ZN3sce2np4Time10AddSecondsEl();
+int PS4_SYSV_ABI _ZN3sce2np4Time12GetUserClockEPS1_();
+int PS4_SYSV_ABI _ZN3sce2np4Time15AddMicroSecondsEl();
+int PS4_SYSV_ABI _ZN3sce2np4Time15GetNetworkClockEPS1_();
+int PS4_SYSV_ABI _ZN3sce2np4Time20GetDebugNetworkClockEPS1_();
+int PS4_SYSV_ABI _ZN3sce2np4Time7AddDaysEl();
+int PS4_SYSV_ABI _ZN3sce2np4Time8AddHoursEl();
+int PS4_SYSV_ABI _ZN3sce2np4TimeplERK10SceRtcTick();
+int PS4_SYSV_ABI _ZN3sce2np4TimeplERKS1_();
+int PS4_SYSV_ABI _ZN3sce2np5Mutex4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np5Mutex4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np5Mutex4InitEPKcj();
+int PS4_SYSV_ABI _ZN3sce2np5Mutex4LockEv();
+int PS4_SYSV_ABI _ZN3sce2np5Mutex6UnlockEv();
+int PS4_SYSV_ABI _ZN3sce2np5Mutex7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np5Mutex7TryLockEv();
+int PS4_SYSV_ABI _ZN3sce2np5MutexC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np5MutexC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np5MutexD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np5MutexD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np5MutexD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np5NpEnv8GetNpEnvEPS1_();
+int PS4_SYSV_ABI _ZN3sce2np6Handle10CancelImplEi();
+int PS4_SYSV_ABI _ZN3sce2np6Handle4InitEv();
+int PS4_SYSV_ABI _ZN3sce2np6Handle7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np6HandleC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np6HandleC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np6HandleD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np6HandleD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np6HandleD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdaEPv();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdaEPvR14SceNpAllocator();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdaEPvR16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdlEPv();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdlEPvR14SceNpAllocator();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectdlEPvR16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectnaEmR14SceNpAllocator();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectnaEmR16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectnwEmR14SceNpAllocator();
+int PS4_SYSV_ABI _ZN3sce2np6ObjectnwEmR16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np6Thread12DoThreadMainEv();
+int PS4_SYSV_ABI _ZN3sce2np6Thread4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np6Thread4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np6Thread4InitEPKcimm();
+int PS4_SYSV_ABI _ZN3sce2np6Thread4InitEPKNS1_5ParamE();
+int PS4_SYSV_ABI _ZN3sce2np6Thread4JoinEPi();
+int PS4_SYSV_ABI _ZN3sce2np6Thread5StartEv();
+int PS4_SYSV_ABI _ZN3sce2np6Thread7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np6Thread9EntryFuncEPv();
+int PS4_SYSV_ABI _ZN3sce2np6Thread9GetResultEv();
+int PS4_SYSV_ABI _ZN3sce2np6Thread9IsRunningEv();
+int PS4_SYSV_ABI _ZN3sce2np6ThreadC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np6ThreadD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np6ThreadD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np6ThreadD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np7Callout10IsTimedoutEv();
+int PS4_SYSV_ABI _ZN3sce2np7Callout11CalloutFuncEPv();
+int PS4_SYSV_ABI _ZN3sce2np7Callout4StopEv();
+int PS4_SYSV_ABI _ZN3sce2np7Callout5StartEjPNS1_7HandlerE();
+int PS4_SYSV_ABI _ZN3sce2np7Callout5StartEmPNS1_7HandlerE();
+int PS4_SYSV_ABI _ZN3sce2np7Callout9IsStartedEv();
+int PS4_SYSV_ABI _ZN3sce2np7CalloutC1EPNS0_14CalloutContextE();
+int PS4_SYSV_ABI _ZN3sce2np7CalloutC2EPNS0_14CalloutContextE();
+int PS4_SYSV_ABI _ZN3sce2np7CalloutD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np7CalloutD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np7CalloutD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np7HttpUri5BuildEPKS1_PcmPmj();
+int PS4_SYSV_ABI _ZN3sce2np7HttpUri5ParseEPS1_PKc();
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriC1EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np7HttpUriD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf14CheckinForReadEm();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf15CheckinForWriteEm();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf15CheckoutForReadEPm();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf16CheckoutForWriteEPm();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4InitEPvm();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4PeekEmPvm();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf4ReadEPvm();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf5WriteEPKvm();
+int PS4_SYSV_ABI _ZN3sce2np7RingBuf7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np7RingBufC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np7RingBufC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np7RingBufD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np7RingBufD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np7RingBufD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np8HttpFile4ReadEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np8HttpFile5CloseEv();
+int PS4_SYSV_ABI _ZN3sce2np8HttpFileC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np8HttpFileD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np8HttpFileD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np8HttpFileD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np8JsonBool5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np8JsonBool7SetBoolEb();
+int PS4_SYSV_ABI _ZN3sce2np8JsonFile5CloseEv();
+int PS4_SYSV_ABI _ZN3sce2np8JsonFileD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np8JsonFileD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np8JsonFileD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np8JsonNull5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommId5BuildERKS1_Pcm();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommId5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommId5ParseEPS1_PKc();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommId5ParseEPS1_PKcm();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC1ERK20SceNpCommunicationId();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC1ERKS1_();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC2ERK20SceNpCommunicationId();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC2ERKS1_();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np8NpCommIdD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np8Selector4InitEPKc();
+int PS4_SYSV_ABI _ZN3sce2np8SelectorD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np8SelectorD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np8SelectorD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem10SetPendingEv();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem10SetRunningEv();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem11SetFinishedEi();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem14FinishCallbackEv();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem15RemoveFromQueueEv();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem6CancelEi();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItem9BindQueueEPNS0_9WorkQueueEi();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItemC2EPKc();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItemD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItemD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np8WorkItemD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag3SetEm();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4OpenEPKc();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4PollEmjPm();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag4WaitEmjPmj();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag5ClearEm();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag6CancelEm();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag6CreateEPKcj();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlag7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9EventFlagD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans10SetTimeoutEPKNS1_12TimeoutParamE();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans11SendRequestEPNS0_6HandleEPKvm();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans12RecvResponseEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans12SkipResponseEPNS0_6HandleE();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans16AddRequestHeaderEPKcS3_();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans16SetRequestHeaderEPKcS3_();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans21GetResponseStatusCodeEPNS0_6HandleEPi();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans21SetRequestContentTypeEPKc();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans23SetRequestContentLengthEm();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans24GetResponseContentLengthEPNS0_6HandleEPbPm();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans4InitERKNS0_12HttpTemplateEPNS0_18HttpConnectionPoolEiPKcm();
+int PS4_SYSV_ABI
+_ZN3sce2np9HttpTrans4InitERKNS0_12HttpTemplateEPNS0_18HttpConnectionPoolEiPKcS8_tS8_m();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans4ReadEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans5WriteEPNS0_6HandleEPKvmPm();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTrans7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransC1EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransC2EP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9HttpTransD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9JsonArray12AddItemArrayEPPS1_();
+int PS4_SYSV_ABI _ZN3sce2np9JsonArray5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np9JsonValue12GetItemValueEi();
+int PS4_SYSV_ABI _ZN3sce2np9JsonValue13GetFieldValueEiPPKc();
+int PS4_SYSV_ABI _ZN3sce2np9JsonValue13GetFieldValueEPKc();
+int PS4_SYSV_ABI _ZN3sce2np9JsonValueD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np9JsonValueD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9JsonValueD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile4ReadEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile4SeekEliPl();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile4SyncEv();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile5CloseEv();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile5WriteEPNS0_6HandleEPKvmPm();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile6RemoveEPKc();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFile8TruncateEl();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9LocalFileD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleId5BuildERKS1_Pcm();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleId5ClearEv();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleId5ParseEPS1_PKc();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleId5ParseEPS1_PKcm();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC1ERK12SceNpTitleId();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC1ERKS1_();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC2ERK12SceNpTitleId();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC2ERKS1_();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9NpTitleIdD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9RefObject6AddRefEv();
+int PS4_SYSV_ABI _ZN3sce2np9RefObject7ReleaseEv();
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9RefObjectD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore4OpenEPKc();
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore4WaitEj();
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore6CreateEiiPKc();
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore6SignalEv();
+int PS4_SYSV_ABI _ZN3sce2np9Semaphore7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9SemaphoreD2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue11GetItemByIdEi();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue15GetFinishedItemENS0_14WorkItemStatusE();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue16WorkItemFinishedEPNS0_8WorkItemEi();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue17ProcFinishedItemsENS0_14WorkItemStatusE();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue18RemoveFinishedItemEPNS0_8WorkItemE();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue18WaitForPendingItemEPPNS0_8WorkItemEPb();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4ctorEv();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4dtorEv();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4InitEPKcimm();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4InitEPKNS0_6Thread5ParamE();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue4StopEv();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue5StartEv();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue6CancelEii();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue6IsInitEv();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue7DestroyEv();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue7EnqueueEiPNS0_8WorkItemE();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue9CancelAllEi();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueue9IsRunningEv();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueC1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueC2Ev();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueD0Ev();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueD1Ev();
+int PS4_SYSV_ABI _ZN3sce2np9WorkQueueD2Ev();
+int PS4_SYSV_ABI _ZN3sce2npeqERK10SceRtcTickRKNS0_4TimeE();
+int PS4_SYSV_ABI _ZN3sce2npeqERK12SceNpTitleIdRKNS0_9NpTitleIdE();
+int PS4_SYSV_ABI _ZN3sce2npeqERK16SceNpTitleSecretRKNS0_13NpTitleSecretE();
+int PS4_SYSV_ABI _ZN3sce2npeqERK20SceNpCommunicationIdRKNS0_8NpCommIdE();
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_13NpTitleSecretERK16SceNpTitleSecret();
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_13NpTitleSecretES3_();
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_4TimeERK10SceRtcTick();
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_4TimeES3_();
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_8NpCommIdERK20SceNpCommunicationId();
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_8NpCommIdES3_();
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_9NpTitleIdERK12SceNpTitleId();
+int PS4_SYSV_ABI _ZN3sce2npeqERKNS0_9NpTitleIdES3_();
+int PS4_SYSV_ABI _ZN3sce2npgeERK10SceRtcTickRKNS0_4TimeE();
+int PS4_SYSV_ABI _ZN3sce2npgeERKNS0_4TimeERK10SceRtcTick();
+int PS4_SYSV_ABI _ZN3sce2npgeERKNS0_4TimeES3_();
+int PS4_SYSV_ABI _ZN3sce2npgtERK10SceRtcTickRKNS0_4TimeE();
+int PS4_SYSV_ABI _ZN3sce2npgtERKNS0_4TimeERK10SceRtcTick();
+int PS4_SYSV_ABI _ZN3sce2npgtERKNS0_4TimeES3_();
+int PS4_SYSV_ABI _ZN3sce2npleERK10SceRtcTickRKNS0_4TimeE();
+int PS4_SYSV_ABI _ZN3sce2npleERKNS0_4TimeERK10SceRtcTick();
+int PS4_SYSV_ABI _ZN3sce2npleERKNS0_4TimeES3_();
+int PS4_SYSV_ABI _ZN3sce2npltERK10SceRtcTickRKNS0_4TimeE();
+int PS4_SYSV_ABI _ZN3sce2npltERKNS0_4TimeERK10SceRtcTick();
+int PS4_SYSV_ABI _ZN3sce2npltERKNS0_4TimeES3_();
+int PS4_SYSV_ABI _ZN3sce2npneERK10SceRtcTickRKNS0_4TimeE();
+int PS4_SYSV_ABI _ZN3sce2npneERK12SceNpTitleIdRKNS0_9NpTitleIdE();
+int PS4_SYSV_ABI _ZN3sce2npneERK16SceNpTitleSecretRKNS0_13NpTitleSecretE();
+int PS4_SYSV_ABI _ZN3sce2npneERK20SceNpCommunicationIdRKNS0_8NpCommIdE();
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_13NpTitleSecretERK16SceNpTitleSecret();
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_13NpTitleSecretES3_();
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_4TimeERK10SceRtcTick();
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_4TimeES3_();
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_8NpCommIdERK20SceNpCommunicationId();
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_8NpCommIdES3_();
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_9NpTitleIdERK12SceNpTitleId();
+int PS4_SYSV_ABI _ZN3sce2npneERKNS0_9NpTitleIdES3_();
+int PS4_SYSV_ABI _ZNK3sce2np10Cancelable6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np10EventQueue6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np10EventQueue7IsEmptyEv();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber5CloneEP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPcm();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPi();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPj();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPl();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber6GetNumEPm();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonNumber9GetNumStrEv();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonObject5CloneEP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonString5CloneEP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonString6GetStrEPcm();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonString6GetStrEv();
+int PS4_SYSV_ABI _ZNK3sce2np10JsonString9GetLengthEv();
+int PS4_SYSV_ABI _ZNK3sce2np12HttpTemplate6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np18HttpConnectionPool6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np3ipc10IpmiClient6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np3ipc17ServiceIpmiClient6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np4Cond6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np4Time18ConvertToPosixTimeEPl();
+int PS4_SYSV_ABI _ZNK3sce2np5Mutex6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np6Handle6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np6Thread6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np7RingBuf11GetDataSizeEv();
+int PS4_SYSV_ABI _ZNK3sce2np7RingBuf11GetFreeSizeEv();
+int PS4_SYSV_ABI _ZNK3sce2np7RingBuf6IsFullEv();
+int PS4_SYSV_ABI _ZNK3sce2np7RingBuf7IsEmptyEv();
+int PS4_SYSV_ABI _ZNK3sce2np8JsonBool5CloneEP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZNK3sce2np8JsonBool7GetBoolEv();
+int PS4_SYSV_ABI _ZNK3sce2np8JsonNull5CloneEP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZNK3sce2np8NpCommId7IsEmptyEv();
+int PS4_SYSV_ABI _ZNK3sce2np9EventFlag6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np9HttpTrans6IsInitEv();
+int PS4_SYSV_ABI _ZNK3sce2np9JsonArray5CloneEP16SceNpAllocatorEx();
+int PS4_SYSV_ABI _ZNK3sce2np9JsonValue12GetItemValueEi();
+int PS4_SYSV_ABI _ZNK3sce2np9NpTitleId7IsEmptyEv();
+int PS4_SYSV_ABI _ZNK3sce2np9Semaphore6IsInitEv();
+int PS4_SYSV_ABI _ZThn16_N3sce2np10MemoryFile5WriteEPNS0_6HandleEPKvmPm();
+int PS4_SYSV_ABI _ZThn16_N3sce2np10MemoryFileD0Ev();
+int PS4_SYSV_ABI _ZThn16_N3sce2np10MemoryFileD1Ev();
+int PS4_SYSV_ABI _ZThn16_N3sce2np9HttpTrans5WriteEPNS0_6HandleEPKvmPm();
+int PS4_SYSV_ABI _ZThn16_N3sce2np9HttpTransD0Ev();
+int PS4_SYSV_ABI _ZThn16_N3sce2np9HttpTransD1Ev();
+int PS4_SYSV_ABI _ZThn16_N3sce2np9LocalFile5WriteEPNS0_6HandleEPKvmPm();
+int PS4_SYSV_ABI _ZThn16_N3sce2np9LocalFileD0Ev();
+int PS4_SYSV_ABI _ZThn16_N3sce2np9LocalFileD1Ev();
+int PS4_SYSV_ABI _ZThn8_N3sce2np10MemoryFile4ReadEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZThn8_N3sce2np10MemoryFileD0Ev();
+int PS4_SYSV_ABI _ZThn8_N3sce2np10MemoryFileD1Ev();
+int PS4_SYSV_ABI _ZThn8_N3sce2np6Handle10CancelImplEi();
+int PS4_SYSV_ABI _ZThn8_N3sce2np6HandleD0Ev();
+int PS4_SYSV_ABI _ZThn8_N3sce2np6HandleD1Ev();
+int PS4_SYSV_ABI _ZThn8_N3sce2np9HttpTrans4ReadEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZThn8_N3sce2np9HttpTransD0Ev();
+int PS4_SYSV_ABI _ZThn8_N3sce2np9HttpTransD1Ev();
+int PS4_SYSV_ABI _ZThn8_N3sce2np9LocalFile4ReadEPNS0_6HandleEPvmPm();
+int PS4_SYSV_ABI _ZThn8_N3sce2np9LocalFileD0Ev();
+int PS4_SYSV_ABI _ZThn8_N3sce2np9LocalFileD1Ev();
+int PS4_SYSV_ABI _ZTVN3sce2np10JsonNumberE();
+int PS4_SYSV_ABI _ZTVN3sce2np10JsonObjectE();
+int PS4_SYSV_ABI _ZTVN3sce2np10JsonStringE();
+int PS4_SYSV_ABI _ZTVN3sce2np8JsonBoolE();
+int PS4_SYSV_ABI _ZTVN3sce2np8JsonNullE();
+int PS4_SYSV_ABI _ZTVN3sce2np8SelectorE();
+int PS4_SYSV_ABI _ZTVN3sce2np9JsonArrayE();
+int PS4_SYSV_ABI _ZTVN3sce2np9JsonValueE();
+int PS4_SYSV_ABI sceNpAllocateKernelMemoryNoAlignment();
+int PS4_SYSV_ABI sceNpAllocateKernelMemoryWithAlignment();
+int PS4_SYSV_ABI sceNpArchInit();
+int PS4_SYSV_ABI sceNpArchTerm();
+int PS4_SYSV_ABI sceNpAtomicCas32();
+int PS4_SYSV_ABI sceNpAtomicDec32();
+int PS4_SYSV_ABI sceNpAtomicInc32();
+int PS4_SYSV_ABI sceNpBase64Decoder();
+int PS4_SYSV_ABI sceNpBase64Encoder();
+int PS4_SYSV_ABI sceNpBase64GetDecodeSize();
+int PS4_SYSV_ABI sceNpBase64UrlDecoder();
+int PS4_SYSV_ABI sceNpBase64UrlEncoder();
+int PS4_SYSV_ABI sceNpBase64UrlGetDecodeSize();
+int PS4_SYSV_ABI sceNpCalloutInitCtx();
+int PS4_SYSV_ABI sceNpCalloutStartOnCtx();
+int PS4_SYSV_ABI sceNpCalloutStartOnCtx64();
+int PS4_SYSV_ABI sceNpCalloutStopOnCtx();
+int PS4_SYSV_ABI sceNpCalloutTermCtx();
+int PS4_SYSV_ABI sceNpCancelEventFlag();
+int PS4_SYSV_ABI sceNpClearEventFlag();
+int PS4_SYSV_ABI sceNpCloseEventFlag();
+int PS4_SYSV_ABI sceNpCloseSema();
+int PS4_SYSV_ABI sceNpCondDestroy();
+int PS4_SYSV_ABI sceNpCondInit();
+int PS4_SYSV_ABI sceNpCondSignal();
+int PS4_SYSV_ABI sceNpCondSignalAll();
+int PS4_SYSV_ABI sceNpCondSignalTo();
+int PS4_SYSV_ABI sceNpCondTimedwait();
+int PS4_SYSV_ABI sceNpCondWait();
+int PS4_SYSV_ABI sceNpCreateEventFlag();
+int PS4_SYSV_ABI sceNpCreateSema();
+int PS4_SYSV_ABI sceNpCreateThread();
+int PS4_SYSV_ABI sceNpDbgAssignDebugId();
+int PS4_SYSV_ABI sceNpDbgDumpBinary();
+int PS4_SYSV_ABI sceNpDbgDumpText();
+int PS4_SYSV_ABI sceNpDeleteEventFlag();
+int PS4_SYSV_ABI sceNpDeleteSema();
+int PS4_SYSV_ABI sceNpEventGetCurrentNetworkTick();
+int PS4_SYSV_ABI sceNpFreeKernelMemory();
+int PS4_SYSV_ABI sceNpGetNavSdkVersion();
+int PS4_SYSV_ABI sceNpGetPlatformType();
+int PS4_SYSV_ABI sceNpGetProcessId();
+int PS4_SYSV_ABI sceNpGetRandom();
+int PS4_SYSV_ABI sceNpGetSdkVersion();
+int PS4_SYSV_ABI sceNpGetSdkVersionUInt();
+int PS4_SYSV_ABI sceNpGetSystemClockUsec();
+int PS4_SYSV_ABI sceNpGlobalHeapGetAllocator();
+int PS4_SYSV_ABI sceNpGlobalHeapGetAllocatorEx();
+int PS4_SYSV_ABI sceNpGlobalHeapGetAllocatorExPtr();
+int PS4_SYSV_ABI sceNpGlobalHeapGetAllocatorPtr();
+int PS4_SYSV_ABI sceNpHeapDestroy();
+int PS4_SYSV_ABI sceNpHeapGetAllocator();
+int PS4_SYSV_ABI sceNpHeapGetStat();
+int PS4_SYSV_ABI sceNpHeapInit();
+int PS4_SYSV_ABI sceNpHeapShowStat();
+int PS4_SYSV_ABI sceNpHexToInt();
+int PS4_SYSV_ABI sceNpInt32ToStr();
+int PS4_SYSV_ABI sceNpInt64ToStr();
+int PS4_SYSV_ABI sceNpIntGetPlatformType();
+int PS4_SYSV_ABI sceNpIntIsOnlineIdString();
+int PS4_SYSV_ABI sceNpIntIsValidOnlineId();
+int PS4_SYSV_ABI sceNpIntSetPlatformType();
+int PS4_SYSV_ABI sceNpIntToHex();
+int PS4_SYSV_ABI sceNpIpc2ClientInit();
+int PS4_SYSV_ABI sceNpIpc2ClientTerm();
+int PS4_SYSV_ABI sceNpJoinThread();
+int PS4_SYSV_ABI sceNpJsonParse();
+int PS4_SYSV_ABI sceNpJsonParseBuf();
+int PS4_SYSV_ABI sceNpJsonParseBufInit();
+int PS4_SYSV_ABI sceNpJsonParseEx();
+int PS4_SYSV_ABI sceNpJsonParseExInit();
+int PS4_SYSV_ABI sceNpJsonParseInit();
+int PS4_SYSV_ABI sceNpLwCondDestroy();
+int PS4_SYSV_ABI sceNpLwCondInit();
+int PS4_SYSV_ABI sceNpLwCondSignal();
+int PS4_SYSV_ABI sceNpLwCondSignalAll();
+int PS4_SYSV_ABI sceNpLwCondSignalTo();
+int PS4_SYSV_ABI sceNpLwCondWait();
+int PS4_SYSV_ABI sceNpLwMutexDestroy();
+int PS4_SYSV_ABI sceNpLwMutexInit();
+int PS4_SYSV_ABI sceNpLwMutexLock();
+int PS4_SYSV_ABI sceNpLwMutexTryLock();
+int PS4_SYSV_ABI sceNpLwMutexUnlock();
+int PS4_SYSV_ABI sceNpMemoryHeapDestroy();
+int PS4_SYSV_ABI sceNpMemoryHeapGetAllocator();
+int PS4_SYSV_ABI sceNpMemoryHeapGetAllocatorEx();
+int PS4_SYSV_ABI sceNpMemoryHeapInit();
+int PS4_SYSV_ABI sceNpMutexDestroy();
+int PS4_SYSV_ABI sceNpMutexInit();
+int PS4_SYSV_ABI sceNpMutexLock();
+int PS4_SYSV_ABI sceNpMutexTryLock();
+int PS4_SYSV_ABI sceNpMutexUnlock();
+int PS4_SYSV_ABI sceNpOpenEventFlag();
+int PS4_SYSV_ABI sceNpOpenSema();
+int PS4_SYSV_ABI sceNpPanic();
+int PS4_SYSV_ABI sceNpPollEventFlag();
+int PS4_SYSV_ABI sceNpPollSema();
+int PS4_SYSV_ABI sceNpRtcConvertToPosixTime();
+int PS4_SYSV_ABI sceNpRtcFormatRFC3339();
+int PS4_SYSV_ABI sceNpRtcParseRFC3339();
+int PS4_SYSV_ABI sceNpServerErrorJsonGetErrorCode();
+int PS4_SYSV_ABI sceNpServerErrorJsonMultiGetErrorCode();
+int PS4_SYSV_ABI sceNpServerErrorJsonParse();
+int PS4_SYSV_ABI sceNpServerErrorJsonParseInit();
+int PS4_SYSV_ABI sceNpServerErrorJsonParseMultiInit();
+int PS4_SYSV_ABI sceNpSetEventFlag();
+int PS4_SYSV_ABI sceNpSetPlatformType();
+int PS4_SYSV_ABI sceNpSignalSema();
+int PS4_SYSV_ABI sceNpStrBuildHex();
+int PS4_SYSV_ABI sceNpStrcpyToBuf();
+int PS4_SYSV_ABI sceNpStrncpyToBuf();
+int PS4_SYSV_ABI sceNpStrnParseHex();
+int PS4_SYSV_ABI sceNpStrParseHex();
+int PS4_SYSV_ABI sceNpStrToInt32();
+int PS4_SYSV_ABI sceNpStrToInt64();
+int PS4_SYSV_ABI sceNpStrToUInt32();
+int PS4_SYSV_ABI sceNpStrToUInt64();
+int PS4_SYSV_ABI sceNpThreadGetId();
+int PS4_SYSV_ABI sceNpUInt32ToStr();
+int PS4_SYSV_ABI sceNpUInt64ToStr();
+int PS4_SYSV_ABI sceNpUserGetUserIdList();
+int PS4_SYSV_ABI sceNpUtilBuildTitleId();
+int PS4_SYSV_ABI sceNpUtilCanonicalizeNpIdForPs4();
+int PS4_SYSV_ABI sceNpUtilCanonicalizeNpIdForPsp2();
+int PS4_SYSV_ABI sceNpUtilCmpAccountId();
+int PS4_SYSV_ABI sceNpUtilGetDateSetAuto();
+int PS4_SYSV_ABI sceNpUtilGetDbgCommerce();
+int PS4_SYSV_ABI sceNpUtilGetEnv();
+int PS4_SYSV_ABI sceNpUtilGetFakeDisplayNameMode();
+int PS4_SYSV_ABI sceNpUtilGetFakeRateLimit();
+int PS4_SYSV_ABI sceNpUtilGetIgnoreNpTitleId();
+int PS4_SYSV_ABI sceNpUtilGetNpDebug();
+int PS4_SYSV_ABI sceNpUtilGetNpLanguageCode();
+int PS4_SYSV_ABI sceNpUtilGetNpLanguageCode2();
+int PS4_SYSV_ABI sceNpUtilGetNpLanguageCode2Str();
+int PS4_SYSV_ABI sceNpUtilGetNpLanguageCodeStr();
+int PS4_SYSV_ABI sceNpUtilGetNpTestPatch();
+int PS4_SYSV_ABI sceNpUtilGetNthChar();
+int PS4_SYSV_ABI sceNpUtilGetShareTitleCheck();
+int PS4_SYSV_ABI sceNpUtilGetSystemLanguage();
+int PS4_SYSV_ABI sceNpUtilGetTrcNotify();
+int PS4_SYSV_ABI sceNpUtilGetWebApi2FakeRateLimit();
+int PS4_SYSV_ABI sceNpUtilGetWebApi2FakeRateLimitTarget();
+int PS4_SYSV_ABI sceNpUtilGetWebTraceSetting();
+int PS4_SYSV_ABI sceNpUtilHttpUrlEncode();
+int PS4_SYSV_ABI sceNpUtilJidToNpId();
+int PS4_SYSV_ABI sceNpUtilJsonEscape();
+int PS4_SYSV_ABI sceNpUtilJsonGetOneChar();
+int PS4_SYSV_ABI sceNpUtilJsonUnescape();
+int PS4_SYSV_ABI sceNpUtilNpIdToJid();
+int PS4_SYSV_ABI sceNpUtilNumChars();
+int PS4_SYSV_ABI sceNpUtilParseJid();
+int PS4_SYSV_ABI sceNpUtilParseTitleId();
+int PS4_SYSV_ABI sceNpUtilSerializeJid();
+int PS4_SYSV_ABI sceNpUtilXmlEscape();
+int PS4_SYSV_ABI sceNpUtilXmlGetOneChar();
+int PS4_SYSV_ABI sceNpUtilXmlUnescape();
+int PS4_SYSV_ABI sceNpWaitEventFlag();
+int PS4_SYSV_ABI sceNpWaitSema();
+int PS4_SYSV_ABI sceNpXmlParse();
+int PS4_SYSV_ABI sceNpXmlParseInit();
+int PS4_SYSV_ABI Func_00FD578C2DD966DF();
+int PS4_SYSV_ABI Func_0131A2EA80689F4C();
+int PS4_SYSV_ABI Func_01443C54863BDD20();
+int PS4_SYSV_ABI Func_01BC55BDC5C0ADAD();
+int PS4_SYSV_ABI Func_01D1ECF5750F40E8();
+int PS4_SYSV_ABI Func_020A479A74F5FBAC();
+int PS4_SYSV_ABI Func_024AF5E1D9472AB5();
+int PS4_SYSV_ABI Func_027C5D488713A6B3();
+int PS4_SYSV_ABI Func_02FE9D94C6858355();
+int PS4_SYSV_ABI Func_041F34F1C70D15C1();
+int PS4_SYSV_ABI Func_0530B1D276114248();
+int PS4_SYSV_ABI Func_065DAA14E9C73AD9();
+int PS4_SYSV_ABI Func_06AFF4E5D042BC3E();
+int PS4_SYSV_ABI Func_06EE369299F73997();
+int PS4_SYSV_ABI Func_07C92D9F8D76B617();
+int PS4_SYSV_ABI Func_07E9117498F1E4BF();
+int PS4_SYSV_ABI Func_08F3E0AF3664F275();
+int PS4_SYSV_ABI Func_0A9937C01EF21375();
+int PS4_SYSV_ABI Func_0ACBE6ACCBA3876D();
+int PS4_SYSV_ABI Func_0AE07D3354510CE6();
+int PS4_SYSV_ABI Func_0AEC3C342AE67B7C();
+int PS4_SYSV_ABI Func_0B318420C11E7C23();
+int PS4_SYSV_ABI Func_0BB6C37B03F35D89();
+int PS4_SYSV_ABI Func_0BBE8A9ACDD90FDF();
+int PS4_SYSV_ABI Func_0C7B62905E224E9C();
+int PS4_SYSV_ABI Func_0D35913117241AF9();
+int PS4_SYSV_ABI Func_0D5EE95CEED879A7();
+int PS4_SYSV_ABI Func_0D6FB24B27AB1DA2();
+int PS4_SYSV_ABI Func_0DE8032D534AC41C();
+int PS4_SYSV_ABI Func_0DF4CCA9DCA9E742();
+int PS4_SYSV_ABI Func_0E7449B1D3D98C01();
+int PS4_SYSV_ABI Func_0E77094B7750CB37();
+int PS4_SYSV_ABI Func_0ECAB397B6D50603();
+int PS4_SYSV_ABI Func_0F1DE1D1EADA2948();
+int PS4_SYSV_ABI Func_0F8AFEFA1D26BF1A();
+int PS4_SYSV_ABI Func_11881710562A6BAD();
+int PS4_SYSV_ABI Func_11AFD88BBD0C70DB();
+int PS4_SYSV_ABI Func_11E704A30A4B8877();
+int PS4_SYSV_ABI Func_125014842452F94B();
+int PS4_SYSV_ABI Func_126F0071E11CAC46();
+int PS4_SYSV_ABI Func_12926DCF35994B01();
+int PS4_SYSV_ABI Func_12CC7ABFBF31618F();
+int PS4_SYSV_ABI Func_13C4E51F44592AA2();
+int PS4_SYSV_ABI Func_15330E7C56338254();
+int PS4_SYSV_ABI Func_1566B358CABF2612();
+int PS4_SYSV_ABI Func_1625818F268F45EF();
+int PS4_SYSV_ABI Func_16D32B40D28A9AC2();
+int PS4_SYSV_ABI Func_183F4483BDBD25CD();
+int PS4_SYSV_ABI Func_1887E9E95AF62F3D();
+int PS4_SYSV_ABI Func_18A3CE95FD893D3A();
+int PS4_SYSV_ABI Func_18B3665E4854E7E9();
+int PS4_SYSV_ABI Func_1923B003948AF47E();
+int PS4_SYSV_ABI Func_19B533DA4C59A532();
+int PS4_SYSV_ABI Func_1BB399772DB68E08();
+int PS4_SYSV_ABI Func_1C0AC612D3A2971B();
+int PS4_SYSV_ABI Func_1C5599B779990A43();
+int PS4_SYSV_ABI Func_1CCBB296B04317BE();
+int PS4_SYSV_ABI Func_1CD045542FB93002();
+int PS4_SYSV_ABI Func_1DECECA673AB77B7();
+int PS4_SYSV_ABI Func_1E03E024E26C1A7F();
+int PS4_SYSV_ABI Func_1F101732BB0D7E21();
+int PS4_SYSV_ABI Func_1F4D153EC3DD47BB();
+int PS4_SYSV_ABI Func_1F7C47F63FAF0CBE();
+int PS4_SYSV_ABI Func_1FBE2EE68C0F31B6();
+int PS4_SYSV_ABI Func_2038C1628914B9C9();
+int PS4_SYSV_ABI Func_203FCB56FDB86A74();
+int PS4_SYSV_ABI Func_20569C107C6CB08C();
+int PS4_SYSV_ABI Func_20AB2D734EDE55F0();
+int PS4_SYSV_ABI Func_22B1281180FB0A5E();
+int PS4_SYSV_ABI Func_22F1AADA66A449AE();
+int PS4_SYSV_ABI Func_238B215EFFDF3D30();
+int PS4_SYSV_ABI Func_24E8EC51D149FA15();
+int PS4_SYSV_ABI Func_25728E78A3962C02();
+int PS4_SYSV_ABI Func_25E649A1C6891C05();
+int PS4_SYSV_ABI Func_264B8A38B577705D();
+int PS4_SYSV_ABI Func_266ED08DC1C82A0E();
+int PS4_SYSV_ABI Func_27BB4DE62AB58BAD();
+int PS4_SYSV_ABI Func_283AA96A196EA2EA();
+int PS4_SYSV_ABI Func_285315A390A85A94();
+int PS4_SYSV_ABI Func_29049DBB1EF3194E();
+int PS4_SYSV_ABI Func_29F7BA9C3732CB47();
+int PS4_SYSV_ABI Func_2A732DF331ACCB37();
+int PS4_SYSV_ABI Func_2AA01660EC75B6FB();
+int PS4_SYSV_ABI Func_2B37CBCE941C1681();
+int PS4_SYSV_ABI Func_2CAA3B64D0544E55();
+int PS4_SYSV_ABI Func_2CCD79617EC10A75();
+int PS4_SYSV_ABI Func_2CD8B69716AC0667();
+int PS4_SYSV_ABI Func_2D74F7C0FF9B5E9C();
+int PS4_SYSV_ABI Func_2DCA5A8080544E95();
+int PS4_SYSV_ABI Func_2E69F2743CE7CE57();
+int PS4_SYSV_ABI Func_2EAF1F3BAFF0527D();
+int PS4_SYSV_ABI Func_31493E55BB4E8F66();
+int PS4_SYSV_ABI Func_317EDCAD00FB5F5E();
+int PS4_SYSV_ABI Func_31E01CFA8A18CDA2();
+int PS4_SYSV_ABI Func_32AFD782A061B526();
+int PS4_SYSV_ABI Func_32B5CDEB093B8189();
+int PS4_SYSV_ABI Func_34155152513C93AE();
+int PS4_SYSV_ABI Func_34E4EFFF8EF6C9FE();
+int PS4_SYSV_ABI Func_3572FA0D5C54563B();
+int PS4_SYSV_ABI Func_367C479B264E0DB9();
+int PS4_SYSV_ABI Func_36884FBC964B29CC();
+int PS4_SYSV_ABI Func_3860081BB7559949();
+int PS4_SYSV_ABI Func_39314F7E674AB132();
+int PS4_SYSV_ABI Func_3A02E780FCC556A5();
+int PS4_SYSV_ABI Func_3A17B885BA4849B6();
+int PS4_SYSV_ABI Func_3A38EACAEA5E23A4();
+int PS4_SYSV_ABI Func_3B34A5E07F0DBC1F();
+int PS4_SYSV_ABI Func_3B4E8FFC00FC7EA4();
+int PS4_SYSV_ABI Func_3BAB18FDA235107A();
+int PS4_SYSV_ABI Func_3BDF9996A0A33F11();
+int PS4_SYSV_ABI Func_3C1952F1A45CC37A();
+int PS4_SYSV_ABI Func_3CA37906CDB05F3B();
+int PS4_SYSV_ABI Func_3CDB2908ACEE3A6F();
+int PS4_SYSV_ABI Func_3D3ED165F2BDCD33();
+int PS4_SYSV_ABI Func_3DA4D7D1575FCDCE();
+int PS4_SYSV_ABI Func_3DDFB612CD0BC769();
+int PS4_SYSV_ABI Func_3E0415E167DEADC7();
+int PS4_SYSV_ABI Func_3E7E9F0F1581C1E6();
+int PS4_SYSV_ABI Func_3ED389DB8280ED65();
+int PS4_SYSV_ABI Func_3F0C7F6C0C35487D();
+int PS4_SYSV_ABI Func_3FDA7200389EF0D2();
+int PS4_SYSV_ABI Func_3FF3C258BA516E58();
+int PS4_SYSV_ABI Func_4029453F628A3C5D();
+int PS4_SYSV_ABI Func_405826DDB4AE538E();
+int PS4_SYSV_ABI Func_405A926759F25865();
+int PS4_SYSV_ABI Func_406608FDEE7AE88A();
+int PS4_SYSV_ABI Func_40DDA5558C17DDCF();
+int PS4_SYSV_ABI Func_419D12E52FF60664();
+int PS4_SYSV_ABI Func_4296E539474BE77F();
+int PS4_SYSV_ABI Func_42F41FC563CC3654();
+int PS4_SYSV_ABI Func_43CCC86F4C93026A();
+int PS4_SYSV_ABI Func_4409F60BDABC65E1();
+int PS4_SYSV_ABI Func_4563C70AEC675382();
+int PS4_SYSV_ABI Func_45E66370219BD05E();
+int PS4_SYSV_ABI Func_466A54F072785696();
+int PS4_SYSV_ABI Func_46CD2536976F209A();
+int PS4_SYSV_ABI Func_4863717BD2FDD157();
+int PS4_SYSV_ABI Func_4902EBD19A263149();
+int PS4_SYSV_ABI Func_4904F7FE8D83F40C();
+int PS4_SYSV_ABI Func_4A5E13F784ABFCE7();
+int PS4_SYSV_ABI Func_4B65EEB135C12781();
+int PS4_SYSV_ABI Func_4C19D49978DA85E2();
+int PS4_SYSV_ABI Func_4DE5D620FF66F136();
+int PS4_SYSV_ABI Func_4E170C12B57A8F9E();
+int PS4_SYSV_ABI Func_4E2F3FA405C3260C();
+int PS4_SYSV_ABI Func_4EA9350577513B4D();
+int PS4_SYSV_ABI Func_4F78EB6FC4B5F21F();
+int PS4_SYSV_ABI Func_50348BE4331117B7();
+int PS4_SYSV_ABI Func_508C7E8CDD281CAA();
+int PS4_SYSV_ABI Func_521C1D2C028F5A7E();
+int PS4_SYSV_ABI Func_522FF24A35E67291();
+int PS4_SYSV_ABI Func_5470FE90C25CDD4C();
+int PS4_SYSV_ABI Func_557F260F9A4ACD18();
+int PS4_SYSV_ABI Func_5586F97209F391EB();
+int PS4_SYSV_ABI Func_55B2C9B7ADA95C3C();
+int PS4_SYSV_ABI Func_55B488A3A540B936();
+int PS4_SYSV_ABI Func_5642DFE82AF43143();
+int PS4_SYSV_ABI Func_574E046F294AE187();
+int PS4_SYSV_ABI Func_578926EBF8AA6CBF();
+int PS4_SYSV_ABI Func_585DA5FC650896BC();
+int PS4_SYSV_ABI Func_58D6EB27349EC276();
+int PS4_SYSV_ABI Func_5906B7317949872D();
+int PS4_SYSV_ABI Func_5910B5614335BE70();
+int PS4_SYSV_ABI Func_593D7DA8911F08C9();
+int PS4_SYSV_ABI Func_59757FE6A93B0D53();
+int PS4_SYSV_ABI Func_598E60F862B1141E();
+int PS4_SYSV_ABI Func_5A45351666680DAF();
+int PS4_SYSV_ABI Func_5AABE9EA702E6A7F();
+int PS4_SYSV_ABI Func_5AEA4AE472355B80();
+int PS4_SYSV_ABI Func_5B20E53CDE598741();
+int PS4_SYSV_ABI Func_5B480B59FAE947E0();
+int PS4_SYSV_ABI Func_5B5EEC23690AB9BD();
+int PS4_SYSV_ABI Func_5C0AC5B0AF3EDAE0();
+int PS4_SYSV_ABI Func_5D2E999BEA0762D4();
+int PS4_SYSV_ABI Func_5D55BBFD45110E16();
+int PS4_SYSV_ABI Func_5DEE15403D2BB5FD();
+int PS4_SYSV_ABI Func_6020C708CA74B130();
+int PS4_SYSV_ABI Func_606E1415503C34D2();
+int PS4_SYSV_ABI Func_612140E8EE9A693E();
+int PS4_SYSV_ABI Func_61F13F551DAF61DF();
+int PS4_SYSV_ABI Func_6206D39131752328();
+int PS4_SYSV_ABI Func_621D4543EF0344DE();
+int PS4_SYSV_ABI Func_6259A9A8E56D0273();
+int PS4_SYSV_ABI Func_625F9C7016346F4E();
+int PS4_SYSV_ABI Func_62EF8DF746CD8C4A();
+int PS4_SYSV_ABI Func_636D2A99FD1E6B2B();
+int PS4_SYSV_ABI Func_68013EDF66FE7425();
+int PS4_SYSV_ABI Func_6971F7067DD639D1();
+int PS4_SYSV_ABI Func_69896ADB3AB410B2();
+int PS4_SYSV_ABI Func_6A1389AA6E561387();
+int PS4_SYSV_ABI Func_6A5560D89F12B2E7();
+int PS4_SYSV_ABI Func_6ABF99CF854ABCF1();
+int PS4_SYSV_ABI Func_6B4FDDC6500D8DCB();
+int PS4_SYSV_ABI Func_6CA11D5B49D1928A();
+int PS4_SYSV_ABI Func_6D6C0FB61E6D0715();
+int PS4_SYSV_ABI Func_6D750745FE1348F5();
+int PS4_SYSV_ABI Func_6E1AF3F9D09914BE();
+int PS4_SYSV_ABI Func_6E53ED4C08B2A521();
+int PS4_SYSV_ABI Func_6EF43ACA1ED6B968();
+int PS4_SYSV_ABI Func_6F6FA09F3E1B6A60();
+int PS4_SYSV_ABI Func_7035C340C7195901();
+int PS4_SYSV_ABI Func_7038E21CB5CF641B();
+int PS4_SYSV_ABI Func_706345DCDA5BA44D();
+int PS4_SYSV_ABI Func_7120714EBF10BF1F();
+int PS4_SYSV_ABI Func_713D28A91BC803DD();
+int PS4_SYSV_ABI Func_7153BD76A53AA012();
+int PS4_SYSV_ABI Func_715C625CC7041B6B();
+int PS4_SYSV_ABI Func_71E467BDB18711D0();
+int PS4_SYSV_ABI Func_720D17965C1F4E3F();
+int PS4_SYSV_ABI Func_734380C9BCF65B9A();
+int PS4_SYSV_ABI Func_73F4C08CCD4BBCCF();
+int PS4_SYSV_ABI Func_74403101B7B29D46();
+int PS4_SYSV_ABI Func_7525B081ACD66FF4();
+int PS4_SYSV_ABI Func_75BF4477C13A05CA();
+int PS4_SYSV_ABI Func_7609793F5987C6F7();
+int PS4_SYSV_ABI Func_7616ED01B04769AA();
+int PS4_SYSV_ABI Func_764F873D91A124D8();
+int PS4_SYSV_ABI Func_7706F1E123059565();
+int PS4_SYSV_ABI Func_77F2D07EB6D806E6();
+int PS4_SYSV_ABI Func_79C3704CDCD59E57();
+int PS4_SYSV_ABI Func_79DA0BBA21351545();
+int PS4_SYSV_ABI Func_79FA2447B5F3F0C4();
+int PS4_SYSV_ABI Func_7A4D6F65FF6195A5();
+int PS4_SYSV_ABI Func_7B3195CD114DECE7();
+int PS4_SYSV_ABI Func_7B3238F2301AD36D();
+int PS4_SYSV_ABI Func_7C77FC70750A3266();
+int PS4_SYSV_ABI Func_7D23A9DC459D6D18();
+int PS4_SYSV_ABI Func_7D5988C748D0A05F();
+int PS4_SYSV_ABI Func_7D9597147A99F4F4();
+int PS4_SYSV_ABI Func_7E2953F407DD8346();
+int PS4_SYSV_ABI Func_7EE34E5099709B32();
+int PS4_SYSV_ABI Func_80470E5511D5CA00();
+int PS4_SYSV_ABI Func_807179701C08F069();
+int PS4_SYSV_ABI Func_8096E81FFAF24E46();
+int PS4_SYSV_ABI Func_80B764F4F1B87042();
+int PS4_SYSV_ABI Func_80BF691438AD008B();
+int PS4_SYSV_ABI Func_80CF6CFC96012442();
+int PS4_SYSV_ABI Func_80EA772F8C0519FD();
+int PS4_SYSV_ABI Func_81D0AFD0084D327A();
+int PS4_SYSV_ABI Func_821EB8A72176FD67();
+int PS4_SYSV_ABI Func_82D2FAB54127273F();
+int PS4_SYSV_ABI Func_836AE669C42A59E9();
+int PS4_SYSV_ABI Func_8559A25BFEC3518C();
+int PS4_SYSV_ABI Func_85C1F66C767A49D2();
+int PS4_SYSV_ABI Func_8689ED1383F87BA7();
+int PS4_SYSV_ABI Func_8796CD9E5355D3A6();
+int PS4_SYSV_ABI Func_87D37EB6DDC19D99();
+int PS4_SYSV_ABI Func_880AA48F70F84FDD();
+int PS4_SYSV_ABI Func_897B07562093665B();
+int PS4_SYSV_ABI Func_8ACAF55F16368087();
+int PS4_SYSV_ABI Func_8AE8A5589B30D4E0();
+int PS4_SYSV_ABI Func_8AE997909831B331();
+int PS4_SYSV_ABI Func_8B2D640BE0D0FB99();
+int PS4_SYSV_ABI Func_8B3D9AB4668DAECB();
+int PS4_SYSV_ABI Func_8B5EFAAAACE0B46C();
+int PS4_SYSV_ABI Func_8C27943F40A988DB();
+int PS4_SYSV_ABI Func_8C54096C75F5F2D0();
+int PS4_SYSV_ABI Func_8D7663A0A5168814();
+int PS4_SYSV_ABI Func_8E618F509994FAD7();
+int PS4_SYSV_ABI Func_8F19E6CC064E2B98();
+int PS4_SYSV_ABI Func_8F6A8AEAEE922FF5();
+int PS4_SYSV_ABI Func_9010E1AD8EBBFBCA();
+int PS4_SYSV_ABI Func_90A955A0E7001AE9();
+int PS4_SYSV_ABI Func_90F9D6067FEECC05();
+int PS4_SYSV_ABI Func_9348F3D19546A1DA();
+int PS4_SYSV_ABI Func_93D3C011DB19388A();
+int PS4_SYSV_ABI Func_956E7A4FD9F89103();
+int PS4_SYSV_ABI Func_95F699E042C3E40F();
+int PS4_SYSV_ABI Func_96877B39AA0E8735();
+int PS4_SYSV_ABI Func_96CE07C49ED234EA();
+int PS4_SYSV_ABI Func_976BB178235B5681();
+int PS4_SYSV_ABI Func_978C0B25E588C4D6();
+int PS4_SYSV_ABI Func_98BA2612BEF238D6();
+int PS4_SYSV_ABI Func_995BDD4931AF9137();
+int PS4_SYSV_ABI Func_9966E39A926B7250();
+int PS4_SYSV_ABI Func_99C2306F18963464();
+int PS4_SYSV_ABI Func_99C92C613B776BA7();
+int PS4_SYSV_ABI Func_9A4E4B938CC8AD39();
+int PS4_SYSV_ABI Func_9B23F7B4B7F72081();
+int PS4_SYSV_ABI Func_9C0EAEEAE705A8DB();
+int PS4_SYSV_ABI Func_9D47AC59545DE9E8();
+int PS4_SYSV_ABI Func_A13052D8B1B2ACFA();
+int PS4_SYSV_ABI Func_A1AA43E3A78F6F62();
+int PS4_SYSV_ABI Func_A1E48CDF54649DC9();
+int PS4_SYSV_ABI Func_A2E7DEE5B0AF5D14();
+int PS4_SYSV_ABI Func_A2F5C7FD9FF113F5();
+int PS4_SYSV_ABI Func_A36296E2269D46BC();
+int PS4_SYSV_ABI Func_A3EE2A7B9F0D88AF();
+int PS4_SYSV_ABI Func_A4471F9F7E0BFA82();
+int PS4_SYSV_ABI Func_A449BBA521EA34E1();
+int PS4_SYSV_ABI Func_A48E666C334E726C();
+int PS4_SYSV_ABI Func_A49B7449B4DDE69C();
+int PS4_SYSV_ABI Func_A5748451125C9EA4();
+int PS4_SYSV_ABI Func_A690A28D648CC176();
+int PS4_SYSV_ABI Func_A6A86DE1B1CBB1D9();
+int PS4_SYSV_ABI Func_A8F2BB7B815740A1();
+int PS4_SYSV_ABI Func_A93F64C06A6F7397();
+int PS4_SYSV_ABI Func_AB35925FC97D6AA3();
+int PS4_SYSV_ABI Func_AC014AA2C991FA29();
+int PS4_SYSV_ABI Func_AC06E10901404AEB();
+int PS4_SYSV_ABI Func_AC75C68813523505();
+int PS4_SYSV_ABI Func_AD441BC497082C3E();
+int PS4_SYSV_ABI Func_AD4F25F021D354C3();
+int PS4_SYSV_ABI Func_ADFA04A85541A4FE();
+int PS4_SYSV_ABI Func_AE9610A6B5217A23();
+int PS4_SYSV_ABI Func_AF201923826F0A58();
+int PS4_SYSV_ABI Func_AFC021B4389CA3FA();
+int PS4_SYSV_ABI Func_B015E999A3373D8F();
+int PS4_SYSV_ABI Func_B0384B86107FC652();
+int PS4_SYSV_ABI Func_B0C630653B316563();
+int PS4_SYSV_ABI Func_B100DCCD88D5C73D();
+int PS4_SYSV_ABI Func_B11A3FEA5E4D9EA4();
+int PS4_SYSV_ABI Func_B2E7F8DC199C0B93();
+int PS4_SYSV_ABI Func_B3AB61A296F6DDC8();
+int PS4_SYSV_ABI Func_B3F32F6AE619EC82();
+int PS4_SYSV_ABI Func_B4227AB213BF8CF5();
+int PS4_SYSV_ABI Func_B4652BF42B604360();
+int PS4_SYSV_ABI Func_B536C1F13BFE97CB();
+int PS4_SYSV_ABI Func_B645CC264184BC89();
+int PS4_SYSV_ABI Func_B67E17B1582C6FBD();
+int PS4_SYSV_ABI Func_B6D047C5D7695A4D();
+int PS4_SYSV_ABI Func_B75ED8E1EA62EFC7();
+int PS4_SYSV_ABI Func_B7A9A944DBD7E100();
+int PS4_SYSV_ABI Func_B7C4E75BE94F31F3();
+int PS4_SYSV_ABI Func_B888B1F92C464121();
+int PS4_SYSV_ABI Func_B8DEC22564AA057B();
+int PS4_SYSV_ABI Func_B9BADD1CBBBAE4F8();
+int PS4_SYSV_ABI Func_BAA9F7169C85E59F();
+int PS4_SYSV_ABI Func_BAEE5C38908D62DB();
+int PS4_SYSV_ABI Func_BCC855EB25183F84();
+int PS4_SYSV_ABI Func_BD01F637029C7364();
+int PS4_SYSV_ABI Func_BDD29F5AC7077E53();
+int PS4_SYSV_ABI Func_BED83DD33ECAD50D();
+int PS4_SYSV_ABI Func_BEE7D5D098ABF728();
+int PS4_SYSV_ABI Func_C0DB15CCF59AE62C();
+int PS4_SYSV_ABI Func_C1C229FEE0FD60FA();
+int PS4_SYSV_ABI Func_C228B9AD68298E98();
+int PS4_SYSV_ABI Func_C298525CEF6FB283();
+int PS4_SYSV_ABI Func_C350F09351F6D6B5();
+int PS4_SYSV_ABI Func_C3742E80FA580319();
+int PS4_SYSV_ABI Func_C3C9853D5D4D45D4();
+int PS4_SYSV_ABI Func_C3F5DAD4FB9FC340();
+int PS4_SYSV_ABI Func_C45FB0E4CCE9AED6();
+int PS4_SYSV_ABI Func_C4979CB948B7E3C7();
+int PS4_SYSV_ABI Func_C49B25BA16CF0B8C();
+int PS4_SYSV_ABI Func_C551345D9631201E();
+int PS4_SYSV_ABI Func_C57A294421368298();
+int PS4_SYSV_ABI Func_C5DC91CAD721D628();
+int PS4_SYSV_ABI Func_C6DECEE589135357();
+int PS4_SYSV_ABI Func_C81F8B20D67AC78D();
+int PS4_SYSV_ABI Func_C820FA56FAC87BEA();
+int PS4_SYSV_ABI Func_C878EA9114C5E490();
+int PS4_SYSV_ABI Func_C8A813EBFF477509();
+int PS4_SYSV_ABI Func_C966A663D5A35482();
+int PS4_SYSV_ABI Func_C97C4C67FD3674D3();
+int PS4_SYSV_ABI Func_C990550F15848B07();
+int PS4_SYSV_ABI Func_CA59737A8EC1BBBE();
+int PS4_SYSV_ABI Func_CAC5FDE8F80D7B65();
+int PS4_SYSV_ABI Func_CB135B30D0639B83();
+int PS4_SYSV_ABI Func_CB8A1AAA61F64C3A();
+int PS4_SYSV_ABI Func_CB9E674672580757();
+int PS4_SYSV_ABI Func_CC2B9D25EAEAAB1D();
+int PS4_SYSV_ABI Func_CD1B252BBEDF5B53();
+int PS4_SYSV_ABI Func_CF003BE90CBE1A27();
+int PS4_SYSV_ABI Func_CF008E34884AC1E2();
+int PS4_SYSV_ABI Func_D0B8F4B3A3687AB2();
+int PS4_SYSV_ABI Func_D0EE19B8E91F60F5();
+int PS4_SYSV_ABI Func_D12B9294BD0E0F56();
+int PS4_SYSV_ABI Func_D1CC8626D8FA328B();
+int PS4_SYSV_ABI Func_D2FA2BB9EB8B63AC();
+int PS4_SYSV_ABI Func_D32197880CF93CEB();
+int PS4_SYSV_ABI Func_D326F5C26CC81B8E();
+int PS4_SYSV_ABI Func_D4FA06B95A321B7A();
+int PS4_SYSV_ABI Func_D52A37A901E04B21();
+int PS4_SYSV_ABI Func_D5504DFC399AB400();
+int PS4_SYSV_ABI Func_D56105CB27F8F5DC();
+int PS4_SYSV_ABI Func_D568AB19235ECB19();
+int PS4_SYSV_ABI Func_D6DF7BF6639FE611();
+int PS4_SYSV_ABI Func_D8608A903119D746();
+int PS4_SYSV_ABI Func_D9E8FC707D59914D();
+int PS4_SYSV_ABI Func_D9F079E62DEE5B29();
+int PS4_SYSV_ABI Func_DA17CE4F29748536();
+int PS4_SYSV_ABI Func_DA40B9EFD7F61185();
+int PS4_SYSV_ABI Func_DA6B274FEBC2666A();
+int PS4_SYSV_ABI Func_DAD01535C87A51FC();
+int PS4_SYSV_ABI Func_DB4511D448510EC4();
+int PS4_SYSV_ABI Func_DB8EF1FFFC66269C();
+int PS4_SYSV_ABI Func_DBB508FA1B9DA8F7();
+int PS4_SYSV_ABI Func_DC59C9B870B729A2();
+int PS4_SYSV_ABI Func_DC669ED6CBF6751C();
+int PS4_SYSV_ABI Func_DCB8A2849A41C991();
+int PS4_SYSV_ABI Func_DD8F9916D7F03AF7();
+int PS4_SYSV_ABI Func_DDC33F2F4E480C2A();
+int PS4_SYSV_ABI Func_DE0B420BDE8B22D7();
+int PS4_SYSV_ABI Func_E0C0BC29898FE370();
+int PS4_SYSV_ABI Func_E0CD893E46FB55BA();
+int PS4_SYSV_ABI Func_E25530164B7F659F();
+int PS4_SYSV_ABI Func_E3682F43FDF76C58();
+int PS4_SYSV_ABI Func_E38177E1C78A80FA();
+int PS4_SYSV_ABI Func_E3CA74CFF965DF0A();
+int PS4_SYSV_ABI Func_E45BB191B49B2ED9();
+int PS4_SYSV_ABI Func_E465B9D6B60E6D7D();
+int PS4_SYSV_ABI Func_E4D82876C296C38A();
+int PS4_SYSV_ABI Func_E4DDB5350FA5B538();
+int PS4_SYSV_ABI Func_E54BFF6FB72BC7BE();
+int PS4_SYSV_ABI Func_E592A93203020BBB();
+int PS4_SYSV_ABI Func_E5A44AF6D7D48AFD();
+int PS4_SYSV_ABI Func_E639A97CF9FF1430();
+int PS4_SYSV_ABI Func_E6AC0179E48A8927();
+int PS4_SYSV_ABI Func_E751596682775D83();
+int PS4_SYSV_ABI Func_E788B1E52EF82702();
+int PS4_SYSV_ABI Func_E94F17613F5C9D31();
+int PS4_SYSV_ABI Func_E9590113128D55E0();
+int PS4_SYSV_ABI Func_E9E0B0DD12560B16();
+int PS4_SYSV_ABI Func_EAF5C8ECE64C7B05();
+int PS4_SYSV_ABI Func_EB98BF5C42D4A7EB();
+int PS4_SYSV_ABI Func_EBABC4AAC43A468C();
+int PS4_SYSV_ABI Func_EBF00085F082CC8B();
+int PS4_SYSV_ABI Func_ECB659EE058D06AF();
+int PS4_SYSV_ABI Func_ECF096AB751487AE();
+int PS4_SYSV_ABI Func_EE5A271701DB33C0();
+int PS4_SYSV_ABI Func_EF64CB6A1625248E();
+int PS4_SYSV_ABI Func_EF6C8A357C7ED863();
+int PS4_SYSV_ABI Func_F00FE94F7E699994();
+int PS4_SYSV_ABI Func_F1A51DBA30329038();
+int PS4_SYSV_ABI Func_F216E766A90FDC12();
+int PS4_SYSV_ABI Func_F2A10584ABE5D82C();
+int PS4_SYSV_ABI Func_F2D99D395E5421A3();
+int PS4_SYSV_ABI Func_F38001E528BA1371();
+int PS4_SYSV_ABI Func_F39EC9C8FA7687B3();
+int PS4_SYSV_ABI Func_F3AFFFDCD632775C();
+int PS4_SYSV_ABI Func_F3B8DFF33748BFD3();
+int PS4_SYSV_ABI Func_F5E47F9550F7A147();
+int PS4_SYSV_ABI Func_F6E93714D1A939CF();
+int PS4_SYSV_ABI Func_F6FD19AD48E4EF09();
+int PS4_SYSV_ABI Func_F744EBFC620F7CBF();
+int PS4_SYSV_ABI Func_F76E4525ACBACC7F();
+int PS4_SYSV_ABI Func_F7957A48882F42CB();
+int PS4_SYSV_ABI Func_F7A80B07809BA838();
+int PS4_SYSV_ABI Func_F8571C6CC5B6B59D();
+int PS4_SYSV_ABI Func_F9787CFA873836FB();
+int PS4_SYSV_ABI Func_FA789F6D34D383F8();
+int PS4_SYSV_ABI Func_FABA574083AC1E6C();
+int PS4_SYSV_ABI Func_FC04FDBBAE368FB7();
+int PS4_SYSV_ABI Func_FD2DAFBF2E40EEE7();
+int PS4_SYSV_ABI Func_FD55EE6D35F950AD();
+int PS4_SYSV_ABI Func_FE55EE32098D0D58();
+int PS4_SYSV_ABI Func_FE79841022E1DA1C();
+int PS4_SYSV_ABI Func_FFF4A3E279FB44A7();
+
+void RegisterlibSceNpCommon(Core::Loader::SymbolsResolver* sym);
+} // namespace Libraries::NpCommon
\ No newline at end of file
diff --git a/src/core/libraries/np_common/np_common_error.h b/src/core/libraries/np_common/np_common_error.h
new file mode 100644
index 000000000..5da6e6a90
--- /dev/null
+++ b/src/core/libraries/np_common/np_common_error.h
@@ -0,0 +1,9 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "core/libraries/error_codes.h"
+
+constexpr int ORBIS_NP_ERROR_INVALID_ARGUMENT = 0x80550003;
+constexpr int ORBIS_NP_UTIL_ERROR_NOT_MATCH = 0x80550609;
\ No newline at end of file
diff --git a/src/core/libraries/np_manager/np_manager.cpp b/src/core/libraries/np_manager/np_manager.cpp
index 87d752c69..e26c5a830 100644
--- a/src/core/libraries/np_manager/np_manager.cpp
+++ b/src/core/libraries/np_manager/np_manager.cpp
@@ -1,7 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
-#include "common/config.h"
#include "common/logging/log.h"
#include "core/libraries/error_codes.h"
#include "core/libraries/libs.h"
@@ -2510,7 +2509,7 @@ struct NpStateCallbackForNpToolkit {
NpStateCallbackForNpToolkit NpStateCbForNp;
int PS4_SYSV_ABI sceNpCheckCallbackForLib() {
- Core::ExecuteGuest(NpStateCbForNp.func, 1, OrbisNpState::SignedOut, NpStateCbForNp.userdata);
+ LOG_DEBUG(Lib_NpManager, "(STUBBED) called");
return ORBIS_OK;
}
diff --git a/src/core/libraries/np_web_api/np_web_api.cpp b/src/core/libraries/np_web_api/np_web_api.cpp
new file mode 100644
index 000000000..8a7979978
--- /dev/null
+++ b/src/core/libraries/np_web_api/np_web_api.cpp
@@ -0,0 +1,692 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "common/logging/log.h"
+#include "core/libraries/error_codes.h"
+#include "core/libraries/libs.h"
+#include "core/libraries/np_web_api/np_web_api.h"
+
+namespace Libraries::NpWebApi {
+
+s32 PS4_SYSV_ABI sceNpWebApiCreateContext() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiCreatePushEventFilter() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiCreateServicePushEventFilter() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiDeletePushEventFilter() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiDeleteServicePushEventFilter() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiRegisterExtdPushEventCallback() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiRegisterNotificationCallback() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiRegisterPushEventCallback() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiRegisterServicePushEventCallback() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiUnregisterNotificationCallback() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiUnregisterPushEventCallback() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiUnregisterServicePushEventCallback() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiAbortHandle() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiAbortRequest() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiAddHttpRequestHeader() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiAddMultipartPart() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiCheckTimeout() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiClearAllUnusedConnection() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiClearUnusedConnection() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiCreateContextA() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiCreateExtdPushEventFilter() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiCreateHandle() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiCreateMultipartRequest() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiCreateRequest() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiDeleteContext() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiDeleteExtdPushEventFilter() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiDeleteHandle() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiDeleteRequest() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiGetConnectionStats() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiGetErrorCode() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiGetHttpResponseHeaderValue() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiGetHttpResponseHeaderValueLength() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiGetHttpStatusCode() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiGetMemoryPoolStats() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiInitialize() {
+ LOG_ERROR(Lib_NpWebApi, "(DUMMY) called");
+ static s32 id = 0;
+ return ++id;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiInitializeForPresence() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiIntCreateCtxIndExtdPushEventFilter() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiIntCreateRequest() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiIntCreateServicePushEventFilter() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiIntInitialize() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiIntRegisterServicePushEventCallback() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiIntRegisterServicePushEventCallbackA() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiReadData() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiRegisterExtdPushEventCallbackA() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiSendMultipartRequest() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiSendMultipartRequest2() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiSendRequest() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiSendRequest2() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiSetHandleTimeout() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiSetMaxConnection() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiSetMultipartContentType() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiSetRequestTimeout() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiTerminate() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiUnregisterExtdPushEventCallback() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiUtilityParseNpId() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI sceNpWebApiVshInitialize() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_064C4ED1EDBEB9E8() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_0783955D4E9563DA() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_1A6D77F3FD8323A8() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_1E0693A26FE0F954() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_24A9B5F1D77000CF() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_24AAA6F50E4C2361() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_24D8853D6B47FC79() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_279B3E9C7C4A9DC5() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_28461E29E9F8D697() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_3C29624704FAB9E0() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_3F027804ED2EC11E() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_4066C94E782997CD() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_47C85356815DBE90() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_4FCE8065437E3B87() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_536280BE3DABB521() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_57A0E1BC724219F3() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_5819749C040B6637() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_6198D0C825E86319() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_61F2B9E8AB093743() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_6BC388E6113F0D44() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_7500F0C4F8DC2D16() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_75A03814C7E9039F() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_789D6026C521416E() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_7DED63D06399EFFF() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_7E55A2DCC03D395A() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_7E6C8F9FB86967F4() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_7F04B7D4A7D41E80() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_8E167252DFA5C957() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_95D0046E504E3B09() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_97284BFDA4F18FDF() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_99E32C1F4737EAB4() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_9CFF661EA0BCBF83() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_9EB0E1F467AC3B29() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_A2318FE6FBABFAA3() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_BA07A2E1BF7B3971() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_BD0803EEE0CC29A0() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_BE6F4E5524BB135F() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_C0D490EB481EA4D0() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_C175D392CA6D084A() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_CD0136AF165D2F2F() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_D1C0ADB7B52FEAB5() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_E324765D18EE4D12() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_E789F980D907B653() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+s32 PS4_SYSV_ABI Func_F9A32E8685627436() {
+ LOG_ERROR(Lib_NpWebApi, "(STUBBED) called");
+ return ORBIS_OK;
+}
+
+void RegisterlibSceNpWebApi(Core::Loader::SymbolsResolver* sym) {
+ LIB_FUNCTION("x1Y7yiYSk7c", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreateContext);
+ LIB_FUNCTION("y5Ta5JCzQHY", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreatePushEventFilter);
+ LIB_FUNCTION("sIFx734+xys", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreateServicePushEventFilter);
+ LIB_FUNCTION("zE+R6Rcx3W0", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiDeletePushEventFilter);
+ LIB_FUNCTION("PfQ+f6ws764", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiDeleteServicePushEventFilter);
+ LIB_FUNCTION("vrM02A5Gy1M", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiRegisterExtdPushEventCallback);
+ LIB_FUNCTION("HVgWmGIOKdk", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiRegisterNotificationCallback);
+ LIB_FUNCTION("PfSTDCgNMgc", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiRegisterPushEventCallback);
+ LIB_FUNCTION("kJQJE0uKm5w", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiRegisterServicePushEventCallback);
+ LIB_FUNCTION("wjYEvo4xbcA", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiUnregisterNotificationCallback);
+ LIB_FUNCTION("qK4o2656W4w", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiUnregisterPushEventCallback);
+ LIB_FUNCTION("2edrkr0c-wg", "libSceNpWebApiCompat", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiUnregisterServicePushEventCallback);
+ LIB_FUNCTION("WKcm4PeyJww", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiAbortHandle);
+ LIB_FUNCTION("JzhYTP2fG18", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiAbortRequest);
+ LIB_FUNCTION("joRjtRXTFoc", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiAddHttpRequestHeader);
+ LIB_FUNCTION("19KgfJXgM+U", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiAddMultipartPart);
+ LIB_FUNCTION("gVNNyxf-1Sg", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCheckTimeout);
+ LIB_FUNCTION("KQIkDGf80PQ", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiClearAllUnusedConnection);
+ LIB_FUNCTION("f-pgaNSd1zc", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiClearUnusedConnection);
+ LIB_FUNCTION("x1Y7yiYSk7c", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreateContext);
+ LIB_FUNCTION("zk6c65xoyO0", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreateContextA);
+ LIB_FUNCTION("M2BUB+DNEGE", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreateExtdPushEventFilter);
+ LIB_FUNCTION("79M-JqvvGo0", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreateHandle);
+ LIB_FUNCTION("KBxgeNpoRIQ", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreateMultipartRequest);
+ LIB_FUNCTION("y5Ta5JCzQHY", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreatePushEventFilter);
+ LIB_FUNCTION("rdgs5Z1MyFw", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreateRequest);
+ LIB_FUNCTION("sIFx734+xys", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiCreateServicePushEventFilter);
+ LIB_FUNCTION("XUjdsSTTZ3U", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiDeleteContext);
+ LIB_FUNCTION("pfaJtb7SQ80", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiDeleteExtdPushEventFilter);
+ LIB_FUNCTION("5Mn7TYwpl30", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiDeleteHandle);
+ LIB_FUNCTION("zE+R6Rcx3W0", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiDeletePushEventFilter);
+ LIB_FUNCTION("noQgleu+KLE", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiDeleteRequest);
+ LIB_FUNCTION("PfQ+f6ws764", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiDeleteServicePushEventFilter);
+ LIB_FUNCTION("UJ8H+7kVQUE", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiGetConnectionStats);
+ LIB_FUNCTION("2qSZ0DgwTsc", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiGetErrorCode);
+ LIB_FUNCTION("VwJ5L0Higg0", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiGetHttpResponseHeaderValue);
+ LIB_FUNCTION("743ZzEBzlV8", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiGetHttpResponseHeaderValueLength);
+ LIB_FUNCTION("k210oKgP80Y", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiGetHttpStatusCode);
+ LIB_FUNCTION("3OnubUs02UM", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiGetMemoryPoolStats);
+ LIB_FUNCTION("G3AnLNdRBjE", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, sceNpWebApiInitialize);
+ LIB_FUNCTION("FkuwsD64zoQ", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiInitializeForPresence);
+ LIB_FUNCTION("c1pKoztonB8", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiIntCreateCtxIndExtdPushEventFilter);
+ LIB_FUNCTION("N2Jbx4tIaQ4", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiIntCreateRequest);
+ LIB_FUNCTION("TZSep4xB4EY", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiIntCreateServicePushEventFilter);
+ LIB_FUNCTION("8Vjplhyyc44", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiIntInitialize);
+ LIB_FUNCTION("VjVukb2EWPc", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiIntRegisterServicePushEventCallback);
+ LIB_FUNCTION("sfq23ZVHVEw", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiIntRegisterServicePushEventCallbackA);
+ LIB_FUNCTION("CQtPRSF6Ds8", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, sceNpWebApiReadData);
+ LIB_FUNCTION("vrM02A5Gy1M", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiRegisterExtdPushEventCallback);
+ LIB_FUNCTION("jhXKGQJ4egI", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiRegisterExtdPushEventCallbackA);
+ LIB_FUNCTION("HVgWmGIOKdk", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiRegisterNotificationCallback);
+ LIB_FUNCTION("PfSTDCgNMgc", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiRegisterPushEventCallback);
+ LIB_FUNCTION("kJQJE0uKm5w", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiRegisterServicePushEventCallback);
+ LIB_FUNCTION("KCItz6QkeGs", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiSendMultipartRequest);
+ LIB_FUNCTION("DsPOTEvSe7M", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiSendMultipartRequest2);
+ LIB_FUNCTION("kVbL4hL3K7w", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiSendRequest);
+ LIB_FUNCTION("KjNeZ-29ysQ", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiSendRequest2);
+ LIB_FUNCTION("6g6q-g1i4XU", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiSetHandleTimeout);
+ LIB_FUNCTION("gRiilVCvfAI", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiSetMaxConnection);
+ LIB_FUNCTION("i0dr6grIZyc", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiSetMultipartContentType);
+ LIB_FUNCTION("qWcbJkBj1Lg", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiSetRequestTimeout);
+ LIB_FUNCTION("asz3TtIqGF8", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, sceNpWebApiTerminate);
+ LIB_FUNCTION("PqCY25FMzPs", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiUnregisterExtdPushEventCallback);
+ LIB_FUNCTION("wjYEvo4xbcA", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiUnregisterNotificationCallback);
+ LIB_FUNCTION("qK4o2656W4w", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiUnregisterPushEventCallback);
+ LIB_FUNCTION("2edrkr0c-wg", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiUnregisterServicePushEventCallback);
+ LIB_FUNCTION("or0e885BlXo", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiUtilityParseNpId);
+ LIB_FUNCTION("uRsskUhAfnM", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1,
+ sceNpWebApiVshInitialize);
+ LIB_FUNCTION("BkxO0e2+ueg", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_064C4ED1EDBEB9E8);
+ LIB_FUNCTION("B4OVXU6VY9o", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_0783955D4E9563DA);
+ LIB_FUNCTION("Gm138-2DI6g", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_1A6D77F3FD8323A8);
+ LIB_FUNCTION("HgaTom-g+VQ", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_1E0693A26FE0F954);
+ LIB_FUNCTION("JKm18ddwAM8", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_24A9B5F1D77000CF);
+ LIB_FUNCTION("JKqm9Q5MI2E", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_24AAA6F50E4C2361);
+ LIB_FUNCTION("JNiFPWtH-Hk", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_24D8853D6B47FC79);
+ LIB_FUNCTION("J5s+nHxKncU", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_279B3E9C7C4A9DC5);
+ LIB_FUNCTION("KEYeKen41pc", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_28461E29E9F8D697);
+ LIB_FUNCTION("PCliRwT6ueA", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_3C29624704FAB9E0);
+ LIB_FUNCTION("PwJ4BO0uwR4", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_3F027804ED2EC11E);
+ LIB_FUNCTION("QGbJTngpl80", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_4066C94E782997CD);
+ LIB_FUNCTION("R8hTVoFdvpA", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_47C85356815DBE90);
+ LIB_FUNCTION("T86AZUN+O4c", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_4FCE8065437E3B87);
+ LIB_FUNCTION("U2KAvj2rtSE", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_536280BE3DABB521);
+ LIB_FUNCTION("V6DhvHJCGfM", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_57A0E1BC724219F3);
+ LIB_FUNCTION("WBl0nAQLZjc", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_5819749C040B6637);
+ LIB_FUNCTION("YZjQyCXoYxk", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_6198D0C825E86319);
+ LIB_FUNCTION("YfK56KsJN0M", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_61F2B9E8AB093743);
+ LIB_FUNCTION("a8OI5hE-DUQ", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_6BC388E6113F0D44);
+ LIB_FUNCTION("dQDwxPjcLRY", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_7500F0C4F8DC2D16);
+ LIB_FUNCTION("daA4FMfpA58", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_75A03814C7E9039F);
+ LIB_FUNCTION("eJ1gJsUhQW4", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_789D6026C521416E);
+ LIB_FUNCTION("fe1j0GOZ7-8", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_7DED63D06399EFFF);
+ LIB_FUNCTION("flWi3MA9OVo", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_7E55A2DCC03D395A);
+ LIB_FUNCTION("fmyPn7hpZ-Q", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_7E6C8F9FB86967F4);
+ LIB_FUNCTION("fwS31KfUHoA", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_7F04B7D4A7D41E80);
+ LIB_FUNCTION("jhZyUt+lyVc", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_8E167252DFA5C957);
+ LIB_FUNCTION("ldAEblBOOwk", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_95D0046E504E3B09);
+ LIB_FUNCTION("lyhL-aTxj98", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_97284BFDA4F18FDF);
+ LIB_FUNCTION("meMsH0c36rQ", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_99E32C1F4737EAB4);
+ LIB_FUNCTION("nP9mHqC8v4M", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_9CFF661EA0BCBF83);
+ LIB_FUNCTION("nrDh9GesOyk", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_9EB0E1F467AC3B29);
+ LIB_FUNCTION("ojGP5vur+qM", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_A2318FE6FBABFAA3);
+ LIB_FUNCTION("ugei4b97OXE", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_BA07A2E1BF7B3971);
+ LIB_FUNCTION("vQgD7uDMKaA", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_BD0803EEE0CC29A0);
+ LIB_FUNCTION("vm9OVSS7E18", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_BE6F4E5524BB135F);
+ LIB_FUNCTION("wNSQ60gepNA", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_C0D490EB481EA4D0);
+ LIB_FUNCTION("wXXTksptCEo", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_C175D392CA6D084A);
+ LIB_FUNCTION("zQE2rxZdLy8", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_CD0136AF165D2F2F);
+ LIB_FUNCTION("0cCtt7Uv6rU", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_D1C0ADB7B52FEAB5);
+ LIB_FUNCTION("4yR2XRjuTRI", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_E324765D18EE4D12);
+ LIB_FUNCTION("54n5gNkHtlM", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_E789F980D907B653);
+ LIB_FUNCTION("+aMuhoVidDY", "libSceNpWebApi", 1, "libSceNpWebApi", 1, 1, Func_F9A32E8685627436);
+};
+
+} // namespace Libraries::NpWebApi
\ No newline at end of file
diff --git a/src/core/libraries/np_web_api/np_web_api.h b/src/core/libraries/np_web_api/np_web_api.h
new file mode 100644
index 000000000..cc007394f
--- /dev/null
+++ b/src/core/libraries/np_web_api/np_web_api.h
@@ -0,0 +1,116 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include "common/types.h"
+
+namespace Core::Loader {
+class SymbolsResolver;
+}
+
+namespace Libraries::NpWebApi {
+
+s32 PS4_SYSV_ABI sceNpWebApiCreateContext();
+s32 PS4_SYSV_ABI sceNpWebApiCreatePushEventFilter();
+s32 PS4_SYSV_ABI sceNpWebApiCreateServicePushEventFilter();
+s32 PS4_SYSV_ABI sceNpWebApiDeletePushEventFilter();
+s32 PS4_SYSV_ABI sceNpWebApiDeleteServicePushEventFilter();
+s32 PS4_SYSV_ABI sceNpWebApiRegisterExtdPushEventCallback();
+s32 PS4_SYSV_ABI sceNpWebApiRegisterNotificationCallback();
+s32 PS4_SYSV_ABI sceNpWebApiRegisterPushEventCallback();
+s32 PS4_SYSV_ABI sceNpWebApiRegisterServicePushEventCallback();
+s32 PS4_SYSV_ABI sceNpWebApiUnregisterNotificationCallback();
+s32 PS4_SYSV_ABI sceNpWebApiUnregisterPushEventCallback();
+s32 PS4_SYSV_ABI sceNpWebApiUnregisterServicePushEventCallback();
+s32 PS4_SYSV_ABI sceNpWebApiAbortHandle();
+s32 PS4_SYSV_ABI sceNpWebApiAbortRequest();
+s32 PS4_SYSV_ABI sceNpWebApiAddHttpRequestHeader();
+s32 PS4_SYSV_ABI sceNpWebApiAddMultipartPart();
+s32 PS4_SYSV_ABI sceNpWebApiCheckTimeout();
+s32 PS4_SYSV_ABI sceNpWebApiClearAllUnusedConnection();
+s32 PS4_SYSV_ABI sceNpWebApiClearUnusedConnection();
+s32 PS4_SYSV_ABI sceNpWebApiCreateContextA();
+s32 PS4_SYSV_ABI sceNpWebApiCreateExtdPushEventFilter();
+s32 PS4_SYSV_ABI sceNpWebApiCreateHandle();
+s32 PS4_SYSV_ABI sceNpWebApiCreateMultipartRequest();
+s32 PS4_SYSV_ABI sceNpWebApiCreateRequest();
+s32 PS4_SYSV_ABI sceNpWebApiDeleteContext();
+s32 PS4_SYSV_ABI sceNpWebApiDeleteExtdPushEventFilter();
+s32 PS4_SYSV_ABI sceNpWebApiDeleteHandle();
+s32 PS4_SYSV_ABI sceNpWebApiDeleteRequest();
+s32 PS4_SYSV_ABI sceNpWebApiGetConnectionStats();
+s32 PS4_SYSV_ABI sceNpWebApiGetErrorCode();
+s32 PS4_SYSV_ABI sceNpWebApiGetHttpResponseHeaderValue();
+s32 PS4_SYSV_ABI sceNpWebApiGetHttpResponseHeaderValueLength();
+s32 PS4_SYSV_ABI sceNpWebApiGetHttpStatusCode();
+s32 PS4_SYSV_ABI sceNpWebApiGetMemoryPoolStats();
+s32 PS4_SYSV_ABI sceNpWebApiInitialize();
+s32 PS4_SYSV_ABI sceNpWebApiInitializeForPresence();
+s32 PS4_SYSV_ABI sceNpWebApiIntCreateCtxIndExtdPushEventFilter();
+s32 PS4_SYSV_ABI sceNpWebApiIntCreateRequest();
+s32 PS4_SYSV_ABI sceNpWebApiIntCreateServicePushEventFilter();
+s32 PS4_SYSV_ABI sceNpWebApiIntInitialize();
+s32 PS4_SYSV_ABI sceNpWebApiIntRegisterServicePushEventCallback();
+s32 PS4_SYSV_ABI sceNpWebApiIntRegisterServicePushEventCallbackA();
+s32 PS4_SYSV_ABI sceNpWebApiReadData();
+s32 PS4_SYSV_ABI sceNpWebApiRegisterExtdPushEventCallbackA();
+s32 PS4_SYSV_ABI sceNpWebApiSendMultipartRequest();
+s32 PS4_SYSV_ABI sceNpWebApiSendMultipartRequest2();
+s32 PS4_SYSV_ABI sceNpWebApiSendRequest();
+s32 PS4_SYSV_ABI sceNpWebApiSendRequest2();
+s32 PS4_SYSV_ABI sceNpWebApiSetHandleTimeout();
+s32 PS4_SYSV_ABI sceNpWebApiSetMaxConnection();
+s32 PS4_SYSV_ABI sceNpWebApiSetMultipartContentType();
+s32 PS4_SYSV_ABI sceNpWebApiSetRequestTimeout();
+s32 PS4_SYSV_ABI sceNpWebApiTerminate();
+s32 PS4_SYSV_ABI sceNpWebApiUnregisterExtdPushEventCallback();
+s32 PS4_SYSV_ABI sceNpWebApiUtilityParseNpId();
+s32 PS4_SYSV_ABI sceNpWebApiVshInitialize();
+s32 PS4_SYSV_ABI Func_064C4ED1EDBEB9E8();
+s32 PS4_SYSV_ABI Func_0783955D4E9563DA();
+s32 PS4_SYSV_ABI Func_1A6D77F3FD8323A8();
+s32 PS4_SYSV_ABI Func_1E0693A26FE0F954();
+s32 PS4_SYSV_ABI Func_24A9B5F1D77000CF();
+s32 PS4_SYSV_ABI Func_24AAA6F50E4C2361();
+s32 PS4_SYSV_ABI Func_24D8853D6B47FC79();
+s32 PS4_SYSV_ABI Func_279B3E9C7C4A9DC5();
+s32 PS4_SYSV_ABI Func_28461E29E9F8D697();
+s32 PS4_SYSV_ABI Func_3C29624704FAB9E0();
+s32 PS4_SYSV_ABI Func_3F027804ED2EC11E();
+s32 PS4_SYSV_ABI Func_4066C94E782997CD();
+s32 PS4_SYSV_ABI Func_47C85356815DBE90();
+s32 PS4_SYSV_ABI Func_4FCE8065437E3B87();
+s32 PS4_SYSV_ABI Func_536280BE3DABB521();
+s32 PS4_SYSV_ABI Func_57A0E1BC724219F3();
+s32 PS4_SYSV_ABI Func_5819749C040B6637();
+s32 PS4_SYSV_ABI Func_6198D0C825E86319();
+s32 PS4_SYSV_ABI Func_61F2B9E8AB093743();
+s32 PS4_SYSV_ABI Func_6BC388E6113F0D44();
+s32 PS4_SYSV_ABI Func_7500F0C4F8DC2D16();
+s32 PS4_SYSV_ABI Func_75A03814C7E9039F();
+s32 PS4_SYSV_ABI Func_789D6026C521416E();
+s32 PS4_SYSV_ABI Func_7DED63D06399EFFF();
+s32 PS4_SYSV_ABI Func_7E55A2DCC03D395A();
+s32 PS4_SYSV_ABI Func_7E6C8F9FB86967F4();
+s32 PS4_SYSV_ABI Func_7F04B7D4A7D41E80();
+s32 PS4_SYSV_ABI Func_8E167252DFA5C957();
+s32 PS4_SYSV_ABI Func_95D0046E504E3B09();
+s32 PS4_SYSV_ABI Func_97284BFDA4F18FDF();
+s32 PS4_SYSV_ABI Func_99E32C1F4737EAB4();
+s32 PS4_SYSV_ABI Func_9CFF661EA0BCBF83();
+s32 PS4_SYSV_ABI Func_9EB0E1F467AC3B29();
+s32 PS4_SYSV_ABI Func_A2318FE6FBABFAA3();
+s32 PS4_SYSV_ABI Func_BA07A2E1BF7B3971();
+s32 PS4_SYSV_ABI Func_BD0803EEE0CC29A0();
+s32 PS4_SYSV_ABI Func_BE6F4E5524BB135F();
+s32 PS4_SYSV_ABI Func_C0D490EB481EA4D0();
+s32 PS4_SYSV_ABI Func_C175D392CA6D084A();
+s32 PS4_SYSV_ABI Func_CD0136AF165D2F2F();
+s32 PS4_SYSV_ABI Func_D1C0ADB7B52FEAB5();
+s32 PS4_SYSV_ABI Func_E324765D18EE4D12();
+s32 PS4_SYSV_ABI Func_E789F980D907B653();
+s32 PS4_SYSV_ABI Func_F9A32E8685627436();
+
+void RegisterlibSceNpWebApi(Core::Loader::SymbolsResolver* sym);
+} // namespace Libraries::NpWebApi
\ No newline at end of file
diff --git a/src/core/libraries/pad/pad.cpp b/src/core/libraries/pad/pad.cpp
index 7eb628a90..f2b81fbe0 100644
--- a/src/core/libraries/pad/pad.cpp
+++ b/src/core/libraries/pad/pad.cpp
@@ -11,6 +11,8 @@
namespace Libraries::Pad {
+using Input::GameController;
+
int PS4_SYSV_ABI scePadClose(s32 handle) {
LOG_ERROR(Lib_Pad, "(STUBBED) called");
return ORBIS_OK;
@@ -93,8 +95,8 @@ int PS4_SYSV_ABI scePadGetControllerInformation(s32 handle, OrbisPadControllerIn
pInfo->touchPadInfo.pixelDensity = 1;
pInfo->touchPadInfo.resolution.x = 1920;
pInfo->touchPadInfo.resolution.y = 950;
- pInfo->stickInfo.deadZoneLeft = 2;
- pInfo->stickInfo.deadZoneRight = 2;
+ pInfo->stickInfo.deadZoneLeft = Config::leftDeadZone();
+ pInfo->stickInfo.deadZoneRight = Config::rightDeadZone();
pInfo->connectionType = ORBIS_PAD_PORT_TYPE_STANDARD;
pInfo->connectedCount = 1;
pInfo->connected = false;
@@ -104,8 +106,8 @@ int PS4_SYSV_ABI scePadGetControllerInformation(s32 handle, OrbisPadControllerIn
pInfo->touchPadInfo.pixelDensity = 1;
pInfo->touchPadInfo.resolution.x = 1920;
pInfo->touchPadInfo.resolution.y = 950;
- pInfo->stickInfo.deadZoneLeft = 2;
- pInfo->stickInfo.deadZoneRight = 2;
+ pInfo->stickInfo.deadZoneLeft = Config::leftDeadZone();
+ pInfo->stickInfo.deadZoneRight = Config::rightDeadZone();
pInfo->connectionType = ORBIS_PAD_PORT_TYPE_STANDARD;
pInfo->connectedCount = 1;
pInfo->connected = true;
@@ -290,7 +292,8 @@ int PS4_SYSV_ABI scePadRead(s32 handle, OrbisPadData* pData, s32 num) {
int connected_count = 0;
bool connected = false;
Input::State states[64];
- auto* controller = Common::Singleton::Instance();
+ auto* controller = Common::Singleton::Instance();
+ const auto* engine = controller->GetEngine();
int ret_num = controller->ReadStates(states, num, &connected, &connected_count);
if (!connected) {
@@ -311,9 +314,14 @@ int PS4_SYSV_ABI scePadRead(s32 handle, OrbisPadData* pData, s32 num) {
pData[i].angularVelocity.x = states[i].angularVelocity.x;
pData[i].angularVelocity.y = states[i].angularVelocity.y;
pData[i].angularVelocity.z = states[i].angularVelocity.z;
- Input::GameController::CalculateOrientation(pData[i].acceleration, pData[i].angularVelocity,
- 1.0f / controller->accel_poll_rate,
- pData[i].orientation);
+ if (engine) {
+ const auto accel_poll_rate = engine->GetAccelPollRate();
+ if (accel_poll_rate != 0.0f) {
+ GameController::CalculateOrientation(pData[i].acceleration,
+ pData[i].angularVelocity,
+ 1.0f / accel_poll_rate, pData[i].orientation);
+ }
+ }
pData[i].touchData.touchNum =
(states[i].touchpad[0].state ? 1 : 0) + (states[i].touchpad[1].state ? 1 : 0);
pData[i].touchData.touch[0].x = states[i].touchpad[0].x;
@@ -356,7 +364,8 @@ int PS4_SYSV_ABI scePadReadState(s32 handle, OrbisPadData* pData) {
if (handle == ORBIS_PAD_ERROR_DEVICE_NO_HANDLE) {
return ORBIS_PAD_ERROR_INVALID_HANDLE;
}
- auto* controller = Common::Singleton::Instance();
+ auto* controller = Common::Singleton::Instance();
+ const auto* engine = controller->GetEngine();
int connectedCount = 0;
bool isConnected = false;
Input::State state;
@@ -374,9 +383,13 @@ int PS4_SYSV_ABI scePadReadState(s32 handle, OrbisPadData* pData) {
pData->angularVelocity.x = state.angularVelocity.x;
pData->angularVelocity.y = state.angularVelocity.y;
pData->angularVelocity.z = state.angularVelocity.z;
- Input::GameController::CalculateOrientation(pData->acceleration, pData->angularVelocity,
- 1.0f / controller->accel_poll_rate,
- pData->orientation);
+ if (engine) {
+ const auto accel_poll_rate = engine->GetAccelPollRate();
+ if (accel_poll_rate != 0.0f) {
+ GameController::CalculateOrientation(pData->acceleration, pData->angularVelocity,
+ 1.0f / accel_poll_rate, pData->orientation);
+ }
+ }
pData->touchData.touchNum =
(state.touchpad[0].state ? 1 : 0) + (state.touchpad[1].state ? 1 : 0);
pData->touchData.touch[0].x = state.touchpad[0].x;
@@ -468,7 +481,7 @@ int PS4_SYSV_ABI scePadSetLightBar(s32 handle, const OrbisPadLightBarParam* pPar
return ORBIS_PAD_ERROR_INVALID_LIGHTBAR_SETTING;
}
- auto* controller = Common::Singleton::Instance();
+ auto* controller = Common::Singleton::Instance();
controller->SetLightBarRGB(pParam->r, pParam->g, pParam->b);
return ORBIS_OK;
}
@@ -536,7 +549,7 @@ int PS4_SYSV_ABI scePadSetVibration(s32 handle, const OrbisPadVibrationParam* pP
if (pParam != nullptr) {
LOG_DEBUG(Lib_Pad, "scePadSetVibration called handle = {} data = {} , {}", handle,
pParam->smallMotor, pParam->largeMotor);
- auto* controller = Common::Singleton::Instance();
+ auto* controller = Common::Singleton::Instance();
controller->SetVibration(pParam->smallMotor, pParam->largeMotor);
return ORBIS_OK;
}
diff --git a/src/core/libraries/videoout/driver.cpp b/src/core/libraries/videoout/driver.cpp
index f6c25afe3..de5421fd7 100644
--- a/src/core/libraries/videoout/driver.cpp
+++ b/src/core/libraries/videoout/driver.cpp
@@ -1,8 +1,6 @@
// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
-#include
-
#include "common/assert.h"
#include "common/config.h"
#include "common/debug.h"
@@ -11,6 +9,7 @@
#include "core/libraries/kernel/time.h"
#include "core/libraries/videoout/driver.h"
#include "core/libraries/videoout/videoout_error.h"
+#include "imgui/renderer/imgui_core.h"
#include "video_core/renderer_vulkan/vk_presenter.h"
extern std::unique_ptr presenter;
@@ -207,6 +206,13 @@ void VideoOutDriver::DrawBlankFrame() {
presenter->Present(empty_frame);
}
+void VideoOutDriver::DrawLastFrame() {
+ const auto frame = presenter->PrepareLastFrame();
+ if (frame != nullptr) {
+ presenter->Present(frame, true);
+ }
+}
+
bool VideoOutDriver::SubmitFlip(VideoOutPort* port, s32 index, s64 flip_arg,
bool is_eop /*= false*/) {
{
@@ -278,17 +284,26 @@ void VideoOutDriver::PresentThread(std::stop_token token) {
return {};
};
- auto delay = std::chrono::microseconds{0};
while (!token.stop_requested()) {
timer.Start();
+ if (DebugState.IsGuestThreadsPaused()) {
+ DrawLastFrame();
+ timer.End();
+ continue;
+ }
+
// Check if it's time to take a request.
auto& vblank_status = main_port.vblank_status;
if (vblank_status.count % (main_port.flip_rate + 1) == 0) {
const auto request = receive_request();
if (!request) {
- if (!main_port.is_open || DebugState.IsGuestThreadsPaused()) {
- DrawBlankFrame();
+ if (timer.GetTotalWait().count() < 0) { // Dont draw too fast
+ if (!main_port.is_open) {
+ DrawBlankFrame();
+ } else if (ImGui::Core::MustKeepDrawing()) {
+ DrawLastFrame();
+ }
}
} else {
Flip(request);
diff --git a/src/core/libraries/videoout/driver.h b/src/core/libraries/videoout/driver.h
index ec01b621f..ad7c7bec2 100644
--- a/src/core/libraries/videoout/driver.h
+++ b/src/core/libraries/videoout/driver.h
@@ -102,7 +102,8 @@ private:
};
void Flip(const Request& req);
- void DrawBlankFrame(); // Used when there is no flip request to keep ImGui up to date
+ void DrawBlankFrame(); // Video port out not open
+ void DrawLastFrame(); // Used when there is no flip request
void SubmitFlipInternal(VideoOutPort* port, s32 index, s64 flip_arg, bool is_eop = false);
void PresentThread(std::stop_token token);
diff --git a/src/core/linker.cpp b/src/core/linker.cpp
index 28d2eea7b..2461edcb2 100644
--- a/src/core/linker.cpp
+++ b/src/core/linker.cpp
@@ -52,7 +52,7 @@ Linker::Linker() : memory{Memory::Instance()} {}
Linker::~Linker() = default;
-void Linker::Execute() {
+void Linker::Execute(const std::vector args) {
if (Config::debugDump()) {
DebugDump();
}
@@ -101,7 +101,7 @@ void Linker::Execute() {
memory->SetupMemoryRegions(fmem_size, use_extended_mem1, use_extended_mem2);
- main_thread.Run([this, module](std::stop_token) {
+ main_thread.Run([this, module, args](std::stop_token) {
Common::SetCurrentThreadName("GAME_MainThread");
LoadSharedLibraries();
@@ -109,6 +109,12 @@ void Linker::Execute() {
EntryParams params{};
params.argc = 1;
params.argv[0] = "eboot.bin";
+ if (!args.empty()) {
+ params.argc = args.size() + 1;
+ for (int i = 0; i < args.size() && i < 32; i++) {
+ params.argv[i + 1] = args[i].c_str();
+ }
+ }
params.entry_addr = module->GetEntryAddress();
RunMainEntry(¶ms);
});
diff --git a/src/core/linker.h b/src/core/linker.h
index 7ef13ae56..00da3a08c 100644
--- a/src/core/linker.h
+++ b/src/core/linker.h
@@ -49,7 +49,7 @@ class Linker;
struct EntryParams {
int argc;
u32 padding;
- const char* argv[3];
+ const char* argv[33];
VAddr entry_addr;
};
@@ -143,7 +143,7 @@ public:
void Relocate(Module* module);
bool Resolve(const std::string& name, Loader::SymbolType type, Module* module,
Loader::SymbolRecord* return_info);
- void Execute();
+ void Execute(const std::vector args = {});
void DebugDump();
private:
diff --git a/src/emulator.cpp b/src/emulator.cpp
index dbe693340..e77c2b87f 100644
--- a/src/emulator.cpp
+++ b/src/emulator.cpp
@@ -66,9 +66,10 @@ Emulator::Emulator() {
LOG_INFO(Config, "Vulkan vkValidation: {}", Config::vkValidationEnabled());
LOG_INFO(Config, "Vulkan vkValidationSync: {}", Config::vkValidationSyncEnabled());
LOG_INFO(Config, "Vulkan vkValidationGpu: {}", Config::vkValidationGpuEnabled());
- LOG_INFO(Config, "Vulkan rdocEnable: {}", Config::isRdocEnabled());
- LOG_INFO(Config, "Vulkan rdocMarkersEnable: {}", Config::vkMarkersEnabled());
LOG_INFO(Config, "Vulkan crashDiagnostics: {}", Config::vkCrashDiagnosticEnabled());
+ LOG_INFO(Config, "Vulkan hostMarkers: {}", Config::vkHostMarkersEnabled());
+ LOG_INFO(Config, "Vulkan guestMarkers: {}", Config::vkGuestMarkersEnabled());
+ LOG_INFO(Config, "Vulkan rdocEnable: {}", Config::isRdocEnabled());
// Create stdin/stdout/stderr
Common::Singleton::Instance()->CreateStdHandles();
@@ -98,7 +99,7 @@ Emulator::~Emulator() {
Config::saveMainWindow(config_dir / "config.toml");
}
-void Emulator::Run(const std::filesystem::path& file) {
+void Emulator::Run(const std::filesystem::path& file, const std::vector args) {
// Applications expect to be run from /app0 so mount the file's parent path as app0.
auto* mnt = Common::Singleton::Instance();
const auto game_folder = file.parent_path();
@@ -151,6 +152,15 @@ void Emulator::Run(const std::filesystem::path& file) {
if (const auto raw_attributes = param_sfo->GetInteger("ATTRIBUTE")) {
psf_attributes.raw = *raw_attributes;
}
+ if (!args.empty()) {
+ int argc = std::min(args.size(), 32);
+ for (int i = 0; i < argc; i++) {
+ LOG_INFO(Loader, "Game argument {}: {}", i, args[i]);
+ }
+ if (args.size() > 32) {
+ LOG_ERROR(Loader, "Too many game arguments, only passing the first 32");
+ }
+ }
}
const auto pic1_path = mnt->GetHostPath("/app0/sce_sys/pic1.png");
@@ -238,7 +248,7 @@ void Emulator::Run(const std::filesystem::path& file) {
}
#endif
- linker->Execute();
+ linker->Execute(args);
window->InitTimers();
while (window->IsOpen()) {
diff --git a/src/emulator.h b/src/emulator.h
index a08ab43c3..08c2807a1 100644
--- a/src/emulator.h
+++ b/src/emulator.h
@@ -25,7 +25,7 @@ public:
Emulator();
~Emulator();
- void Run(const std::filesystem::path& file);
+ void Run(const std::filesystem::path& file, const std::vector args = {});
void UpdatePlayTime(const std::string& serial);
private:
diff --git a/src/imgui/imgui_config.h b/src/imgui/imgui_config.h
index ccb084d94..7b03a4bab 100644
--- a/src/imgui/imgui_config.h
+++ b/src/imgui/imgui_config.h
@@ -30,6 +30,12 @@ extern void assert_fail_debug_msg(const char* msg);
#define IM_VEC4_CLASS_EXTRA \
constexpr ImVec4(float _v) : x(_v), y(_v), z(_v), w(_v) {}
+namespace ImGui {
+struct Texture;
+}
+#define ImTextureID ImTextureID
+using ImTextureID = ::ImGui::Texture*;
+
#ifdef IMGUI_USE_WCHAR32
#error "This project uses 16 bits wchar standard like Orbis"
#endif
\ No newline at end of file
diff --git a/src/imgui/renderer/imgui_core.cpp b/src/imgui/renderer/imgui_core.cpp
index 46391faef..26253822c 100644
--- a/src/imgui/renderer/imgui_core.cpp
+++ b/src/imgui/renderer/imgui_core.cpp
@@ -6,6 +6,7 @@
#include "common/config.h"
#include "common/path_util.h"
+#include "core/debug_state.h"
#include "core/devtools/layer.h"
#include "imgui/imgui_layer.h"
#include "imgui_core.h"
@@ -167,7 +168,7 @@ bool ProcessEvent(SDL_Event* event) {
}
}
-void NewFrame() {
+ImGuiID NewFrame(bool is_reusing_frame) {
{
std::scoped_lock lock{change_layers_mutex};
while (!change_layers.empty()) {
@@ -182,24 +183,32 @@ void NewFrame() {
}
}
- Sdl::NewFrame();
+ Sdl::NewFrame(is_reusing_frame);
ImGui::NewFrame();
- DockSpaceOverViewport(0, GetMainViewport(), ImGuiDockNodeFlags_PassthruCentralNode);
+ ImGuiWindowFlags flags =
+ ImGuiDockNodeFlags_PassthruCentralNode | ImGuiDockNodeFlags_AutoHideTabBar;
+ if (!DebugState.IsShowingDebugMenuBar()) {
+ flags |= ImGuiDockNodeFlags_NoTabBar;
+ }
+ ImGuiID dockId = DockSpaceOverViewport(0, GetMainViewport(), flags);
for (auto* layer : layers) {
layer->Draw();
}
+
+ return dockId;
}
-void Render(const vk::CommandBuffer& cmdbuf, ::Vulkan::Frame* frame) {
+void Render(const vk::CommandBuffer& cmdbuf, const vk::ImageView& image_view,
+ const vk::Extent2D& extent) {
ImGui::Render();
ImDrawData* draw_data = GetDrawData();
if (draw_data->CmdListsCount == 0) {
return;
}
- if (Config::vkMarkersEnabled()) {
+ if (Config::vkHostMarkersEnabled()) {
cmdbuf.beginDebugUtilsLabelEXT(vk::DebugUtilsLabelEXT{
.pLabelName = "ImGui Render",
});
@@ -207,16 +216,16 @@ void Render(const vk::CommandBuffer& cmdbuf, ::Vulkan::Frame* frame) {
vk::RenderingAttachmentInfo color_attachments[1]{
{
- .imageView = frame->image_view,
+ .imageView = image_view,
.imageLayout = vk::ImageLayout::eColorAttachmentOptimal,
- .loadOp = vk::AttachmentLoadOp::eLoad,
+ .loadOp = vk::AttachmentLoadOp::eClear,
.storeOp = vk::AttachmentStoreOp::eStore,
},
};
vk::RenderingInfo render_info{};
render_info.renderArea = vk::Rect2D{
.offset = {0, 0},
- .extent = {frame->width, frame->height},
+ .extent = extent,
};
render_info.layerCount = 1;
render_info.colorAttachmentCount = 1;
@@ -224,11 +233,15 @@ void Render(const vk::CommandBuffer& cmdbuf, ::Vulkan::Frame* frame) {
cmdbuf.beginRendering(render_info);
Vulkan::RenderDrawData(*draw_data, cmdbuf);
cmdbuf.endRendering();
- if (Config::vkMarkersEnabled()) {
+ if (Config::vkHostMarkersEnabled()) {
cmdbuf.endDebugUtilsLabelEXT();
}
}
+bool MustKeepDrawing() {
+ return layers.size() > 1 || DebugState.IsShowingDebugMenuBar();
+}
+
} // namespace Core
void Layer::AddLayer(Layer* layer) {
diff --git a/src/imgui/renderer/imgui_core.h b/src/imgui/renderer/imgui_core.h
index 9ad708f81..ffee62cf8 100644
--- a/src/imgui/renderer/imgui_core.h
+++ b/src/imgui/renderer/imgui_core.h
@@ -3,6 +3,8 @@
#pragma once
+#include
+
#include "video_core/renderer_vulkan/vk_instance.h"
#include "vulkan/vulkan_handles.hpp"
@@ -24,8 +26,11 @@ void Shutdown(const vk::Device& device);
bool ProcessEvent(SDL_Event* event);
-void NewFrame();
+ImGuiID NewFrame(bool is_reusing_frame = false);
-void Render(const vk::CommandBuffer& cmdbuf, Vulkan::Frame* frame);
+void Render(const vk::CommandBuffer& cmdbuf, const vk::ImageView& image_view,
+ const vk::Extent2D& extent);
+
+bool MustKeepDrawing(); // Force the emulator redraw
} // namespace ImGui::Core
diff --git a/src/imgui/renderer/imgui_impl_sdl3.cpp b/src/imgui/renderer/imgui_impl_sdl3.cpp
index 60b440c24..ccd31d03a 100644
--- a/src/imgui/renderer/imgui_impl_sdl3.cpp
+++ b/src/imgui/renderer/imgui_impl_sdl3.cpp
@@ -5,13 +5,13 @@
#include
#include "common/config.h"
+#include "core/debug_state.h"
#include "imgui_impl_sdl3.h"
// SDL
#include
#if defined(__APPLE__)
#include
-#include
#endif
#ifdef _WIN32
#ifndef WIN32_LEAN_AND_MEAN
@@ -27,6 +27,7 @@ struct SdlData {
SDL_Window* window{};
SDL_WindowID window_id{};
Uint64 time{};
+ Uint64 nonReusedtime{};
const char* clipboard_text_data{};
// IME handling
@@ -45,6 +46,11 @@ struct SdlData {
ImVector gamepads{};
GamepadMode gamepad_mode{};
bool want_update_gamepads_list{};
+
+ // Framerate counting (based on ImGui impl)
+ std::array framerateSecPerFrame;
+ int framerateSecPerFrameIdx{};
+ float framerateSecPerFrameAcc{};
};
// Backend data stored in io.BackendPlatformUserData to allow support for multiple Dear ImGui
@@ -72,33 +78,25 @@ static void PlatformSetImeData(ImGuiContext*, ImGuiViewport* viewport, ImGuiPlat
auto window_id = (SDL_WindowID)(intptr_t)viewport->PlatformHandle;
SDL_Window* window = SDL_GetWindowFromID(window_id);
if ((!data->WantVisible || bd->ime_window != window) && bd->ime_window != nullptr) {
- auto stop_input = [&bd] { SDL_StopTextInput(bd->ime_window); };
-#ifdef __APPLE__
- dispatch_sync(dispatch_get_main_queue(), ^{
- stop_input();
- });
-#else
- stop_input();
-#endif
+ SDL_RunOnMainThread(
+ [](void* userdata) { SDL_StopTextInput(static_cast(userdata)); },
+ bd->ime_window, true);
bd->ime_window = nullptr;
}
if (data->WantVisible) {
- SDL_Rect r;
- r.x = (int)data->InputPos.x;
- r.y = (int)data->InputPos.y;
- r.w = 1;
- r.h = (int)data->InputLineHeight;
- const auto start_input = [&window, &r] {
- SDL_SetTextInputArea(window, &r, 0);
- SDL_StartTextInput(window);
- };
-#ifdef __APPLE__
- dispatch_sync(dispatch_get_main_queue(), ^{
- start_input();
- });
-#else
- start_input();
-#endif
+ std::pair usr_data;
+ usr_data.first = window;
+ usr_data.second.x = (int)data->InputPos.x;
+ usr_data.second.y = (int)data->InputPos.y;
+ usr_data.second.w = 1;
+ usr_data.second.h = (int)data->InputLineHeight;
+ SDL_RunOnMainThread(
+ [](void* userdata) {
+ auto* params = static_cast*>(userdata);
+ SDL_SetTextInputArea(params->first, ¶ms->second, 0);
+ SDL_StartTextInput(params->first);
+ },
+ &usr_data, true);
bd->ime_window = window;
}
}
@@ -794,7 +792,7 @@ static void UpdateGamepads() {
+thumb_dead_zone, +32767);
}
-void NewFrame() {
+void NewFrame(bool is_reusing_frame) {
SdlData* bd = GetBackendData();
IM_ASSERT(bd != nullptr && "No platform backend to shutdown, or already shutdown?");
ImGuiIO& io = ImGui::GetIO();
@@ -807,9 +805,29 @@ void NewFrame() {
if (current_time <= bd->time)
current_time = bd->time + 1;
io.DeltaTime = bd->time > 0 ? (float)((double)(current_time - bd->time) / (double)frequency)
- : (float)(1.0f / 60.0f);
+ : 1.0f / 60.0f;
bd->time = current_time;
+ if (!is_reusing_frame) {
+ if (current_time <= bd->nonReusedtime)
+ current_time = bd->nonReusedtime + 1;
+ float deltaTime =
+ bd->nonReusedtime > 0
+ ? (float)((double)(current_time - bd->nonReusedtime) / (double)frequency)
+ : 1.0f / 60.0f;
+ bd->nonReusedtime = current_time;
+ DebugState.FrameDeltaTime = deltaTime;
+
+ int& frameIdx = bd->framerateSecPerFrameIdx;
+ float& framerateSec = bd->framerateSecPerFrame[frameIdx];
+ float& acc = bd->framerateSecPerFrameAcc;
+ int count = bd->framerateSecPerFrame.size();
+ acc += deltaTime - framerateSec;
+ framerateSec = deltaTime;
+ frameIdx = (frameIdx + 1) % count;
+ DebugState.Framerate = acc > 0.0f ? 1.0f / (acc / (float)count) : FLT_MAX;
+ }
+
if (bd->mouse_pending_leave_frame && bd->mouse_pending_leave_frame >= ImGui::GetFrameCount() &&
bd->mouse_buttons_down == 0) {
bd->mouse_window_id = 0;
diff --git a/src/imgui/renderer/imgui_impl_sdl3.h b/src/imgui/renderer/imgui_impl_sdl3.h
index 59b1a6856..fe626a962 100644
--- a/src/imgui/renderer/imgui_impl_sdl3.h
+++ b/src/imgui/renderer/imgui_impl_sdl3.h
@@ -14,7 +14,7 @@ namespace ImGui::Sdl {
bool Init(SDL_Window* window);
void Shutdown();
-void NewFrame();
+void NewFrame(bool is_reusing);
bool ProcessEvent(const SDL_Event* event);
void OnResize();
diff --git a/src/imgui/renderer/imgui_impl_vulkan.cpp b/src/imgui/renderer/imgui_impl_vulkan.cpp
index 7f7ade2a5..104ce4b52 100644
--- a/src/imgui/renderer/imgui_impl_vulkan.cpp
+++ b/src/imgui/renderer/imgui_impl_vulkan.cpp
@@ -57,11 +57,12 @@ struct VkData {
vk::DeviceMemory font_memory{};
vk::Image font_image{};
vk::ImageView font_view{};
- vk::DescriptorSet font_descriptor_set{};
+ ImTextureID font_texture{};
vk::CommandBuffer font_command_buffer{};
// Render buffers
WindowRenderBuffers render_buffers{};
+ bool enabled_blending{true};
VkData(const InitInfo init_info) : init_info(init_info) {
render_buffers.count = init_info.image_count;
@@ -252,8 +253,8 @@ void UploadTextureData::Destroy() {
const InitInfo& v = bd->init_info;
CheckVkErr(v.device.waitIdle());
- RemoveTexture(descriptor_set);
- descriptor_set = VK_NULL_HANDLE;
+ RemoveTexture(im_texture);
+ im_texture = nullptr;
v.device.destroyImageView(image_view, v.allocator);
image_view = VK_NULL_HANDLE;
@@ -264,8 +265,8 @@ void UploadTextureData::Destroy() {
}
// Register a texture
-vk::DescriptorSet AddTexture(vk::ImageView image_view, vk::ImageLayout image_layout,
- vk::Sampler sampler) {
+ImTextureID AddTexture(vk::ImageView image_view, vk::ImageLayout image_layout,
+ vk::Sampler sampler) {
VkData* bd = GetBackendData();
const InitInfo& v = bd->init_info;
@@ -303,7 +304,9 @@ vk::DescriptorSet AddTexture(vk::ImageView image_view, vk::ImageLayout image_lay
};
v.device.updateDescriptorSets({write_desc}, {});
}
- return descriptor_set;
+ return new Texture{
+ .descriptor_set = descriptor_set,
+ };
}
UploadTextureData UploadTexture(const void* data, vk::Format format, u32 width, u32 height,
size_t size) {
@@ -370,7 +373,7 @@ UploadTextureData UploadTexture(const void* data, vk::Format format, u32 width,
}
// Create descriptor set (ImTextureID)
- info.descriptor_set = AddTexture(info.image_view, vk::ImageLayout::eShaderReadOnlyOptimal);
+ info.im_texture = AddTexture(info.image_view, vk::ImageLayout::eShaderReadOnlyOptimal);
// Create Upload Buffer
{
@@ -464,10 +467,12 @@ UploadTextureData UploadTexture(const void* data, vk::Format format, u32 width,
return info;
}
-void RemoveTexture(vk::DescriptorSet descriptor_set) {
+void RemoveTexture(ImTextureID texture) {
+ IM_ASSERT(texture != nullptr);
VkData* bd = GetBackendData();
const InitInfo& v = bd->init_info;
- v.device.freeDescriptorSets(bd->descriptor_pool, {descriptor_set});
+ v.device.freeDescriptorSets(bd->descriptor_pool, {texture->descriptor_set});
+ delete texture;
}
static void CreateOrResizeBuffer(RenderBuffer& rb, size_t new_size, vk::BufferUsageFlagBits usage) {
@@ -679,13 +684,7 @@ void RenderDrawData(ImDrawData& draw_data, vk::CommandBuffer command_buffer,
command_buffer.setScissor(0, 1, &scissor);
// Bind DescriptorSet with font or user texture
- vk::DescriptorSet desc_set[1]{(VkDescriptorSet)pcmd->TextureId};
- if (sizeof(ImTextureID) < sizeof(ImU64)) {
- // We don't support texture switches if ImTextureID hasn't been redefined to be
- // 64-bit. Do a flaky check that other textures haven't been used.
- IM_ASSERT(pcmd->TextureId == (ImTextureID)bd->font_descriptor_set);
- desc_set[0] = bd->font_descriptor_set;
- }
+ vk::DescriptorSet desc_set[1]{pcmd->TextureId->descriptor_set};
command_buffer.bindDescriptorSets(vk::PipelineBindPoint::eGraphics,
bd->pipeline_layout, 0, {desc_set}, {});
@@ -709,7 +708,7 @@ static bool CreateFontsTexture() {
const InitInfo& v = bd->init_info;
// Destroy existing texture (if any)
- if (bd->font_view || bd->font_image || bd->font_memory || bd->font_descriptor_set) {
+ if (bd->font_view || bd->font_image || bd->font_memory || bd->font_texture) {
CheckVkErr(v.queue.waitIdle());
DestroyFontsTexture();
}
@@ -782,7 +781,7 @@ static bool CreateFontsTexture() {
}
// Create the Descriptor Set:
- bd->font_descriptor_set = AddTexture(bd->font_view, vk::ImageLayout::eShaderReadOnlyOptimal);
+ bd->font_texture = AddTexture(bd->font_view, vk::ImageLayout::eShaderReadOnlyOptimal);
// Create the Upload Buffer:
vk::DeviceMemory upload_buffer_memory{};
@@ -874,7 +873,7 @@ static bool CreateFontsTexture() {
}
// Store our identifier
- io.Fonts->SetTexID(bd->font_descriptor_set);
+ io.Fonts->SetTexID(bd->font_texture);
// End command buffer
vk::SubmitInfo end_info = {};
@@ -898,9 +897,9 @@ static void DestroyFontsTexture() {
VkData* bd = GetBackendData();
const InitInfo& v = bd->init_info;
- if (bd->font_descriptor_set) {
- RemoveTexture(bd->font_descriptor_set);
- bd->font_descriptor_set = VK_NULL_HANDLE;
+ if (bd->font_texture) {
+ RemoveTexture(bd->font_texture);
+ bd->font_texture = nullptr;
io.Fonts->SetTexID(nullptr);
}
diff --git a/src/imgui/renderer/imgui_impl_vulkan.h b/src/imgui/renderer/imgui_impl_vulkan.h
index e325e2a8d..9b15dcae6 100644
--- a/src/imgui/renderer/imgui_impl_vulkan.h
+++ b/src/imgui/renderer/imgui_impl_vulkan.h
@@ -10,6 +10,12 @@
struct ImDrawData;
+namespace ImGui {
+struct Texture {
+ vk::DescriptorSet descriptor_set{nullptr};
+};
+} // namespace ImGui
+
namespace ImGui::Vulkan {
struct InitInfo {
@@ -34,29 +40,32 @@ struct InitInfo {
struct UploadTextureData {
vk::Image image;
vk::ImageView image_view;
- vk::DescriptorSet descriptor_set;
vk::DeviceMemory image_memory;
vk::CommandBuffer command_buffer; // Submit to the queue
vk::Buffer upload_buffer;
vk::DeviceMemory upload_buffer_memory;
+ ImTextureID im_texture;
+
void Upload();
void Destroy();
};
-vk::DescriptorSet AddTexture(vk::ImageView image_view, vk::ImageLayout image_layout,
- vk::Sampler sampler = VK_NULL_HANDLE);
+ImTextureID AddTexture(vk::ImageView image_view, vk::ImageLayout image_layout,
+ vk::Sampler sampler = VK_NULL_HANDLE);
UploadTextureData UploadTexture(const void* data, vk::Format format, u32 width, u32 height,
size_t size);
-void RemoveTexture(vk::DescriptorSet descriptor_set);
+void RemoveTexture(ImTextureID descriptor_set);
bool Init(InitInfo info);
void Shutdown();
void RenderDrawData(ImDrawData& draw_data, vk::CommandBuffer command_buffer,
vk::Pipeline pipeline = VK_NULL_HANDLE);
+void SetBlendEnabled(bool enabled);
+
} // namespace ImGui::Vulkan
\ No newline at end of file
diff --git a/src/imgui/renderer/texture_manager.cpp b/src/imgui/renderer/texture_manager.cpp
index f13c995be..d7516a3a5 100644
--- a/src/imgui/renderer/texture_manager.cpp
+++ b/src/imgui/renderer/texture_manager.cpp
@@ -4,6 +4,7 @@
#include
#include
+#include
#include "common/assert.h"
#include "common/config.h"
#include "common/io_file.h"
@@ -123,7 +124,7 @@ static std::deque g_upload_list;
namespace Core::TextureManager {
Inner::~Inner() {
- if (upload_data.descriptor_set != nullptr) {
+ if (upload_data.im_texture != nullptr) {
std::unique_lock lk{g_upload_mtx};
g_upload_list.emplace_back(UploadJob{
.data = this->upload_data,
@@ -239,7 +240,7 @@ void Submit() {
}
if (upload.core != nullptr) {
upload.core->upload_data.Upload();
- upload.core->texture_id = upload.core->upload_data.descriptor_set;
+ upload.core->texture_id = upload.core->upload_data.im_texture;
if (upload.core->count.fetch_sub(1) == 1) {
delete upload.core;
}
diff --git a/src/input/controller.cpp b/src/input/controller.cpp
index eb43e6adf..ae54553f4 100644
--- a/src/input/controller.cpp
+++ b/src/input/controller.cpp
@@ -10,6 +10,55 @@
namespace Input {
+using Libraries::Pad::OrbisPadButtonDataOffset;
+
+void State::OnButton(OrbisPadButtonDataOffset button, bool isPressed) {
+ if (isPressed) {
+ buttonsState |= button;
+ } else {
+ buttonsState &= ~button;
+ }
+}
+
+void State::OnAxis(Axis axis, int value) {
+ const auto toggle = [&](const auto button) {
+ if (value > 0) {
+ buttonsState |= button;
+ } else {
+ buttonsState &= ~button;
+ }
+ };
+ switch (axis) {
+ case Axis::TriggerLeft:
+ toggle(OrbisPadButtonDataOffset::L2);
+ break;
+ case Axis::TriggerRight:
+ toggle(OrbisPadButtonDataOffset::R2);
+ break;
+ default:
+ break;
+ }
+ axes[static_cast(axis)] = value;
+}
+
+void State::OnTouchpad(int touchIndex, bool isDown, float x, float y) {
+ touchpad[touchIndex].state = isDown;
+ touchpad[touchIndex].x = static_cast(x * 1920);
+ touchpad[touchIndex].y = static_cast(y * 941);
+}
+
+void State::OnGyro(const float gyro[3]) {
+ angularVelocity.x = gyro[0];
+ angularVelocity.y = gyro[1];
+ angularVelocity.z = gyro[2];
+}
+
+void State::OnAccel(const float accel[3]) {
+ acceleration.x = accel[0];
+ acceleration.y = accel[1];
+ acceleration.z = accel[2];
+}
+
GameController::GameController() {
m_states_num = 0;
m_last_state = State();
@@ -75,45 +124,22 @@ void GameController::AddState(const State& state) {
m_states_num++;
}
-void GameController::CheckButton(int id, Libraries::Pad::OrbisPadButtonDataOffset button,
- bool is_pressed) {
+void GameController::CheckButton(int id, OrbisPadButtonDataOffset button, bool is_pressed) {
std::scoped_lock lock{m_mutex};
auto state = GetLastState();
+
state.time = Libraries::Kernel::sceKernelGetProcessTime();
- if (is_pressed) {
- state.buttonsState |= button;
- } else {
- state.buttonsState &= ~button;
- }
+ state.OnButton(button, is_pressed);
AddState(state);
}
void GameController::Axis(int id, Input::Axis axis, int value) {
- using Libraries::Pad::OrbisPadButtonDataOffset;
-
std::scoped_lock lock{m_mutex};
auto state = GetLastState();
state.time = Libraries::Kernel::sceKernelGetProcessTime();
- int axis_id = static_cast(axis);
- state.axes[axis_id] = value;
-
- if (axis == Input::Axis::TriggerLeft) {
- if (value > 0) {
- state.buttonsState |= OrbisPadButtonDataOffset::L2;
- } else {
- state.buttonsState &= ~OrbisPadButtonDataOffset::L2;
- }
- }
-
- if (axis == Input::Axis::TriggerRight) {
- if (value > 0) {
- state.buttonsState |= OrbisPadButtonDataOffset::R2;
- } else {
- state.buttonsState &= ~OrbisPadButtonDataOffset::R2;
- }
- }
+ state.OnAxis(axis, value);
AddState(state);
}
@@ -124,9 +150,7 @@ void GameController::Gyro(int id, const float gyro[3]) {
state.time = Libraries::Kernel::sceKernelGetProcessTime();
// Update the angular velocity (gyro data)
- state.angularVelocity.x = gyro[0]; // X-axis
- state.angularVelocity.y = gyro[1]; // Y-axis
- state.angularVelocity.z = gyro[2]; // Z-axis
+ state.OnGyro(gyro);
AddState(state);
}
@@ -136,9 +160,7 @@ void GameController::Acceleration(int id, const float acceleration[3]) {
state.time = Libraries::Kernel::sceKernelGetProcessTime();
// Update the acceleration values
- state.acceleration.x = acceleration[0]; // X-axis
- state.acceleration.y = acceleration[1]; // Y-axis
- state.acceleration.z = acceleration[2]; // Z-axis
+ state.OnAccel(acceleration);
AddState(state);
}
@@ -211,62 +233,48 @@ void GameController::CalculateOrientation(Libraries::Pad::OrbisFVector3& acceler
}
void GameController::SetLightBarRGB(u8 r, u8 g, u8 b) {
- if (m_sdl_gamepad != nullptr) {
- SDL_SetGamepadLED(m_sdl_gamepad, r, g, b);
+ if (!m_engine) {
+ return;
}
+ std::scoped_lock _{m_mutex};
+ m_engine->SetLightBarRGB(r, g, b);
}
-bool GameController::SetVibration(u8 smallMotor, u8 largeMotor) {
- if (m_sdl_gamepad != nullptr) {
- return SDL_RumbleGamepad(m_sdl_gamepad, (smallMotor / 255.0f) * 0xFFFF,
- (largeMotor / 255.0f) * 0xFFFF, -1);
+void GameController::SetVibration(u8 smallMotor, u8 largeMotor) {
+ if (!m_engine) {
+ return;
}
- return true;
+ std::scoped_lock _{m_mutex};
+ m_engine->SetVibration(smallMotor, largeMotor);
}
void GameController::SetTouchpadState(int touchIndex, bool touchDown, float x, float y) {
if (touchIndex < 2) {
std::scoped_lock lock{m_mutex};
auto state = GetLastState();
- state.time = Libraries::Kernel::sceKernelGetProcessTime();
- state.touchpad[touchIndex].state = touchDown;
- state.touchpad[touchIndex].x = static_cast(x * 1920);
- state.touchpad[touchIndex].y = static_cast(y * 941);
+ state.time = Libraries::Kernel::sceKernelGetProcessTime();
+ state.OnTouchpad(touchIndex, touchDown, x, y);
AddState(state);
}
}
-void GameController::TryOpenSDLController() {
- if (m_sdl_gamepad == nullptr || !SDL_GamepadConnected(m_sdl_gamepad)) {
- int gamepad_count;
- SDL_JoystickID* gamepads = SDL_GetGamepads(&gamepad_count);
- m_sdl_gamepad = gamepad_count > 0 ? SDL_OpenGamepad(gamepads[0]) : nullptr;
- if (Config::getIsMotionControlsEnabled()) {
- if (SDL_SetGamepadSensorEnabled(m_sdl_gamepad, SDL_SENSOR_GYRO, true)) {
- gyro_poll_rate = SDL_GetGamepadSensorDataRate(m_sdl_gamepad, SDL_SENSOR_GYRO);
- LOG_INFO(Input, "Gyro initialized, poll rate: {}", gyro_poll_rate);
- } else {
- LOG_ERROR(Input, "Failed to initialize gyro controls for gamepad");
- }
- if (SDL_SetGamepadSensorEnabled(m_sdl_gamepad, SDL_SENSOR_ACCEL, true)) {
- accel_poll_rate = SDL_GetGamepadSensorDataRate(m_sdl_gamepad, SDL_SENSOR_ACCEL);
- LOG_INFO(Input, "Accel initialized, poll rate: {}", accel_poll_rate);
- } else {
- LOG_ERROR(Input, "Failed to initialize accel controls for gamepad");
- }
- }
-
- SDL_free(gamepads);
-
- SetLightBarRGB(0, 0, 255);
+void GameController::SetEngine(std::unique_ptr engine) {
+ std::scoped_lock _{m_mutex};
+ m_engine = std::move(engine);
+ if (m_engine) {
+ m_engine->Init();
}
}
+Engine* GameController::GetEngine() {
+ return m_engine.get();
+}
+
u32 GameController::Poll() {
- std::scoped_lock lock{m_mutex};
if (m_connected) {
+ std::scoped_lock lock{m_mutex};
auto time = Libraries::Kernel::sceKernelGetProcessTime();
if (m_states_num == 0) {
auto diff = (time - m_last_state.time) / 1000;
diff --git a/src/input/controller.h b/src/input/controller.h
index c6fc02c24..a45e71d77 100644
--- a/src/input/controller.h
+++ b/src/input/controller.h
@@ -3,12 +3,12 @@
#pragma once
+#include
+#include
#include
#include "common/types.h"
#include "core/libraries/pad/pad.h"
-struct SDL_Gamepad;
-
namespace Input {
enum class Axis {
@@ -28,7 +28,14 @@ struct TouchpadEntry {
u16 y{};
};
-struct State {
+class State {
+public:
+ void OnButton(Libraries::Pad::OrbisPadButtonDataOffset, bool);
+ void OnAxis(Axis, int);
+ void OnTouchpad(int touchIndex, bool isDown, float x, float y);
+ void OnGyro(const float[3]);
+ void OnAccel(const float[3]);
+
Libraries::Pad::OrbisPadButtonDataOffset buttonsState{};
u64 time = 0;
int axes[static_cast(Axis::AxisMax)] = {128, 128, 128, 128, 0, 0};
@@ -38,9 +45,19 @@ struct State {
Libraries::Pad::OrbisFQuaternion orientation = {0.0f, 0.0f, 0.0f, 1.0f};
};
+class Engine {
+public:
+ virtual ~Engine() = default;
+ virtual void Init() = 0;
+ virtual void SetLightBarRGB(u8 r, u8 g, u8 b) = 0;
+ virtual void SetVibration(u8 smallMotor, u8 largeMotor) = 0;
+ virtual State ReadState() = 0;
+ virtual float GetAccelPollRate() const = 0;
+ virtual float GetGyroPollRate() const = 0;
+};
+
inline int GetAxis(int min, int max, int value) {
- int v = (255 * (value - min)) / (max - min);
- return (v < 0 ? 0 : (v > 255 ? 255 : v));
+ return std::clamp((255 * (value - min)) / (max - min), 0, 255);
}
constexpr u32 MAX_STATES = 64;
@@ -59,13 +76,12 @@ public:
void Gyro(int id, const float gyro[3]);
void Acceleration(int id, const float acceleration[3]);
void SetLightBarRGB(u8 r, u8 g, u8 b);
- bool SetVibration(u8 smallMotor, u8 largeMotor);
+ void SetVibration(u8 smallMotor, u8 largeMotor);
void SetTouchpadState(int touchIndex, bool touchDown, float x, float y);
- void TryOpenSDLController();
+ void SetEngine(std::unique_ptr);
+ Engine* GetEngine();
u32 Poll();
- float gyro_poll_rate;
- float accel_poll_rate;
static void CalculateOrientation(Libraries::Pad::OrbisFVector3& acceleration,
Libraries::Pad::OrbisFVector3& angularVelocity,
float deltaTime,
@@ -85,7 +101,7 @@ private:
std::array m_states;
std::array m_private;
- SDL_Gamepad* m_sdl_gamepad = nullptr;
+ std::unique_ptr m_engine = nullptr;
};
} // namespace Input
diff --git a/src/main.cpp b/src/main.cpp
index 54772870c..fad3b1f53 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -29,6 +29,7 @@ int main(int argc, char* argv[]) {
bool has_game_argument = false;
std::string game_path;
+ std::vector game_args{};
// Map of argument strings to lambda functions
std::unordered_map> arg_map = {
@@ -37,6 +38,9 @@ int main(int argc, char* argv[]) {
std::cout << "Usage: shadps4 [options] \n"
"Options:\n"
" -g, --game Specify game path to launch\n"
+ " -- ... Parameters passed to the game ELF. "
+ "Needs to be at the end of the line, and everything after \"--\" is a "
+ "game argument.\n"
" -p, --patch Apply specified patch file\n"
" -f, --fullscreen Specify window initial fullscreen "
"state. Does not overwrite the config file.\n"
@@ -126,6 +130,21 @@ int main(int argc, char* argv[]) {
// Assume the last argument is the game file if not specified via -g/--game
game_path = argv[i];
has_game_argument = true;
+ } else if (std::string(argv[i]) == "--") {
+ if (i + 1 == argc) {
+ std::cerr << "Warning: -- is set, but no game arguments are added!\n";
+ break;
+ }
+ for (int j = i + 1; j < argc; j++) {
+ game_args.push_back(argv[j]);
+ }
+ break;
+ } else if (i + 1 < argc && std::string(argv[i + 1]) == "--") {
+ if (!has_game_argument) {
+ game_path = argv[i];
+ has_game_argument = true;
+ }
+ break;
} else {
std::cerr << "Unknown argument: " << cur_arg << ", see --help for info.\n";
return 1;
@@ -166,7 +185,7 @@ int main(int argc, char* argv[]) {
// Run the emulator with the resolved eboot path
Core::Emulator emulator;
- emulator.Run(eboot_path);
+ emulator.Run(eboot_path, game_args);
return 0;
}
diff --git a/src/qt_gui/cheats_patches.cpp b/src/qt_gui/cheats_patches.cpp
index 2fea0b6ea..13157aa3a 100644
--- a/src/qt_gui/cheats_patches.cpp
+++ b/src/qt_gui/cheats_patches.cpp
@@ -188,8 +188,12 @@ void CheatsPatches::setupUI() {
}
});
+ QPushButton* closeButton = new QPushButton(tr("Close"));
+ connect(closeButton, &QPushButton::clicked, [this]() { QWidget::close(); });
+
controlLayout->addWidget(downloadButton);
controlLayout->addWidget(deleteCheatButton);
+ controlLayout->addWidget(closeButton);
cheatsLayout->addLayout(controlLayout);
cheatsTab->setLayout(cheatsLayout);
@@ -464,6 +468,8 @@ void CheatsPatches::onSaveButtonClicked() {
} else {
QMessageBox::information(this, tr("Success"), tr("Options saved successfully."));
}
+
+ QWidget::close();
}
QCheckBox* CheatsPatches::findCheckBoxByName(const QString& name) {
diff --git a/src/qt_gui/game_list_frame.cpp b/src/qt_gui/game_list_frame.cpp
index b1cd07216..9753f511b 100644
--- a/src/qt_gui/game_list_frame.cpp
+++ b/src/qt_gui/game_list_frame.cpp
@@ -106,6 +106,8 @@ void GameListFrame::PlayBackgroundMusic(QTableWidgetItem* item) {
void GameListFrame::PopulateGameList() {
// Do not show status column if it is not enabled
this->setColumnHidden(2, !Config::getCompatibilityEnabled());
+ this->setColumnHidden(6, !Config::GetLoadGameSizeEnabled());
+
this->setRowCount(m_game_info->m_games.size());
ResizeIcons(icon_size);
diff --git a/src/qt_gui/game_list_utils.h b/src/qt_gui/game_list_utils.h
index ab9233886..581a8a55f 100644
--- a/src/qt_gui/game_list_utils.h
+++ b/src/qt_gui/game_list_utils.h
@@ -62,11 +62,46 @@ public:
QDir dir(dirPath);
QDirIterator it(dir.absolutePath(), QDirIterator::Subdirectories);
qint64 total = 0;
+
+ if (!Config::GetLoadGameSizeEnabled()) {
+ game.size = FormatSize(0).toStdString();
+ return;
+ }
+
+ // Cache path
+ QFile size_cache_file(Common::FS::GetUserPath(Common::FS::PathType::MetaDataDir) /
+ game.serial / "size_cache.txt");
+ QFileInfo cacheInfo(size_cache_file);
+ QFileInfo dirInfo(dirPath);
+
+ // Check if cache file exists and is valid
+ if (size_cache_file.exists() && cacheInfo.lastModified() >= dirInfo.lastModified()) {
+ if (size_cache_file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+ QTextStream in(&size_cache_file);
+ QString cachedSize = in.readLine();
+ size_cache_file.close();
+
+ if (!cachedSize.isEmpty()) {
+ game.size = cachedSize.toStdString();
+ return;
+ }
+ }
+ }
+
+ // Cache is invalid or does not exist; calculate size
while (it.hasNext()) {
it.next();
total += it.fileInfo().size();
}
+
game.size = FormatSize(total).toStdString();
+
+ // Save new cache
+ if (size_cache_file.open(QIODevice::WriteOnly | QIODevice::Text)) {
+ QTextStream out(&size_cache_file);
+ out << QString::fromStdString(game.size) << "\n";
+ size_cache_file.close();
+ }
}
static QString GetRegion(char region) {
diff --git a/src/qt_gui/gui_context_menus.h b/src/qt_gui/gui_context_menus.h
index bbc84c4fc..0e8675c0c 100644
--- a/src/qt_gui/gui_context_menus.h
+++ b/src/qt_gui/gui_context_menus.h
@@ -283,7 +283,7 @@ public:
#ifdef Q_OS_WIN
if (createShortcutWin(linkPath, ebootPath, icoPath, exePath)) {
#else
- if (createShortcutLinux(linkPath, ebootPath, iconPath)) {
+ if (createShortcutLinux(linkPath, m_games[itemID].name, ebootPath, iconPath)) {
#endif
QMessageBox::information(
nullptr, tr("Shortcut creation"),
@@ -301,7 +301,7 @@ public:
#ifdef Q_OS_WIN
if (createShortcutWin(linkPath, ebootPath, iconPath, exePath)) {
#else
- if (createShortcutLinux(linkPath, ebootPath, iconPath)) {
+ if (createShortcutLinux(linkPath, m_games[itemID].name, ebootPath, iconPath)) {
#endif
QMessageBox::information(
nullptr, tr("Shortcut creation"),
@@ -510,8 +510,8 @@ private:
return SUCCEEDED(hres);
}
#else
- bool createShortcutLinux(const QString& linkPath, const QString& targetPath,
- const QString& iconPath) {
+ bool createShortcutLinux(const QString& linkPath, const std::string& name,
+ const QString& targetPath, const QString& iconPath) {
QFile shortcutFile(linkPath);
if (!shortcutFile.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox::critical(nullptr, "Error",
@@ -522,7 +522,7 @@ private:
QTextStream out(&shortcutFile);
out << "[Desktop Entry]\n";
out << "Version=1.0\n";
- out << "Name=" << QFileInfo(linkPath).baseName() << "\n";
+ out << "Name=" << QString::fromStdString(name) << "\n";
out << "Exec=" << QCoreApplication::applicationFilePath() << " \"" << targetPath << "\"\n";
out << "Icon=" << iconPath << "\n";
out << "Terminal=false\n";
diff --git a/src/qt_gui/main.cpp b/src/qt_gui/main.cpp
index 2d524e199..8babadc35 100644
--- a/src/qt_gui/main.cpp
+++ b/src/qt_gui/main.cpp
@@ -33,6 +33,7 @@ int main(int argc, char* argv[]) {
bool has_command_line_argument = argc > 1;
bool show_gui = false, has_game_argument = false;
std::string game_path;
+ std::vector game_args{};
// Map of argument strings to lambda functions
std::unordered_map> arg_map = {
@@ -43,6 +44,9 @@ int main(int argc, char* argv[]) {
" No arguments: Opens the GUI.\n"
" -g, --game Specify or "
" to launch\n"
+ " -- ... Parameters passed to the game ELF. "
+ "Needs to be at the end of the line, and everything after \"--\" is a "
+ "game argument.\n"
" -p, --patch Apply specified patch file\n"
" -s, --show-gui Show the GUI\n"
" -f, --fullscreen Specify window initial fullscreen "
@@ -131,6 +135,20 @@ int main(int argc, char* argv[]) {
// Assume the last argument is the game file if not specified via -g/--game
game_path = argv[i];
has_game_argument = true;
+ } else if (std::string(argv[i]) == "--") {
+ if (i + 1 == argc) {
+ std::cerr << "Warning: -- is set, but no game arguments are added!\n";
+ break;
+ }
+ for (int j = i + 1; j < argc; j++) {
+ game_args.push_back(argv[j]);
+ }
+ break;
+ } else if (i + 1 < argc && std::string(argv[i + 1]) == "--") {
+ if (!has_game_argument) {
+ game_path = argv[i];
+ has_game_argument = true;
+ }
} else {
std::cerr << "Unknown argument: " << cur_arg << ", see --help for info.\n";
return 1;
@@ -181,7 +199,7 @@ int main(int argc, char* argv[]) {
// Run the emulator with the resolved game path
Core::Emulator emulator;
- emulator.Run(game_file_path.string());
+ emulator.Run(game_file_path.string(), game_args);
if (!show_gui) {
return 0; // Exit after running the emulator without showing the GUI
}
diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp
index b5e02534e..bad70d8ab 100644
--- a/src/qt_gui/main_window.cpp
+++ b/src/qt_gui/main_window.cpp
@@ -260,6 +260,12 @@ void MainWindow::CreateConnects() {
}
});
+ connect(ui->shadFolderAct, &QAction::triggered, this, [this]() {
+ QString userPath;
+ Common::FS::PathToQString(userPath, Common::FS::GetUserPath(Common::FS::PathType::UserDir));
+ QDesktopServices::openUrl(QUrl::fromLocalFile(userPath));
+ });
+
connect(ui->playButton, &QPushButton::clicked, this, &MainWindow::StartGame);
connect(m_game_grid_frame.get(), &QTableWidget::cellDoubleClicked, this,
&MainWindow::StartGame);
@@ -1054,6 +1060,7 @@ QIcon MainWindow::RecolorIcon(const QIcon& icon, bool isWhite) {
void MainWindow::SetUiIcons(bool isWhite) {
ui->bootInstallPkgAct->setIcon(RecolorIcon(ui->bootInstallPkgAct->icon(), isWhite));
ui->bootGameAct->setIcon(RecolorIcon(ui->bootGameAct->icon(), isWhite));
+ ui->shadFolderAct->setIcon(RecolorIcon(ui->shadFolderAct->icon(), isWhite));
ui->exitAct->setIcon(RecolorIcon(ui->exitAct->icon(), isWhite));
#ifdef ENABLE_UPDATER
ui->updaterAct->setIcon(RecolorIcon(ui->updaterAct->icon(), isWhite));
diff --git a/src/qt_gui/main_window_ui.h b/src/qt_gui/main_window_ui.h
index 46513df9e..ee6b115b1 100644
--- a/src/qt_gui/main_window_ui.h
+++ b/src/qt_gui/main_window_ui.h
@@ -12,6 +12,7 @@ public:
QAction* bootInstallPkgAct;
QAction* bootGameAct;
QAction* addElfFolderAct;
+ QAction* shadFolderAct;
QAction* exitAct;
QAction* showGameListAct;
QAction* refreshGameListAct;
@@ -90,6 +91,9 @@ public:
addElfFolderAct = new QAction(MainWindow);
addElfFolderAct->setObjectName("addElfFolderAct");
addElfFolderAct->setIcon(QIcon(":images/folder_icon.png"));
+ shadFolderAct = new QAction(MainWindow);
+ shadFolderAct->setObjectName("shadFolderAct");
+ shadFolderAct->setIcon(QIcon(":images/folder_icon.png"));
exitAct = new QAction(MainWindow);
exitAct->setObjectName("exitAct");
exitAct->setIcon(QIcon(":images/exit_icon.png"));
@@ -278,7 +282,9 @@ public:
menuBar->addAction(menuHelp->menuAction());
menuFile->addAction(bootInstallPkgAct);
menuFile->addAction(bootGameAct);
+ menuFile->addSeparator();
menuFile->addAction(addElfFolderAct);
+ menuFile->addAction(shadFolderAct);
menuFile->addSeparator();
menuFile->addAction(menuRecent->menuAction());
menuFile->addSeparator();
@@ -338,6 +344,8 @@ public:
"MainWindow", "Install application from a .pkg file", nullptr));
#endif // QT_CONFIG(tooltip)
menuRecent->setTitle(QCoreApplication::translate("MainWindow", "Recent Games", nullptr));
+ shadFolderAct->setText(
+ QCoreApplication::translate("MainWindow", "Open shadPS4 Folder", nullptr));
exitAct->setText(QCoreApplication::translate("MainWindow", "Exit", nullptr));
#if QT_CONFIG(tooltip)
exitAct->setToolTip(QCoreApplication::translate("MainWindow", "Exit shadPS4", nullptr));
diff --git a/src/qt_gui/pkg_viewer.cpp b/src/qt_gui/pkg_viewer.cpp
index 0ffb9b579..b4dd3afdf 100644
--- a/src/qt_gui/pkg_viewer.cpp
+++ b/src/qt_gui/pkg_viewer.cpp
@@ -47,6 +47,9 @@ PKGViewer::PKGViewer(std::shared_ptr game_info_get, QWidget* pare
connect(treeWidget, &QTreeWidget::customContextMenuRequested, this,
[=, this](const QPoint& pos) {
+ if (treeWidget->selectedItems().isEmpty()) {
+ return;
+ }
m_gui_context_menus.RequestGameMenuPKGViewer(pos, m_full_pkg_list, treeWidget,
InstallDragDropPkg);
});
diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp
index 9d5da0da0..e34452ea7 100644
--- a/src/qt_gui/settings_dialog.cpp
+++ b/src/qt_gui/settings_dialog.cpp
@@ -17,6 +17,7 @@
#ifdef ENABLE_UPDATER
#include "check_update.h"
#endif
+#include
#include
#include "background_music_player.h"
#include "common/logging/backend.h"
@@ -206,6 +207,16 @@ SettingsDialog::SettingsDialog(std::span physical_devices,
});
}
+ // DEBUG TAB
+ {
+ connect(ui->OpenLogLocationButton, &QPushButton::clicked, this, []() {
+ QString userPath;
+ Common::FS::PathToQString(userPath,
+ Common::FS::GetUserPath(Common::FS::PathType::UserDir));
+ QDesktopServices::openUrl(QUrl::fromLocalFile(userPath + "/log"));
+ });
+ }
+
// Descriptions
{
// General
@@ -312,6 +323,7 @@ void SettingsDialog::LoadValuesFromConfig() {
toml::find_or(data, "General", "FullscreenMode", "Borderless")));
ui->separateUpdatesCheckBox->setChecked(
toml::find_or(data, "General", "separateUpdateEnabled", false));
+ ui->gameSizeCheckBox->setChecked(toml::find_or(data, "GUI", "loadGameSizeEnabled", true));
ui->showSplashCheckBox->setChecked(toml::find_or(data, "General", "showSplash", false));
ui->logTypeComboBox->setCurrentText(
QString::fromStdString(toml::find_or(data, "General", "logType", "async")));
@@ -520,22 +532,6 @@ bool SettingsDialog::eventFilter(QObject* obj, QEvent* event) {
} else {
ui->descriptionText->setText(defaultTextEdit);
}
-
- // if the text exceeds the size of the box, it will increase the size
- QRect currentGeometry = this->geometry();
- int newWidth = currentGeometry.width();
-
- int documentHeight = ui->descriptionText->document()->size().height();
- int visibleHeight = ui->descriptionText->viewport()->height();
- if (documentHeight > visibleHeight) {
- ui->descriptionText->setMaximumSize(16777215, 110);
- this->setGeometry(currentGeometry.x(), currentGeometry.y(), newWidth,
- currentGeometry.height() + 40);
- } else {
- ui->descriptionText->setMaximumSize(16777215, 70);
- this->setGeometry(currentGeometry.x(), currentGeometry.y(), newWidth,
- initialHeight);
- }
return true;
}
}
@@ -568,6 +564,7 @@ void SettingsDialog::UpdateSettings() {
Config::setDumpShaders(ui->dumpShadersCheckBox->isChecked());
Config::setNullGpu(ui->nullGpuCheckBox->isChecked());
Config::setSeparateUpdateEnabled(ui->separateUpdatesCheckBox->isChecked());
+ Config::setLoadGameSizeEnabled(ui->gameSizeCheckBox->isChecked());
Config::setShowSplash(ui->showSplashCheckBox->isChecked());
Config::setDebugDump(ui->debugDump->isChecked());
Config::setVkValidation(ui->vkValidationCheckBox->isChecked());
diff --git a/src/qt_gui/settings_dialog.ui b/src/qt_gui/settings_dialog.ui
index 8e9fcc434..736d27177 100644
--- a/src/qt_gui/settings_dialog.ui
+++ b/src/qt_gui/settings_dialog.ui
@@ -77,43 +77,6 @@
0
- -
-
-
-
-
-
- System
-
-
-
-
-
-
- Console Language
-
-
-
-
-
-
-
-
-
- -
-
-
- Emulator Language
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -134,7 +97,7 @@
- -
+
-
Fullscreen Mode
@@ -217,7 +180,214 @@
- -
+
-
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ GUI Settings
+
+
+
+ 1
+
+
+ 11
+
+
-
+
+
+ Show Game Size In List
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Play title music
+
+
+
+ -
+
+
+ 1
+
+
+ 0
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 16777215
+ 16777215
+
+
+
+ Volume
+
+
+
+ -
+
+
+ Set the volume of the background music.
+
+
+ 100
+
+
+ 10
+
+
+ 20
+
+
+ 50
+
+
+ Qt::Orientation::Horizontal
+
+
+ false
+
+
+ false
+
+
+ QSlider::TickPosition::NoTicks
+
+
+ 10
+
+
+
+
+
+ -
+
+
+ 6
+
+
+ 0
+
+
+ 50
+
+
-
+
+
-
+
+
+ Trophy
+
+
+
-
+
+
+ Disable Trophy Pop-ups
+
+
+
+ -
+
+
+ Trophy Key
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ 10
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
-
+
+
+ System
+
+
+
-
+
+
+ Console Language
+
+
+
-
+
+
+
+
+
+ -
+
+
+ Emulator Language
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+ -
6
@@ -271,7 +441,7 @@
11
- 11
+ 190
-
@@ -384,7 +554,7 @@
- -
+
-
-
@@ -525,169 +695,6 @@
- -
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
- GUI Settings
-
-
-
- 1
-
-
- 11
-
-
-
-
-
-
- 0
- 0
-
-
-
- Play title music
-
-
-
- -
-
-
- 1
-
-
- 0
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 16777215
- 16777215
-
-
-
- Volume
-
-
-
- -
-
-
- Set the volume of the background music.
-
-
- 100
-
-
- 10
-
-
- 20
-
-
- 50
-
-
- Qt::Orientation::Horizontal
-
-
- false
-
-
- false
-
-
- QSlider::TickPosition::NoTicks
-
-
- 10
-
-
-
- -
-
-
- 6
-
-
- 0
-
-
- 80
-
-
-
-
-
-
-
-
- Trophy
-
-
-
-
-
-
- Disable Trophy Pop-ups
-
-
-
- -
-
-
- Trophy Key
-
-
-
- -
-
-
-
- 0
- 0
-
-
-
-
- 10
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -711,7 +718,7 @@
-
-
+
-
@@ -725,17 +732,14 @@
Cursor
-
-
- 0
-
+
11
11
-
-
+
-
true
@@ -762,7 +766,7 @@
- -
+
-
true
@@ -921,18 +925,24 @@
- -
-
-
- Enable Motion Controls
-
-
-
+ -
+
+
+ Enable Motion Controls
+
+
+
-
true
+
+
+ 0
+ 0
+
+
0
@@ -946,23 +956,6 @@
- -
-
-
-
-
-
- Qt::Orientation::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
-
@@ -1185,11 +1178,14 @@
-
+
+ true
+
Advanced
- Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignVCenter
+ Qt::AlignmentFlag::AlignLeading|Qt::AlignmentFlag::AlignLeft|Qt::AlignmentFlag::AlignTop
-
@@ -1446,6 +1442,13 @@
+ -
+
+
+ Open Log Location
+
+
+
@@ -1483,10 +1486,16 @@
-
+
+
+ 0
+ 0
+
+
16777215
- 70
+ 120
diff --git a/src/qt_gui/translations/ar.ts b/src/qt_gui/translations/ar.ts
index c1964356a..47bd673b2 100644
--- a/src/qt_gui/translations/ar.ts
+++ b/src/qt_gui/translations/ar.ts
@@ -247,6 +247,10 @@
Recent Games
الألعاب الأخيرة
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
خروج
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ عرض حجم اللعبة في القائمة
+
Show Splash
إظهار شاشة البداية
@@ -576,6 +584,10 @@
Log Filter
مرشح السجل
+
+ Open Log Location
+ افتح موقع السجل
+
Input
إدخال
diff --git a/src/qt_gui/translations/da_DK.ts b/src/qt_gui/translations/da_DK.ts
index 51fa2ca5f..91a98abd4 100644
--- a/src/qt_gui/translations/da_DK.ts
+++ b/src/qt_gui/translations/da_DK.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Vis vis spilstørrelse i listen
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ Åbn logplacering
+
Input
Indtastning
diff --git a/src/qt_gui/translations/de.ts b/src/qt_gui/translations/de.ts
index 1653298cf..b1e1d2664 100644
--- a/src/qt_gui/translations/de.ts
+++ b/src/qt_gui/translations/de.ts
@@ -247,6 +247,10 @@
Recent Games
Zuletzt gespielt
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Beenden
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Zeigen Sie die Spielgröße in der Liste
+
Show Splash
Startbildschirm anzeigen
@@ -576,6 +584,10 @@
Log Filter
Log-Filter
+
+ Open Log Location
+ Protokollspeicherort öffnen
+
Input
Eingabe
diff --git a/src/qt_gui/translations/el.ts b/src/qt_gui/translations/el.ts
index 6226e1292..ecda0ede0 100644
--- a/src/qt_gui/translations/el.ts
+++ b/src/qt_gui/translations/el.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Εμφάνιση Μεγέθους Παιχνιδιού στη Λίστα
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ Άνοιγμα τοποθεσίας αρχείου καταγραφής
+
Input
Είσοδος
diff --git a/src/qt_gui/translations/en.ts b/src/qt_gui/translations/en.ts
index b42102302..f873eedff 100644
--- a/src/qt_gui/translations/en.ts
+++ b/src/qt_gui/translations/en.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Show Game Size In List
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ Open Log Location
+
Input
Input
diff --git a/src/qt_gui/translations/es_ES.ts b/src/qt_gui/translations/es_ES.ts
index 021b39ed8..a47f7c577 100644
--- a/src/qt_gui/translations/es_ES.ts
+++ b/src/qt_gui/translations/es_ES.ts
@@ -247,6 +247,10 @@
Recent Games
Juegos recientes
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Salir
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Mostrar Tamaño del Juego en la Lista
+
Show Splash
Mostrar splash
@@ -576,6 +584,10 @@
Log Filter
Filtro de registro
+
+ Open Log Location
+ Abrir ubicación del registro
+
Input
Entrada
diff --git a/src/qt_gui/translations/fa_IR.ts b/src/qt_gui/translations/fa_IR.ts
index ee37cd22a..976e7614e 100644
--- a/src/qt_gui/translations/fa_IR.ts
+++ b/src/qt_gui/translations/fa_IR.ts
@@ -247,6 +247,10 @@
Recent Games
بازی های اخیر
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
خروج
@@ -540,6 +544,10 @@
Enable Separate Update Folder
فعالسازی پوشه جداگانه برای بهروزرسانی
+
+ Show Game Size In List
+ نمایش اندازه بازی در لیست
+
Show Splash
Splash نمایش
@@ -576,6 +584,10 @@
Log Filter
Log فیلتر
+
+ Open Log Location
+ باز کردن مکان گزارش
+
Input
ورودی
diff --git a/src/qt_gui/translations/fi.ts b/src/qt_gui/translations/fi.ts
index 47c38fc46..abc091b7e 100644
--- a/src/qt_gui/translations/fi.ts
+++ b/src/qt_gui/translations/fi.ts
@@ -247,6 +247,10 @@
Recent Games
Viimeisimmät Pelit
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Sulje
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Ota Käyttöön Erillinen Päivityshakemisto
+
+ Show Game Size In List
+ Näytä pelin koko luettelossa
+
Show Splash
Näytä Aloitusnäyttö
@@ -576,6 +584,10 @@
Log Filter
Lokisuodatin
+
+ Open Log Location
+ Avaa lokin sijainti
+
Input
Syöttö
diff --git a/src/qt_gui/translations/fr.ts b/src/qt_gui/translations/fr.ts
index c2a2a64d7..d2a1c5307 100644
--- a/src/qt_gui/translations/fr.ts
+++ b/src/qt_gui/translations/fr.ts
@@ -247,6 +247,10 @@
Recent Games
Jeux récents
+
+ Open shadPS4 Folder
+ Ouvrir le dossier de shadPS4
+
Exit
Fermer
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Dossier séparé pour les mises à jours
+
+ Show Game Size In List
+ Afficher la taille du jeu dans la liste
+
Show Splash
Afficher l'image du jeu
@@ -576,6 +584,10 @@
Log Filter
Filtre
+
+ Open Log Location
+ Ouvrir l'emplacement du journal
+
Input
Entrée
diff --git a/src/qt_gui/translations/hu_HU.ts b/src/qt_gui/translations/hu_HU.ts
index 677302e01..dff6a3a18 100644
--- a/src/qt_gui/translations/hu_HU.ts
+++ b/src/qt_gui/translations/hu_HU.ts
@@ -247,6 +247,10 @@
Recent Games
Legutóbbi Játékok
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Kilépés
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Külön Frissítési Mappa Engedélyezése
+
+ Show Game Size In List
+ Játékméret megjelenítése a listában
+
Show Splash
Indítóképernyő Mutatása
@@ -576,6 +584,10 @@
Log Filter
Naplózási Filter
+
+ Open Log Location
+ Napló helyének megnyitása
+
Input
Bemenet
diff --git a/src/qt_gui/translations/id.ts b/src/qt_gui/translations/id.ts
index 7a1391c0e..e6fb8b5aa 100644
--- a/src/qt_gui/translations/id.ts
+++ b/src/qt_gui/translations/id.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Tampilkan Ukuran Game di Daftar
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ Buka Lokasi Log
+
Input
Masukan
diff --git a/src/qt_gui/translations/it.ts b/src/qt_gui/translations/it.ts
index 8bdb7a8fd..73dbdc603 100644
--- a/src/qt_gui/translations/it.ts
+++ b/src/qt_gui/translations/it.ts
@@ -247,6 +247,10 @@
Recent Games
Giochi Recenti
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Uscita
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Abilita Cartella Aggiornamenti Separata
+
+ Show Game Size In List
+ Mostra la dimensione del gioco nell'elenco
+
Show Splash
Mostra Schermata Iniziale
@@ -576,6 +584,10 @@
Log Filter
Filtro Log
+
+ Open Log Location
+ Apri posizione del registro
+
Input
Input
diff --git a/src/qt_gui/translations/ja_JP.ts b/src/qt_gui/translations/ja_JP.ts
index f34747549..e07d4eb25 100644
--- a/src/qt_gui/translations/ja_JP.ts
+++ b/src/qt_gui/translations/ja_JP.ts
@@ -247,6 +247,10 @@
Recent Games
最近のゲーム
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
終了
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ ゲームサイズをリストに表示
+
Show Splash
スプラッシュを表示する
@@ -576,6 +584,10 @@
Log Filter
ログフィルター
+
+ Open Log Location
+ ログの場所を開く
+
Input
入力
diff --git a/src/qt_gui/translations/ko_KR.ts b/src/qt_gui/translations/ko_KR.ts
index 410f9bead..560b58340 100644
--- a/src/qt_gui/translations/ko_KR.ts
+++ b/src/qt_gui/translations/ko_KR.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ 게임 크기를 목록에 표시
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ 로그 위치 열기
+
Input
Input
diff --git a/src/qt_gui/translations/lt_LT.ts b/src/qt_gui/translations/lt_LT.ts
index 770a9b09e..e2ec1e5c3 100644
--- a/src/qt_gui/translations/lt_LT.ts
+++ b/src/qt_gui/translations/lt_LT.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Rodyti žaidimo dydį sąraše
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ Atidaryti žurnalo vietą
+
Input
Įvestis
diff --git a/src/qt_gui/translations/nb.ts b/src/qt_gui/translations/nb.ts
index 711542773..b94d29b23 100644
--- a/src/qt_gui/translations/nb.ts
+++ b/src/qt_gui/translations/nb.ts
@@ -247,6 +247,10 @@
Recent Games
Nylige spill
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Avslutt
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Aktiver seperat oppdateringsmappe
+
+ Show Game Size In List
+ Vis spillstørrelse i listen
+
Show Splash
Vis velkomstbilde
@@ -576,6 +584,10 @@
Log Filter
Logg filter
+
+ Open Log Location
+ Åpne loggplassering
+
Input
Inndata
diff --git a/src/qt_gui/translations/nl.ts b/src/qt_gui/translations/nl.ts
index 2aa996413..add27500f 100644
--- a/src/qt_gui/translations/nl.ts
+++ b/src/qt_gui/translations/nl.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Toon grootte van het spel in de lijst
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ Loglocatie openen
+
Input
Invoer
diff --git a/src/qt_gui/translations/pl_PL.ts b/src/qt_gui/translations/pl_PL.ts
index 20c9861c3..3280beea7 100644
--- a/src/qt_gui/translations/pl_PL.ts
+++ b/src/qt_gui/translations/pl_PL.ts
@@ -247,6 +247,10 @@
Recent Games
Ostatnie gry
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Wyjdź
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Pokaż rozmiar gry na liście
+
Show Splash
Pokaż ekran powitania
@@ -576,6 +584,10 @@
Log Filter
Filtrowanie dziennika
+
+ Open Log Location
+ Otwórz lokalizację dziennika
+
Input
Wejście
diff --git a/src/qt_gui/translations/pt_BR.ts b/src/qt_gui/translations/pt_BR.ts
index 2d623dfbf..b9d889519 100644
--- a/src/qt_gui/translations/pt_BR.ts
+++ b/src/qt_gui/translations/pt_BR.ts
@@ -247,6 +247,10 @@
Recent Games
Jogos Recentes
+
+ Open shadPS4 Folder
+ Abrir pasta shadPS4
+
Exit
Sair
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Habilitar pasta de atualização separada
+
+ Show Game Size In List
+ Mostrar Tamanho do Jogo na Lista
+
Show Splash
Mostrar Splash Inicial
@@ -576,6 +584,10 @@
Log Filter
Filtro do Registro
+
+ Open Log Location
+ Abrir local do log
+
Input
Entradas
@@ -1333,4 +1345,4 @@
TB
-
\ No newline at end of file
+
diff --git a/src/qt_gui/translations/ro_RO.ts b/src/qt_gui/translations/ro_RO.ts
index fbbabfac0..00a9eb179 100644
--- a/src/qt_gui/translations/ro_RO.ts
+++ b/src/qt_gui/translations/ro_RO.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Afișează dimensiunea jocului în listă
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ Deschide locația jurnalului
+
Input
Introducere
diff --git a/src/qt_gui/translations/ru_RU.ts b/src/qt_gui/translations/ru_RU.ts
index e914e4d49..4c90450dd 100644
--- a/src/qt_gui/translations/ru_RU.ts
+++ b/src/qt_gui/translations/ru_RU.ts
@@ -247,6 +247,10 @@
Recent Games
Недавние игры
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Выход
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Отдельная папка обновлений
+
+ Show Game Size In List
+ Показать размер игры в списке
+
Show Splash
Показывать заставку
@@ -576,6 +584,10 @@
Log Filter
Фильтр логов
+
+ Open Log Location
+ Открыть местоположение журнала
+
Input
Ввод
diff --git a/src/qt_gui/translations/sq.ts b/src/qt_gui/translations/sq.ts
index d4936170b..768db1e75 100644
--- a/src/qt_gui/translations/sq.ts
+++ b/src/qt_gui/translations/sq.ts
@@ -247,6 +247,10 @@
Recent Games
Lojërat e fundit
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Dil
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Aktivizo dosjen e ndarë të përditësimit
+
+ Show Game Size In List
+ Shfaq madhësinë e lojës në listë
+
Show Splash
Shfaq Pamjen e nisjes
@@ -576,6 +584,10 @@
Log Filter
Filtri i Ditarit
+
+ Open Log Location
+ Hap vendndodhjen e regjistrit
+
Input
Hyrja
diff --git a/src/qt_gui/translations/sv.ts b/src/qt_gui/translations/sv.ts
index c1c1204f8..3781ba45c 100644
--- a/src/qt_gui/translations/sv.ts
+++ b/src/qt_gui/translations/sv.ts
@@ -722,6 +722,10 @@
Recent Games
Senaste spel
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Avsluta
@@ -1032,6 +1036,10 @@
Enable Separate Update Folder
Aktivera separat uppdateringsmapp
+
+ Show Game Size In List
+ Visa spelstorlek i listan
+
Show Splash
Visa startskärm
@@ -1064,6 +1072,10 @@
Log Filter
Loggfilter
+
+ Open Log Location
+ Öppna loggplats
+
Input
Inmatning
diff --git a/src/qt_gui/translations/tr_TR.ts b/src/qt_gui/translations/tr_TR.ts
index 48f291e99..5e8499073 100644
--- a/src/qt_gui/translations/tr_TR.ts
+++ b/src/qt_gui/translations/tr_TR.ts
@@ -247,6 +247,10 @@
Recent Games
Son Oyunlar
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Çıkış
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Göster oyun boyutunu listede
+
Show Splash
Başlangıç Ekranını Göster
@@ -576,6 +584,10 @@
Log Filter
Kayıt Filtresi
+
+ Open Log Location
+ Günlük Konumunu Aç
+
Input
Girdi
diff --git a/src/qt_gui/translations/uk_UA.ts b/src/qt_gui/translations/uk_UA.ts
index 03aca7cd9..a1c7e97e0 100644
--- a/src/qt_gui/translations/uk_UA.ts
+++ b/src/qt_gui/translations/uk_UA.ts
@@ -247,6 +247,10 @@
Recent Games
Нещодавні ігри
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Вихід
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Увімкнути окрему папку оновлень
+
+ Show Game Size In List
+ Показати розмір гри в списку
+
Show Splash
Показувати заставку
@@ -576,6 +584,10 @@
Log Filter
Фільтр логів
+
+ Open Log Location
+ Відкрити місце розташування журналу
+
Input
Введення
diff --git a/src/qt_gui/translations/vi_VN.ts b/src/qt_gui/translations/vi_VN.ts
index 3f92c1836..a579a1983 100644
--- a/src/qt_gui/translations/vi_VN.ts
+++ b/src/qt_gui/translations/vi_VN.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ Hiển thị Kích thước Game trong Danh sách
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ Mở vị trí nhật ký
+
Input
Đầu vào
diff --git a/src/qt_gui/translations/zh_CN.ts b/src/qt_gui/translations/zh_CN.ts
index 60e50a2bc..5450f3dfd 100644
--- a/src/qt_gui/translations/zh_CN.ts
+++ b/src/qt_gui/translations/zh_CN.ts
@@ -247,6 +247,10 @@
Recent Games
最近启动的游戏
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
退出
@@ -540,6 +544,10 @@
Enable Separate Update Folder
启用单独的更新目录
+
+ Show Game Size In List
+ 显示游戏大小在列表中
+
Show Splash
显示启动画面
@@ -558,11 +566,11 @@
Trophy Key
- Trophy Key
+ 奖杯密钥
Trophy
- Trophy
+ 奖杯
Logger
@@ -576,6 +584,10 @@
Log Filter
日志过滤
+
+ Open Log Location
+ 打开日志位置
+
Input
输入
@@ -778,7 +790,7 @@
TrophyKey
- Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
+ 奖杯密钥:\n用于解密奖杯的密钥。必须从您的越狱主机中获得。\n仅包含十六进制字符。
logTypeGroupBox
@@ -1333,4 +1345,4 @@
TB
-
\ No newline at end of file
+
diff --git a/src/qt_gui/translations/zh_TW.ts b/src/qt_gui/translations/zh_TW.ts
index d1e822b5c..0ce0b4d69 100644
--- a/src/qt_gui/translations/zh_TW.ts
+++ b/src/qt_gui/translations/zh_TW.ts
@@ -247,6 +247,10 @@
Recent Games
Recent Games
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
Exit
Exit
@@ -540,6 +544,10 @@
Enable Separate Update Folder
Enable Separate Update Folder
+
+ Show Game Size In List
+ 顯示遊戲大小在列表中
+
Show Splash
Show Splash
@@ -576,6 +584,10 @@
Log Filter
Log Filter
+
+ Open Log Location
+ 開啟日誌位置
+
Input
輸入
diff --git a/src/sdl_window.cpp b/src/sdl_window.cpp
index 318b3349b..d1fe6bbab 100644
--- a/src/sdl_window.cpp
+++ b/src/sdl_window.cpp
@@ -10,6 +10,7 @@
#include "common/assert.h"
#include "common/config.h"
+#include "core/libraries/kernel/time.h"
#include "core/libraries/pad/pad.h"
#include "imgui/renderer/imgui_core.h"
#include "input/controller.h"
@@ -20,47 +21,200 @@
#include
#endif
+namespace Input {
+
+using Libraries::Pad::OrbisPadButtonDataOffset;
+
+static OrbisPadButtonDataOffset SDLGamepadToOrbisButton(u8 button) {
+ using OPBDO = OrbisPadButtonDataOffset;
+
+ switch (button) {
+ case SDL_GAMEPAD_BUTTON_DPAD_DOWN:
+ return OPBDO::Down;
+ case SDL_GAMEPAD_BUTTON_DPAD_UP:
+ return OPBDO::Up;
+ case SDL_GAMEPAD_BUTTON_DPAD_LEFT:
+ return OPBDO::Left;
+ case SDL_GAMEPAD_BUTTON_DPAD_RIGHT:
+ return OPBDO::Right;
+ case SDL_GAMEPAD_BUTTON_SOUTH:
+ return OPBDO::Cross;
+ case SDL_GAMEPAD_BUTTON_NORTH:
+ return OPBDO::Triangle;
+ case SDL_GAMEPAD_BUTTON_WEST:
+ return OPBDO::Square;
+ case SDL_GAMEPAD_BUTTON_EAST:
+ return OPBDO::Circle;
+ case SDL_GAMEPAD_BUTTON_START:
+ return OPBDO::Options;
+ case SDL_GAMEPAD_BUTTON_TOUCHPAD:
+ return OPBDO::TouchPad;
+ case SDL_GAMEPAD_BUTTON_BACK:
+ return OPBDO::TouchPad;
+ case SDL_GAMEPAD_BUTTON_LEFT_SHOULDER:
+ return OPBDO::L1;
+ case SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER:
+ return OPBDO::R1;
+ case SDL_GAMEPAD_BUTTON_LEFT_STICK:
+ return OPBDO::L3;
+ case SDL_GAMEPAD_BUTTON_RIGHT_STICK:
+ return OPBDO::R3;
+ default:
+ return OPBDO::None;
+ }
+}
+
+static SDL_GamepadAxis InputAxisToSDL(Axis axis) {
+ switch (axis) {
+ case Axis::LeftX:
+ return SDL_GAMEPAD_AXIS_LEFTX;
+ case Axis::LeftY:
+ return SDL_GAMEPAD_AXIS_LEFTY;
+ case Axis::RightX:
+ return SDL_GAMEPAD_AXIS_RIGHTX;
+ case Axis::RightY:
+ return SDL_GAMEPAD_AXIS_RIGHTY;
+ case Axis::TriggerLeft:
+ return SDL_GAMEPAD_AXIS_LEFT_TRIGGER;
+ case Axis::TriggerRight:
+ return SDL_GAMEPAD_AXIS_RIGHT_TRIGGER;
+ default:
+ UNREACHABLE();
+ }
+}
+
+SDLInputEngine::~SDLInputEngine() {
+ if (m_gamepad) {
+ SDL_CloseGamepad(m_gamepad);
+ }
+}
+
+void SDLInputEngine::Init() {
+ if (m_gamepad) {
+ SDL_CloseGamepad(m_gamepad);
+ m_gamepad = nullptr;
+ }
+ int gamepad_count;
+ SDL_JoystickID* gamepads = SDL_GetGamepads(&gamepad_count);
+ if (!gamepads) {
+ LOG_ERROR(Input, "Cannot get gamepad list: {}", SDL_GetError());
+ return;
+ }
+ if (gamepad_count == 0) {
+ LOG_INFO(Input, "No gamepad found!");
+ SDL_free(gamepads);
+ return;
+ }
+ LOG_INFO(Input, "Got {} gamepads. Opening the first one.", gamepad_count);
+ if (!(m_gamepad = SDL_OpenGamepad(gamepads[0]))) {
+ LOG_ERROR(Input, "Failed to open gamepad 0: {}", SDL_GetError());
+ SDL_free(gamepads);
+ return;
+ }
+ if (Config::getIsMotionControlsEnabled()) {
+ if (SDL_SetGamepadSensorEnabled(m_gamepad, SDL_SENSOR_GYRO, true)) {
+ m_gyro_poll_rate = SDL_GetGamepadSensorDataRate(m_gamepad, SDL_SENSOR_GYRO);
+ LOG_INFO(Input, "Gyro initialized, poll rate: {}", m_gyro_poll_rate);
+ } else {
+ LOG_ERROR(Input, "Failed to initialize gyro controls for gamepad");
+ }
+ if (SDL_SetGamepadSensorEnabled(m_gamepad, SDL_SENSOR_ACCEL, true)) {
+ m_accel_poll_rate = SDL_GetGamepadSensorDataRate(m_gamepad, SDL_SENSOR_ACCEL);
+ LOG_INFO(Input, "Accel initialized, poll rate: {}", m_accel_poll_rate);
+ } else {
+ LOG_ERROR(Input, "Failed to initialize accel controls for gamepad");
+ };
+ }
+ SDL_free(gamepads);
+ SetLightBarRGB(0, 0, 255);
+}
+
+void SDLInputEngine::SetLightBarRGB(u8 r, u8 g, u8 b) {
+ if (m_gamepad) {
+ SDL_SetGamepadLED(m_gamepad, r, g, b);
+ }
+}
+
+void SDLInputEngine::SetVibration(u8 smallMotor, u8 largeMotor) {
+ if (m_gamepad) {
+ const auto low_freq = (smallMotor / 255.0f) * 0xFFFF;
+ const auto high_freq = (largeMotor / 255.0f) * 0xFFFF;
+ SDL_RumbleGamepad(m_gamepad, low_freq, high_freq, -1);
+ }
+}
+
+State SDLInputEngine::ReadState() {
+ State state{};
+ state.time = Libraries::Kernel::sceKernelGetProcessTime();
+
+ // Buttons
+ for (u8 i = 0; i < SDL_GAMEPAD_BUTTON_COUNT; ++i) {
+ auto orbisButton = SDLGamepadToOrbisButton(i);
+ if (orbisButton == OrbisPadButtonDataOffset::None) {
+ continue;
+ }
+ state.OnButton(orbisButton, SDL_GetGamepadButton(m_gamepad, (SDL_GamepadButton)i));
+ }
+
+ // Axes
+ for (int i = 0; i < static_cast(Axis::AxisMax); ++i) {
+ const auto axis = static_cast(i);
+ const auto value = SDL_GetGamepadAxis(m_gamepad, InputAxisToSDL(axis));
+ switch (axis) {
+ case Axis::TriggerLeft:
+ case Axis::TriggerRight:
+ state.OnAxis(axis, GetAxis(0, 0x8000, value));
+ break;
+ default:
+ state.OnAxis(axis, GetAxis(-0x8000, 0x8000, value));
+ break;
+ }
+ }
+
+ // Touchpad
+ if (SDL_GetNumGamepadTouchpads(m_gamepad) > 0) {
+ for (int finger = 0; finger < 2; ++finger) {
+ bool down;
+ float x, y;
+ if (SDL_GetGamepadTouchpadFinger(m_gamepad, 0, finger, &down, &x, &y, NULL)) {
+ state.OnTouchpad(finger, down, x, y);
+ }
+ }
+ }
+
+ // Gyro
+ if (SDL_GamepadHasSensor(m_gamepad, SDL_SENSOR_GYRO)) {
+ float gyro[3];
+ if (SDL_GetGamepadSensorData(m_gamepad, SDL_SENSOR_GYRO, gyro, 3)) {
+ state.OnGyro(gyro);
+ }
+ }
+
+ // Accel
+ if (SDL_GamepadHasSensor(m_gamepad, SDL_SENSOR_ACCEL)) {
+ float accel[3];
+ if (SDL_GetGamepadSensorData(m_gamepad, SDL_SENSOR_ACCEL, accel, 3)) {
+ state.OnAccel(accel);
+ }
+ }
+
+ return state;
+}
+
+float SDLInputEngine::GetGyroPollRate() const {
+ return m_gyro_poll_rate;
+}
+
+float SDLInputEngine::GetAccelPollRate() const {
+ return m_accel_poll_rate;
+}
+
+} // namespace Input
+
namespace Frontend {
using namespace Libraries::Pad;
-static OrbisPadButtonDataOffset SDLGamepadToOrbisButton(u8 button) {
- switch (button) {
- case SDL_GAMEPAD_BUTTON_DPAD_DOWN:
- return OrbisPadButtonDataOffset::Down;
- case SDL_GAMEPAD_BUTTON_DPAD_UP:
- return OrbisPadButtonDataOffset::Up;
- case SDL_GAMEPAD_BUTTON_DPAD_LEFT:
- return OrbisPadButtonDataOffset::Left;
- case SDL_GAMEPAD_BUTTON_DPAD_RIGHT:
- return OrbisPadButtonDataOffset::Right;
- case SDL_GAMEPAD_BUTTON_SOUTH:
- return OrbisPadButtonDataOffset::Cross;
- case SDL_GAMEPAD_BUTTON_NORTH:
- return OrbisPadButtonDataOffset::Triangle;
- case SDL_GAMEPAD_BUTTON_WEST:
- return OrbisPadButtonDataOffset::Square;
- case SDL_GAMEPAD_BUTTON_EAST:
- return OrbisPadButtonDataOffset::Circle;
- case SDL_GAMEPAD_BUTTON_START:
- return OrbisPadButtonDataOffset::Options;
- case SDL_GAMEPAD_BUTTON_TOUCHPAD:
- return OrbisPadButtonDataOffset::TouchPad;
- case SDL_GAMEPAD_BUTTON_BACK:
- return OrbisPadButtonDataOffset::TouchPad;
- case SDL_GAMEPAD_BUTTON_LEFT_SHOULDER:
- return OrbisPadButtonDataOffset::L1;
- case SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER:
- return OrbisPadButtonDataOffset::R1;
- case SDL_GAMEPAD_BUTTON_LEFT_STICK:
- return OrbisPadButtonDataOffset::L3;
- case SDL_GAMEPAD_BUTTON_RIGHT_STICK:
- return OrbisPadButtonDataOffset::R3;
- default:
- return OrbisPadButtonDataOffset::None;
- }
-}
-
static Uint32 SDLCALL PollController(void* userdata, SDL_TimerID timer_id, Uint32 interval) {
auto* controller = reinterpret_cast(userdata);
return controller->Poll();
@@ -112,7 +266,7 @@ WindowSDL::WindowSDL(s32 width_, s32 height_, Input::GameController* controller_
SDL_SetWindowFullscreen(window, Config::getIsFullscreen());
SDL_InitSubSystem(SDL_INIT_GAMEPAD);
- controller->TryOpenSDLController();
+ controller->SetEngine(std::make_unique());
#if defined(SDL_PLATFORM_WIN32)
window_info.type = WindowSystemType::Windows;
@@ -205,7 +359,9 @@ void WindowSDL::InitTimers() {
void WindowSDL::RequestKeyboard() {
if (keyboard_grab == 0) {
- SDL_StartTextInput(window);
+ SDL_RunOnMainThread(
+ [](void* userdata) { SDL_StartTextInput(static_cast(userdata)); }, window,
+ true);
}
keyboard_grab++;
}
@@ -214,7 +370,9 @@ void WindowSDL::ReleaseKeyboard() {
ASSERT(keyboard_grab > 0);
keyboard_grab--;
if (keyboard_grab == 0) {
- SDL_StopTextInput(window);
+ SDL_RunOnMainThread(
+ [](void* userdata) { SDL_StopTextInput(static_cast(userdata)); }, window,
+ true);
}
}
@@ -418,7 +576,7 @@ void WindowSDL::OnGamepadEvent(const SDL_Event* event) {
switch (event->type) {
case SDL_EVENT_GAMEPAD_ADDED:
case SDL_EVENT_GAMEPAD_REMOVED:
- controller->TryOpenSDLController();
+ controller->SetEngine(std::make_unique());
break;
case SDL_EVENT_GAMEPAD_TOUCHPAD_DOWN:
case SDL_EVENT_GAMEPAD_TOUCHPAD_UP:
@@ -429,7 +587,7 @@ void WindowSDL::OnGamepadEvent(const SDL_Event* event) {
break;
case SDL_EVENT_GAMEPAD_BUTTON_DOWN:
case SDL_EVENT_GAMEPAD_BUTTON_UP: {
- button = SDLGamepadToOrbisButton(event->gbutton.button);
+ button = Input::SDLGamepadToOrbisButton(event->gbutton.button);
if (button == OrbisPadButtonDataOffset::None) {
break;
}
diff --git a/src/sdl_window.h b/src/sdl_window.h
index 78d4bbc39..3ab3c3613 100644
--- a/src/sdl_window.h
+++ b/src/sdl_window.h
@@ -5,14 +5,32 @@
#include
#include "common/types.h"
+#include "input/controller.h"
struct SDL_Window;
struct SDL_Gamepad;
union SDL_Event;
namespace Input {
-class GameController;
-}
+
+class SDLInputEngine : public Engine {
+public:
+ ~SDLInputEngine() override;
+ void Init() override;
+ void SetLightBarRGB(u8 r, u8 g, u8 b) override;
+ void SetVibration(u8 smallMotor, u8 largeMotor) override;
+ float GetGyroPollRate() const override;
+ float GetAccelPollRate() const override;
+ State ReadState() override;
+
+private:
+ SDL_Gamepad* m_gamepad = nullptr;
+
+ float m_gyro_poll_rate{};
+ float m_accel_poll_rate{};
+};
+
+} // namespace Input
namespace Frontend {
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp
index c3d937fe7..e2a969b61 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp
@@ -172,20 +172,18 @@ Id EmitImageQueryDimensions(EmitContext& ctx, IR::Inst* inst, u32 handle, Id lod
const auto& texture = ctx.images[handle & 0xFFFF];
const Id image = ctx.OpLoad(texture.image_type, texture.id);
const auto sharp = ctx.info.images[handle & 0xFFFF].GetSharp(ctx.info);
- const auto type = sharp.GetBoundType();
const Id zero = ctx.u32_zero_value;
const auto mips{[&] { return has_mips ? ctx.OpImageQueryLevels(ctx.U32[1], image) : zero; }};
- const bool uses_lod{type != AmdGpu::ImageType::Color2DMsaa && !texture.is_storage};
+ const bool uses_lod{texture.view_type != AmdGpu::ImageType::Color2DMsaa && !texture.is_storage};
const auto query{[&](Id type) {
return uses_lod ? ctx.OpImageQuerySizeLod(type, image, lod)
: ctx.OpImageQuerySize(type, image);
}};
- switch (type) {
+ switch (texture.view_type) {
case AmdGpu::ImageType::Color1D:
return ctx.OpCompositeConstruct(ctx.U32[4], query(ctx.U32[1]), zero, zero, mips());
case AmdGpu::ImageType::Color1DArray:
case AmdGpu::ImageType::Color2D:
- case AmdGpu::ImageType::Cube:
case AmdGpu::ImageType::Color2DMsaa:
return ctx.OpCompositeConstruct(ctx.U32[4], query(ctx.U32[2]), zero, mips());
case AmdGpu::ImageType::Color2DArray:
@@ -257,4 +255,12 @@ void EmitImageWrite(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords, Id
ctx.OpImageWrite(image, coords, texel, operands.mask, operands.operands);
}
+Id EmitCubeFaceIndex(EmitContext& ctx, IR::Inst* inst, Id cube_coords) {
+ if (ctx.profile.supports_native_cube_calc) {
+ return ctx.OpCubeFaceIndexAMD(ctx.F32[1], cube_coords);
+ } else {
+ UNREACHABLE_MSG("SPIR-V Instruction");
+ }
+}
+
} // namespace Shader::Backend::SPIRV
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_instructions.h b/src/shader_recompiler/backend/spirv/emit_spirv_instructions.h
index 0d9fcff46..f0bb9fd7e 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_instructions.h
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_instructions.h
@@ -439,6 +439,7 @@ Id EmitImageAtomicAnd32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords,
Id EmitImageAtomicOr32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords, Id value);
Id EmitImageAtomicXor32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords, Id value);
Id EmitImageAtomicExchange32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id coords, Id value);
+Id EmitCubeFaceIndex(EmitContext& ctx, IR::Inst* inst, Id cube_coords);
Id EmitLaneId(EmitContext& ctx);
Id EmitWarpId(EmitContext& ctx);
Id EmitQuadShuffle(EmitContext& ctx, Id value, Id index);
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp
index 4a22ba09f..a0a3ed8ff 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_special.cpp
@@ -24,10 +24,48 @@ void ConvertDepthMode(EmitContext& ctx) {
ctx.OpStore(ctx.output_position, vector);
}
+void ConvertPositionToClipSpace(EmitContext& ctx) {
+ const Id type{ctx.F32[1]};
+ Id position{ctx.OpLoad(ctx.F32[4], ctx.output_position)};
+ const Id x{ctx.OpCompositeExtract(type, position, 0u)};
+ const Id y{ctx.OpCompositeExtract(type, position, 1u)};
+ const Id z{ctx.OpCompositeExtract(type, position, 2u)};
+ const Id w{ctx.OpCompositeExtract(type, position, 3u)};
+ const Id xoffset_ptr{ctx.OpAccessChain(ctx.TypePointer(spv::StorageClass::PushConstant, type),
+ ctx.push_data_block,
+ ctx.ConstU32(PushData::XOffsetIndex))};
+ const Id xoffset{ctx.OpLoad(type, xoffset_ptr)};
+ const Id yoffset_ptr{ctx.OpAccessChain(ctx.TypePointer(spv::StorageClass::PushConstant, type),
+ ctx.push_data_block,
+ ctx.ConstU32(PushData::YOffsetIndex))};
+ const Id yoffset{ctx.OpLoad(type, yoffset_ptr)};
+ const Id xscale_ptr{ctx.OpAccessChain(ctx.TypePointer(spv::StorageClass::PushConstant, type),
+ ctx.push_data_block,
+ ctx.ConstU32(PushData::XScaleIndex))};
+ const Id xscale{ctx.OpLoad(type, xscale_ptr)};
+ const Id yscale_ptr{ctx.OpAccessChain(ctx.TypePointer(spv::StorageClass::PushConstant, type),
+ ctx.push_data_block,
+ ctx.ConstU32(PushData::YScaleIndex))};
+ const Id yscale{ctx.OpLoad(type, yscale_ptr)};
+ const Id vport_w =
+ ctx.Constant(type, float(std::min(ctx.profile.max_viewport_width / 2, 8_KB)));
+ const Id wnd_x = ctx.OpFAdd(type, ctx.OpFMul(type, x, xscale), xoffset);
+ const Id ndc_x = ctx.OpFSub(type, ctx.OpFDiv(type, wnd_x, vport_w), ctx.Constant(type, 1.f));
+ const Id vport_h =
+ ctx.Constant(type, float(std::min(ctx.profile.max_viewport_height / 2, 8_KB)));
+ const Id wnd_y = ctx.OpFAdd(type, ctx.OpFMul(type, y, yscale), yoffset);
+ const Id ndc_y = ctx.OpFSub(type, ctx.OpFDiv(type, wnd_y, vport_h), ctx.Constant(type, 1.f));
+ const Id vector{ctx.OpCompositeConstruct(ctx.F32[4], std::array({ndc_x, ndc_y, z, w}))};
+ ctx.OpStore(ctx.output_position, vector);
+}
+
void EmitEpilogue(EmitContext& ctx) {
if (ctx.stage == Stage::Vertex && ctx.runtime_info.vs_info.emulate_depth_negative_one_to_one) {
ConvertDepthMode(ctx);
}
+ if (ctx.stage == Stage::Vertex && ctx.runtime_info.vs_info.clip_disable) {
+ ConvertPositionToClipSpace(ctx);
+ }
}
void EmitDiscard(EmitContext& ctx) {
diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
index 575bf91f7..b0bf5aa0a 100644
--- a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
+++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
@@ -395,7 +395,7 @@ void EmitContext::DefineInputs() {
DefineVariable(U32[1], spv::BuiltIn::PatchVertices, spv::StorageClass::Input);
primitive_id = DefineVariable(U32[1], spv::BuiltIn::PrimitiveId, spv::StorageClass::Input);
- const u32 num_attrs = runtime_info.hs_info.ls_stride >> 4;
+ const u32 num_attrs = Common::AlignUp(runtime_info.hs_info.ls_stride, 16) >> 4;
if (num_attrs > 0) {
const Id per_vertex_type{TypeArray(F32[4], ConstU32(num_attrs))};
// The input vertex count isn't statically known, so make length 32 (what glslang does)
@@ -409,7 +409,7 @@ void EmitContext::DefineInputs() {
tess_coord = DefineInput(F32[3], std::nullopt, spv::BuiltIn::TessCoord);
primitive_id = DefineVariable(U32[1], spv::BuiltIn::PrimitiveId, spv::StorageClass::Input);
- const u32 num_attrs = runtime_info.vs_info.hs_output_cp_stride >> 4;
+ const u32 num_attrs = Common::AlignUp(runtime_info.vs_info.hs_output_cp_stride, 16) >> 4;
if (num_attrs > 0) {
const Id per_vertex_type{TypeArray(F32[4], ConstU32(num_attrs))};
// The input vertex count isn't statically known, so make length 32 (what glslang does)
@@ -418,7 +418,7 @@ void EmitContext::DefineInputs() {
Name(input_attr_array, "in_attrs");
}
- u32 patch_base_location = runtime_info.vs_info.hs_output_cp_stride >> 4;
+ const u32 patch_base_location = num_attrs;
for (size_t index = 0; index < 30; ++index) {
if (!(info.uses_patches & (1U << index))) {
continue;
@@ -453,7 +453,7 @@ void EmitContext::DefineOutputs() {
DefineVariable(type, spv::BuiltIn::CullDistance, spv::StorageClass::Output);
}
if (stage == Shader::Stage::Local && runtime_info.ls_info.links_with_tcs) {
- const u32 num_attrs = runtime_info.ls_info.ls_stride >> 4;
+ const u32 num_attrs = Common::AlignUp(runtime_info.ls_info.ls_stride, 16) >> 4;
if (num_attrs > 0) {
const Id type{TypeArray(F32[4], ConstU32(num_attrs))};
output_attr_array = DefineOutput(type, 0);
@@ -488,7 +488,7 @@ void EmitContext::DefineOutputs() {
Decorate(output_tess_level_inner, spv::Decoration::Patch);
}
- const u32 num_attrs = runtime_info.hs_info.hs_output_cp_stride >> 4;
+ const u32 num_attrs = Common::AlignUp(runtime_info.hs_info.hs_output_cp_stride, 16) >> 4;
if (num_attrs > 0) {
const Id per_vertex_type{TypeArray(F32[4], ConstU32(num_attrs))};
// The input vertex count isn't statically known, so make length 32 (what glslang does)
@@ -498,7 +498,7 @@ void EmitContext::DefineOutputs() {
Name(output_attr_array, "out_attrs");
}
- u32 patch_base_location = runtime_info.hs_info.hs_output_cp_stride >> 4;
+ const u32 patch_base_location = num_attrs;
for (size_t index = 0; index < 30; ++index) {
if (!(info.uses_patches & (1U << index))) {
continue;
@@ -568,25 +568,34 @@ void EmitContext::DefineOutputs() {
void EmitContext::DefinePushDataBlock() {
// Create push constants block for instance steps rates
- const Id struct_type{Name(
- TypeStruct(U32[1], U32[1], U32[4], U32[4], U32[4], U32[4], U32[4], U32[4]), "AuxData")};
+ const Id struct_type{Name(TypeStruct(U32[1], U32[1], U32[4], U32[4], U32[4], U32[4], U32[4],
+ U32[4], F32[1], F32[1], F32[1], F32[1]),
+ "AuxData")};
Decorate(struct_type, spv::Decoration::Block);
MemberName(struct_type, 0, "sr0");
MemberName(struct_type, 1, "sr1");
- MemberName(struct_type, 2, "buf_offsets0");
- MemberName(struct_type, 3, "buf_offsets1");
- MemberName(struct_type, 4, "ud_regs0");
- MemberName(struct_type, 5, "ud_regs1");
- MemberName(struct_type, 6, "ud_regs2");
- MemberName(struct_type, 7, "ud_regs3");
+ MemberName(struct_type, Shader::PushData::BufOffsetIndex + 0, "buf_offsets0");
+ MemberName(struct_type, Shader::PushData::BufOffsetIndex + 1, "buf_offsets1");
+ MemberName(struct_type, Shader::PushData::UdRegsIndex + 0, "ud_regs0");
+ MemberName(struct_type, Shader::PushData::UdRegsIndex + 1, "ud_regs1");
+ MemberName(struct_type, Shader::PushData::UdRegsIndex + 2, "ud_regs2");
+ MemberName(struct_type, Shader::PushData::UdRegsIndex + 3, "ud_regs3");
+ MemberName(struct_type, Shader::PushData::XOffsetIndex, "xoffset");
+ MemberName(struct_type, Shader::PushData::YOffsetIndex, "yoffset");
+ MemberName(struct_type, Shader::PushData::XScaleIndex, "xscale");
+ MemberName(struct_type, Shader::PushData::YScaleIndex, "yscale");
MemberDecorate(struct_type, 0, spv::Decoration::Offset, 0U);
MemberDecorate(struct_type, 1, spv::Decoration::Offset, 4U);
- MemberDecorate(struct_type, 2, spv::Decoration::Offset, 8U);
- MemberDecorate(struct_type, 3, spv::Decoration::Offset, 24U);
- MemberDecorate(struct_type, 4, spv::Decoration::Offset, 40U);
- MemberDecorate(struct_type, 5, spv::Decoration::Offset, 56U);
- MemberDecorate(struct_type, 6, spv::Decoration::Offset, 72U);
- MemberDecorate(struct_type, 7, spv::Decoration::Offset, 88U);
+ MemberDecorate(struct_type, Shader::PushData::BufOffsetIndex + 0, spv::Decoration::Offset, 8U);
+ MemberDecorate(struct_type, Shader::PushData::BufOffsetIndex + 1, spv::Decoration::Offset, 24U);
+ MemberDecorate(struct_type, Shader::PushData::UdRegsIndex + 0, spv::Decoration::Offset, 40U);
+ MemberDecorate(struct_type, Shader::PushData::UdRegsIndex + 1, spv::Decoration::Offset, 56U);
+ MemberDecorate(struct_type, Shader::PushData::UdRegsIndex + 2, spv::Decoration::Offset, 72U);
+ MemberDecorate(struct_type, Shader::PushData::UdRegsIndex + 3, spv::Decoration::Offset, 88U);
+ MemberDecorate(struct_type, Shader::PushData::XOffsetIndex, spv::Decoration::Offset, 104U);
+ MemberDecorate(struct_type, Shader::PushData::YOffsetIndex, spv::Decoration::Offset, 108U);
+ MemberDecorate(struct_type, Shader::PushData::XScaleIndex, spv::Decoration::Offset, 112U);
+ MemberDecorate(struct_type, Shader::PushData::YScaleIndex, spv::Decoration::Offset, 116U);
push_data_block = DefineVar(struct_type, spv::StorageClass::PushConstant);
Name(push_data_block, "push_data");
interfaces.push_back(push_data_block);
@@ -773,8 +782,8 @@ spv::ImageFormat GetFormat(const AmdGpu::Image& image) {
Id ImageType(EmitContext& ctx, const ImageResource& desc, Id sampled_type) {
const auto image = desc.GetSharp(ctx.info);
const auto format = desc.is_atomic ? GetFormat(image) : spv::ImageFormat::Unknown;
- const auto type = image.GetBoundType();
- const u32 sampled = desc.IsStorage(image) ? 2 : 1;
+ const auto type = image.GetViewType(desc.is_array);
+ const u32 sampled = desc.is_written ? 2 : 1;
switch (type) {
case AmdGpu::ImageType::Color1D:
return ctx.TypeImage(sampled_type, spv::Dim::Dim1D, false, false, false, sampled, format);
@@ -788,9 +797,6 @@ Id ImageType(EmitContext& ctx, const ImageResource& desc, Id sampled_type) {
return ctx.TypeImage(sampled_type, spv::Dim::Dim2D, false, false, true, sampled, format);
case AmdGpu::ImageType::Color3D:
return ctx.TypeImage(sampled_type, spv::Dim::Dim3D, false, false, false, sampled, format);
- case AmdGpu::ImageType::Cube:
- return ctx.TypeImage(sampled_type, spv::Dim::Cube, false, desc.is_array, false, sampled,
- format);
default:
break;
}
@@ -802,7 +808,7 @@ void EmitContext::DefineImagesAndSamplers() {
const auto sharp = image_desc.GetSharp(info);
const auto nfmt = sharp.GetNumberFmt();
const bool is_integer = AmdGpu::IsInteger(nfmt);
- const bool is_storage = image_desc.IsStorage(sharp);
+ const bool is_storage = image_desc.is_written;
const VectorIds& data_types = GetAttributeType(*this, nfmt);
const Id sampled_type = data_types[1];
const Id image_type{ImageType(*this, image_desc, sampled_type)};
@@ -817,6 +823,7 @@ void EmitContext::DefineImagesAndSamplers() {
.sampled_type = is_storage ? sampled_type : TypeSampledImage(image_type),
.pointer_type = pointer_type,
.image_type = image_type,
+ .view_type = sharp.GetViewType(image_desc.is_array),
.is_integer = is_integer,
.is_storage = is_storage,
});
@@ -849,6 +856,10 @@ void EmitContext::DefineSharedMemory() {
if (shared_memory_size == 0) {
shared_memory_size = DefaultSharedMemSize;
}
+
+ const u32 max_shared_memory_size = runtime_info.cs_info.max_shared_memory_size;
+ ASSERT(shared_memory_size <= max_shared_memory_size);
+
const u32 num_elements{Common::DivCeil(shared_memory_size, 4U)};
const Id type{TypeArray(U32[1], ConstU32(num_elements))};
shared_memory_u32_type = TypePointer(spv::StorageClass::Workgroup, type);
diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.h b/src/shader_recompiler/backend/spirv/spirv_emit_context.h
index 583d96b99..f552055c0 100644
--- a/src/shader_recompiler/backend/spirv/spirv_emit_context.h
+++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.h
@@ -222,6 +222,7 @@ public:
Id sampled_type;
Id pointer_type;
Id image_type;
+ AmdGpu::ImageType view_type;
bool is_integer = false;
bool is_storage = false;
};
diff --git a/src/shader_recompiler/frontend/control_flow_graph.cpp b/src/shader_recompiler/frontend/control_flow_graph.cpp
index 0816ec088..ec5c117f7 100644
--- a/src/shader_recompiler/frontend/control_flow_graph.cpp
+++ b/src/shader_recompiler/frontend/control_flow_graph.cpp
@@ -47,13 +47,26 @@ static IR::Condition MakeCondition(const GcnInst& inst) {
}
}
-static bool IgnoresExecMask(Opcode opcode) {
- switch (opcode) {
- case Opcode::V_WRITELANE_B32:
+static bool IgnoresExecMask(const GcnInst& inst) {
+ // EXEC mask does not affect scalar instructions or branches.
+ switch (inst.category) {
+ case InstCategory::ScalarALU:
+ case InstCategory::ScalarMemory:
+ case InstCategory::FlowControl:
return true;
default:
- return false;
+ break;
}
+ // Read/Write Lane instructions are not affected either.
+ switch (inst.opcode) {
+ case Opcode::V_READLANE_B32:
+ case Opcode::V_WRITELANE_B32:
+ case Opcode::V_READFIRSTLANE_B32:
+ return true;
+ default:
+ break;
+ }
+ return false;
}
static constexpr size_t LabelReserveSize = 32;
@@ -147,8 +160,7 @@ void CFG::EmitDivergenceLabels() {
// If all instructions in the scope ignore exec masking, we shouldn't insert a
// scope.
const auto start = inst_list.begin() + curr_begin + 1;
- if (!std::ranges::all_of(start, inst_list.begin() + index, IgnoresExecMask,
- &GcnInst::opcode)) {
+ if (!std::ranges::all_of(start, inst_list.begin() + index, IgnoresExecMask)) {
// Add a label to the instruction right after the open scope call.
// It is the start of a new basic block.
const auto& save_inst = inst_list[curr_begin];
diff --git a/src/shader_recompiler/frontend/translate/translate.h b/src/shader_recompiler/frontend/translate/translate.h
index 7a0b736d4..bef61f997 100644
--- a/src/shader_recompiler/frontend/translate/translate.h
+++ b/src/shader_recompiler/frontend/translate/translate.h
@@ -301,6 +301,9 @@ private:
IR::U32 VMovRelSHelper(u32 src_vgprno, const IR::U32 m0);
void VMovRelDHelper(u32 dst_vgprno, const IR::U32 src_val, const IR::U32 m0);
+ IR::F32 SelectCubeResult(const IR::F32& x, const IR::F32& y, const IR::F32& z,
+ const IR::F32& x_res, const IR::F32& y_res, const IR::F32& z_res);
+
void LogMissingOpcode(const GcnInst& inst);
private:
diff --git a/src/shader_recompiler/frontend/translate/vector_alu.cpp b/src/shader_recompiler/frontend/translate/vector_alu.cpp
index 7fa83eebb..b2863f6a8 100644
--- a/src/shader_recompiler/frontend/translate/vector_alu.cpp
+++ b/src/shader_recompiler/frontend/translate/vector_alu.cpp
@@ -3,6 +3,7 @@
#include "shader_recompiler/frontend/opcodes.h"
#include "shader_recompiler/frontend/translate/translate.h"
+#include "shader_recompiler/profile.h"
namespace Shader::Gcn {
@@ -843,7 +844,7 @@ void Translator::V_FREXP_MANT_F64(const GcnInst& inst) {
}
void Translator::V_FRACT_F64(const GcnInst& inst) {
- const IR::F32 src0{GetSrc64(inst.src[0])};
+ const IR::F64 src0{GetSrc64(inst.src[0])};
SetDst64(inst.dst[0], ir.FPFract(src0));
}
@@ -1042,20 +1043,81 @@ void Translator::V_MAD_U32_U24(const GcnInst& inst) {
V_MAD_I32_I24(inst, false);
}
+IR::F32 Translator::SelectCubeResult(const IR::F32& x, const IR::F32& y, const IR::F32& z,
+ const IR::F32& x_res, const IR::F32& y_res,
+ const IR::F32& z_res) {
+ const auto abs_x = ir.FPAbs(x);
+ const auto abs_y = ir.FPAbs(y);
+ const auto abs_z = ir.FPAbs(z);
+
+ const auto z_face_cond{
+ ir.LogicalAnd(ir.FPGreaterThanEqual(abs_z, abs_x), ir.FPGreaterThanEqual(abs_z, abs_y))};
+ const auto y_face_cond{ir.FPGreaterThanEqual(abs_y, abs_x)};
+
+ return IR::F32{ir.Select(z_face_cond, z_res, ir.Select(y_face_cond, y_res, x_res))};
+}
+
void Translator::V_CUBEID_F32(const GcnInst& inst) {
- SetDst(inst.dst[0], GetSrc(inst.src[2]));
+ const auto x = GetSrc(inst.src[0]);
+ const auto y = GetSrc(inst.src[1]);
+ const auto z = GetSrc(inst.src[2]);
+
+ IR::F32 result;
+ if (profile.supports_native_cube_calc) {
+ result = ir.CubeFaceIndex(ir.CompositeConstruct(x, y, z));
+ } else {
+ const auto x_neg_cond{ir.FPLessThan(x, ir.Imm32(0.f))};
+ const auto y_neg_cond{ir.FPLessThan(y, ir.Imm32(0.f))};
+ const auto z_neg_cond{ir.FPLessThan(z, ir.Imm32(0.f))};
+ const IR::F32 x_face{ir.Select(x_neg_cond, ir.Imm32(1.f), ir.Imm32(0.f))};
+ const IR::F32 y_face{ir.Select(y_neg_cond, ir.Imm32(3.f), ir.Imm32(2.f))};
+ const IR::F32 z_face{ir.Select(z_neg_cond, ir.Imm32(5.f), ir.Imm32(4.f))};
+
+ result = SelectCubeResult(x, y, z, x_face, y_face, z_face);
+ }
+ SetDst(inst.dst[0], result);
}
void Translator::V_CUBESC_F32(const GcnInst& inst) {
- SetDst(inst.dst[0], GetSrc(inst.src[0]));
+ const auto x = GetSrc(inst.src[0]);
+ const auto y = GetSrc(inst.src[1]);
+ const auto z = GetSrc(inst.src[2]);
+
+ const auto x_neg_cond{ir.FPLessThan(x, ir.Imm32(0.f))};
+ const auto z_neg_cond{ir.FPLessThan(z, ir.Imm32(0.f))};
+ const IR::F32 x_sc{ir.Select(x_neg_cond, z, ir.FPNeg(z))};
+ const IR::F32 y_sc{x};
+ const IR::F32 z_sc{ir.Select(z_neg_cond, ir.FPNeg(x), x)};
+
+ const auto result{SelectCubeResult(x, y, z, x_sc, y_sc, z_sc)};
+ SetDst(inst.dst[0], result);
}
void Translator::V_CUBETC_F32(const GcnInst& inst) {
- SetDst(inst.dst[0], GetSrc(inst.src[1]));
+ const auto x = GetSrc(inst.src[0]);
+ const auto y = GetSrc(inst.src[1]);
+ const auto z = GetSrc(inst.src[2]);
+
+ const auto y_neg_cond{ir.FPLessThan(y, ir.Imm32(0.f))};
+ const IR::F32 x_z_tc{ir.FPNeg(y)};
+ const IR::F32 y_tc{ir.Select(y_neg_cond, ir.FPNeg(z), z)};
+
+ const auto result{SelectCubeResult(x, y, z, x_z_tc, y_tc, x_z_tc)};
+ SetDst(inst.dst[0], result);
}
void Translator::V_CUBEMA_F32(const GcnInst& inst) {
- SetDst(inst.dst[0], ir.Imm32(1.f));
+ const auto x = GetSrc(inst.src[0]);
+ const auto y = GetSrc(inst.src[1]);
+ const auto z = GetSrc(inst.src[2]);
+
+ const auto two{ir.Imm32(2.f)};
+ const IR::F32 x_major_axis{ir.FPMul(x, two)};
+ const IR::F32 y_major_axis{ir.FPMul(y, two)};
+ const IR::F32 z_major_axis{ir.FPMul(z, two)};
+
+ const auto result{SelectCubeResult(x, y, z, x_major_axis, y_major_axis, z_major_axis)};
+ SetDst(inst.dst[0], result);
}
void Translator::V_BFE_U32(bool is_signed, const GcnInst& inst) {
diff --git a/src/shader_recompiler/frontend/translate/vector_memory.cpp b/src/shader_recompiler/frontend/translate/vector_memory.cpp
index c5be08b7d..8fa0f3f87 100644
--- a/src/shader_recompiler/frontend/translate/vector_memory.cpp
+++ b/src/shader_recompiler/frontend/translate/vector_memory.cpp
@@ -164,8 +164,8 @@ void Translator::EmitVectorMemory(const GcnInst& inst) {
}
void Translator::BUFFER_LOAD(u32 num_dwords, bool is_typed, const GcnInst& inst) {
- const auto& mtbuf = inst.control.mtbuf;
- const bool is_ring = mtbuf.glc && mtbuf.slc;
+ const auto& mubuf = inst.control.mubuf;
+ const bool is_ring = mubuf.glc && mubuf.slc;
const IR::VectorReg vaddr{inst.src[0].code};
const IR::ScalarReg sharp{inst.src[2].code * 4};
const IR::Value soffset{GetSrc(inst.src[3])};
@@ -178,22 +178,23 @@ void Translator::BUFFER_LOAD(u32 num_dwords, bool is_typed, const GcnInst& inst)
if (is_ring) {
return ir.CompositeConstruct(ir.GetVectorReg(vaddr), soffset);
}
- if (mtbuf.idxen && mtbuf.offen) {
+ if (mubuf.idxen && mubuf.offen) {
return ir.CompositeConstruct(ir.GetVectorReg(vaddr), ir.GetVectorReg(vaddr + 1));
}
- if (mtbuf.idxen || mtbuf.offen) {
+ if (mubuf.idxen || mubuf.offen) {
return ir.GetVectorReg(vaddr);
}
return {};
}();
IR::BufferInstInfo buffer_info{};
- buffer_info.index_enable.Assign(mtbuf.idxen);
- buffer_info.offset_enable.Assign(mtbuf.offen);
- buffer_info.inst_offset.Assign(mtbuf.offset);
- buffer_info.globally_coherent.Assign(mtbuf.glc);
- buffer_info.system_coherent.Assign(mtbuf.slc);
+ buffer_info.index_enable.Assign(mubuf.idxen);
+ buffer_info.offset_enable.Assign(mubuf.offen);
+ buffer_info.inst_offset.Assign(mubuf.offset);
+ buffer_info.globally_coherent.Assign(mubuf.glc);
+ buffer_info.system_coherent.Assign(mubuf.slc);
if (is_typed) {
+ const auto& mtbuf = inst.control.mtbuf;
const auto dmft = static_cast(mtbuf.dfmt);
const auto nfmt = static_cast(mtbuf.nfmt);
ASSERT(nfmt == AmdGpu::NumberFormat::Float &&
@@ -220,9 +221,11 @@ void Translator::BUFFER_LOAD_FORMAT(u32 num_dwords, const GcnInst& inst) {
const auto& mubuf = inst.control.mubuf;
const IR::VectorReg vaddr{inst.src[0].code};
const IR::ScalarReg sharp{inst.src[2].code * 4};
- ASSERT_MSG(!mubuf.offen && mubuf.offset == 0, "Offsets for image buffers are not supported");
const IR::Value address = [&] -> IR::Value {
- if (mubuf.idxen) {
+ if (mubuf.idxen && mubuf.offen) {
+ return ir.CompositeConstruct(ir.GetVectorReg(vaddr), ir.GetVectorReg(vaddr + 1));
+ }
+ if (mubuf.idxen || mubuf.offen) {
return ir.GetVectorReg(vaddr);
}
return {};
@@ -230,13 +233,17 @@ void Translator::BUFFER_LOAD_FORMAT(u32 num_dwords, const GcnInst& inst) {
const IR::Value soffset{GetSrc(inst.src[3])};
ASSERT_MSG(soffset.IsImmediate() && soffset.U32() == 0, "Non immediate offset not supported");
- IR::BufferInstInfo info{};
- info.index_enable.Assign(mubuf.idxen);
+ IR::BufferInstInfo buffer_info{};
+ buffer_info.index_enable.Assign(mubuf.idxen);
+ buffer_info.offset_enable.Assign(mubuf.offen);
+ buffer_info.inst_offset.Assign(mubuf.offset);
+ buffer_info.globally_coherent.Assign(mubuf.glc);
+ buffer_info.system_coherent.Assign(mubuf.slc);
const IR::Value handle =
ir.CompositeConstruct(ir.GetScalarReg(sharp), ir.GetScalarReg(sharp + 1),
ir.GetScalarReg(sharp + 2), ir.GetScalarReg(sharp + 3));
- const IR::Value value = ir.LoadBufferFormat(handle, address, info);
+ const IR::Value value = ir.LoadBufferFormat(handle, address, buffer_info);
const IR::VectorReg dst_reg{inst.src[1].code};
for (u32 i = 0; i < num_dwords; i++) {
ir.SetVectorReg(dst_reg + i, IR::F32{ir.CompositeExtract(value, i)});
@@ -244,8 +251,8 @@ void Translator::BUFFER_LOAD_FORMAT(u32 num_dwords, const GcnInst& inst) {
}
void Translator::BUFFER_STORE(u32 num_dwords, bool is_typed, const GcnInst& inst) {
- const auto& mtbuf = inst.control.mtbuf;
- const bool is_ring = mtbuf.glc && mtbuf.slc;
+ const auto& mubuf = inst.control.mubuf;
+ const bool is_ring = mubuf.glc && mubuf.slc;
const IR::VectorReg vaddr{inst.src[0].code};
const IR::ScalarReg sharp{inst.src[2].code * 4};
const IR::Value soffset{GetSrc(inst.src[3])};
@@ -259,22 +266,23 @@ void Translator::BUFFER_STORE(u32 num_dwords, bool is_typed, const GcnInst& inst
if (is_ring) {
return ir.CompositeConstruct(ir.GetVectorReg(vaddr), soffset);
}
- if (mtbuf.idxen && mtbuf.offen) {
+ if (mubuf.idxen && mubuf.offen) {
return ir.CompositeConstruct(ir.GetVectorReg(vaddr), ir.GetVectorReg(vaddr + 1));
}
- if (mtbuf.idxen || mtbuf.offen) {
+ if (mubuf.idxen || mubuf.offen) {
return ir.GetVectorReg(vaddr);
}
return {};
}();
IR::BufferInstInfo buffer_info{};
- buffer_info.index_enable.Assign(mtbuf.idxen);
- buffer_info.offset_enable.Assign(mtbuf.offen);
- buffer_info.inst_offset.Assign(mtbuf.offset);
- buffer_info.globally_coherent.Assign(mtbuf.glc);
- buffer_info.system_coherent.Assign(mtbuf.slc);
+ buffer_info.index_enable.Assign(mubuf.idxen);
+ buffer_info.offset_enable.Assign(mubuf.offen);
+ buffer_info.inst_offset.Assign(mubuf.offset);
+ buffer_info.globally_coherent.Assign(mubuf.glc);
+ buffer_info.system_coherent.Assign(mubuf.slc);
if (is_typed) {
+ const auto& mtbuf = inst.control.mtbuf;
const auto dmft = static_cast(mtbuf.dfmt);
const auto nfmt = static_cast(mtbuf.nfmt);
ASSERT(nfmt == AmdGpu::NumberFormat::Float &&
@@ -321,8 +329,12 @@ void Translator::BUFFER_STORE_FORMAT(u32 num_dwords, const GcnInst& inst) {
const IR::Value soffset{GetSrc(inst.src[3])};
ASSERT_MSG(soffset.IsImmediate() && soffset.U32() == 0, "Non immediate offset not supported");
- IR::BufferInstInfo info{};
- info.index_enable.Assign(mubuf.idxen);
+ IR::BufferInstInfo buffer_info{};
+ buffer_info.index_enable.Assign(mubuf.idxen);
+ buffer_info.offset_enable.Assign(mubuf.offen);
+ buffer_info.inst_offset.Assign(mubuf.offset);
+ buffer_info.globally_coherent.Assign(mubuf.glc);
+ buffer_info.system_coherent.Assign(mubuf.slc);
const IR::VectorReg src_reg{inst.src[1].code};
@@ -338,7 +350,7 @@ void Translator::BUFFER_STORE_FORMAT(u32 num_dwords, const GcnInst& inst) {
const IR::Value handle =
ir.CompositeConstruct(ir.GetScalarReg(sharp), ir.GetScalarReg(sharp + 1),
ir.GetScalarReg(sharp + 2), ir.GetScalarReg(sharp + 3));
- ir.StoreBufferFormat(handle, address, value, info);
+ ir.StoreBufferFormat(handle, address, value, buffer_info);
}
void Translator::BUFFER_ATOMIC(AtomicOp op, const GcnInst& inst) {
@@ -358,10 +370,12 @@ void Translator::BUFFER_ATOMIC(AtomicOp op, const GcnInst& inst) {
const IR::U32 soffset{GetSrc(inst.src[3])};
ASSERT_MSG(soffset.IsImmediate() && soffset.U32() == 0, "Non immediate offset not supported");
- IR::BufferInstInfo info{};
- info.index_enable.Assign(mubuf.idxen);
- info.inst_offset.Assign(mubuf.offset);
- info.offset_enable.Assign(mubuf.offen);
+ IR::BufferInstInfo buffer_info{};
+ buffer_info.index_enable.Assign(mubuf.idxen);
+ buffer_info.offset_enable.Assign(mubuf.offen);
+ buffer_info.inst_offset.Assign(mubuf.offset);
+ buffer_info.globally_coherent.Assign(mubuf.glc);
+ buffer_info.system_coherent.Assign(mubuf.slc);
IR::Value vdata_val = ir.GetVectorReg(vdata);
const IR::Value handle =
@@ -371,27 +385,27 @@ void Translator::BUFFER_ATOMIC(AtomicOp op, const GcnInst& inst) {
const IR::Value original_val = [&] {
switch (op) {
case AtomicOp::Swap:
- return ir.BufferAtomicSwap(handle, address, vdata_val, info);
+ return ir.BufferAtomicSwap(handle, address, vdata_val, buffer_info);
case AtomicOp::Add:
- return ir.BufferAtomicIAdd(handle, address, vdata_val, info);
+ return ir.BufferAtomicIAdd(handle, address, vdata_val, buffer_info);
case AtomicOp::Smin:
- return ir.BufferAtomicIMin(handle, address, vdata_val, true, info);
+ return ir.BufferAtomicIMin(handle, address, vdata_val, true, buffer_info);
case AtomicOp::Umin:
- return ir.BufferAtomicIMin(handle, address, vdata_val, false, info);
+ return ir.BufferAtomicIMin(handle, address, vdata_val, false, buffer_info);
case AtomicOp::Smax:
- return ir.BufferAtomicIMax(handle, address, vdata_val, true, info);
+ return ir.BufferAtomicIMax(handle, address, vdata_val, true, buffer_info);
case AtomicOp::Umax:
- return ir.BufferAtomicIMax(handle, address, vdata_val, false, info);
+ return ir.BufferAtomicIMax(handle, address, vdata_val, false, buffer_info);
case AtomicOp::And:
- return ir.BufferAtomicAnd(handle, address, vdata_val, info);
+ return ir.BufferAtomicAnd(handle, address, vdata_val, buffer_info);
case AtomicOp::Or:
- return ir.BufferAtomicOr(handle, address, vdata_val, info);
+ return ir.BufferAtomicOr(handle, address, vdata_val, buffer_info);
case AtomicOp::Xor:
- return ir.BufferAtomicXor(handle, address, vdata_val, info);
+ return ir.BufferAtomicXor(handle, address, vdata_val, buffer_info);
case AtomicOp::Inc:
- return ir.BufferAtomicInc(handle, address, vdata_val, info);
+ return ir.BufferAtomicInc(handle, address, vdata_val, buffer_info);
case AtomicOp::Dec:
- return ir.BufferAtomicDec(handle, address, vdata_val, info);
+ return ir.BufferAtomicDec(handle, address, vdata_val, buffer_info);
default:
UNREACHABLE();
}
@@ -418,6 +432,7 @@ void Translator::IMAGE_LOAD(bool has_mip, const GcnInst& inst) {
IR::TextureInstInfo info{};
info.has_lod.Assign(has_mip);
+ info.is_array.Assign(mimg.da);
const IR::Value texel = ir.ImageRead(handle, body, {}, {}, info);
for (u32 i = 0; i < 4; i++) {
@@ -442,6 +457,7 @@ void Translator::IMAGE_STORE(bool has_mip, const GcnInst& inst) {
IR::TextureInstInfo info{};
info.has_lod.Assign(has_mip);
+ info.is_array.Assign(mimg.da);
boost::container::static_vector comps;
for (u32 i = 0; i < 4; i++) {
@@ -456,13 +472,18 @@ void Translator::IMAGE_STORE(bool has_mip, const GcnInst& inst) {
}
void Translator::IMAGE_GET_RESINFO(const GcnInst& inst) {
+ const auto& mimg = inst.control.mimg;
IR::VectorReg dst_reg{inst.dst[0].code};
const IR::ScalarReg tsharp_reg{inst.src[2].code * 4};
const auto flags = ImageResFlags(inst.control.mimg.dmask);
const bool has_mips = flags.test(ImageResComponent::MipCount);
const IR::U32 lod = ir.GetVectorReg(IR::VectorReg(inst.src[0].code));
const IR::Value tsharp = ir.GetScalarReg(tsharp_reg);
- const IR::Value size = ir.ImageQueryDimension(tsharp, lod, ir.Imm1(has_mips));
+
+ IR::TextureInstInfo info{};
+ info.is_array.Assign(mimg.da);
+
+ const IR::Value size = ir.ImageQueryDimension(tsharp, lod, ir.Imm1(has_mips), info);
if (flags.test(ImageResComponent::Width)) {
ir.SetVectorReg(dst_reg++, IR::U32{ir.CompositeExtract(size, 0)});
@@ -484,6 +505,9 @@ void Translator::IMAGE_ATOMIC(AtomicOp op, const GcnInst& inst) {
IR::VectorReg addr_reg{inst.src[0].code};
const IR::ScalarReg tsharp_reg{inst.src[2].code * 4};
+ IR::TextureInstInfo info{};
+ info.is_array.Assign(mimg.da);
+
const IR::Value value = ir.GetVectorReg(val_reg);
const IR::Value handle = ir.GetScalarReg(tsharp_reg);
const IR::Value body =
@@ -494,25 +518,25 @@ void Translator::IMAGE_ATOMIC(AtomicOp op, const GcnInst& inst) {
case AtomicOp::Swap:
return ir.ImageAtomicExchange(handle, body, value, {});
case AtomicOp::Add:
- return ir.ImageAtomicIAdd(handle, body, value, {});
+ return ir.ImageAtomicIAdd(handle, body, value, info);
case AtomicOp::Smin:
- return ir.ImageAtomicIMin(handle, body, value, true, {});
+ return ir.ImageAtomicIMin(handle, body, value, true, info);
case AtomicOp::Umin:
- return ir.ImageAtomicUMin(handle, body, value, {});
+ return ir.ImageAtomicUMin(handle, body, value, info);
case AtomicOp::Smax:
- return ir.ImageAtomicIMax(handle, body, value, true, {});
+ return ir.ImageAtomicIMax(handle, body, value, true, info);
case AtomicOp::Umax:
- return ir.ImageAtomicUMax(handle, body, value, {});
+ return ir.ImageAtomicUMax(handle, body, value, info);
case AtomicOp::And:
- return ir.ImageAtomicAnd(handle, body, value, {});
+ return ir.ImageAtomicAnd(handle, body, value, info);
case AtomicOp::Or:
- return ir.ImageAtomicOr(handle, body, value, {});
+ return ir.ImageAtomicOr(handle, body, value, info);
case AtomicOp::Xor:
- return ir.ImageAtomicXor(handle, body, value, {});
+ return ir.ImageAtomicXor(handle, body, value, info);
case AtomicOp::Inc:
- return ir.ImageAtomicInc(handle, body, value, {});
+ return ir.ImageAtomicInc(handle, body, value, info);
case AtomicOp::Dec:
- return ir.ImageAtomicDec(handle, body, value, {});
+ return ir.ImageAtomicDec(handle, body, value, info);
default:
UNREACHABLE();
}
@@ -643,11 +667,14 @@ void Translator::IMAGE_GET_LOD(const GcnInst& inst) {
IR::VectorReg addr_reg{inst.src[0].code};
const IR::ScalarReg tsharp_reg{inst.src[2].code * 4};
+ IR::TextureInstInfo info{};
+ info.is_array.Assign(mimg.da);
+
const IR::Value handle = ir.GetScalarReg(tsharp_reg);
const IR::Value body = ir.CompositeConstruct(
ir.GetVectorReg(addr_reg), ir.GetVectorReg(addr_reg + 1),
ir.GetVectorReg(addr_reg + 2), ir.GetVectorReg(addr_reg + 3));
- const IR::Value lod = ir.ImageQueryLod(handle, body, {});
+ const IR::Value lod = ir.ImageQueryLod(handle, body, info);
ir.SetVectorReg(dst_reg++, IR::F32{ir.CompositeExtract(lod, 0)});
ir.SetVectorReg(dst_reg++, IR::F32{ir.CompositeExtract(lod, 1)});
}
diff --git a/src/shader_recompiler/info.h b/src/shader_recompiler/info.h
index b6ac12785..2cde30629 100644
--- a/src/shader_recompiler/info.h
+++ b/src/shader_recompiler/info.h
@@ -70,14 +70,8 @@ struct ImageResource {
bool is_depth{};
bool is_atomic{};
bool is_array{};
- bool is_read{};
bool is_written{};
- [[nodiscard]] bool IsStorage(const AmdGpu::Image& image) const noexcept {
- // Need cube as storage when used with ImageRead.
- return is_written || (is_read && image.GetBoundType() == AmdGpu::ImageType::Cube);
- }
-
[[nodiscard]] constexpr AmdGpu::Image GetSharp(const Info& info) const noexcept;
};
using ImageResourceList = boost::container::small_vector;
@@ -102,11 +96,19 @@ using FMaskResourceList = boost::container::small_vector;
struct PushData {
static constexpr u32 BufOffsetIndex = 2;
static constexpr u32 UdRegsIndex = 4;
+ static constexpr u32 XOffsetIndex = 8;
+ static constexpr u32 YOffsetIndex = 9;
+ static constexpr u32 XScaleIndex = 10;
+ static constexpr u32 YScaleIndex = 11;
u32 step0;
u32 step1;
std::array buf_offsets;
std::array ud_regs;
+ float xoffset;
+ float yoffset;
+ float xscale;
+ float yscale;
void AddOffset(u32 binding, u32 offset) {
ASSERT(offset < 256 && binding < buf_offsets.size());
diff --git a/src/shader_recompiler/ir/ir_emitter.cpp b/src/shader_recompiler/ir/ir_emitter.cpp
index 823f9bdcd..5ac08e7dc 100644
--- a/src/shader_recompiler/ir/ir_emitter.cpp
+++ b/src/shader_recompiler/ir/ir_emitter.cpp
@@ -1732,11 +1732,6 @@ Value IREmitter::ImageGatherDref(const Value& handle, const Value& coords, const
return Inst(Opcode::ImageGatherDref, Flags{info}, handle, coords, offset, dref);
}
-Value IREmitter::ImageQueryDimension(const Value& handle, const IR::U32& lod,
- const IR::U1& skip_mips) {
- return Inst(Opcode::ImageQueryDimensions, handle, lod, skip_mips);
-}
-
Value IREmitter::ImageQueryDimension(const Value& handle, const IR::U32& lod,
const IR::U1& skip_mips, TextureInstInfo info) {
return Inst(Opcode::ImageQueryDimensions, Flags{info}, handle, lod, skip_mips);
@@ -1763,6 +1758,10 @@ void IREmitter::ImageWrite(const Value& handle, const Value& coords, const U32&
Inst(Opcode::ImageWrite, Flags{info}, handle, coords, lod, multisampling, color);
}
+[[nodiscard]] F32 IREmitter::CubeFaceIndex(const Value& cube_coords) {
+ return Inst(Opcode::CubeFaceIndex, cube_coords);
+}
+
// Debug print maps to SPIRV's NonSemantic DebugPrintf instruction
// Renderdoc will hook in its own implementation of the SPIRV instruction
// Renderdoc accepts format specifiers, e.g. %u, listed here:
diff --git a/src/shader_recompiler/ir/ir_emitter.h b/src/shader_recompiler/ir/ir_emitter.h
index 9aab9459b..d1dc44d74 100644
--- a/src/shader_recompiler/ir/ir_emitter.h
+++ b/src/shader_recompiler/ir/ir_emitter.h
@@ -324,8 +324,6 @@ public:
const F32& dref, const F32& lod,
const Value& offset, TextureInstInfo info);
- [[nodiscard]] Value ImageQueryDimension(const Value& handle, const U32& lod,
- const U1& skip_mips);
[[nodiscard]] Value ImageQueryDimension(const Value& handle, const U32& lod,
const U1& skip_mips, TextureInstInfo info);
@@ -344,6 +342,8 @@ public:
void ImageWrite(const Value& handle, const Value& coords, const U32& lod,
const U32& multisampling, const Value& color, TextureInstInfo info);
+ [[nodiscard]] F32 CubeFaceIndex(const Value& cube_coords);
+
void EmitVertex();
void EmitPrimitive();
diff --git a/src/shader_recompiler/ir/opcodes.inc b/src/shader_recompiler/ir/opcodes.inc
index 6242a230e..b45151dba 100644
--- a/src/shader_recompiler/ir/opcodes.inc
+++ b/src/shader_recompiler/ir/opcodes.inc
@@ -374,6 +374,9 @@ OPCODE(ImageAtomicOr32, U32, Opaq
OPCODE(ImageAtomicXor32, U32, Opaque, Opaque, U32, )
OPCODE(ImageAtomicExchange32, U32, Opaque, Opaque, U32, )
+// Cube operations - optional, usable if profile.supports_native_cube_calc
+OPCODE(CubeFaceIndex, F32, F32x3, )
+
// Warp operations
OPCODE(LaneId, U32, )
OPCODE(WarpId, U32, )
diff --git a/src/shader_recompiler/ir/passes/constant_propagation_pass.cpp b/src/shader_recompiler/ir/passes/constant_propagation_pass.cpp
index fcf2f7d9f..26d819d8e 100644
--- a/src/shader_recompiler/ir/passes/constant_propagation_pass.cpp
+++ b/src/shader_recompiler/ir/passes/constant_propagation_pass.cpp
@@ -222,9 +222,15 @@ void FoldMul(IR::Block& block, IR::Inst& inst) {
return;
}
const IR::Value rhs{inst.Arg(1)};
- if (rhs.IsImmediate() && Arg(rhs) == 0) {
- inst.ReplaceUsesWithAndRemove(IR::Value(0u));
- return;
+ if (rhs.IsImmediate()) {
+ if (Arg(rhs) == 0) {
+ inst.ReplaceUsesWithAndRemove(IR::Value(0u));
+ return;
+ }
+ if (Arg(rhs) == 1) {
+ inst.ReplaceUsesWithAndRemove(inst.Arg(0));
+ return;
+ }
}
}
diff --git a/src/shader_recompiler/ir/passes/hull_shader_transform.cpp b/src/shader_recompiler/ir/passes/hull_shader_transform.cpp
index 6164fec12..b41e38339 100644
--- a/src/shader_recompiler/ir/passes/hull_shader_transform.cpp
+++ b/src/shader_recompiler/ir/passes/hull_shader_transform.cpp
@@ -349,11 +349,11 @@ static IR::F32 ReadTessControlPointAttribute(IR::U32 addr, const u32 stride, IR:
addr = ir.IAdd(addr, ir.Imm32(off_dw));
}
const IR::U32 control_point_index = ir.IDiv(addr, ir.Imm32(stride));
- const IR::U32 addr_for_attrs = TryOptimizeAddressModulo(addr, stride, ir);
- const IR::U32 attr_index =
- ir.ShiftRightLogical(ir.IMod(addr_for_attrs, ir.Imm32(stride)), ir.Imm32(4u));
+ const IR::U32 opt_addr = TryOptimizeAddressModulo(addr, stride, ir);
+ const IR::U32 offset = ir.IMod(opt_addr, ir.Imm32(stride));
+ const IR::U32 attr_index = ir.ShiftRightLogical(offset, ir.Imm32(4u));
const IR::U32 comp_index =
- ir.ShiftRightLogical(ir.BitwiseAnd(addr_for_attrs, ir.Imm32(0xFU)), ir.Imm32(2u));
+ ir.ShiftRightLogical(ir.BitwiseAnd(offset, ir.Imm32(0xFU)), ir.Imm32(2u));
if (is_output_read_in_tcs) {
return ir.ReadTcsGenericOuputAttribute(control_point_index, attr_index, comp_index);
} else {
@@ -452,13 +452,13 @@ void HullShaderTransform(IR::Program& program, RuntimeInfo& runtime_info) {
if (off_dw > 0) {
addr = ir.IAdd(addr, ir.Imm32(off_dw));
}
- u32 stride = runtime_info.hs_info.hs_output_cp_stride;
+ const u32 stride = runtime_info.hs_info.hs_output_cp_stride;
// Invocation ID array index is implicit, handled by SPIRV backend
- const IR::U32 addr_for_attrs = TryOptimizeAddressModulo(addr, stride, ir);
- const IR::U32 attr_index = ir.ShiftRightLogical(
- ir.IMod(addr_for_attrs, ir.Imm32(stride)), ir.Imm32(4u));
+ const IR::U32 opt_addr = TryOptimizeAddressModulo(addr, stride, ir);
+ const IR::U32 offset = ir.IMod(opt_addr, ir.Imm32(stride));
+ const IR::U32 attr_index = ir.ShiftRightLogical(offset, ir.Imm32(4u));
const IR::U32 comp_index = ir.ShiftRightLogical(
- ir.BitwiseAnd(addr_for_attrs, ir.Imm32(0xFU)), ir.Imm32(2u));
+ ir.BitwiseAnd(offset, ir.Imm32(0xFU)), ir.Imm32(2u));
ir.SetTcsGenericAttribute(data_component, attr_index, comp_index);
} else {
ASSERT(output_kind == AttributeRegion::PatchConst);
@@ -535,8 +535,7 @@ void HullShaderTransform(IR::Program& program, RuntimeInfo& runtime_info) {
// ...
IR::IREmitter ir{*entry_block, it};
- ASSERT(runtime_info.hs_info.ls_stride % 16 == 0);
- u32 num_attributes = runtime_info.hs_info.ls_stride / 16;
+ u32 num_attributes = Common::AlignUp(runtime_info.hs_info.ls_stride, 16) >> 4;
const auto invocation_id = ir.GetAttributeU32(IR::Attribute::InvocationId);
for (u32 attr_no = 0; attr_no < num_attributes; attr_no++) {
for (u32 comp = 0; comp < 4; comp++) {
diff --git a/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp b/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp
index f7040ad75..d94c5223a 100644
--- a/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp
+++ b/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp
@@ -161,10 +161,10 @@ public:
u32 Add(const ImageResource& desc) {
const u32 index{Add(image_resources, desc, [&desc](const auto& existing) {
- return desc.sharp_idx == existing.sharp_idx;
+ return desc.sharp_idx == existing.sharp_idx && desc.is_array == existing.is_array;
})};
auto& image = image_resources[index];
- image.is_read |= desc.is_read;
+ image.is_atomic |= desc.is_atomic;
image.is_written |= desc.is_written;
return index;
}
@@ -361,7 +361,6 @@ void PatchImageSharp(IR::Block& block, IR::Inst& inst, Info& info, Descriptors&
image = AmdGpu::Image::Null();
}
ASSERT(image.GetType() != AmdGpu::ImageType::Invalid);
- const bool is_read = inst.GetOpcode() == IR::Opcode::ImageRead;
const bool is_written = inst.GetOpcode() == IR::Opcode::ImageWrite;
// Patch image instruction if image is FMask.
@@ -402,7 +401,6 @@ void PatchImageSharp(IR::Block& block, IR::Inst& inst, Info& info, Descriptors&
.is_depth = bool(inst_info.is_depth),
.is_atomic = IsImageAtomicInstruction(inst),
.is_array = bool(inst_info.is_array),
- .is_read = is_read,
.is_written = is_written,
});
@@ -486,55 +484,73 @@ void PatchDataRingAccess(IR::Block& block, IR::Inst& inst, Info& info, Descripto
inst.SetArg(1, ir.Imm32(binding));
}
+IR::U32 CalculateBufferAddress(IR::IREmitter& ir, const IR::Inst& inst, const Info& info,
+ const AmdGpu::Buffer& buffer, u32 stride) {
+ const auto inst_info = inst.Flags();
+
+ // index = (inst_idxen ? vgpr_index : 0) + (const_add_tid_enable ? thread_id[5:0] : 0)
+ IR::U32 index = ir.Imm32(0U);
+ if (inst_info.index_enable) {
+ const IR::U32 vgpr_index{inst_info.offset_enable
+ ? IR::U32{ir.CompositeExtract(inst.Arg(1), 0)}
+ : IR::U32{inst.Arg(1)}};
+ index = ir.IAdd(index, vgpr_index);
+ }
+ if (buffer.add_tid_enable) {
+ ASSERT_MSG(info.l_stage == LogicalStage::Compute,
+ "Thread ID buffer addressing is not supported outside of compute.");
+ const IR::U32 thread_id{ir.LaneId()};
+ index = ir.IAdd(index, thread_id);
+ }
+ // offset = (inst_offen ? vgpr_offset : 0) + inst_offset
+ IR::U32 offset = ir.Imm32(inst_info.inst_offset.Value());
+ if (inst_info.offset_enable) {
+ const IR::U32 vgpr_offset = inst_info.index_enable
+ ? IR::U32{ir.CompositeExtract(inst.Arg(1), 1)}
+ : IR::U32{inst.Arg(1)};
+ offset = ir.IAdd(offset, vgpr_offset);
+ }
+ const IR::U32 const_stride = ir.Imm32(stride);
+ IR::U32 buffer_offset;
+ if (buffer.swizzle_enable) {
+ const IR::U32 const_index_stride = ir.Imm32(buffer.GetIndexStride());
+ const IR::U32 const_element_size = ir.Imm32(buffer.GetElementSize());
+ // index_msb = index / const_index_stride
+ const IR::U32 index_msb{ir.IDiv(index, const_index_stride)};
+ // index_lsb = index % const_index_stride
+ const IR::U32 index_lsb{ir.IMod(index, const_index_stride)};
+ // offset_msb = offset / const_element_size
+ const IR::U32 offset_msb{ir.IDiv(offset, const_element_size)};
+ // offset_lsb = offset % const_element_size
+ const IR::U32 offset_lsb{ir.IMod(offset, const_element_size)};
+ // buffer_offset =
+ // (index_msb * const_stride + offset_msb * const_element_size) * const_index_stride
+ // + index_lsb * const_element_size + offset_lsb
+ const IR::U32 buffer_offset_msb = ir.IMul(
+ ir.IAdd(ir.IMul(index_msb, const_stride), ir.IMul(offset_msb, const_element_size)),
+ const_index_stride);
+ const IR::U32 buffer_offset_lsb =
+ ir.IAdd(ir.IMul(index_lsb, const_element_size), offset_lsb);
+ buffer_offset = ir.IAdd(buffer_offset_msb, buffer_offset_lsb);
+ } else {
+ // buffer_offset = index * const_stride + offset
+ buffer_offset = ir.IAdd(ir.IMul(index, const_stride), offset);
+ }
+ return buffer_offset;
+}
+
void PatchBufferArgs(IR::Block& block, IR::Inst& inst, Info& info) {
const auto handle = inst.Arg(0);
const auto buffer_res = info.buffers[handle.U32()];
const auto buffer = buffer_res.GetSharp(info);
- ASSERT(!buffer.add_tid_enable);
-
// Address of constant buffer reads can be calculated at IR emission time.
if (inst.GetOpcode() == IR::Opcode::ReadConstBuffer) {
return;
}
IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst)};
- const auto inst_info = inst.Flags();
-
- const IR::U32 index_stride = ir.Imm32(buffer.index_stride);
- const IR::U32 element_size = ir.Imm32(buffer.element_size);
-
- // Compute address of the buffer using the stride.
- IR::U32 address = ir.Imm32(inst_info.inst_offset.Value());
- if (inst_info.index_enable) {
- const IR::U32 index = inst_info.offset_enable ? IR::U32{ir.CompositeExtract(inst.Arg(1), 0)}
- : IR::U32{inst.Arg(1)};
- if (buffer.swizzle_enable) {
- const IR::U32 stride_index_stride =
- ir.Imm32(static_cast(buffer.stride * buffer.index_stride));
- const IR::U32 index_msb = ir.IDiv(index, index_stride);
- const IR::U32 index_lsb = ir.IMod(index, index_stride);
- address = ir.IAdd(address, ir.IAdd(ir.IMul(index_msb, stride_index_stride),
- ir.IMul(index_lsb, element_size)));
- } else {
- address = ir.IAdd(address, ir.IMul(index, ir.Imm32(buffer.GetStride())));
- }
- }
- if (inst_info.offset_enable) {
- const IR::U32 offset = inst_info.index_enable ? IR::U32{ir.CompositeExtract(inst.Arg(1), 1)}
- : IR::U32{inst.Arg(1)};
- if (buffer.swizzle_enable) {
- const IR::U32 element_size_index_stride =
- ir.Imm32(buffer.element_size * buffer.index_stride);
- const IR::U32 offset_msb = ir.IDiv(offset, element_size);
- const IR::U32 offset_lsb = ir.IMod(offset, element_size);
- address = ir.IAdd(address,
- ir.IAdd(ir.IMul(offset_msb, element_size_index_stride), offset_lsb));
- } else {
- address = ir.IAdd(address, offset);
- }
- }
- inst.SetArg(1, address);
+ inst.SetArg(1, CalculateBufferAddress(ir, inst, info, buffer, buffer.stride));
}
void PatchTextureBufferArgs(IR::Block& block, IR::Inst& inst, Info& info) {
@@ -542,8 +558,15 @@ void PatchTextureBufferArgs(IR::Block& block, IR::Inst& inst, Info& info) {
const auto buffer_res = info.texture_buffers[handle.U32()];
const auto buffer = buffer_res.GetSharp(info);
- ASSERT(!buffer.swizzle_enable && !buffer.add_tid_enable);
+ // Only linear addressing with index is supported currently, since we cannot yet
+ // address with sub-texel granularity.
+ const auto inst_info = inst.Flags();
+ ASSERT_MSG(!buffer.swizzle_enable && !inst_info.offset_enable && inst_info.inst_offset == 0,
+ "Unsupported texture buffer address mode.");
+
IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst)};
+ // Stride of 1 to get an index into formatted data. See above addressing limitations.
+ inst.SetArg(1, CalculateBufferAddress(ir, inst, info, buffer, 1U));
if (inst.GetOpcode() == IR::Opcode::StoreBufferFormatF32) {
const auto swizzled = ApplySwizzle(ir, inst.Arg(2), buffer.DstSelect());
@@ -560,40 +583,15 @@ void PatchTextureBufferArgs(IR::Block& block, IR::Inst& inst, Info& info) {
}
}
-IR::Value PatchCubeCoord(IR::IREmitter& ir, const IR::Value& s, const IR::Value& t,
- const IR::Value& z, bool is_written, bool is_array) {
- // When cubemap is written with imageStore it is treated like 2DArray.
- if (is_written) {
- return ir.CompositeConstruct(s, t, z);
- }
-
- ASSERT(s.Type() == IR::Type::F32); // in case of fetched image need to adjust the code below
-
- // We need to fix x and y coordinate,
- // because the s and t coordinate will be scaled and plus 1.5 by v_madak_f32.
- // We already force the scale value to be 1.0 when handling v_cubema_f32,
- // here we subtract 1.5 to recover the original value.
- const IR::Value x = ir.FPSub(IR::F32{s}, ir.Imm32(1.5f));
- const IR::Value y = ir.FPSub(IR::F32{t}, ir.Imm32(1.5f));
- if (is_array) {
- const IR::U32 array_index = ir.ConvertFToU(32, IR::F32{z});
- const IR::U32 face_id = ir.BitwiseAnd(array_index, ir.Imm32(7u));
- const IR::U32 slice_id = ir.ShiftRightLogical(array_index, ir.Imm32(3u));
- return ir.CompositeConstruct(x, y, ir.ConvertIToF(32, 32, false, face_id),
- ir.ConvertIToF(32, 32, false, slice_id));
- } else {
- return ir.CompositeConstruct(x, y, z);
- }
-}
-
void PatchImageSampleArgs(IR::Block& block, IR::Inst& inst, Info& info,
- const AmdGpu::Image& image) {
+ const ImageResource& image_res, const AmdGpu::Image& image) {
const auto handle = inst.Arg(0);
const auto sampler_res = info.samplers[(handle.U32() >> 16) & 0xFFFF];
auto sampler = sampler_res.GetSharp(info);
IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst)};
const auto inst_info = inst.Flags();
+ const auto view_type = image.GetViewType(image_res.is_array);
IR::Inst* body1 = inst.Arg(1).InstRecursive();
IR::Inst* body2 = inst.Arg(2).InstRecursive();
@@ -640,7 +638,7 @@ void PatchImageSampleArgs(IR::Block& block, IR::Inst& inst, Info& info,
return ir.BitFieldExtract(IR::U32{arg}, ir.Imm32(off), ir.Imm32(6), true);
};
- switch (image.GetType()) {
+ switch (view_type) {
case AmdGpu::ImageType::Color1D:
case AmdGpu::ImageType::Color1DArray:
return read(0);
@@ -649,7 +647,6 @@ void PatchImageSampleArgs(IR::Block& block, IR::Inst& inst, Info& info,
case AmdGpu::ImageType::Color2DMsaa:
return ir.CompositeConstruct(read(0), read(8));
case AmdGpu::ImageType::Color3D:
- case AmdGpu::ImageType::Cube:
return ir.CompositeConstruct(read(0), read(8), read(16));
default:
UNREACHABLE();
@@ -661,7 +658,7 @@ void PatchImageSampleArgs(IR::Block& block, IR::Inst& inst, Info& info,
if (!inst_info.has_derivatives) {
return {};
}
- switch (image.GetType()) {
+ switch (view_type) {
case AmdGpu::ImageType::Color1D:
case AmdGpu::ImageType::Color1DArray:
// du/dx, du/dy
@@ -675,7 +672,6 @@ void PatchImageSampleArgs(IR::Block& block, IR::Inst& inst, Info& info,
return {ir.CompositeConstruct(get_addr_reg(addr_reg - 4), get_addr_reg(addr_reg - 3)),
ir.CompositeConstruct(get_addr_reg(addr_reg - 2), get_addr_reg(addr_reg - 1))};
case AmdGpu::ImageType::Color3D:
- case AmdGpu::ImageType::Cube:
// (du/dx, dv/dx, dw/dx), (du/dy, dv/dy, dw/dy)
addr_reg = addr_reg + 6;
return {ir.CompositeConstruct(get_addr_reg(addr_reg - 6), get_addr_reg(addr_reg - 5),
@@ -691,7 +687,8 @@ void PatchImageSampleArgs(IR::Block& block, IR::Inst& inst, Info& info,
// Query dimensions of image if needed for normalization.
// We can't use the image sharp because it could be bound to a different image later.
const auto dimensions =
- unnormalized ? ir.ImageQueryDimension(handle, ir.Imm32(0u), ir.Imm1(false)) : IR::Value{};
+ unnormalized ? ir.ImageQueryDimension(handle, ir.Imm32(0u), ir.Imm1(false), inst_info)
+ : IR::Value{};
const auto get_coord = [&](u32 coord_idx, u32 dim_idx) -> IR::Value {
const auto coord = get_addr_reg(coord_idx);
if (unnormalized) {
@@ -705,7 +702,7 @@ void PatchImageSampleArgs(IR::Block& block, IR::Inst& inst, Info& info,
// Now we can load body components as noted in Table 8.9 Image Opcodes with Sampler
const IR::Value coords = [&] -> IR::Value {
- switch (image.GetType()) {
+ switch (view_type) {
case AmdGpu::ImageType::Color1D: // x
addr_reg = addr_reg + 1;
return get_coord(addr_reg - 1, 0);
@@ -724,10 +721,6 @@ void PatchImageSampleArgs(IR::Block& block, IR::Inst& inst, Info& info,
addr_reg = addr_reg + 3;
return ir.CompositeConstruct(get_coord(addr_reg - 3, 0), get_coord(addr_reg - 2, 1),
get_coord(addr_reg - 1, 2));
- case AmdGpu::ImageType::Cube: // x, y, face
- addr_reg = addr_reg + 3;
- return PatchCubeCoord(ir, get_coord(addr_reg - 3, 0), get_coord(addr_reg - 2, 1),
- get_addr_reg(addr_reg - 1), false, inst_info.is_array);
default:
UNREACHABLE();
}
@@ -779,17 +772,18 @@ void PatchImageArgs(IR::Block& block, IR::Inst& inst, Info& info) {
// Sample instructions must be handled separately using address register data.
if (inst.GetOpcode() == IR::Opcode::ImageSampleRaw) {
- PatchImageSampleArgs(block, inst, info, image);
+ PatchImageSampleArgs(block, inst, info, image_res, image);
return;
}
IR::IREmitter ir{block, IR::Block::InstructionList::s_iterator_to(inst)};
const auto inst_info = inst.Flags();
+ const auto view_type = image.GetViewType(image_res.is_array);
// Now that we know the image type, adjust texture coordinate vector.
IR::Inst* body = inst.Arg(1).InstRecursive();
const auto [coords, arg] = [&] -> std::pair {
- switch (image.GetType()) {
+ switch (view_type) {
case AmdGpu::ImageType::Color1D: // x, [lod]
return {body->Arg(0), body->Arg(1)};
case AmdGpu::ImageType::Color1DArray: // x, slice, [lod]
@@ -805,22 +799,18 @@ void PatchImageArgs(IR::Block& block, IR::Inst& inst, Info& info) {
[[fallthrough]];
case AmdGpu::ImageType::Color3D: // x, y, z, [lod]
return {ir.CompositeConstruct(body->Arg(0), body->Arg(1), body->Arg(2)), body->Arg(3)};
- case AmdGpu::ImageType::Cube: // x, y, face, [lod]
- return {PatchCubeCoord(ir, body->Arg(0), body->Arg(1), body->Arg(2),
- inst.GetOpcode() == IR::Opcode::ImageWrite, inst_info.is_array),
- body->Arg(3)};
default:
- UNREACHABLE_MSG("Unknown image type {}", image.GetType());
+ UNREACHABLE_MSG("Unknown image type {}", view_type);
}
}();
- const auto has_ms = image.GetType() == AmdGpu::ImageType::Color2DMsaa ||
- image.GetType() == AmdGpu::ImageType::Color2DMsaaArray;
+ const auto has_ms = view_type == AmdGpu::ImageType::Color2DMsaa ||
+ view_type == AmdGpu::ImageType::Color2DMsaaArray;
ASSERT(!inst_info.has_lod || !has_ms);
const auto lod = inst_info.has_lod ? IR::U32{arg} : IR::U32{};
const auto ms = has_ms ? IR::U32{arg} : IR::U32{};
- const auto is_storage = image_res.IsStorage(image);
+ const auto is_storage = image_res.is_written;
if (inst.GetOpcode() == IR::Opcode::ImageRead) {
auto texel = ir.ImageRead(handle, coords, lod, ms, inst_info);
if (is_storage) {
diff --git a/src/shader_recompiler/ir/passes/shader_info_collection_pass.cpp b/src/shader_recompiler/ir/passes/shader_info_collection_pass.cpp
index c34b59b88..7fd5b75ff 100644
--- a/src/shader_recompiler/ir/passes/shader_info_collection_pass.cpp
+++ b/src/shader_recompiler/ir/passes/shader_info_collection_pass.cpp
@@ -5,7 +5,7 @@
namespace Shader::Optimization {
-void Visit(Info& info, IR::Inst& inst) {
+void Visit(Info& info, const IR::Inst& inst) {
switch (inst.GetOpcode()) {
case IR::Opcode::GetAttribute:
case IR::Opcode::GetAttributeU32:
diff --git a/src/shader_recompiler/profile.h b/src/shader_recompiler/profile.h
index fc8c5956e..f8b91a283 100644
--- a/src/shader_recompiler/profile.h
+++ b/src/shader_recompiler/profile.h
@@ -24,11 +24,14 @@ struct Profile {
bool support_explicit_workgroup_layout{};
bool support_legacy_vertex_attributes{};
bool supports_image_load_store_lod{};
+ bool supports_native_cube_calc{};
bool has_broken_spirv_clamp{};
bool lower_left_origin_mode{};
bool needs_manual_interpolation{};
bool needs_lds_barriers{};
u64 min_ssbo_alignment{};
+ u32 max_viewport_width{};
+ u32 max_viewport_height{};
};
} // namespace Shader
diff --git a/src/shader_recompiler/runtime_info.h b/src/shader_recompiler/runtime_info.h
index cf49b0879..2bf5e3f0a 100644
--- a/src/shader_recompiler/runtime_info.h
+++ b/src/shader_recompiler/runtime_info.h
@@ -84,6 +84,7 @@ struct VertexRuntimeInfo {
u32 num_outputs;
std::array outputs;
bool emulate_depth_negative_one_to_one{};
+ bool clip_disable{};
// Domain
AmdGpu::TessellationType tess_type;
AmdGpu::TessellationTopology tess_topology;
@@ -92,7 +93,8 @@ struct VertexRuntimeInfo {
bool operator==(const VertexRuntimeInfo& other) const noexcept {
return emulate_depth_negative_one_to_one == other.emulate_depth_negative_one_to_one &&
- tess_type == other.tess_type && tess_topology == other.tess_topology &&
+ clip_disable == other.clip_disable && tess_type == other.tess_type &&
+ tess_topology == other.tess_topology &&
tess_partitioning == other.tess_partitioning &&
hs_output_cp_stride == other.hs_output_cp_stride;
}
@@ -198,6 +200,7 @@ struct FragmentRuntimeInfo {
struct ComputeRuntimeInfo {
u32 shared_memory_size;
+ u32 max_shared_memory_size;
std::array workgroup_size;
std::array tgid_enable;
diff --git a/src/shader_recompiler/specialization.h b/src/shader_recompiler/specialization.h
index f58d2e2d3..523e63497 100644
--- a/src/shader_recompiler/specialization.h
+++ b/src/shader_recompiler/specialization.h
@@ -21,10 +21,16 @@ struct VsAttribSpecialization {
struct BufferSpecialization {
u16 stride : 14;
u16 is_storage : 1;
+ u16 swizzle_enable : 1;
+ u8 index_stride : 2 = 0;
+ u8 element_size : 2 = 0;
u32 size = 0;
bool operator==(const BufferSpecialization& other) const {
return stride == other.stride && is_storage == other.is_storage &&
+ swizzle_enable == other.swizzle_enable &&
+ (!swizzle_enable ||
+ (index_stride == other.index_stride && element_size == other.element_size)) &&
(size >= other.is_storage || is_storage);
}
};
@@ -101,6 +107,11 @@ struct StageSpecialization {
[](auto& spec, const auto& desc, AmdGpu::Buffer sharp) {
spec.stride = sharp.GetStride();
spec.is_storage = desc.IsStorage(sharp);
+ spec.swizzle_enable = sharp.swizzle_enable;
+ if (spec.swizzle_enable) {
+ spec.index_stride = sharp.index_stride;
+ spec.element_size = sharp.element_size;
+ }
if (!spec.is_storage) {
spec.size = sharp.GetSize();
}
@@ -113,9 +124,9 @@ struct StageSpecialization {
});
ForEachSharp(binding, images, info->images,
[](auto& spec, const auto& desc, AmdGpu::Image sharp) {
- spec.type = sharp.GetBoundType();
+ spec.type = sharp.GetViewType(desc.is_array);
spec.is_integer = AmdGpu::IsInteger(sharp.GetNumberFmt());
- spec.is_storage = desc.IsStorage(sharp);
+ spec.is_storage = desc.is_written;
if (spec.is_storage) {
spec.dst_select = sharp.DstSelect();
}
diff --git a/src/video_core/amdgpu/liverpool.cpp b/src/video_core/amdgpu/liverpool.cpp
index 16ed84f74..8355dd1e6 100644
--- a/src/video_core/amdgpu/liverpool.cpp
+++ b/src/video_core/amdgpu/liverpool.cpp
@@ -260,7 +260,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(&nop->data_block[1]),
marker_sz};
if (rasterizer) {
- rasterizer->ScopeMarkerBegin(label);
+ rasterizer->ScopeMarkerBegin(label, true);
}
break;
}
@@ -271,13 +271,13 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(
reinterpret_cast(&nop->data_block[1]) + marker_sz);
if (rasterizer) {
- rasterizer->ScopedMarkerInsertColor(label, color);
+ rasterizer->ScopedMarkerInsertColor(label, color, true);
}
break;
}
case PM4CmdNop::PayloadType::DebugMarkerPop: {
if (rasterizer) {
- rasterizer->ScopeMarkerEnd();
+ rasterizer->ScopeMarkerEnd(true);
}
break;
}
@@ -412,7 +412,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(header);
- rasterizer->ScopeMarkerBegin(fmt::format("dcb:{}:DrawIndex2", cmd_address));
+ rasterizer->ScopeMarkerBegin(fmt::format("gfx:{}:DrawIndex2", cmd_address));
rasterizer->Draw(true);
rasterizer->ScopeMarkerEnd();
}
@@ -430,7 +430,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(header);
rasterizer->ScopeMarkerBegin(
- fmt::format("dcb:{}:DrawIndexOffset2", cmd_address));
+ fmt::format("gfx:{}:DrawIndexOffset2", cmd_address));
rasterizer->Draw(true, draw_index_off->index_offset);
rasterizer->ScopeMarkerEnd();
}
@@ -445,7 +445,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(header);
- rasterizer->ScopeMarkerBegin(fmt::format("dcb:{}:DrawIndexAuto", cmd_address));
+ rasterizer->ScopeMarkerBegin(fmt::format("gfx:{}:DrawIndexAuto", cmd_address));
rasterizer->Draw(false);
rasterizer->ScopeMarkerEnd();
}
@@ -460,7 +460,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(header);
- rasterizer->ScopeMarkerBegin(fmt::format("dcb:{}:DrawIndirect", cmd_address));
+ rasterizer->ScopeMarkerBegin(fmt::format("gfx:{}:DrawIndirect", cmd_address));
rasterizer->DrawIndirect(false, indirect_args_addr, offset, size, 1, 0);
rasterizer->ScopeMarkerEnd();
}
@@ -477,7 +477,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(header);
rasterizer->ScopeMarkerBegin(
- fmt::format("dcb:{}:DrawIndexIndirect", cmd_address));
+ fmt::format("gfx:{}:DrawIndexIndirect", cmd_address));
rasterizer->DrawIndirect(true, indirect_args_addr, offset, size, 1, 0);
rasterizer->ScopeMarkerEnd();
}
@@ -493,7 +493,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(header);
rasterizer->ScopeMarkerBegin(
- fmt::format("dcb:{}:DrawIndexIndirectCountMulti", cmd_address));
+ fmt::format("gfx:{}:DrawIndexIndirectCountMulti", cmd_address));
rasterizer->DrawIndirect(
true, indirect_args_addr, offset, draw_index_indirect->stride,
draw_index_indirect->count, draw_index_indirect->countAddr);
@@ -514,7 +514,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(header);
- rasterizer->ScopeMarkerBegin(fmt::format("dcb:{}:Dispatch", cmd_address));
+ rasterizer->ScopeMarkerBegin(fmt::format("gfx:{}:DispatchDirect", cmd_address));
rasterizer->DispatchDirect();
rasterizer->ScopeMarkerEnd();
}
@@ -533,7 +533,7 @@ Liverpool::Task Liverpool::ProcessGraphics(std::span dcb, std::span(header);
rasterizer->ScopeMarkerBegin(
- fmt::format("dcb:{}:DispatchIndirect", cmd_address));
+ fmt::format("gfx:{}:DispatchIndirect", cmd_address));
rasterizer->DispatchIndirect(indirect_args_addr, offset, size);
rasterizer->ScopeMarkerEnd();
}
@@ -812,7 +812,7 @@ Liverpool::Task Liverpool::ProcessCompute(std::span acb, u32 vqid) {
if (rasterizer && (cs_program.dispatch_initiator & 1)) {
const auto cmd_address = reinterpret_cast(header);
rasterizer->ScopeMarkerBegin(
- fmt::format("acb[{}]:{}:DispatchIndirect", vqid, cmd_address));
+ fmt::format("asc[{}]:{}:DispatchDirect", vqid, cmd_address));
rasterizer->DispatchDirect();
rasterizer->ScopeMarkerEnd();
}
@@ -830,7 +830,8 @@ Liverpool::Task Liverpool::ProcessCompute(std::span acb, u32 vqid) {
}
if (rasterizer && (cs_program.dispatch_initiator & 1)) {
const auto cmd_address = reinterpret_cast(header);
- rasterizer->ScopeMarkerBegin(fmt::format("acb[{}]:{}:Dispatch", vqid, cmd_address));
+ rasterizer->ScopeMarkerBegin(
+ fmt::format("asc[{}]:{}:DispatchIndirect", vqid, cmd_address));
rasterizer->DispatchIndirect(ib_address, 0, size);
rasterizer->ScopeMarkerEnd();
}
diff --git a/src/video_core/amdgpu/liverpool.h b/src/video_core/amdgpu/liverpool.h
index 837b73d89..a29bde4ce 100644
--- a/src/video_core/amdgpu/liverpool.h
+++ b/src/video_core/amdgpu/liverpool.h
@@ -429,11 +429,19 @@ struct Liverpool {
} depth_slice;
bool DepthValid() const {
- return Address() != 0 && z_info.format != ZFormat::Invalid;
+ return DepthAddress() != 0 && z_info.format != ZFormat::Invalid;
}
bool StencilValid() const {
- return Address() != 0 && stencil_info.format != StencilFormat::Invalid;
+ return StencilAddress() != 0 && stencil_info.format != StencilFormat::Invalid;
+ }
+
+ bool DepthWriteValid() const {
+ return DepthWriteAddress() != 0 && z_info.format != ZFormat::Invalid;
+ }
+
+ bool StencilWriteValid() const {
+ return StencilWriteAddress() != 0 && stencil_info.format != StencilFormat::Invalid;
}
u32 Pitch() const {
@@ -444,7 +452,7 @@ struct Liverpool {
return (depth_size.height_tile_max + 1) << 3;
}
- u64 Address() const {
+ u64 DepthAddress() const {
return u64(z_read_base) << 8;
}
@@ -452,6 +460,14 @@ struct Liverpool {
return u64(stencil_read_base) << 8;
}
+ u64 DepthWriteAddress() const {
+ return u64(z_write_base) << 8;
+ }
+
+ u64 StencilWriteAddress() const {
+ return u64(stencil_write_base) << 8;
+ }
+
u32 NumSamples() const {
return 1u << z_info.num_samples; // spec doesn't say it is a log2
}
@@ -899,7 +915,8 @@ struct Liverpool {
// There is a small difference between T# and CB number types, account for it.
return RemapNumberFormat(info.number_type == NumberFormat::SnormNz
? NumberFormat::Srgb
- : info.number_type.Value());
+ : info.number_type.Value(),
+ info.format);
}
[[nodiscard]] NumberConversion GetNumberConversion() const {
@@ -1007,6 +1024,46 @@ struct Liverpool {
}
};
+ enum class ForceEnable : u32 {
+ Off = 0,
+ Enable = 1,
+ Disable = 2,
+ };
+
+ enum class ForceSumm : u32 {
+ Off = 0,
+ MinZ = 1,
+ MaxZ = 2,
+ Both = 3,
+ };
+
+ union DepthRenderOverride {
+ u32 raw;
+ BitField<0, 2, ForceEnable> force_hiz_enable;
+ BitField<2, 2, ForceEnable> force_his_enable0;
+ BitField<4, 2, ForceEnable> force_his_enable1;
+ BitField<6, 1, u32> force_shader_z_order;
+ BitField<7, 1, u32> fast_z_disable;
+ BitField<8, 1, u32> fast_stencil_disable;
+ BitField<9, 1, u32> noop_cull_disable;
+ BitField<10, 1, u32> force_color_kill;
+ BitField<11, 1, u32> force_z_read;
+ BitField<12, 1, u32> force_stencil_read;
+ BitField<13, 2, ForceEnable> force_full_z_range;
+ BitField<15, 1, u32> force_qc_smask_conflict;
+ BitField<16, 1, u32> disable_viewport_clamp;
+ BitField<17, 1, u32> ignore_sc_zrange;
+ BitField<18, 1, u32> disable_fully_covered;
+ BitField<19, 2, ForceSumm> force_z_limit_summ;
+ BitField<21, 5, u32> max_tiles_in_dtt;
+ BitField<26, 1, u32> disable_tile_rate_tiles;
+ BitField<27, 1, u32> force_z_dirty;
+ BitField<28, 1, u32> force_stencil_dirty;
+ BitField<29, 1, u32> force_z_valid;
+ BitField<30, 1, u32> force_stencil_valid;
+ BitField<31, 1, u32> preserve_compression;
+ };
+
union AaConfig {
BitField<0, 3, u32> msaa_num_samples;
BitField<4, 1, u32> aa_mask_centroid_dtmn;
@@ -1208,7 +1265,8 @@ struct Liverpool {
DepthRenderControl depth_render_control;
INSERT_PADDING_WORDS(1);
DepthView depth_view;
- INSERT_PADDING_WORDS(2);
+ DepthRenderOverride depth_render_override;
+ INSERT_PADDING_WORDS(1);
Address depth_htile_data_base;
INSERT_PADDING_WORDS(2);
float depth_bounds_min;
diff --git a/src/video_core/amdgpu/resource.h b/src/video_core/amdgpu/resource.h
index ffee7964a..fa8edb3e2 100644
--- a/src/video_core/amdgpu/resource.h
+++ b/src/video_core/amdgpu/resource.h
@@ -54,7 +54,7 @@ struct Buffer {
}
NumberFormat GetNumberFmt() const noexcept {
- return RemapNumberFormat(NumberFormat(num_format));
+ return RemapNumberFormat(NumberFormat(num_format), DataFormat(data_format));
}
DataFormat GetDataFmt() const noexcept {
@@ -76,6 +76,16 @@ struct Buffer {
u32 GetSize() const noexcept {
return stride == 0 ? num_records : (stride * num_records);
}
+
+ u32 GetIndexStride() const noexcept {
+ // Index stride is 2 bits, meaning 8, 16, 32, or 64.
+ return 8 << index_stride;
+ }
+
+ u32 GetElementSize() const noexcept {
+ // Element size is 2 bits, meaning 2, 4, 8, or 16.
+ return 2 << element_size;
+ }
};
static_assert(sizeof(Buffer) == 16); // 128bits
@@ -119,6 +129,7 @@ constexpr std::string_view NameOf(ImageType type) {
enum class TilingMode : u32 {
Depth_MacroTiled = 0u,
Display_Linear = 0x8u,
+ Display_MicroTiled = 0x9u,
Display_MacroTiled = 0xAu,
Texture_MicroTiled = 0xDu,
Texture_MacroTiled = 0xEu,
@@ -131,6 +142,8 @@ constexpr std::string_view NameOf(TilingMode type) {
return "Depth_MacroTiled";
case TilingMode::Display_Linear:
return "Display_Linear";
+ case TilingMode::Display_MicroTiled:
+ return "Display_MicroTiled";
case TilingMode::Display_MacroTiled:
return "Display_MacroTiled";
case TilingMode::Texture_MicroTiled:
@@ -226,15 +239,15 @@ struct Image {
return pitch + 1;
}
- u32 NumLayers(bool is_array) const {
- u32 slices = GetType() == ImageType::Color3D ? 1 : depth + 1;
- if (GetType() == ImageType::Cube) {
- if (is_array) {
- slices = last_array + 1;
- ASSERT(slices % 6 == 0);
- } else {
- slices = 6;
- }
+ [[nodiscard]] u32 NumLayers() const noexcept {
+ // Depth is the number of layers for Array images.
+ u32 slices = depth + 1;
+ if (GetType() == ImageType::Color3D) {
+ // Depth is the actual texture depth for 3D images.
+ slices = 1;
+ } else if (IsCube()) {
+ // Depth is the number of full cubes for Cube images.
+ slices *= 6;
}
if (pow2pad) {
slices = std::bit_ceil(slices);
@@ -256,8 +269,12 @@ struct Image {
return 1;
}
+ bool IsCube() const noexcept {
+ return static_cast(type) == ImageType::Cube;
+ }
+
ImageType GetType() const noexcept {
- return static_cast(type);
+ return IsCube() ? ImageType::Color2DArray : static_cast(type);
}
DataFormat GetDataFmt() const noexcept {
@@ -265,7 +282,7 @@ struct Image {
}
NumberFormat GetNumberFmt() const noexcept {
- return RemapNumberFormat(NumberFormat(num_format));
+ return RemapNumberFormat(NumberFormat(num_format), DataFormat(data_format));
}
NumberConversion GetNumberConversion() const noexcept {
@@ -289,13 +306,48 @@ struct Image {
GetDataFmt() <= DataFormat::FormatFmask64_8;
}
- bool IsPartialCubemap() const {
- const auto viewed_slice = last_array - base_array + 1;
- return GetType() == ImageType::Cube && viewed_slice < 6;
+ [[nodiscard]] ImageType GetViewType(const bool is_array) const noexcept {
+ const auto base_type = GetType();
+ if (IsCube()) {
+ // Cube needs to remain array type regardless of instruction array specifier.
+ return base_type;
+ }
+ if (base_type == ImageType::Color1DArray && !is_array) {
+ return ImageType::Color1D;
+ }
+ if (base_type == ImageType::Color2DArray && !is_array) {
+ return ImageType::Color2D;
+ }
+ if (base_type == ImageType::Color2DMsaaArray && !is_array) {
+ return ImageType::Color2DMsaa;
+ }
+ return base_type;
}
- ImageType GetBoundType() const noexcept {
- return IsPartialCubemap() ? ImageType::Color2DArray : GetType();
+ [[nodiscard]] u32 NumViewLevels(const bool is_array) const noexcept {
+ switch (GetViewType(is_array)) {
+ case ImageType::Color2DMsaa:
+ case ImageType::Color2DMsaaArray:
+ return 1;
+ default:
+ // Constrain to actual number of available levels.
+ const auto max_level = std::min(last_level + 1, NumLevels());
+ return max_level > base_level ? max_level - base_level : 1;
+ }
+ }
+
+ [[nodiscard]] u32 NumViewLayers(const bool is_array) const noexcept {
+ switch (GetViewType(is_array)) {
+ case ImageType::Color1D:
+ case ImageType::Color2D:
+ case ImageType::Color2DMsaa:
+ case ImageType::Color3D:
+ return 1;
+ default:
+ // Constrain to actual number of available layers.
+ const auto max_array = std::min(last_array + 1, NumLayers());
+ return max_array > base_array ? max_array - base_array : 1;
+ }
}
};
static_assert(sizeof(Image) == 32); // 256bits
diff --git a/src/video_core/amdgpu/types.h b/src/video_core/amdgpu/types.h
index a19e53256..57f97418a 100644
--- a/src/video_core/amdgpu/types.h
+++ b/src/video_core/amdgpu/types.h
@@ -252,7 +252,7 @@ inline DataFormat RemapDataFormat(const DataFormat format) {
}
}
-inline NumberFormat RemapNumberFormat(const NumberFormat format) {
+inline NumberFormat RemapNumberFormat(const NumberFormat format, const DataFormat data_format) {
switch (format) {
case NumberFormat::Uscaled:
return NumberFormat::Uint;
@@ -260,6 +260,14 @@ inline NumberFormat RemapNumberFormat(const NumberFormat format) {
return NumberFormat::Sint;
case NumberFormat::Ubnorm:
return NumberFormat::Unorm;
+ case NumberFormat::Float:
+ if (data_format == DataFormat::Format8) {
+ // Games may ask for 8-bit float when they want to access the stencil component
+ // of a depth-stencil image. Change to unsigned int to match the stencil format.
+ // This is also the closest approximation to pass the bits through unconverted.
+ return NumberFormat::Uint;
+ }
+ [[fallthrough]];
default:
return format;
}
diff --git a/src/video_core/buffer_cache/buffer.cpp b/src/video_core/buffer_cache/buffer.cpp
index 5a049c185..a8d1271c6 100644
--- a/src/video_core/buffer_cache/buffer.cpp
+++ b/src/video_core/buffer_cache/buffer.cpp
@@ -131,6 +131,8 @@ vk::BufferView Buffer::View(u32 offset, u32 size, bool is_written, AmdGpu::DataF
vk::to_string(view_result));
scheduler->DeferOperation(
[view, device = instance->GetDevice()] { device.destroyBufferView(view); });
+ Vulkan::SetObjectName(instance->GetDevice(), view, "BufferView {:#x}:{:#x}", cpu_addr + offset,
+ size);
return view;
}
diff --git a/src/video_core/buffer_cache/buffer_cache.cpp b/src/video_core/buffer_cache/buffer_cache.cpp
index 3a210957e..487544a21 100644
--- a/src/video_core/buffer_cache/buffer_cache.cpp
+++ b/src/video_core/buffer_cache/buffer_cache.cpp
@@ -10,13 +10,13 @@
#include "video_core/amdgpu/liverpool.h"
#include "video_core/buffer_cache/buffer_cache.h"
#include "video_core/renderer_vulkan/liverpool_to_vk.h"
+#include "video_core/renderer_vulkan/vk_graphics_pipeline.h"
#include "video_core/renderer_vulkan/vk_instance.h"
#include "video_core/renderer_vulkan/vk_scheduler.h"
#include "video_core/texture_cache/texture_cache.h"
namespace VideoCore {
-static constexpr size_t NumVertexBuffers = 32;
static constexpr size_t GdsBufferSize = 64_KB;
static constexpr size_t StagingBufferSize = 1_GB;
static constexpr size_t UboStreamBufferSize = 64_MB;
@@ -89,35 +89,22 @@ void BufferCache::DownloadBufferMemory(Buffer& buffer, VAddr device_addr, u64 si
}
}
-bool BufferCache::BindVertexBuffers(
- const Shader::Info& vs_info, const std::optional& fetch_shader) {
- boost::container::small_vector attributes;
- boost::container::small_vector bindings;
- SCOPE_EXIT {
- if (instance.IsVertexInputDynamicState()) {
- const auto cmdbuf = scheduler.CommandBuffer();
- cmdbuf.setVertexInputEXT(bindings, attributes);
- } else if (bindings.empty()) {
- // Required to call bindVertexBuffers2EXT at least once in the current command buffer
- // with non-null strides without a non-dynamic stride pipeline in between. Thus even
- // when nothing is bound we still need to make a dummy call. Non-null strides in turn
- // requires a count greater than 0.
- const auto cmdbuf = scheduler.CommandBuffer();
- const std::array null_buffers = {GetBuffer(NULL_BUFFER_ID).buffer.buffer};
- constexpr std::array null_offsets = {static_cast(0)};
- cmdbuf.bindVertexBuffers2EXT(0, null_buffers, null_offsets, null_offsets, null_offsets);
- }
- };
+void BufferCache::BindVertexBuffers(const Vulkan::GraphicsPipeline& pipeline) {
+ Vulkan::VertexInputs attributes;
+ Vulkan::VertexInputs bindings;
+ Vulkan::VertexInputs guest_buffers;
+ pipeline.GetVertexInputs(attributes, bindings, guest_buffers);
- if (!fetch_shader || fetch_shader->attributes.empty()) {
- return false;
+ if (instance.IsVertexInputDynamicState()) {
+ // Update current vertex inputs.
+ const auto cmdbuf = scheduler.CommandBuffer();
+ cmdbuf.setVertexInputEXT(bindings, attributes);
}
- std::array host_buffers;
- std::array host_offsets;
- std::array host_sizes;
- std::array host_strides;
- boost::container::static_vector guest_buffers;
+ if (bindings.empty()) {
+ // If there are no bindings, there is nothing further to do.
+ return;
+ }
struct BufferRange {
VAddr base_address;
@@ -125,61 +112,37 @@ bool BufferCache::BindVertexBuffers(
vk::Buffer vk_buffer;
u64 offset;
- size_t GetSize() const {
+ [[nodiscard]] size_t GetSize() const {
return end_address - base_address;
}
};
- // Calculate buffers memory overlaps
- bool has_step_rate = false;
- boost::container::static_vector ranges{};
- for (const auto& attrib : fetch_shader->attributes) {
- if (attrib.UsesStepRates()) {
- has_step_rate = true;
- continue;
+ // Build list of ranges covering the requested buffers
+ Vulkan::VertexInputs ranges{};
+ for (const auto& buffer : guest_buffers) {
+ if (buffer.GetSize() > 0) {
+ ranges.emplace_back(buffer.base_address, buffer.base_address + buffer.GetSize());
}
+ }
- const auto& buffer = attrib.GetSharp(vs_info);
- if (buffer.GetSize() == 0) {
- continue;
- }
- guest_buffers.emplace_back(buffer);
- ranges.emplace_back(buffer.base_address, buffer.base_address + buffer.GetSize());
- attributes.push_back({
- .location = attrib.semantic,
- .binding = attrib.semantic,
- .format =
- Vulkan::LiverpoolToVK::SurfaceFormat(buffer.GetDataFmt(), buffer.GetNumberFmt()),
- .offset = 0,
+ // Merge connecting ranges together
+ Vulkan::VertexInputs ranges_merged{};
+ if (!ranges.empty()) {
+ std::ranges::sort(ranges, [](const BufferRange& lhv, const BufferRange& rhv) {
+ return lhv.base_address < rhv.base_address;
});
- bindings.push_back({
- .binding = attrib.semantic,
- .stride = buffer.GetStride(),
- .inputRate = attrib.GetStepRate() == Shader::Gcn::VertexAttribute::InstanceIdType::None
- ? vk::VertexInputRate::eVertex
- : vk::VertexInputRate::eInstance,
- .divisor = 1,
- });
- }
- if (ranges.empty()) {
- return false;
- }
-
- std::ranges::sort(ranges, [](const BufferRange& lhv, const BufferRange& rhv) {
- return lhv.base_address < rhv.base_address;
- });
-
- boost::container::static_vector ranges_merged{ranges[0]};
- for (auto range : ranges) {
- auto& prev_range = ranges_merged.back();
- if (prev_range.end_address < range.base_address) {
- ranges_merged.emplace_back(range);
- } else {
- prev_range.end_address = std::max(prev_range.end_address, range.end_address);
+ ranges_merged.emplace_back(ranges[0]);
+ for (auto range : ranges) {
+ auto& prev_range = ranges_merged.back();
+ if (prev_range.end_address < range.base_address) {
+ ranges_merged.emplace_back(range);
+ } else {
+ prev_range.end_address = std::max(prev_range.end_address, range.end_address);
+ }
}
}
- // Map buffers
+ // Map buffers for merged ranges
for (auto& range : ranges_merged) {
const auto [buffer, offset] = ObtainBuffer(range.base_address, range.GetSize(), false);
range.vk_buffer = buffer->buffer;
@@ -187,32 +150,39 @@ bool BufferCache::BindVertexBuffers(
}
// Bind vertex buffers
- const size_t num_buffers = guest_buffers.size();
- for (u32 i = 0; i < num_buffers; ++i) {
- const auto& buffer = guest_buffers[i];
- const auto host_buffer = std::ranges::find_if(ranges_merged, [&](const BufferRange& range) {
- return (buffer.base_address >= range.base_address &&
- buffer.base_address < range.end_address);
- });
- ASSERT(host_buffer != ranges_merged.cend());
-
- host_buffers[i] = host_buffer->vk_buffer;
- host_offsets[i] = host_buffer->offset + buffer.base_address - host_buffer->base_address;
- host_sizes[i] = buffer.GetSize();
- host_strides[i] = buffer.GetStride();
- }
-
- if (num_buffers > 0) {
- const auto cmdbuf = scheduler.CommandBuffer();
- if (instance.IsVertexInputDynamicState()) {
- cmdbuf.bindVertexBuffers(0, num_buffers, host_buffers.data(), host_offsets.data());
+ Vulkan::VertexInputs host_buffers;
+ Vulkan::VertexInputs host_offsets;
+ Vulkan::VertexInputs host_sizes;
+ Vulkan::VertexInputs host_strides;
+ const auto null_buffer =
+ instance.IsNullDescriptorSupported() ? VK_NULL_HANDLE : GetBuffer(NULL_BUFFER_ID).Handle();
+ for (const auto& buffer : guest_buffers) {
+ if (buffer.GetSize() > 0) {
+ const auto host_buffer_info =
+ std::ranges::find_if(ranges_merged, [&](const BufferRange& range) {
+ return buffer.base_address >= range.base_address &&
+ buffer.base_address < range.end_address;
+ });
+ ASSERT(host_buffer_info != ranges_merged.cend());
+ host_buffers.emplace_back(host_buffer_info->vk_buffer);
+ host_offsets.push_back(host_buffer_info->offset + buffer.base_address -
+ host_buffer_info->base_address);
} else {
- cmdbuf.bindVertexBuffers2EXT(0, num_buffers, host_buffers.data(), host_offsets.data(),
- host_sizes.data(), host_strides.data());
+ host_buffers.emplace_back(null_buffer);
+ host_offsets.push_back(0);
}
+ host_sizes.push_back(buffer.GetSize());
+ host_strides.push_back(buffer.GetStride());
}
- return has_step_rate;
+ const auto cmdbuf = scheduler.CommandBuffer();
+ const auto num_buffers = guest_buffers.size();
+ if (instance.IsVertexInputDynamicState()) {
+ cmdbuf.bindVertexBuffers(0, num_buffers, host_buffers.data(), host_offsets.data());
+ } else {
+ cmdbuf.bindVertexBuffers2EXT(0, num_buffers, host_buffers.data(), host_offsets.data(),
+ host_sizes.data(), host_strides.data());
+ }
}
void BufferCache::BindIndexBuffer(u32 index_offset) {
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h
index f29a37b63..575ee2c60 100644
--- a/src/video_core/buffer_cache/buffer_cache.h
+++ b/src/video_core/buffer_cache/buffer_cache.h
@@ -5,8 +5,6 @@
#include
#include
-#include
-#include
#include "common/div_ceil.h"
#include "common/slot_vector.h"
#include "common/types.h"
@@ -26,6 +24,10 @@ struct FetchShaderData;
struct Info;
} // namespace Shader
+namespace Vulkan {
+class GraphicsPipeline;
+}
+
namespace VideoCore {
using BufferId = Common::SlotId;
@@ -75,8 +77,7 @@ public:
void InvalidateMemory(VAddr device_addr, u64 size);
/// Binds host vertex buffers for the current draw.
- bool BindVertexBuffers(const Shader::Info& vs_info,
- const std::optional& fetch_shader);
+ void BindVertexBuffers(const Vulkan::GraphicsPipeline& pipeline);
/// Bind host index buffer for the current draw.
void BindIndexBuffer(u32 index_offset);
diff --git a/src/video_core/buffer_cache/word_manager.h b/src/video_core/buffer_cache/word_manager.h
index 7ad33d7a6..5ad724f96 100644
--- a/src/video_core/buffer_cache/word_manager.h
+++ b/src/video_core/buffer_cache/word_manager.h
@@ -8,6 +8,9 @@
#include
#include
+#ifdef __linux__
+#include "common/adaptive_mutex.h"
+#endif
#include "common/spin_lock.h"
#include "common/types.h"
#include "video_core/page_manager.h"
@@ -272,7 +275,11 @@ private:
}
}
+#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
+ Common::AdaptiveMutex lock;
+#else
Common::SpinLock lock;
+#endif
PageManager* tracker;
VAddr cpu_addr = 0;
WordsArray cpu;
diff --git a/src/video_core/host_shaders/CMakeLists.txt b/src/video_core/host_shaders/CMakeLists.txt
index a9c2964ad..e60cca122 100644
--- a/src/video_core/host_shaders/CMakeLists.txt
+++ b/src/video_core/host_shaders/CMakeLists.txt
@@ -2,6 +2,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later
set(SHADER_FILES
+ detilers/display_micro_64bpp.comp
detilers/macro_32bpp.comp
detilers/macro_64bpp.comp
detilers/macro_8bpp.comp
diff --git a/src/video_core/host_shaders/detilers/display_micro_64bpp.comp b/src/video_core/host_shaders/detilers/display_micro_64bpp.comp
new file mode 100644
index 000000000..3e0485682
--- /dev/null
+++ b/src/video_core/host_shaders/detilers/display_micro_64bpp.comp
@@ -0,0 +1,60 @@
+// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#version 450
+
+layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
+
+layout(std430, binding = 0) buffer input_buf {
+ uint in_data[];
+};
+layout(std430, binding = 1) buffer output_buf {
+ uint out_data[];
+};
+
+layout(push_constant) uniform image_info {
+ uint num_levels;
+ uint pitch;
+ uint height;
+ uint c0;
+ uint c1;
+} info;
+
+const uint lut_64bpp[16] = {
+ 0x05040100, 0x0d0c0908,
+ 0x07060302, 0x0f0e0b0a,
+ 0x15141110, 0x1d1c1918,
+ 0x17161312, 0x1f1e1b1a,
+ 0x25242120, 0x2d2c2928,
+ 0x27262322, 0x2f2e2b2a,
+ 0x35343130, 0x3d3c3938,
+ 0x37363332, 0x3f3e3b3a,
+};
+
+#define MICRO_TILE_DIM (8)
+#define MICRO_TILE_SZ (512)
+#define TEXELS_PER_ELEMENT (1)
+#define BPP (64)
+
+void main() {
+ uint x = gl_GlobalInvocationID.x % info.pitch;
+ uint y = (gl_GlobalInvocationID.x / info.pitch) % info.height;
+ uint z = gl_GlobalInvocationID.x / (info.pitch * info.height);
+
+ uint col = bitfieldExtract(x, 0, 3);
+ uint row = bitfieldExtract(y, 0, 3);
+ uint idx_dw = lut_64bpp[(col + row * MICRO_TILE_DIM) >> 2u];
+ uint byte_ofs = gl_LocalInvocationID.x & 3u;
+ uint idx = bitfieldExtract(idx_dw >> (8 * byte_ofs), 0, 8);
+
+ uint slice_offs = z * info.c1 * MICRO_TILE_SZ;
+ uint tile_row = y / MICRO_TILE_DIM;
+ uint tile_column = x / MICRO_TILE_DIM;
+ uint tile_offs = ((tile_row * info.c0) + tile_column) * MICRO_TILE_SZ;
+ uint offs = slice_offs + tile_offs + ((idx * BPP) / 8u);
+
+ uint p0 = in_data[(offs >> 2) + 0];
+ uint p1 = in_data[(offs >> 2) + 1];
+ out_data[2 * gl_GlobalInvocationID.x + 0] = p0;
+ out_data[2 * gl_GlobalInvocationID.x + 1] = p1;
+}
diff --git a/src/video_core/page_manager.h b/src/video_core/page_manager.h
index f44307f92..f6bae9641 100644
--- a/src/video_core/page_manager.h
+++ b/src/video_core/page_manager.h
@@ -5,6 +5,9 @@
#include
#include
+#ifdef __linux__
+#include "common/adaptive_mutex.h"
+#endif
#include "common/spin_lock.h"
#include "common/types.h"
@@ -36,7 +39,11 @@ private:
std::unique_ptr impl;
Vulkan::Rasterizer* rasterizer;
boost::icl::interval_map cached_pages;
+#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
+ Common::AdaptiveMutex lock;
+#else
Common::SpinLock lock;
+#endif
};
} // namespace VideoCore
diff --git a/src/video_core/renderer_vulkan/liverpool_to_vk.h b/src/video_core/renderer_vulkan/liverpool_to_vk.h
index a68280e7d..a9fcd03a9 100644
--- a/src/video_core/renderer_vulkan/liverpool_to_vk.h
+++ b/src/video_core/renderer_vulkan/liverpool_to_vk.h
@@ -71,8 +71,35 @@ vk::ClearValue ColorBufferClearValue(const AmdGpu::Liverpool::ColorBuffer& color
vk::SampleCountFlagBits NumSamples(u32 num_samples, vk::SampleCountFlags supported_flags);
+static inline bool IsFormatDepthCompatible(vk::Format fmt) {
+ switch (fmt) {
+ // 32-bit float compatible
+ case vk::Format::eD32Sfloat:
+ case vk::Format::eR32Sfloat:
+ case vk::Format::eR32Uint:
+ // 16-bit unorm compatible
+ case vk::Format::eD16Unorm:
+ case vk::Format::eR16Unorm:
+ return true;
+ default:
+ return false;
+ }
+}
+
+static inline bool IsFormatStencilCompatible(vk::Format fmt) {
+ switch (fmt) {
+ // 8-bit uint compatible
+ case vk::Format::eS8Uint:
+ case vk::Format::eR8Uint:
+ case vk::Format::eR8Unorm:
+ return true;
+ default:
+ return false;
+ }
+}
+
static inline vk::Format PromoteFormatToDepth(vk::Format fmt) {
- if (fmt == vk::Format::eR32Sfloat) {
+ if (fmt == vk::Format::eR32Sfloat || fmt == vk::Format::eR32Uint) {
return vk::Format::eD32Sfloat;
} else if (fmt == vk::Format::eR16Unorm) {
return vk::Format::eD16Unorm;
diff --git a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
index b24767e8a..23faacfc2 100644
--- a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
@@ -59,9 +59,8 @@ ComputePipeline::ComputePipeline(const Instance& instance_, Scheduler& scheduler
for (const auto& image : info->images) {
bindings.push_back({
.binding = binding++,
- .descriptorType = image.IsStorage(image.GetSharp(*info))
- ? vk::DescriptorType::eStorageImage
- : vk::DescriptorType::eSampledImage,
+ .descriptorType = image.is_written ? vk::DescriptorType::eStorageImage
+ : vk::DescriptorType::eSampledImage,
.descriptorCount = 1,
.stageFlags = vk::ShaderStageFlagBits::eCompute,
});
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
index 0ca1bed8b..4ca3a7f27 100644
--- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
@@ -57,35 +57,11 @@ GraphicsPipeline::GraphicsPipeline(
pipeline_layout = std::move(layout);
SetObjectName(device, *pipeline_layout, "Graphics PipelineLayout {}", debug_str);
- boost::container::static_vector vertex_bindings;
- boost::container::static_vector vertex_attributes;
- if (fetch_shader && !instance.IsVertexInputDynamicState()) {
- const auto& vs_info = GetStage(Shader::LogicalStage::Vertex);
- for (const auto& attrib : fetch_shader->attributes) {
- if (attrib.UsesStepRates()) {
- // Skip attribute binding as the data will be pulled by shader
- continue;
- }
-
- const auto buffer = attrib.GetSharp(vs_info);
- if (buffer.GetSize() == 0) {
- continue;
- }
- vertex_attributes.push_back({
- .location = attrib.semantic,
- .binding = attrib.semantic,
- .format = LiverpoolToVK::SurfaceFormat(buffer.GetDataFmt(), buffer.GetNumberFmt()),
- .offset = 0,
- });
- vertex_bindings.push_back({
- .binding = attrib.semantic,
- .stride = buffer.GetStride(),
- .inputRate =
- attrib.GetStepRate() == Shader::Gcn::VertexAttribute::InstanceIdType::None
- ? vk::VertexInputRate::eVertex
- : vk::VertexInputRate::eInstance,
- });
- }
+ VertexInputs vertex_attributes;
+ VertexInputs vertex_bindings;
+ VertexInputs guest_buffers;
+ if (!instance.IsVertexInputDynamicState()) {
+ GetVertexInputs(vertex_attributes, vertex_bindings, guest_buffers);
}
const vk::PipelineVertexInputStateCreateInfo vertex_input_info = {
@@ -161,7 +137,7 @@ GraphicsPipeline::GraphicsPipeline(
}
if (instance.IsVertexInputDynamicState()) {
dynamic_states.push_back(vk::DynamicState::eVertexInputEXT);
- } else {
+ } else if (!vertex_bindings.empty()) {
dynamic_states.push_back(vk::DynamicState::eVertexInputBindingStrideEXT);
}
@@ -329,6 +305,51 @@ GraphicsPipeline::GraphicsPipeline(
GraphicsPipeline::~GraphicsPipeline() = default;
+template
+void GraphicsPipeline::GetVertexInputs(VertexInputs& attributes,
+ VertexInputs& bindings,
+ VertexInputs& guest_buffers) const {
+ if (!fetch_shader || fetch_shader->attributes.empty()) {
+ return;
+ }
+ const auto& vs_info = GetStage(Shader::LogicalStage::Vertex);
+ for (const auto& attrib : fetch_shader->attributes) {
+ if (attrib.UsesStepRates()) {
+ // Skip attribute binding as the data will be pulled by shader.
+ continue;
+ }
+
+ const auto& buffer = attrib.GetSharp(vs_info);
+ attributes.push_back(Attribute{
+ .location = attrib.semantic,
+ .binding = attrib.semantic,
+ .format = LiverpoolToVK::SurfaceFormat(buffer.GetDataFmt(), buffer.GetNumberFmt()),
+ .offset = 0,
+ });
+ bindings.push_back(Binding{
+ .binding = attrib.semantic,
+ .stride = buffer.GetStride(),
+ .inputRate = attrib.GetStepRate() == Shader::Gcn::VertexAttribute::InstanceIdType::None
+ ? vk::VertexInputRate::eVertex
+ : vk::VertexInputRate::eInstance,
+ });
+ if constexpr (std::is_same_v) {
+ bindings.back().divisor = 1;
+ }
+ guest_buffers.emplace_back(buffer);
+ }
+}
+
+// Declare templated GetVertexInputs for necessary types.
+template void GraphicsPipeline::GetVertexInputs(
+ VertexInputs& attributes,
+ VertexInputs& bindings,
+ VertexInputs& guest_buffers) const;
+template void GraphicsPipeline::GetVertexInputs(
+ VertexInputs& attributes,
+ VertexInputs& bindings,
+ VertexInputs& guest_buffers) const;
+
void GraphicsPipeline::BuildDescSetLayout() {
boost::container::small_vector bindings;
u32 binding{};
@@ -367,9 +388,8 @@ void GraphicsPipeline::BuildDescSetLayout() {
for (const auto& image : stage->images) {
bindings.push_back({
.binding = binding++,
- .descriptorType = image.IsStorage(image.GetSharp(*stage))
- ? vk::DescriptorType::eStorageImage
- : vk::DescriptorType::eSampledImage,
+ .descriptorType = image.is_written ? vk::DescriptorType::eStorageImage
+ : vk::DescriptorType::eSampledImage,
.descriptorCount = 1,
.stageFlags = gp_stage_flags,
});
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.h b/src/video_core/renderer_vulkan/vk_graphics_pipeline.h
index fa10831a0..9a20f94c1 100644
--- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.h
+++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.h
@@ -3,6 +3,7 @@
#pragma once
+#include
#include
#include "common/types.h"
@@ -27,6 +28,9 @@ class DescriptorHeap;
using Liverpool = AmdGpu::Liverpool;
+template
+using VertexInputs = boost::container::static_vector;
+
struct GraphicsPipelineKey {
std::array stage_hashes;
u32 num_color_attachments;
@@ -38,13 +42,14 @@ struct GraphicsPipelineKey {
vk::Format stencil_format;
struct {
+ bool clip_disable : 1;
bool depth_test_enable : 1;
bool depth_write_enable : 1;
bool depth_bounds_test_enable : 1;
bool depth_bias_enable : 1;
bool stencil_test_enable : 1;
// Must be named to be zero-initialized.
- u8 _unused : 3;
+ u8 _unused : 2;
};
vk::CompareOp depth_compare_op;
@@ -90,6 +95,10 @@ public:
return key.mrt_mask;
}
+ auto IsClipDisabled() const {
+ return key.clip_disable;
+ }
+
[[nodiscard]] bool IsPrimitiveListTopology() const {
return key.prim_type == AmdGpu::PrimitiveType::PointList ||
key.prim_type == AmdGpu::PrimitiveType::LineList ||
@@ -100,6 +109,11 @@ public:
key.prim_type == AmdGpu::PrimitiveType::QuadList;
}
+ /// Gets the attributes and bindings for vertex inputs.
+ template
+ void GetVertexInputs(VertexInputs& attributes, VertexInputs& bindings,
+ VertexInputs& guest_buffers) const;
+
private:
void BuildDescSetLayout();
diff --git a/src/video_core/renderer_vulkan/vk_instance.cpp b/src/video_core/renderer_vulkan/vk_instance.cpp
index 9bc627830..5efdf4127 100644
--- a/src/video_core/renderer_vulkan/vk_instance.cpp
+++ b/src/video_core/renderer_vulkan/vk_instance.cpp
@@ -92,15 +92,13 @@ std::string GetReadableVersion(u32 version) {
Instance::Instance(bool enable_validation, bool enable_crash_diagnostic)
: instance{CreateInstance(Frontend::WindowSystemType::Headless, enable_validation,
enable_crash_diagnostic)},
- physical_devices{EnumeratePhysicalDevices(instance)},
- crash_diagnostic{enable_crash_diagnostic} {}
+ physical_devices{EnumeratePhysicalDevices(instance)} {}
Instance::Instance(Frontend::WindowSDL& window, s32 physical_device_index,
bool enable_validation /*= false*/, bool enable_crash_diagnostic /*= false*/)
: instance{CreateInstance(window.GetWindowInfo().type, enable_validation,
enable_crash_diagnostic)},
- physical_devices{EnumeratePhysicalDevices(instance)},
- crash_diagnostic{enable_crash_diagnostic} {
+ physical_devices{EnumeratePhysicalDevices(instance)} {
if (enable_validation) {
debug_callback = CreateDebugCallback(*instance);
}
@@ -210,6 +208,7 @@ std::string Instance::GetDriverVersionName() {
bool Instance::CreateDevice() {
const vk::StructureChain feature_chain = physical_device.getFeatures2<
vk::PhysicalDeviceFeatures2, vk::PhysicalDeviceExtendedDynamicStateFeaturesEXT,
+ vk::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT,
vk::PhysicalDeviceExtendedDynamicState2FeaturesEXT,
vk::PhysicalDeviceExtendedDynamicState3FeaturesEXT,
vk::PhysicalDeviceCustomBorderColorFeaturesEXT,
@@ -271,6 +270,7 @@ bool Instance::CreateDevice() {
maintenance5 = add_extension(VK_KHR_MAINTENANCE_5_EXTENSION_NAME);
legacy_vertex_attributes = add_extension(VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME);
image_load_store_lod = add_extension(VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME);
+ amd_gcn_shader = add_extension(VK_AMD_GCN_SHADER_EXTENSION_NAME);
// These extensions are promoted by Vulkan 1.3, but for greater compatibility we use Vulkan 1.2
// with extensions.
@@ -317,6 +317,9 @@ bool Instance::CreateDevice() {
.pQueuePriorities = queue_priorities.data(),
};
+ const auto topology_list_restart_features =
+ feature_chain.get();
+
const auto vk12_features = feature_chain.get();
vk::StructureChain device_chain = {
vk::DeviceCreateInfo{
@@ -406,6 +409,8 @@ bool Instance::CreateDevice() {
},
vk::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT{
.primitiveTopologyListRestart = true,
+ .primitiveTopologyPatchListRestart =
+ topology_list_restart_features.primitiveTopologyPatchListRestart,
},
vk::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR{
.fragmentShaderBarycentric = true,
@@ -563,8 +568,6 @@ void Instance::CollectToolingInfo() {
for (const vk::PhysicalDeviceToolProperties& tool : tools) {
const std::string_view name = tool.name;
LOG_INFO(Render_Vulkan, "Attached debugging tool: {}", name);
- has_renderdoc = has_renderdoc || name == "RenderDoc";
- has_nsight_graphics = has_nsight_graphics || name == "NVIDIA Nsight Graphics";
}
}
diff --git a/src/video_core/renderer_vulkan/vk_instance.h b/src/video_core/renderer_vulkan/vk_instance.h
index 4e091824d..8c4752c3f 100644
--- a/src/video_core/renderer_vulkan/vk_instance.h
+++ b/src/video_core/renderer_vulkan/vk_instance.h
@@ -79,11 +79,6 @@ public:
return profiler_context;
}
- /// Returns true when a known debugging tool is attached.
- bool HasDebuggingToolAttached() const {
- return crash_diagnostic || has_renderdoc || has_nsight_graphics;
- }
-
/// Returns true if anisotropic filtering is supported
bool IsAnisotropicFilteringSupported() const {
return features.samplerAnisotropy;
@@ -159,6 +154,11 @@ public:
return image_load_store_lod;
}
+ /// Returns true when VK_AMD_gcn_shader is supported.
+ bool IsAmdGcnShaderSupported() const {
+ return amd_gcn_shader;
+ }
+
/// Returns true when geometry shaders are supported by the device
bool IsGeometryStageSupported() const {
return features.geometryShader;
@@ -239,6 +239,11 @@ public:
return subgroup_size;
}
+ /// Returns the maximum size of compute shared memory.
+ u32 MaxComputeSharedMemorySize() const {
+ return properties.limits.maxComputeSharedMemorySize;
+ }
+
/// Returns the maximum supported elements in a texel buffer
u32 MaxTexelBufferElements() const {
return properties.limits.maxTexelBufferElements;
@@ -274,6 +279,14 @@ public:
return min_imported_host_pointer_alignment;
}
+ u32 GetMaxViewportWidth() const {
+ return properties.limits.maxViewportDimensions[0];
+ }
+
+ u32 GetMaxViewportHeight() const {
+ return properties.limits.maxViewportDimensions[1];
+ }
+
/// Returns the sample count flags supported by framebuffers.
vk::SampleCountFlags GetFramebufferSampleCounts() const {
return properties.limits.framebufferColorSampleCounts &
@@ -334,13 +347,10 @@ private:
bool list_restart{};
bool legacy_vertex_attributes{};
bool image_load_store_lod{};
+ bool amd_gcn_shader{};
+ bool tooling_info{};
u64 min_imported_host_pointer_alignment{};
u32 subgroup_size{};
- bool tooling_info{};
- bool debug_utils_supported{};
- bool crash_diagnostic{};
- bool has_nsight_graphics{};
- bool has_renderdoc{};
};
} // namespace Vulkan
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 9cfc7c277..c6a56745d 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -125,6 +125,7 @@ const Shader::RuntimeInfo& PipelineCache::BuildRuntimeInfo(Stage stage, LogicalS
info.vs_info.emulate_depth_negative_one_to_one =
!instance.IsDepthClipControlSupported() &&
regs.clipper_control.clip_space == Liverpool::ClipSpace::MinusWToW;
+ info.vs_info.clip_disable = graphics_key.clip_disable;
if (l_stage == LogicalStage::TessellationEval) {
info.vs_info.tess_type = regs.tess_config.type;
info.vs_info.tess_topology = regs.tess_config.topology;
@@ -183,6 +184,7 @@ const Shader::RuntimeInfo& PipelineCache::BuildRuntimeInfo(Stage stage, LogicalS
info.cs_info.tgid_enable = {cs_pgm.IsTgidEnabled(0), cs_pgm.IsTgidEnabled(1),
cs_pgm.IsTgidEnabled(2)};
info.cs_info.shared_memory_size = cs_pgm.SharedMemSize();
+ info.cs_info.max_shared_memory_size = instance.MaxComputeSharedMemorySize();
break;
}
default:
@@ -204,10 +206,13 @@ PipelineCache::PipelineCache(const Instance& instance_, Scheduler& scheduler_,
.support_explicit_workgroup_layout = true,
.support_legacy_vertex_attributes = instance_.IsLegacyVertexAttributesSupported(),
.supports_image_load_store_lod = instance_.IsImageLoadStoreLodSupported(),
+ .supports_native_cube_calc = instance_.IsAmdGcnShaderSupported(),
.needs_manual_interpolation = instance.IsFragmentShaderBarycentricSupported() &&
instance.GetDriverID() == vk::DriverId::eNvidiaProprietary,
.needs_lds_barriers = instance.GetDriverID() == vk::DriverId::eNvidiaProprietary ||
instance.GetDriverID() == vk::DriverId::eMoltenvk,
+ .max_viewport_width = instance.GetMaxViewportWidth(),
+ .max_viewport_height = instance.GetMaxViewportHeight(),
};
auto [cache_result, cache] = instance.GetDevice().createPipelineCacheUnique({});
ASSERT_MSG(cache_result == vk::Result::eSuccess, "Failed to create pipeline cache: {}",
@@ -260,6 +265,8 @@ bool PipelineCache::RefreshGraphicsKey() {
auto& regs = liverpool->regs;
auto& key = graphics_key;
+ key.clip_disable =
+ regs.clipper_control.clip_disable || regs.primitive_type == AmdGpu::PrimitiveType::RectList;
key.depth_test_enable = regs.depth_control.depth_enable;
key.depth_write_enable =
regs.depth_control.depth_write_enable && !regs.depth_render_control.depth_clear_enable;
@@ -419,17 +426,17 @@ bool PipelineCache::RefreshGraphicsKey() {
}
}
- const auto vs_info = infos[static_cast(Shader::LogicalStage::Vertex)];
+ const auto* vs_info = infos[static_cast(Shader::LogicalStage::Vertex)];
if (vs_info && fetch_shader && !instance.IsVertexInputDynamicState()) {
+ // Without vertex input dynamic state, the pipeline needs to specialize on format.
+ // Stride will still be handled outside the pipeline using dynamic state.
u32 vertex_binding = 0;
for (const auto& attrib : fetch_shader->attributes) {
if (attrib.UsesStepRates()) {
+ // Skip attribute binding as the data will be pulled by shader.
continue;
}
const auto& buffer = attrib.GetSharp(*vs_info);
- if (buffer.GetSize() == 0) {
- continue;
- }
ASSERT(vertex_binding < MaxVertexBufferCount);
key.vertex_buffer_formats[vertex_binding++] =
Vulkan::LiverpoolToVK::SurfaceFormat(buffer.GetDataFmt(), buffer.GetNumberFmt());
diff --git a/src/video_core/renderer_vulkan/vk_platform.cpp b/src/video_core/renderer_vulkan/vk_platform.cpp
index 7f0bcb5d2..fdd590e9d 100644
--- a/src/video_core/renderer_vulkan/vk_platform.cpp
+++ b/src/video_core/renderer_vulkan/vk_platform.cpp
@@ -31,17 +31,6 @@ static VKAPI_ATTR VkBool32 VKAPI_CALL DebugUtilsCallback(
VkDebugUtilsMessageSeverityFlagBitsEXT severity, VkDebugUtilsMessageTypeFlagsEXT type,
const VkDebugUtilsMessengerCallbackDataEXT* callback_data, void* user_data) {
- switch (static_cast