Skip to content

Commit 2c2739d

Browse files
committed
initial
1 parent 7b17107 commit 2c2739d

File tree

13 files changed

+133
-16
lines changed

13 files changed

+133
-16
lines changed

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,22 +62,22 @@ development will be as convenient as a local installation. With the benefit that
6262
do not have to build ps4sdk yourself. However, the image is a bit large due to the clang tool-chain.
6363

6464
```bash
65-
# Make sure newest container is used
66-
docker pull ps4dev/ps4sdk
65+
# Make sure newest container is used (only do this as needed because you will pull a new one for every commit)
66+
docker pull ps4dev/elf-loader
6767
# Run docker for interactive development
6868
# It should not be used to store data (-rm will auto remove it after exit)
6969
# See volumes/-v on how to mount your code into the container
70-
docker run (-v ... ) -rm -i -t ps4dev/ps4sdk bash
70+
docker run (-v ... ) --rm -i -t ps4dev/ps4sdk bash
7171
```
7272

7373
From there, you can clone the elf-loader and examples into your volume, build and use them.
7474
A stand alone elf-loader container is also available (but currently a bit large):
7575

7676
```bash
77-
# Make sure newest container is used
77+
# Make sure newest container is used (only do this as needed)
7878
docker pull ps4dev/elf-loader
7979
# Run the elf loader (listens on port 5350)
80-
docker run -p 5350:5350 -rm ps4dev/elf-loader&
80+
docker run -p 5350:5350 --rm ps4dev/elf-loader&
8181
# Stop elf loader
8282
docker kill $(docker ps -q -f ancestor=ps4dev/elf-loader)
8383
```

core/libkernels.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,9 @@ sceKernelAddUserEvent \
267267
sceKernelAllocateDirectMemory \
268268
sceKernelCreateEqueue \
269269
sceKernelDeleteEqueue \
270+
sceKernelWaitEqueue \
270271
sceKernelDlsym \
272+
sceKernelGetDirectMemorySize \
271273
sceKernelGetCurrentCpu \
272274
sceKernelGetModuleInfo \
273275
sceKernelGetModuleList \

core/stub.mk

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ $(eval $(call generateModule, libSceNet, sceNetAccept sceNetBind sceNetConnect s
2121
$(eval $(call generateModule, libScePad, scePadClose scePadInit scePadOpen scePadRead scePadReadState))
2222
$(eval $(call generateModule, libSceSysmodule, sceSysmoduleIsLoaded sceSysmoduleLoadModule sceSysmoduleUnloadModule))
2323
$(eval $(call generateModule, libSceUsbd, sceUsbdBulkTransfer sceUsbdCheckConnected sceUsbdClearHalt sceUsbdClose sceUsbdControlTransfer sceUsbdExit sceUsbdFreeConfigDescriptor sceUsbdFreeDeviceList sceUsbdGetActiveConfigDescriptor sceUsbdGetConfigDescriptor sceUsbdGetConfigDescriptorByValue sceUsbdGetDeviceDescriptor sceUsbdGetDeviceList sceUsbdInit sceUsbdInterruptTransfer sceUsbdOpen sceUsbdOpenDeviceWithVidPid sceUsbdResetDevice sceUsbdSetInterfaceAltSetting))
24+
$(eval $(call generateModule, libSceUserService, sceUserServiceInitialize sceUserServiceTerminate sceUserServiceGetLoginUserIdList sceUserServiceGetEvent sceUserServiceGetInitialUser sceUserServiceGetUserName sceUserServiceGetUserColor))
25+
$(eval $(call generateModule, libSceVideoOut, sceVideoOutOpen sceVideoOutClose sceVideoOutRegisterBuffers sceVideoOutUnregisterBuffers sceVideoOutSubmitFlip sceVideoOutSetBufferAttribute sceVideoOutSetFlipRate sceVideoOutAddFlipEvent sceVideoOutGetFlipStatus))
26+
$(eval $(call generateModule, libSceGnmDriver, sceGnmFlushGarlic))
27+
$(eval $(call generateModule, libSceSystemService, sceSystemServiceHideSplashScreen))
28+
29+
2430

2531
# no need to touch, generates non-module libs
2632
$(eval $(call generateLibraryLarge, kern_function, libps4Kernel, none, $(kerns)))

include/sce/gnmdriver.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#pragma once
2+
#include <stdint.h>
3+
4+
5+
int sceGnmFlushGarlic();
6+

include/sce/kernel.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ int sceKernelCreateEqueue(SceKernelEqueue *eq, const char *name);
2828
int sceKernelDeleteEqueue(SceKernelEqueue eq);
2929
int sceKernelAddUserEvent(SceKernelEqueue eq, int id);
3030
int sceKernelAddReadEvent(SceKernelEqueue eq, int fd, size_t size, void *data);
31+
int sceKernelWaitEqueue(SceKernelEqueue eq, SceKernelEvent *ev, int num, int *out, SceKernelUseconds *timo);
32+
33+
size_t sceKernelGetDirectMemorySize();
3134

3235
/* more interresting wrappers */
3336
int sceKernelAllocateDirectMemory(off_t searchStart, off_t searchEnd, size_t length, size_t alignment, int type, off_t *physicalAddressDestination);

include/sce/pad.h

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,12 @@
11
#pragma once
22

33
#include <stdint.h>
4-
#include <inttypes.h>
4+
#include <sce/types/pad.h>
5+
#include <sce/types/userservice.h>
56

67
int scePadInit(void);
7-
int scePadOpen(int userID, int, int, void *);
8+
int scePadOpen(SceUserServiceUserId userId,int type,int index,uint8_t *param);
89
int scePadClose(int handle);
9-
int scePadRead(int handle, void *data, int count);
10-
int scePadReadState(int handle, void *data);
10+
int scePadRead(int handle, ScePadData *data, int count);
11+
int scePadReadState(int handle, ScePadData *data);
1112

12-
/* unreversed */
13-
int64_t scePadResetOrientation();
14-
int64_t scePadSetAngularVelocityDeadbandState();
15-
int64_t scePadSetLightBar();
16-
int64_t scePadSetMotionSensorState();
17-
int64_t scePadSetTiltCorrectionState();
18-
int64_t scePadSetVibration();

include/sce/systemservice.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#pragma once
2+
3+
#include <stdint.h>
4+
int sceSystemServiceHideSplashScreen();

include/sce/types/kernel.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
#include <stdint.h>
44
#include <sys/time.h>
5+
#include <sys/event.h>
56

67
#ifndef MAP_TYPE
78
#define MAP_TYPE 0x0f
89
#endif
910

11+
12+
1013
typedef struct SceKernelModuleSegmentInfo
1114
{
1215
void *address;
@@ -34,3 +37,4 @@ typedef void *ScePthreadMutexattr;
3437
typedef uint32_t SceKernelModule;
3538

3639
typedef uint64_t SceKernelEqueue;
40+
typedef struct kevent SceKernelEvent;

include/sce/types/pad.h

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#pragma once
2+
3+
#include <stdint.h>
4+
5+
typedef struct vec_float3
6+
{
7+
float x;
8+
float y;
9+
float z;
10+
}vec_float3;
11+
12+
typedef struct vec_float4
13+
{
14+
float x;
15+
float y;
16+
float z;
17+
float w;
18+
}vec_float4;
19+
20+
typedef struct ScePadData {
21+
unsigned int buttons;
22+
uint8_t lx;
23+
uint8_t ly;
24+
uint8_t rx;
25+
uint8_t ry;
26+
uint8_t l2;
27+
uint8_t r2;
28+
uint16_t padding;
29+
vec_float4 quat;
30+
vec_float3 vel;
31+
vec_float3 acell;
32+
uint8_t touch[24];
33+
uint8_t connected;
34+
uint64_t timestamp;
35+
uint8_t ext[16];
36+
uint8_t count;
37+
uint8_t unknown[15];
38+
}ScePadData;
39+
40+

include/sce/types/userservice.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#pragma once
2+
3+
#include <stdint.h>
4+
5+
6+
typedef int SceUserServiceUserId;

0 commit comments

Comments
 (0)