SceCompat

From Vita Development Wiki
Revision as of 09:45, 12 April 2020 by CelesteBlue (talk | contribs)
Jump to navigation Jump to search

This is the primary kernel interface to the PSP Emulator.

Module

Known NIDs

Version Name World Privilege NID
1.69 SceCompat Non-secure Kernel 0x7FA33B9B
3.60-3.65 SceCompat Non-secure Kernel 0x8F2D0378

Libraries

Known NIDs

Version Name World Visibility NID
3.60-3.65 SceCompatForDriver Non-secure Kernel 0x7CFA62CD
3.60-3.65 SceCompatForVsh Non-secure User 0xF68A1AD0
0.990-3.65 SceCompat Non-secure User 0x0F35909D

SceCompatForDriver

SceCompatForDriver_6EBD9E01

Version NID
0.990 not present
3.60 0x6EBD9E01

SceCompatForVsh

SceCompatForVsh_4915DEE7

Version NID
0.990 not present
3.60 0x4915DEE7

SceCompatForVsh_70997F92

Version NID
0.990 not present
3.60 0x70997F92

SceCompatForVsh_9C107CC9

Version NID
0.990 not present
3.60 0x9C107CC9

SceCompat

sceCompatGetUpdateState

Version NID
0.990 not present
3.60 0x0CDE9EC5

sceCompatGetDevInf

Version NID
0.990 not present
1.69-3.60 0x138006A8

sceCompatGetPeripheralState

Version NID
0.990-3.60 0x176B2906
// periph_id: 1: IsHeadphoneExist, 2: GetBatteryLifePercent, 3: GetBatteryLifeTime, 4: IsSuspendRequired
int sceCompatGetPeripheralState(SceUInt32 periph_id);

sceCompatWriteShared32

Version NID
0.990 not present
1.03-3.60 0x1CD51530
// some_id must be between 0x80 and 0x8A
int sceCompatWriteShared32(SceUInt32 some_id, SceUInt32 value);

sceCompatWriteSharedCtrl

Version NID
0.990 not present
1.69-3.60 0x2306FFED
// buf max size is 0x10, but only 0xC bytes are written to Shared SRAM
int sceCompatWriteSharedCtrl(void *buf);

sceCompatSetSettings

Version NID
0.990 not present
1.03-1.69 0x312782DC
3.60 not present
typedef struct SceCompatSettings { // size is 4 on FW 1.03
   SceUInt32 disp_filter : 1;
   SceUInt32 camera_direction : 1;
   SceUInt32 ra_up : 4;
   SceUInt32 ra_down : 4;
   SceUInt32 ra_left : 4;
   SceUInt32 ra_right : 4;
   SceUInt32 reserved : 14;
} SceCompatSettings;

int sceCompatSetSettings(SceCompatSettings settings);

sceCompatSuspendResume

Version NID
0.990 not present
1.69-3.60 0x324112CA
// mode: 0: suspend, 1: resume
// step: 1: first step, 2: second step
int sceCompatSuspendResume(SceUInt32 mode, SceUInt32 step);

sceCompatSetDisplayConfig

Version NID
0.990 not present
1.69 0x32BA3DCF

sceCompatRegRead

Version NID
0.990-1.69 0x4521505D
3.60 not present
int sceCompatRegRead(SceUInt32 unk_bool, SceUInt32 offset, void *pBuf, SceSize size);

sceCompatAvailableColorSpaceSetting

Version NID
0.990 not present
3.60 0x456226DD

sceCompatCache

Version NID
0.940-3.60 0x6777390E
// mode: 1: Invalidate, 2: Clean and Invalidate, 3: Clean
int sceCompatCache(SceUInt32 mode, void *base, SceSize size);

sceCompatAllocCdram

Version NID
0.990 not present
1.69 0x6E8E3BA8

sceCompatWaitSpecialRequest

Version NID
0.940-3.60 0x714F7ED6
int sceCompatWaitSpecialRequest(SceUInt32 req_id);

sceCompatReadShared32

Version NID
0.990 not present
1.03-3.60 0x73AA4871
// some_id must be between 0 and 6
int sceCompatReadShared32(SceUInt32 some_id, SceUInt32 *pValue);

sceCompatGetSettings

Version NID
0.990 not present
1.69 0x782C980E
3.60 not present

sceCompatIsPocketStationTitle

Version NID
0.990 not present
3.60 0x7DCFBCCE

sceCompatWaitAndGetRequest

Version NID
0.990 not present
3.60 0x8176C238
int sceCompatWaitAndGetRequest(SceUInt32 req_id, SceUInt32 a2);

sceCompatSetUpdateState

Version NID
0.990 not present
3.60 0x8A44206F

sceCompatStart

Version NID
0.940-3.60 0x8CA1632D

sceCompatRegWrite

Version NID
0.990-1.69 0x912B1C28
3.60 not present
int sceCompatRegWrite(SceUInt32 unk_bool, SceUInt32 offset, const void *pBuf, SceSize size);

sceCompatIdStorageLookup

Version NID
0.940-3.60 0x94AAA245
int sceCompatIdStorageLookup(SceUInt16 key, SceUInt32 offset, void *pBuf, SceSize size);

sceCompatCheckPocketStation

Version NID
0.990 not present
3.60 0x96FC2A87

sceCompatGetTitleList

Version NID
0.990 not present
3.60 0x99F13E04

sceCompatGetCurrentSecureTick

Version NID
0.990 not present
3.60 0xA073EBEE

sceCompatAllocCdramWithHole

Version NID
0.990 not present
3.60 0xA5039FFA

sceCompatGetPspSystemSoftwareVersion

Version NID
0.990-3.60 0xB113DCC0
int sceCompatGetPspSystemSoftwareVersion(void);

sceCompatFrameBufferInit

Version NID
0.990 not present
1.69-3.60 0xBC0E2B4C

sceCompatLCDCSync

Version NID
0.990 not present
1.03-3.60 0xBD177787
int sceCompatLCDCSync(void);

sceCompatWaitIntr

Version NID
0.990 not present
3.60 0xC1E14CF5

sceCompatGetRequest

Version NID
0.990 not present
1.69 0xCB9F607B

sceCompatDatRead

Version NID
0.990-3.60 0xCBE73EBE
// index must be 0
// offset + size must be lower or equal to 0x1038
int sceCompatDatRead(SceUInt32 index, SceUInt32 offset, void *pBuf, SceSize size);

sceCompatReturnValueEx

Version NID
0.990 not present
1.69-3.60 0xCC02A9FF

sceCompatGetStatus

Version NID
0.990 not present
1.69-3.60 0xD2E3370E

sceCompatInterrupt

Version NID
0.940-3.60 0xD6AA36DD

Use a custom SceCompatMailbox address.

int sceCompatInterrupt(void *pMailbox);

sceCompatSetRif

Version NID
0.990 not present
1.03-3.60 0xD8B69F23
// Example of entitlementId: AA0000-AAAA00000_00-0000000000000000
int sceCompatSetRif(const char *entitlementId);

sceCompatGetPrimaryHead

Version NID
0.990 not present
1.69 0xDC9EE33A

sceCompatSetSuspendSema

Version NID
0.990 not present
1.69-3.60 0xDD30239E

sceCompatInitEx

Version NID
0.990 not present
1.69-3.60 0xE97C1B5F

sceCompatUninit

Version NID
0.990-3.60 0xEF929397
int sceCompatUninit(void);

sceCompatStop

Version NID
0.990-3.60 0xFCE2422F
int sceCompatStop(void);

sceCompatInit

Version NID
0.940-0.990 0xB9DBD54A
3.60 not present

Loads Pcff and Pcbc.

sceCompatLCDCInit

Version NID
0.940-0.990 0x3021D626
int sceCompatLCDCInit(const SceDisplayFrameBuf *pFrameBuf);

sceCompatLCDCExec

Version NID
0.940-0.990 0x7E3E266D
int sceCompatLCDCExec(void);

sceCompatResume

Version NID
0.990 0xCA184D5B
3.60 not present
// step: must be either 1 (resume Pervasive, restore CPU speed) or 2 (init lcd dmac, write resume payload, reload act.dat)
int sceCompatResume(SceUInt32 step, int maybe_addr);

sceCompatSuspend

Version NID
0.990 0x9EFFE36E
3.60 not present
// step: must be either 1 (black screen) or 2 (suspend Pervasive, slow down CPU, wipe act.dat in memory)
int sceCompatSuspend(SceUInt32 step);

sceCompatWriteShared

Version NID
0.990 0xC37A463C
3.60 not present

Writes to SceCompatSharedSram.

int sceCompatWriteShared(SceUInt32 offset, const void *pBuf, SceSize size);

sceCompatWaitRequest

Version NID
0.990 0x434BDAB0
3.60 not present
int sceCompatWaitRequest(SceUInt32 req_id);

sceCompatReturnResult

Version NID
0.990 0x02F5CF19
3.60 not present
int sceCompatReturnResult(SceUInt32 req_id);

sceCompatReturnValue

Version NID
0.990 0x61DB492A
3.60 not present
int sceCompatReturnValue(SceUInt32 req_id, uint a2, uint a3);

sceCompatSetDisplayBuffer

Version NID
0.990 0xC820EC43
3.60 not present
int sceCompatSetDisplayBuffer(const SceDisplayFrameBuf *pFrameBuf);

sceCompatReadShared

Version NID
0.990 0xC983287E
3.60 not present
int sceCompatReadShared(SceUInt32 offset, void *pBuf, SceSize size);