1 #include "scePspNpDrm_user.h"
2
3 #include "Core/HLE/HLE.h"
4 #include "Core/HLE/FunctionWrappers.h"
5 #include "Core/HLE/sceIo.h"
6
sceNpDrmSetLicenseeKey(u32 npDrmKeyAddr)7 static int sceNpDrmSetLicenseeKey(u32 npDrmKeyAddr)
8 {
9 INFO_LOG(HLE, "call sceNpDrmSetLicenseeKey(%08x)", npDrmKeyAddr);
10 return 0;
11 }
12
sceNpDrmClearLicenseeKey()13 static int sceNpDrmClearLicenseeKey()
14 {
15 INFO_LOG(HLE, "call sceNpDrmClearLicenseeKey()");
16 return 0;
17 }
18
sceNpDrmRenameCheck(const char * filename)19 static int sceNpDrmRenameCheck(const char *filename)
20 {
21 INFO_LOG(HLE, "call sceNpDrmRenameCheck(%s)", filename);
22 return 0;
23 }
24
sceNpDrmEdataSetupKey(u32 edataFd)25 static int sceNpDrmEdataSetupKey(u32 edataFd)
26 {
27 INFO_LOG(HLE, "call sceNpDrmEdataSetupKey %x", edataFd);
28 /* set PGD offset */
29 sceIoIoctl(edataFd, 0x04100002, 0x90, 0, 0, 0);
30 /* call PGD open */
31 return sceIoIoctl(edataFd, 0x04100001, 0, 0, 0, 0);
32 }
33
sceNpDrmEdataGetDataSize(u32 edataFd)34 static int sceNpDrmEdataGetDataSize(u32 edataFd)
35 {
36 INFO_LOG(HLE, "call sceNpDrmEdataGetDataSize %x", edataFd);
37 return sceIoIoctl(edataFd, 0x04100010, 0, 0, 0, 0);
38 }
39
sceNpDrmOpen()40 static int sceNpDrmOpen()
41 {
42 ERROR_LOG(HLE, "UNIMPL sceNpDrmOpen");
43 return 0;
44 }
45
46 const HLEFunction sceNpDrm[] =
47 {
48 {0XA1336091, &WrapI_U<sceNpDrmSetLicenseeKey>, "sceNpDrmSetLicenseeKey", 'i', "x"},
49 {0X9B745542, &WrapI_V<sceNpDrmClearLicenseeKey>, "sceNpDrmClearLicenseeKey", 'i', "" },
50 {0X275987D1, &WrapI_C<sceNpDrmRenameCheck>, "sceNpDrmRenameCheck", 'i', "s"},
51 {0X08D98894, &WrapI_U<sceNpDrmEdataSetupKey>, "sceNpDrmEdataSetupKey", 'i', "x"},
52 {0X219EF5CC, &WrapI_U<sceNpDrmEdataGetDataSize>, "sceNpDrmEdataGetDataSize", 'i', "x"},
53 {0X2BAA4294, &WrapI_V<sceNpDrmOpen>, "sceNpDrmOpen", 'i', "" },
54 };
55
Register_sceNpDrm()56 void Register_sceNpDrm()
57 {
58 RegisterModule("sceNpDrm", ARRAY_SIZE(sceNpDrm), sceNpDrm);
59 RegisterModule("scePspNpDrm_user", ARRAY_SIZE(sceNpDrm), sceNpDrm);
60 }
61
62