Homebrew Store API library that any PS4 Homebrew app can implement (works with sandboxed apps too)
FIRST Download the Linux create_fself with multi-lib support OR compile it yourself using This multi-lib pull request
Alternatively you can Download the HB Store's OOSDK
Run make
to create a static library and a prx
Run make install
to install the static library and store_api.h header
the following PS4 system libs are used by this library -lSceBgft -lSceAppInstUtil -lSceLncUtil -ljbc -lcurl -lpolarssl -lSceUserService -lSceLncUtil -lSceSysmodule -lSceNet -lSceSystemService -lSceCommonDialog -lSceLibcInternal
make install
will install the store_api.h header to the SDK so you can include it in your
project by doing <store_api.h>
and include the static lib -lstore_api
you can either use the static (.a) or dynamic (.prx) libs
The following needs to be added to your app failure to do so can result in crashing
#define SCE_SYSMODULE_INTERNAL_NET 0x8000001C
#define SCE_SYSMODULE_INTERNAL_BGFT 0x8000002A
#define SCE_SYSMODULE_INTERNAL_NETCTL 0x80000009
#define SCE_SYSMODULE_INTERNAL_COMMON_DIALOG 0x80000018
#define SCE_SYSMODULE_INTERNAL_APPINSTUTIL 0x80000014
#define ORBIS_SYSMODULE_MESSAGE_DIALOG 0x00A4 // libSceMsgDialog.sprx
sceSysmoduleLoadModuleInternal(SCE_SYSMODULE_INTERNAL_BGFT);
sceSysmoduleLoadModuleInternal(SCE_SYSMODULE_INTERNAL_NET);
sceSysmoduleLoadModuleInternal(SCE_SYSMODULE_INTERNAL_NETCTL);
sceSysmoduleLoadModuleInternal(SCE_SYSMODULE_INTERNAL_COMMON_DIALOG);
sceSysmoduleLoadModuleInternal(SCE_SYSMODULE_INTERNAL_APPINSTUTIL);
sceSysmoduleLoadModule(ORBIS_SYSMODULE_MESSAGE_DIALOG);
// call for the Store api message dialogs
sceCommonDialogInitialize();
Works in sandboxed games as well
#define ORBIS_SYSMODULE_MESSAGE_DIALOG 0x00A4 // libSceMsgDialog.sprx
sceSysmoduleLoadModule(ORBIS_SYSMODULE_MESSAGE_DIALOG);
// call for the Store api message dialogs
sceCommonDialogInitialize();
- every API error is logged to
/data/store_api.log
and UART - Join this Discord server for API Questions or issues
// include our API header with enum
#include <store_api.h>
int main(){
// check for an update using a title id
if(sceStoreApiCheckUpdate("LAPY20001") == UPDATE_FOUND){
// update found now launch store with either the title id or app name
If(!sceStoreApiLaunchStore("LAPY20001")){
// ERROR HANDLING HERE
return -1;
}
}
return 0;
}