psOff_public/modules
2024-06-01 10:13:31 +03:00
..
libkernel Please clang-format, stop being funny 2024-05-29 18:26:33 +03:00
libkernel_cpumode_platform Fixes and stubs 2024-04-26 02:59:48 +03:00
libkernel_ps2emu More stubs 2024-04-08 12:09:23 +03:00
libkernel_unity use external third_party repo 2024-04-14 15:20:25 +02:00
libSceAjm sceKernelAioInitializeParam Implementation 2024-05-02 16:10:13 +04:00
libSceAppContent move runtime to public 2024-04-28 09:53:59 +02:00
libSceAudio3d Stub some funcs 2024-04-14 16:04:54 +03:00
libSceAudiodec Fixes 2024-04-23 19:08:10 +04:00
libSceAudiodecCpu Fixes 2024-04-23 19:08:10 +04:00
libSceAudioIn use external third_party repo 2024-04-14 15:20:25 +02:00
libSceAudioOut fix build, tracelevel 2024-05-18 16:13:56 +02:00
libSceAvPlayer Please clang-format, stop being funny 2024-05-29 18:26:33 +03:00
libSceCamera More stubs 2024-04-22 15:26:24 +03:00
libSceCes Missing symbols and minor fixes 2024-05-17 16:52:44 +03:00
libSceCommonDialog Error codes cleanup + more scePad fixes 2024-04-24 10:28:54 +03:00
libSceContentExport Initial commit 2024-04-30 14:14:35 +03:00
libSceCoredump use external third_party repo 2024-04-14 15:20:25 +02:00
libSceDepth + 2024-04-19 23:04:22 +04:00
libSceDiscMap Error codes cleanup + more scePad fixes 2024-04-24 10:28:54 +03:00
libSceErrorDialog More dialog stubs 2024-03-20 06:07:48 +03:00
libSceFace sceKernelAioInitializeParam Implementation 2024-05-02 16:10:13 +04:00
libSceFaceTracker sceKernelAioInitializeParam Implementation 2024-05-02 16:10:13 +04:00
libSceGameLiveStreaming ERR -> TRACE some continuously called funcs 2024-05-28 07:10:00 +03:00
libSceGraphicsDriver graphicsDriver| use shader regs size 2024-05-29 19:20:35 +02:00
libSceHmd + 2024-04-19 21:42:50 +04:00
libSceHttp Some stubs 2024-04-26 01:01:27 +03:00
libSceHttp2 Stub some funcs 2024-04-14 16:04:54 +03:00
libSceIme Fix Ngs2 structures 2024-04-17 13:45:27 +03:00
libSceImeDialog More dialog stubs 2024-03-20 06:07:48 +03:00
libSceInvitationDialog Stub some funcs 2024-04-14 16:04:54 +03:00
libSceJson2 Missing symbols and minor fixes 2024-05-17 16:52:44 +03:00
libSceLibcInternal Fix ngs2 mess 2024-05-22 23:56:22 +03:00
libSceLibcInternalExt + runtimeExport, libSceLibc 2024-03-03 15:27:53 +01:00
libSceMouse Cleanup and sceNgs2 things 2024-04-03 23:27:25 +03:00
libSceMove + logging 2024-03-01 15:09:01 +01:00
libSceMoveTracker + 2024-04-19 21:42:50 +04:00
libSceMsgDialog Formatting fix 2024-04-03 23:30:08 +03:00
libSceNet sceNpSignaling library stub and log fix 2024-05-03 22:09:47 +02:00
libSceNetCtl Fix Super Meat Boy ignoring controls 2024-04-24 11:44:28 +03:00
libSceNetCtlForNpToolkit symbols 2024-04-16 16:39:34 +00:00
libSceNgs2 Yep 2024-05-23 00:12:57 +03:00
libSceNpAuth Some stubs 2024-04-26 01:01:27 +03:00
libSceNpCommerce More dialog stubs 2024-03-20 06:07:48 +03:00
libSceNpCommon format document 2024-04-14 16:28:14 +02:00
libSceNpGameIntent Error codes cleanup + more scePad fixes 2024-04-24 10:28:54 +03:00
libSceNpManager Please clang-format, stop being funny 2024-05-29 18:26:33 +03:00
libSceNpManagerForToolkit + logging 2024-03-01 15:09:01 +01:00
libSceNpMatching2 symbols 2024-04-16 16:39:34 +00:00
libSceNpParty ngs2| dump 2024-05-07 16:07:14 +02:00
libSceNpProfileDialog Stub some funcs 2024-04-14 16:04:54 +03:00
libSceNpScore Stub some funcs 2024-04-14 16:04:54 +03:00
libSceNpSignaling add SYSV_ABI 2024-05-04 07:18:40 +02:00
libSceNpSnsFacebookDialog Missing symbols and minor fixes 2024-05-17 16:52:44 +03:00
libSceNpToolkit2 One more stub 2024-05-28 19:28:23 +03:00
libSceNpTrophy Label check 2024-05-26 14:10:03 +03:00
libSceNpTus Missing symbols and minor fixes 2024-05-17 16:52:44 +03:00
libSceNpWebApi Stub some things 2024-05-27 23:40:47 +03:00
libSceNpWebApi2 Initial commit 2024-04-25 16:47:48 +03:00
libScePad Remove unneeded macroses 2024-05-06 10:51:39 +03:00
libScePadTracker sceKernelAioInitializeParam Implementation 2024-05-02 16:10:13 +04:00
libScePlayGo Set eta and entries for playgo 2024-05-28 13:13:20 +03:00
libScePngDec merge 2024-05-04 20:22:58 +02:00
libScePngEnc Initial preparations 2024-05-01 03:13:32 +03:00
libScePosix libScePosix| + sem_count 2024-05-05 11:19:44 +02:00
libSceRandom Fix formatting check 2024-04-23 20:23:10 +04:00
libSceRemoteplay ERR -> TRACE some continuously called funcs 2024-05-28 07:10:00 +03:00
libSceRtc libSceRtc| use chrono 2024-04-27 22:09:55 +02:00
libSceRudp sceKernelAioInitializeParam Implementation 2024-05-02 16:10:13 +04:00
libSceSaveData Error codes cleanup + more scePad fixes 2024-04-24 10:28:54 +03:00
libSceSaveDataDialog Fix formatting 2024-03-12 05:50:09 +03:00
libSceScreenShot + logging 2024-03-01 15:09:01 +01:00
libSceSharePlay Initial commit 2024-04-30 14:14:35 +03:00
libSceShareUtility Update codes.h 2024-04-30 15:57:04 +03:00
libSceSigninDialog More dialog stubs 2024-03-20 06:07:48 +03:00
libSceSocialScreen Symbols 2024-04-23 19:04:04 +04:00
libSceSsl + logging 2024-03-01 15:09:01 +01:00
libSceSysmodule Add actual module names to libSceSysmodule 2024-05-24 22:31:29 +03:00
libSceSystemGesture libSceSystemGesture| use change trace level 2024-05-31 11:21:32 +02:00
libSceSystemService sceSystemServiceParamGetString 2024-04-06 00:33:55 +03:00
libSceSystemServicePs2Emu Stub livestreaming thing 2024-04-12 18:03:59 +03:00
libSceUlt + 2024-05-20 18:39:07 +04:00
libSceUsbd Missing symbols and minor fixes 2024-05-17 16:52:44 +03:00
libSceUserService Just to be safe 2024-04-27 17:32:07 +03:00
libSceUserServiceForNpToolkit Stubs and functions 2024-04-13 18:05:59 +03:00
libSceVideoOut Do not spam to stderr 2024-06-01 10:13:31 +03:00
libSceVideoRecording Stub livestreaming thing 2024-04-12 18:03:59 +03:00
libSceVoice ERR -> TRACE 2024-04-18 16:02:38 +04:00
libSceVoiceQoS Stub libSceVrTracker 2024-04-03 14:51:23 +03:00
libSceVrTracker sceCameraOpen+sceCamera close stubs 2024-04-03 15:53:40 +03:00
template + logging 2024-03-01 15:09:01 +01:00
CMakeLists.txt move dll2nids to public 2024-03-10 14:30:22 +01:00
readme.md move semaphre to kernel 2024-03-06 14:40:30 +01:00
setupModule.cmake dump every sce symbol in the project 2024-03-15 18:03:40 +01:00

Overview

Each target library is created separately as a shared library in the modules folder. This allows NIDs generation at build time and a clean code separation.

The Emulator loads the libraries on demand and resolves the symbols etc. A library does only communicate with the emulator. If it should need information/calls from other libraries, a separate top class should be used. The library can link against it and access the interface.

Planned is a core library for such cases and for the interfaces currently in the emulator.

Create a new module

  • duplicate the template folder
  • replace the folder with the identical name of the target library.
  • inside CMakeLists.txt, replace template in "set(libName template)" with the library name
  • inside entry.cpp, replace "libSce" both in LOG_DEFINE_MODULE() and MODULE_NAME = ""

All exported function are placed inside the provided extern "C" scope and should start with "EXPORT SYSV_ABI", since those functions are called directly by the emulated application (Linux).

After a new CMake config, the new library should be picked up and built.

Build: dll2Nids may print an error. Just add a dummy function with a long name (11 + extra space).
Normally, only names starting with sce or _sce are converted. Use one of the following macro, defined in common.h, for everything else:
__NID(func) : converts the function name
__NID_HEX(hexId) : If the function name is unknown, use the hexId instead