inital commit
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
#ifndef COMMON_H
|
||||
#define COMMON_H
|
||||
|
||||
#include "include_asm.h"
|
||||
|
||||
typedef char s8;
|
||||
typedef short s16;
|
||||
typedef int s32;
|
||||
typedef long s64;
|
||||
|
||||
typedef volatile s8 vs8;
|
||||
typedef volatile s16 vs16;
|
||||
typedef volatile s32 vs32;
|
||||
typedef volatile s64 vs64;
|
||||
|
||||
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned short u16;
|
||||
typedef unsigned int u32;
|
||||
typedef unsigned long u64;
|
||||
|
||||
typedef volatile u8 vu8;
|
||||
typedef volatile u16 vu16;
|
||||
typedef volatile u32 vu32;
|
||||
typedef volatile u64 vu64;
|
||||
|
||||
typedef union {
|
||||
vs8 s8;
|
||||
vs16 s16;
|
||||
vs32 s32;
|
||||
vs64 s64;
|
||||
vu8 u8;
|
||||
vu16 u16;
|
||||
vu32 u32;
|
||||
vu64 u64;
|
||||
} _VX;
|
||||
|
||||
typedef float f32;
|
||||
|
||||
#define UNK_TYPE s32
|
||||
#define UNK_PTR void*
|
||||
#define UNK_RET void
|
||||
#define UNK_FUN_ARG void(*)(void)
|
||||
#define UNK_FUN_PTR(name) void(*name)(void)
|
||||
#define UNK_ARGS
|
||||
|
||||
#define NULL 0
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#define b32 s32 // 32-bit boolean (TRUE/FALSE)
|
||||
|
||||
#define ARRAY_COUNT(arr) (s32)(sizeof(arr) / sizeof(arr[0]))
|
||||
#define ARRAY_COUNTU(arr) (u32)(sizeof(arr) / sizeof(arr[0]))
|
||||
|
||||
// #define PI 3.1415928f
|
||||
|
||||
f32 cosf(f32);
|
||||
f32 atan2f(f32, f32);
|
||||
|
||||
#define BSS __attribute__ ((section (".bss")))
|
||||
|
||||
#endif /* COMMON_H */
|
||||
@@ -0,0 +1,60 @@
|
||||
#ifndef EE_EEKERNEL_H
|
||||
#define EE_EEKERNEL_H
|
||||
|
||||
#define WRITEBACK_DCACHE 0
|
||||
#define INVALIDATE_DCACHE 1
|
||||
#define INVALIDATE_ICACHE 2
|
||||
#define INVALIDATE_CACHE 3
|
||||
|
||||
#define DMAC_VIF0 0
|
||||
#define DMAC_VIF1 1
|
||||
#define DMAC_GIF 2
|
||||
#define DMAC_FROM_IPU 3
|
||||
#define DMAC_TO_IPU 4
|
||||
#define DMAC_FROM_SPR 8
|
||||
#define DMAC_TO_SPR 9
|
||||
|
||||
typedef struct {
|
||||
int status;
|
||||
void *entry;
|
||||
void *stack;
|
||||
int stackSize;
|
||||
void *gpReg;
|
||||
int initPriority;
|
||||
int currentPriority;
|
||||
u_int attr;
|
||||
u_int option;
|
||||
int waitType;
|
||||
int waitId;
|
||||
int wakeupCount;
|
||||
} ThreadParam;
|
||||
|
||||
typedef struct {
|
||||
int currentCount;
|
||||
int maxCount;
|
||||
int initCount;
|
||||
int numWaitThreads;
|
||||
u_int attr;
|
||||
u_int option;
|
||||
} SemaParam;
|
||||
|
||||
extern void *_gp;
|
||||
|
||||
#define ExitHandler() \
|
||||
asm volatile("\n\
|
||||
sync.l \n\
|
||||
ei \n\
|
||||
");
|
||||
|
||||
int CreateThread(ThreadParam *);
|
||||
int StartThread(int, void *arg);
|
||||
int GetThreadId(void);
|
||||
int ChangeThreadPriority(int, int);
|
||||
int RotateThreadReadyQueue(int);
|
||||
|
||||
int CreateSema(SemaParam *param);
|
||||
int SignalSema(int);
|
||||
int WaitSema(int);
|
||||
int DeleteSema(int);
|
||||
|
||||
#endif // EE_EEKERNEL_H
|
||||
@@ -0,0 +1,90 @@
|
||||
#ifndef EE_EEREGS_H
|
||||
#define EE_EEREGS_H
|
||||
|
||||
#define D_CTRL_RELE_M (0x01<<1)
|
||||
|
||||
#define REG_DMAC_CTRL (volatile u_int *)0x1000e000
|
||||
#define REG_DMAC_STAT (volatile u_int *)0x1000e010
|
||||
|
||||
#define VU0_MICRO_ADDR ((u_int)(0x11000000))
|
||||
#define VU0_MEM_ADDR ((u_int)(0x11004000))
|
||||
#define VU1_MICRO_ADDR ((u_int)(0x11008000))
|
||||
#define VU1_MEM_ADDR ((u_int)(0x1100c000))
|
||||
|
||||
#define IPU_CMD ((volatile u_int *)(0x10002000))
|
||||
#define IPU_CTRL ((volatile u_int *)(0x10002010))
|
||||
#define IPU_BP ((volatile u_int *)(0x10002020))
|
||||
|
||||
#define DGET_IPU_CTRL() (*IPU_CTRL)
|
||||
#define DPUT_IPU_CMD(x) (*IPU_CMD = (x))
|
||||
|
||||
#define DGET_IPU_CTRL() (*IPU_CTRL)
|
||||
#define DGET_IPU_BP() (*IPU_BP)
|
||||
|
||||
#define D_ENABLER ((volatile u_int *)(0x1000f520))
|
||||
#define D_ENABLEW ((volatile u_int *)(0x1000f590))
|
||||
#define D3_CHCR ((volatile u_int *)(0x1000b000))
|
||||
#define D4_CHCR ((volatile u_int *)(0x1000b400))
|
||||
|
||||
#define D3_CHCR ((volatile u_int *)(0x1000b000))
|
||||
#define D3_MADR ((volatile u_int *)(0x1000b010))
|
||||
#define D3_QWC ((volatile u_int *)(0x1000b020))
|
||||
|
||||
#define D4_CHCR ((volatile u_int *)(0x1000b400))
|
||||
#define D4_MADR ((volatile u_int *)(0x1000b410))
|
||||
#define D4_QWC ((volatile u_int *)(0x1000b420))
|
||||
#define D4_TADR ((volatile u_int *)(0x1000b430))
|
||||
|
||||
|
||||
#define GS_CSR ((volatile u_long *)(0x12001000))
|
||||
|
||||
typedef struct {
|
||||
unsigned EN1:1;
|
||||
unsigned EN2:1;
|
||||
unsigned CRTMD:3;
|
||||
unsigned MMOD:1;
|
||||
unsigned AMOD:1;
|
||||
unsigned SLBG:1;
|
||||
unsigned ALP:8;
|
||||
unsigned p0:16;
|
||||
unsigned int p1;
|
||||
} tGS_PMODE;
|
||||
|
||||
typedef struct {
|
||||
unsigned INT:1;
|
||||
unsigned FFMD:1;
|
||||
unsigned DPMS:2;
|
||||
unsigned p0:28;
|
||||
unsigned int p1;
|
||||
} tGS_SMODE2;
|
||||
|
||||
typedef struct {
|
||||
unsigned FBP:9;
|
||||
unsigned FBW:6;
|
||||
unsigned PSM:5;
|
||||
unsigned p0:12;
|
||||
unsigned DBX:11;
|
||||
unsigned DBY:11;
|
||||
unsigned p1:10;
|
||||
} tGS_DISPFB2;
|
||||
|
||||
typedef struct {
|
||||
unsigned DX:12;
|
||||
unsigned DY:11;
|
||||
unsigned MAGH:4;
|
||||
unsigned MAGV:2;
|
||||
unsigned p0:3;
|
||||
unsigned DW:12;
|
||||
unsigned DH:11;
|
||||
unsigned p1:9;
|
||||
} tGS_DISPLAY2;
|
||||
|
||||
typedef struct {
|
||||
unsigned R:8;
|
||||
unsigned G:8;
|
||||
unsigned B:8;
|
||||
unsigned p0:8;
|
||||
unsigned int p1;
|
||||
} tGS_BGCOLOR;
|
||||
|
||||
#endif // EE_EEREGS_H
|
||||
@@ -0,0 +1,445 @@
|
||||
#ifndef EE_EESTRUCT_H
|
||||
#define EE_EESTRUCT_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
#define SCR_WIDTH 640
|
||||
#define SCR_HEIGHT 224
|
||||
|
||||
#define DISP_WIDTH 640
|
||||
#define DISP_HEIGHT 448
|
||||
|
||||
#define GS_X_COORD(x) ((2048 - (SCR_WIDTH / 2) + x) * 16)
|
||||
#define GS_Y_COORD(y) ((2048 - (SCR_HEIGHT / 2) + y) * 16)
|
||||
|
||||
#define DMArefe (0<<28)
|
||||
#define DMAcnt (1<<28)
|
||||
#define DMAnext (2<<28)
|
||||
#define DMAref (3<<28)
|
||||
#define DMArefs (4<<28)
|
||||
#define DMAcall (5<<28)
|
||||
#define DMAret (6<<28)
|
||||
#define DMAend (7<<28)
|
||||
|
||||
#define SCE_GS_FALSE (0)
|
||||
#define SCE_GS_TRUE (1)
|
||||
|
||||
#define SCE_GS_REPEAT (0)
|
||||
#define SCE_GS_CLAMP (1)
|
||||
#define SCE_GS_REGION_CLAMP (2)
|
||||
#define SCE_GS_REGION_REPEAT (3)
|
||||
|
||||
#define SCE_GS_ZNOUSE (0)
|
||||
#define SCE_GS_ZALWAYS (1)
|
||||
#define SCE_GS_ZGEQUAL (2)
|
||||
#define SCE_GS_ZGREATER (3)
|
||||
|
||||
#define SCE_GS_PSMCT32 (0)
|
||||
#define SCE_GS_PSMCT24 (1)
|
||||
#define SCE_GS_PSMCT16 (2)
|
||||
#define SCE_GS_PSMCT16S (10)
|
||||
#define SCE_GS_PSMT8 (19)
|
||||
#define SCE_GS_PSMT4 (20)
|
||||
#define SCE_GS_PSMT8H (27)
|
||||
#define SCE_GS_PSMT4HL (36)
|
||||
#define SCE_GS_PSMT4HH (44)
|
||||
#define SCE_GS_PSMZ32 (48)
|
||||
#define SCE_GS_PSMZ24 (49)
|
||||
#define SCE_GS_PSMZ16 (50)
|
||||
#define SCE_GS_PSMZ16S (58)
|
||||
|
||||
#define SCE_GS_ALPHA_NEVER (0)
|
||||
#define SCE_GS_ALPHA_ALWAYS (1)
|
||||
#define SCE_GS_ALPHA_LESS (2)
|
||||
#define SCE_GS_ALPHA_LEQUAL (3)
|
||||
#define SCE_GS_ALPHA_EQUAL (4)
|
||||
#define SCE_GS_ALPHA_GEQUAL (5)
|
||||
#define SCE_GS_ALPHA_GREATER (6)
|
||||
#define SCE_GS_ALPHA_NOTEQUAL (7)
|
||||
|
||||
#define SCE_GS_AFAIL_KEEP (0)
|
||||
#define SCE_GS_AFAIL_FB_ONLY (1)
|
||||
#define SCE_GS_AFAIL_ZB_ONLY (2)
|
||||
#define SCE_GS_AFAIL_RGB_ONLY (3)
|
||||
|
||||
#define SCE_GS_DEPTH_NEVER (0)
|
||||
#define SCE_GS_DEPTH_ALWAYS (1)
|
||||
#define SCE_GS_DEPTH_GEQUAL (2)
|
||||
#define SCE_GS_DEPTH_GREATER (3)
|
||||
|
||||
#define SCE_GS_ALPHA_CS (0)
|
||||
#define SCE_GS_ALPHA_CD (1)
|
||||
#define SCE_GS_ALPHA_ZERO (2)
|
||||
|
||||
#define SCE_GS_ALPHA_AS (0)
|
||||
#define SCE_GS_ALPHA_AD (1)
|
||||
#define SCE_GS_ALPHA_FIX (2)
|
||||
|
||||
#define SCE_GIF_PACKED (0)
|
||||
#define SCE_GIF_REGLIST (1)
|
||||
#define SCE_GIF_IMAGE (2)
|
||||
#define SCE_GIF_PACKED_AD (14)
|
||||
|
||||
#define SCE_GS_NOCLEAR (0)
|
||||
#define SCE_GS_CLEAR (1)
|
||||
|
||||
#define SCE_GS_MODULATE (0)
|
||||
#define SCE_GS_DECAL (1)
|
||||
#define SCE_GS_HILIGHT (2)
|
||||
#define SCE_GS_GHLIGHT2 (3)
|
||||
|
||||
#define SCE_GS_NEAREST (0)
|
||||
#define SCE_GS_LINEAR (1)
|
||||
#define SCE_GS_NEAREST_MIPMAP_NEAREST (2)
|
||||
#define SCE_GS_NEAREST_MIPMAP_LINEAR (3)
|
||||
#define SCE_GS_LINEAR_MIPMAP_NEAREST (4)
|
||||
#define SCE_GS_LINEAR_MIPMAP_LINEAR (5)
|
||||
|
||||
#define SCE_GS_PRIM_POINT (0)
|
||||
#define SCE_GS_PRIM_LINE (1)
|
||||
#define SCE_GS_PRIM_LINESTRIP (2)
|
||||
#define SCE_GS_PRIM_TRI (3)
|
||||
#define SCE_GS_PRIM_TRISTRIP (4)
|
||||
#define SCE_GS_PRIM_TRIFAN (5)
|
||||
#define SCE_GS_PRIM_SPRITE (6)
|
||||
|
||||
#define SCE_GS_PRIM 0x00
|
||||
#define SCE_GS_RGBAQ 0x01
|
||||
#define SCE_GS_ST 0x02
|
||||
#define SCE_GS_UV 0x03
|
||||
#define SCE_GS_XYZF2 0x04
|
||||
#define SCE_GS_XYZ2 0x05
|
||||
#define SCE_GS_FOG 0x0a
|
||||
#define SCE_GS_XYZF3 0x0c
|
||||
#define SCE_GS_XYZ3 0x0d
|
||||
#define SCE_GS_XYOFFSET_1 0x18
|
||||
#define SCE_GS_XYOFFSET_2 0x19
|
||||
#define SCE_GS_PRMODECONT 0x1a
|
||||
|
||||
#define SCE_GS_PRMODE 0x1b
|
||||
#define SCE_GS_TEX0_1 0x06
|
||||
#define SCE_GS_TEX0_2 0x07
|
||||
#define SCE_GS_TEX1_1 0x14
|
||||
#define SCE_GS_TEX1_2 0x15
|
||||
#define SCE_GS_TEX2_1 0x16
|
||||
#define SCE_GS_TEX2_2 0x17
|
||||
#define SCE_GS_TEXCLUT 0x1c
|
||||
#define SCE_GS_SCANMSK 0x22
|
||||
#define SCE_GS_MIPTBP1_1 0x34
|
||||
#define SCE_GS_MIPTBP1_2 0x35
|
||||
#define SCE_GS_MIPTBP2_1 0x36
|
||||
#define SCE_GS_MIPTBP2_2 0x37
|
||||
#define SCE_GS_CLAMP_1 0x08
|
||||
#define SCE_GS_CLAMP_2 0x09
|
||||
#define SCE_GS_TEXA 0x3b
|
||||
#define SCE_GS_FOGCOL 0x3d
|
||||
#define SCE_GS_TEXFLUSH 0x3f
|
||||
|
||||
#define SCE_GS_SCISSOR_1 0x40
|
||||
#define SCE_GS_SCISSOR_2 0x41
|
||||
#define SCE_GS_ALPHA_1 0x42
|
||||
#define SCE_GS_ALPHA_2 0x43
|
||||
#define SCE_GS_DIMX 0x44
|
||||
#define SCE_GS_DTHE 0x45
|
||||
#define SCE_GS_COLCLAMP 0x46
|
||||
#define SCE_GS_TEST_1 0x47
|
||||
#define SCE_GS_TEST_2 0x48
|
||||
#define SCE_GS_PABE 0x49
|
||||
#define SCE_GS_FBA_1 0x4a
|
||||
#define SCE_GS_FBA_2 0x4b
|
||||
|
||||
#define SCE_GS_FRAME_1 0x4c
|
||||
#define SCE_GS_FRAME_2 0x4d
|
||||
#define SCE_GS_ZBUF_1 0x4e
|
||||
#define SCE_GS_ZBUF_2 0x4f
|
||||
|
||||
#define SCE_GS_BITBLTBUF 0x50
|
||||
#define SCE_GS_TRXPOS 0x51
|
||||
#define SCE_GS_TRXREG 0x52
|
||||
#define SCE_GS_TRXDIR 0x53
|
||||
#define SCE_GS_HWREG 0x54
|
||||
|
||||
#define SCE_GS_SIGNAL 0x60
|
||||
#define SCE_GS_FINISH 0x61
|
||||
#define SCE_GS_LABEL 0x62
|
||||
#define SCE_GS_NOP 0x7f
|
||||
|
||||
#define SCE_GS_SET_TEX0_1 SCE_GS_SET_TEX0
|
||||
#define SCE_GS_SET_TEX0_2 SCE_GS_SET_TEX0
|
||||
#define SCE_GS_SET_TEX0(tbp, tbw, psm, tw, th, tcc, tfx, cbp, cpsm, csm, csa, cld) \
|
||||
((u_long)(tbp) | ((u_long)(tbw) << 14) | \
|
||||
((u_long)(psm) << 20) | ((u_long)(tw) << 26) | \
|
||||
((u_long)(th) << 30) | ((u_long)(tcc) << 34) | \
|
||||
((u_long)(tfx) << 35) | ((u_long)(cbp) << 37) | \
|
||||
((u_long)(cpsm) << 51) | ((u_long)(csm) << 55) | \
|
||||
((u_long)(csa) << 56) | ((u_long)(cld) << 61))
|
||||
|
||||
#define SCE_GIF_SET_TAG(nloop, eop, pre, prim, flg, nreg) \
|
||||
((u_long)(nloop) | ((u_long)(eop)<<15) | ((u_long)(pre) << 46) | \
|
||||
((u_long)(prim)<<47) | ((u_long)(flg)<<58) | ((u_long)(nreg)<<60))
|
||||
|
||||
#define SCE_GIF_CLEAR_TAG(tp) \
|
||||
(*(u_long128 *)(tp) = (u_long128)0)
|
||||
|
||||
#define SCE_GS_SET_ALPHA_1 SCE_GS_SET_ALPHA
|
||||
#define SCE_GS_SET_ALPHA_2 SCE_GS_SET_ALPHA
|
||||
#define SCE_GS_SET_ALPHA(a, b, c, d, fix) \
|
||||
((u_long)(a) | ((u_long)(b) << 2) | ((u_long)(c) << 4) | \
|
||||
((u_long)(d) << 6) | ((u_long)(fix) << 32))
|
||||
|
||||
#define SCE_GS_SET_TEST_1 SCE_GS_SET_TEST
|
||||
#define SCE_GS_SET_TEST_2 SCE_GS_SET_TEST
|
||||
#define SCE_GS_SET_TEST(ate, atst, aref, afail, date, datm, zte, ztst) \
|
||||
((u_long)(ate) | ((u_long)(atst) << 1) | \
|
||||
((u_long)(aref) << 4) | ((u_long)(afail) << 12) | \
|
||||
((u_long)(date) << 14) | ((u_long)(datm) << 15) | \
|
||||
((u_long)(zte) << 16) | ((u_long)(ztst) << 17))
|
||||
|
||||
#define SCE_GS_SET_ZBUF_1 SCE_GS_SET_ZBUF
|
||||
#define SCE_GS_SET_ZBUF_2 SCE_GS_SET_ZBUF
|
||||
#define SCE_GS_SET_ZBUF(zbp, psm, zmsk) \
|
||||
((u_long)(zbp) | ((u_long)(psm) << 24) | \
|
||||
((u_long)(zmsk) << 32))
|
||||
|
||||
#define SCE_VIF1_SET_FLUSH(irq) \
|
||||
(((u_int)0x11 << 24) | ((u_int)(irq) << 31))
|
||||
|
||||
#define SCE_VIF1_SET_DIRECT(count, irq) \
|
||||
((u_int)(count) | ((u_int)(0x50) << 24) | ((u_int)(irq) << 31))
|
||||
|
||||
#define SCE_GS_SET_BITBLTBUF(sbp, sbw, spsm, dbp, dbw, dpsm) \
|
||||
((u_long)(sbp) | ((u_long)(sbw) << 16) | \
|
||||
((u_long)(spsm) << 24) | ((u_long)(dbp) << 32) | \
|
||||
((u_long)(dbw) << 48) | ((u_long)(dpsm) << 56))
|
||||
|
||||
#define SCE_GS_SET_TRXDIR(xdr) ((u_long)(xdr))
|
||||
|
||||
#define SCE_GS_SET_TRXPOS(ssax, ssay, dsax, dsay, dir) \
|
||||
((u_long)(ssax) | ((u_long)(ssay) << 16) | \
|
||||
((u_long)(dsax) << 32) | ((u_long)(dsay) << 48) | \
|
||||
((u_long)(dir) << 59))
|
||||
|
||||
#define SCE_GS_SET_TRXREG(rrw, rrh) \
|
||||
((u_long)(rrw) | ((u_long)(rrh) << 32))
|
||||
|
||||
#define SCE_GS_SET_UV(u, v) ((u_long)(u) | ((u_long)(v) << 16))
|
||||
|
||||
#define SCE_GS_SET_XYZF3 SCE_GS_SET_XYZF
|
||||
#define SCE_GS_SET_XYZF2 SCE_GS_SET_XYZF
|
||||
#define SCE_GS_SET_XYZF(x, y, z, f) \
|
||||
((u_long)(x) | ((u_long)(y) << 16) | ((u_long)(z) << 32) | \
|
||||
((u_long)(f) << 56))
|
||||
|
||||
#define SCE_GS_SET_FRAME_1 SCE_GS_SET_FRAME
|
||||
#define SCE_GS_SET_FRAME_2 SCE_GS_SET_FRAME
|
||||
#define SCE_GS_SET_FRAME(fbp, fbw, psm, fbmask) \
|
||||
((u_long)(fbp) | ((u_long)(fbw) << 16) | \
|
||||
((u_long)(psm) << 24) | ((u_long)(fbmask) << 32))
|
||||
|
||||
#define SCE_GS_SET_TEX1_1 SCE_GS_SET_TEX1
|
||||
#define SCE_GS_SET_TEX1_2 SCE_GS_SET_TEX1
|
||||
#define SCE_GS_SET_TEX1(lcm, mxl, mmag, mmin, mtba, l, k) \
|
||||
((u_long)(lcm) | ((u_long)(mxl) << 2) | \
|
||||
((u_long)(mmag) << 5) | ((u_long)(mmin) << 6) | \
|
||||
((u_long)(mtba) << 9) | ((u_long)(l) << 19) | \
|
||||
((u_long)(k) << 32))
|
||||
|
||||
#define SCE_GS_SET_TEX0_1 SCE_GS_SET_TEX0
|
||||
#define SCE_GS_SET_TEX0_2 SCE_GS_SET_TEX0
|
||||
#define SCE_GS_SET_TEX0(tbp, tbw, psm, tw, th, tcc, tfx, cbp, cpsm, csm, csa, cld) \
|
||||
((u_long)(tbp) | ((u_long)(tbw) << 14) | \
|
||||
((u_long)(psm) << 20) | ((u_long)(tw) << 26) | \
|
||||
((u_long)(th) << 30) | ((u_long)(tcc) << 34) | \
|
||||
((u_long)(tfx) << 35) | ((u_long)(cbp) << 37) | \
|
||||
((u_long)(cpsm) << 51) | ((u_long)(csm) << 55) | \
|
||||
((u_long)(csa) << 56) | ((u_long)(cld) << 61))
|
||||
|
||||
#define SCE_GS_SET_XYOFFSET_1 SCE_GS_SET_XYOFFSET
|
||||
#define SCE_GS_SET_XYOFFSET_2 SCE_GS_SET_XYOFFSET
|
||||
#define SCE_GS_SET_XYOFFSET(ofx, ofy) \
|
||||
((u_long)(ofx) | ((u_long)(ofy) << 32))
|
||||
|
||||
#define SCE_GS_SET_CLAMP_1 SCE_GS_SET_CLAMP
|
||||
#define SCE_GS_SET_CLAMP_2 SCE_GS_SET_CLAMP
|
||||
#define SCE_GS_SET_CLAMP(wms, wmt, minu, maxu, minv, maxv) \
|
||||
((u_long)(wms) | ((u_long)(wmt) << 2) | \
|
||||
((u_long)(minu) << 4) | ((u_long)(maxu) << 14) | \
|
||||
((u_long)(minv) << 24) | ((u_long)(maxv) << 34))
|
||||
|
||||
#define SCE_GS_SET_SCISSOR_1 SCE_GS_SET_SCISSOR
|
||||
#define SCE_GS_SET_SCISSOR_2 SCE_GS_SET_SCISSOR
|
||||
#define SCE_GS_SET_SCISSOR(scax0, scax1, scay0, scay1) \
|
||||
((u_long)(scax0) | ((u_long)(scax1) << 16) | \
|
||||
((u_long)(scay0) << 32) | ((u_long)(scay1) << 48))
|
||||
|
||||
#define SCE_GS_SET_RGBAQ(r, g, b, a, q) \
|
||||
((u_long)(r) | ((u_long)(g) << 8) | ((u_long)(b) << 16) | \
|
||||
((u_long)(a) << 24) | ((u_long)(q) << 32))
|
||||
|
||||
#define SCE_GS_SET_PRIM(prim, iip, tme, fge, abe, aa1, fst, ctxt, fix) \
|
||||
((u_long)(prim) | ((u_long)(iip) << 3) | ((u_long)(tme) << 4) | \
|
||||
((u_long)(fge) << 5) | ((u_long)(abe) << 6) | ((u_long)(aa1) << 7) | \
|
||||
((u_long)(fst) << 8) | ((u_long)(ctxt) << 9) | ((u_long)(fix) << 10))
|
||||
|
||||
#define SCE_GS_SET_DTHE(dthe) ((u_long)(dthe))
|
||||
|
||||
#define SCE_GS_SET_TEXA(ta0, aem, ta1) \
|
||||
((u_long)(ta0) | ((u_long)(aem) << 15) | ((u_long)(ta1) << 32))
|
||||
|
||||
#define SCE_GS_SET_TEXCLUT(cbw, cou, cov) \
|
||||
((u_long)(cbw) | ((u_long)(cou) << 6) | ((u_long)(cov) << 12))
|
||||
|
||||
#define SCE_GS_SET_FOG(f) ((u_long)(f) << 56)
|
||||
|
||||
#define SCE_GS_SET_FOGCOL(fcr, fcg, fcb) \
|
||||
((u_long)(fcr) | ((u_long)(fcg) << 8) | ((u_long)(fcb) << 16))
|
||||
|
||||
#define V4_32 0x6c
|
||||
|
||||
#define SCE_VIF1_SET_STCYCL(wl, cl, irq) \
|
||||
((u_int)(cl) | ((u_int)(wl) << 8) | \
|
||||
((u_int)0x01 << 24) | ((u_int)(irq) << 31))
|
||||
|
||||
#define SCE_VIF1_SET_NOP(irq) ((u_int)(irq) << 31)
|
||||
|
||||
#define SCE_VIF1_SET_UNPACK(vuaddr, num, cmd, irq) \
|
||||
((u_int)(vuaddr) | ((u_int)(num) << 16) | \
|
||||
((u_int)(0x60 | (cmd)) << 24) | ((u_int)(irq) << 31))
|
||||
|
||||
#define SCE_GS_SET_XYZ3 SCE_GS_SET_XYZ
|
||||
#define SCE_GS_SET_XYZ2 SCE_GS_SET_XYZ
|
||||
#define SCE_GS_SET_XYZ(x, y, z) \
|
||||
((u_long)(x) | ((u_long)(y) << 16) | ((u_long)(z) << 32))
|
||||
|
||||
typedef struct {
|
||||
unsigned long CLAMP:1;
|
||||
unsigned long pad01:63;
|
||||
} sceGsColclamp;
|
||||
|
||||
typedef struct {
|
||||
unsigned long DTHE:1;
|
||||
unsigned long pad01:63;
|
||||
} sceGsDthe;
|
||||
|
||||
typedef struct {
|
||||
unsigned long FBP:9;
|
||||
unsigned long pad09:7;
|
||||
unsigned long FBW:6;
|
||||
unsigned long pad22:2;
|
||||
unsigned long PSM:6;
|
||||
unsigned long pad30:2;
|
||||
unsigned long FBMSK:32;
|
||||
} sceGsFrame;
|
||||
|
||||
typedef struct {
|
||||
unsigned long AC:1;
|
||||
unsigned long pad01:63;
|
||||
} sceGsPrmodecont;
|
||||
|
||||
typedef struct {
|
||||
unsigned long SCAX0:11;
|
||||
unsigned long pad11:5;
|
||||
unsigned long SCAX1:11;
|
||||
unsigned long pad27:5;
|
||||
unsigned long SCAY0:11;
|
||||
unsigned long pad43:5;
|
||||
unsigned long SCAY1:11;
|
||||
unsigned long pad59:5;
|
||||
} sceGsScissor;
|
||||
|
||||
typedef struct {
|
||||
unsigned long ATE:1;
|
||||
unsigned long ATST:3;
|
||||
unsigned long AREF:8;
|
||||
unsigned long AFAIL:2;
|
||||
unsigned long DATE:1;
|
||||
unsigned long DATM:1;
|
||||
unsigned long ZTE:1;
|
||||
unsigned long ZTST:2;
|
||||
unsigned long pad19:45;
|
||||
} sceGsTest;
|
||||
|
||||
typedef struct {
|
||||
unsigned long OFX:16;
|
||||
unsigned long pad16:16;
|
||||
unsigned long OFY:16;
|
||||
unsigned long pad48:16;
|
||||
} sceGsXyoffset;
|
||||
|
||||
typedef struct {
|
||||
unsigned long ZBP:9;
|
||||
unsigned long pad09:15;
|
||||
unsigned long PSM:4;
|
||||
unsigned long pad28:4;
|
||||
unsigned long ZMSK:1;
|
||||
unsigned long pad33:31;
|
||||
} sceGsZbuf;
|
||||
|
||||
typedef struct {
|
||||
unsigned long PRIM:3;
|
||||
unsigned long IIP:1;
|
||||
unsigned long TME:1;
|
||||
unsigned long FGE:1;
|
||||
unsigned long ABE:1;
|
||||
unsigned long AA1:1;
|
||||
unsigned long FST:1;
|
||||
unsigned long CTXT:1;
|
||||
unsigned long FIX:1;
|
||||
unsigned long pad11:53;
|
||||
} sceGsPrim;
|
||||
|
||||
typedef struct {
|
||||
u_int R:8;
|
||||
u_int G:8;
|
||||
u_int B:8;
|
||||
u_int A:8;
|
||||
float Q;
|
||||
} sceGsRgbaq;
|
||||
|
||||
typedef struct {
|
||||
unsigned long X:16;
|
||||
unsigned long Y:16;
|
||||
unsigned long Z:32;
|
||||
} sceGsXyz;
|
||||
|
||||
typedef struct {
|
||||
long unsigned int TBP0 : 14;
|
||||
long unsigned int TBW : 6;
|
||||
long unsigned int PSM : 6;
|
||||
long unsigned int TW : 4;
|
||||
long unsigned int TH : 4;
|
||||
long unsigned int TCC : 1;
|
||||
long unsigned int TFX : 2;
|
||||
long unsigned int CBP : 14;
|
||||
long unsigned int CPSM : 4;
|
||||
long unsigned int CSM : 1;
|
||||
long unsigned int CSA : 5;
|
||||
long unsigned int CLD : 3;
|
||||
} sceGsTex0;
|
||||
|
||||
typedef struct {
|
||||
unsigned long LCM:1;
|
||||
unsigned long pad01:1;
|
||||
unsigned long MXL:3;
|
||||
unsigned long MMAG:1;
|
||||
unsigned long MMIN:3;
|
||||
unsigned long MTBA:1;
|
||||
unsigned long pad10:9;
|
||||
unsigned long L:2;
|
||||
unsigned long pad21:11;
|
||||
unsigned long K:12;
|
||||
unsigned long pad44:20;
|
||||
} sceGsTex1;
|
||||
|
||||
#define SCE_DMA_VIF0 0
|
||||
#define SCE_DMA_VIF1 1
|
||||
#define SCE_DMA_GIF 2
|
||||
#define SCE_DMA_fromIPU 3
|
||||
#define SCE_DMA_toIPU 4
|
||||
#define SCE_DMA_SIF0 5
|
||||
#define SCE_DMA_SIF1 6
|
||||
#define SCE_DMA_SIF2 7
|
||||
#define SCE_DMA_fromSPR 8
|
||||
#define SCE_DMA_toSPR 9
|
||||
|
||||
#endif // EE_EESTRUCT_H
|
||||
@@ -0,0 +1,7 @@
|
||||
#ifndef EE_KERNEL_H
|
||||
#define EE_KERNEL_H
|
||||
|
||||
void EiInit();
|
||||
void FlushCache(int);
|
||||
|
||||
#endif // EE_KERNEL_H
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef EE_REGISTERS_H
|
||||
#define EE_REGISTERS_H
|
||||
|
||||
#define REG_RCNT0_COUNT (volatile u_int *)0x10000000
|
||||
#define REG_RCNT0_MODE (volatile u_int *)0x10000010
|
||||
#define REG_RCNT1_COUNT (volatile u_int *)0x10000800
|
||||
#define REG_RCNT1_MODE (volatile u_int *)0x10000810
|
||||
#endif // EE_REGISTERS_H
|
||||
+5565
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* This header takes the place of the original ctype.h which, along with
|
||||
* other gcc's header, is missing since we are using a barebone gcc environment.
|
||||
*/
|
||||
#ifndef GCC_CTYPE_H
|
||||
#define GCC_CTYPE_H
|
||||
|
||||
#define __IMPORT
|
||||
#define _CONST const
|
||||
extern __IMPORT _CONST char _ctype_[];
|
||||
#define _L 02
|
||||
#define islower(c) ((_ctype_+1)[(unsigned)(c)]&_L)
|
||||
#ifdef __GNUC__
|
||||
# define toupper(c) \
|
||||
__extension__ ({ int __x = (c); islower(__x) ? (__x - 'a' + 'A') : __x;})
|
||||
# define tolower(c) \
|
||||
__extension__ ({ int __x = (c); isupper(__x) ? (__x - 'A' + 'a') : __x;})
|
||||
#endif
|
||||
|
||||
#endif // GCC_CTYPE_H
|
||||
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* This header takes the place of the original index.h which, along with
|
||||
* other gcc's header, is missing since we are using a barebone gcc environment.
|
||||
*/
|
||||
#ifndef GCC_INDEX_H
|
||||
#define GCC_INDEX_H
|
||||
|
||||
char* index(const char *s, int c);
|
||||
|
||||
#endif // GCC_INDEX_H
|
||||
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* This header takes the place of the original stdarg.h which, along with
|
||||
* other gcc's header, is missing since we are using a barebone gcc environment.
|
||||
*/
|
||||
#ifndef GCC_STDARG_H
|
||||
#define GCC_STDARG_H
|
||||
|
||||
#define _STDARG_H
|
||||
|
||||
#include "va-mips.h"
|
||||
|
||||
typedef __gnuc_va_list va_list;
|
||||
|
||||
#endif // GCC_STDARG_H
|
||||
@@ -0,0 +1,277 @@
|
||||
/* ---------------------------------------- */
|
||||
/* VARARGS for MIPS/GNU CC */
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* */
|
||||
/* ---------------------------------------- */
|
||||
|
||||
|
||||
/* These macros implement varargs for GNU C--either traditional or ANSI. */
|
||||
|
||||
/* Define __gnuc_va_list. */
|
||||
|
||||
#ifndef __GNUC_VA_LIST
|
||||
#define __GNUC_VA_LIST
|
||||
#if defined (__mips_eabi) && ! defined (__mips_soft_float) && ! defined (__mips_single_float)
|
||||
|
||||
typedef struct {
|
||||
/* Pointer to FP regs. */
|
||||
char *__fp_regs;
|
||||
/* Number of FP regs remaining. */
|
||||
int __fp_left;
|
||||
/* Pointer to GP regs followed by stack parameters. */
|
||||
char *__gp_regs;
|
||||
} __gnuc_va_list;
|
||||
|
||||
#else /* ! (defined (__mips_eabi) && ! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
|
||||
typedef char * __gnuc_va_list;
|
||||
|
||||
#endif /* ! (defined (__mips_eabi) && ! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
#endif /* not __GNUC_VA_LIST */
|
||||
|
||||
/* If this is for internal libc use, don't define anything but
|
||||
__gnuc_va_list. */
|
||||
#if defined (_STDARG_H) || defined (_VARARGS_H)
|
||||
|
||||
#ifndef _VA_MIPS_H_ENUM
|
||||
#define _VA_MIPS_H_ENUM
|
||||
enum {
|
||||
__no_type_class = -1,
|
||||
__void_type_class,
|
||||
__integer_type_class,
|
||||
__char_type_class,
|
||||
__enumeral_type_class,
|
||||
__boolean_type_class,
|
||||
__pointer_type_class,
|
||||
__reference_type_class,
|
||||
__offset_type_class,
|
||||
__real_type_class,
|
||||
__complex_type_class,
|
||||
__function_type_class,
|
||||
__method_type_class,
|
||||
__record_type_class,
|
||||
__union_type_class,
|
||||
__array_type_class,
|
||||
__string_type_class,
|
||||
__set_type_class,
|
||||
__file_type_class,
|
||||
__lang_type_class
|
||||
};
|
||||
#endif
|
||||
|
||||
/* In GCC version 2, we want an ellipsis at the end of the declaration
|
||||
of the argument list. GCC version 1 can't parse it. */
|
||||
|
||||
#if __GNUC__ > 1
|
||||
#define __va_ellipsis ...
|
||||
#else
|
||||
#define __va_ellipsis
|
||||
#endif
|
||||
|
||||
#ifdef __mips64
|
||||
#define __va_rounded_size(__TYPE) \
|
||||
(((sizeof (__TYPE) + 8 - 1) / 8) * 8)
|
||||
#else
|
||||
#define __va_rounded_size(__TYPE) \
|
||||
(((sizeof (__TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int))
|
||||
#endif
|
||||
|
||||
#ifdef __mips64
|
||||
#define __va_reg_size 8
|
||||
#else
|
||||
#define __va_reg_size 4
|
||||
#endif
|
||||
|
||||
/* Get definitions for _MIPS_SIM_ABI64 etc. */
|
||||
#ifdef _MIPS_SIM
|
||||
#include <sgidefs.h>
|
||||
#endif
|
||||
|
||||
#ifdef _STDARG_H
|
||||
#if defined (__mips_eabi)
|
||||
#if ! defined (__mips_soft_float) && ! defined (__mips_single_float)
|
||||
#ifdef __mips64
|
||||
#define va_start(__AP, __LASTARG) \
|
||||
(__AP.__gp_regs = ((char *) __builtin_next_arg (__LASTARG) \
|
||||
- (__builtin_args_info (2) < 8 \
|
||||
? (8 - __builtin_args_info (2)) * __va_reg_size \
|
||||
: 0)), \
|
||||
__AP.__fp_left = 8 - __builtin_args_info (3), \
|
||||
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * __va_reg_size)
|
||||
#else /* ! defined (__mips64) */
|
||||
#define va_start(__AP, __LASTARG) \
|
||||
(__AP.__gp_regs = ((char *) __builtin_next_arg (__LASTARG) \
|
||||
- (__builtin_args_info (2) < 8 \
|
||||
? (8 - __builtin_args_info (2)) * __va_reg_size \
|
||||
: 0)), \
|
||||
__AP.__fp_left = (8 - __builtin_args_info (3)) / 2, \
|
||||
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * 8, \
|
||||
__AP.__fp_regs = (char *) ((int) __AP.__fp_regs & -8))
|
||||
#endif /* ! defined (__mips64) */
|
||||
#else /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float) ) */
|
||||
#define va_start(__AP, __LASTARG) \
|
||||
(__AP = ((__gnuc_va_list) __builtin_next_arg (__LASTARG) \
|
||||
- (__builtin_args_info (2) >= 8 ? 0 \
|
||||
: (8 - __builtin_args_info (2)) * __va_reg_size)))
|
||||
#endif /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float) ) */
|
||||
#else /* ! defined (__mips_eabi) */
|
||||
#define va_start(__AP, __LASTARG) \
|
||||
(__AP = (__gnuc_va_list) __builtin_next_arg (__LASTARG))
|
||||
#endif /* ! (defined (__mips_eabi) && ! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
#else /* ! _STDARG_H */
|
||||
#define va_alist __builtin_va_alist
|
||||
#ifdef __mips64
|
||||
/* This assumes that `long long int' is always a 64 bit type. */
|
||||
#define va_dcl long long int __builtin_va_alist; __va_ellipsis
|
||||
#else
|
||||
#define va_dcl int __builtin_va_alist; __va_ellipsis
|
||||
#endif
|
||||
#if defined (__mips_eabi)
|
||||
#if ! defined (__mips_soft_float) && ! defined (__mips_single_float)
|
||||
#ifdef __mips64
|
||||
#define va_start(__AP) \
|
||||
(__AP.__gp_regs = ((char *) __builtin_next_arg () \
|
||||
- (__builtin_args_info (2) < 8 \
|
||||
? (8 - __builtin_args_info (2)) * __va_reg_size \
|
||||
: __va_reg_size)), \
|
||||
__AP.__fp_left = 8 - __builtin_args_info (3), \
|
||||
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * __va_reg_size)
|
||||
#else /* ! defined (__mips64) */
|
||||
#define va_start(__AP) \
|
||||
(__AP.__gp_regs = ((char *) __builtin_next_arg () \
|
||||
- (__builtin_args_info (2) < 8 \
|
||||
? (8 - __builtin_args_info (2)) * __va_reg_size \
|
||||
: __va_reg_size)), \
|
||||
__AP.__fp_left = (8 - __builtin_args_info (3)) / 2, \
|
||||
__AP.__fp_regs = __AP.__gp_regs - __AP.__fp_left * 8, \
|
||||
__AP.__fp_regs = (char *) ((int) __AP.__fp_regs & -8))
|
||||
#endif /* ! defined (__mips64) */
|
||||
#else /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
#define va_start(__AP) \
|
||||
(__AP = ((__gnuc_va_list) __builtin_next_arg () \
|
||||
- (__builtin_args_info (2) >= 8 ? __va_reg_size \
|
||||
: (8 - __builtin_args_info (2)) * __va_reg_size)))
|
||||
#endif /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
/* Need alternate code for _MIPS_SIM_ABI64. */
|
||||
#elif defined(_MIPS_SIM) && (_MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32)
|
||||
#define va_start(__AP) \
|
||||
(__AP = (__gnuc_va_list) __builtin_next_arg () \
|
||||
+ (__builtin_args_info (2) >= 8 ? -8 : 0))
|
||||
#else
|
||||
#define va_start(__AP) __AP = (char *) &__builtin_va_alist
|
||||
#endif
|
||||
#endif /* ! _STDARG_H */
|
||||
|
||||
#ifndef va_end
|
||||
void va_end (__gnuc_va_list); /* Defined in libgcc.a */
|
||||
#endif
|
||||
#define va_end(__AP) ((void)0)
|
||||
|
||||
#if defined (__mips_eabi)
|
||||
|
||||
#if ! defined (__mips_soft_float) && ! defined (__mips_single_float)
|
||||
#ifdef __mips64
|
||||
#define __va_next_addr(__AP, __type) \
|
||||
((__builtin_classify_type (*(__type *) 0) == __real_type_class \
|
||||
&& __AP.__fp_left > 0) \
|
||||
? (--__AP.__fp_left, (__AP.__fp_regs += 8) - 8) \
|
||||
: (__AP.__gp_regs += __va_reg_size) - __va_reg_size)
|
||||
#else
|
||||
#define __va_next_addr(__AP, __type) \
|
||||
((__builtin_classify_type (*(__type *) 0) == __real_type_class \
|
||||
&& __AP.__fp_left > 0) \
|
||||
? (--__AP.__fp_left, (__AP.__fp_regs += 8) - 8) \
|
||||
: (((__builtin_classify_type (* (__type *) 0) < __record_type_class \
|
||||
&& __alignof__ (__type) > 4) \
|
||||
? __AP.__gp_regs = (char *) (((int) __AP.__gp_regs + 8 - 1) & -8) \
|
||||
: (char *) 0), \
|
||||
(__builtin_classify_type (* (__type *) 0) >= __record_type_class \
|
||||
? (__AP.__gp_regs += __va_reg_size) - __va_reg_size \
|
||||
: ((__AP.__gp_regs += __va_rounded_size (__type)) \
|
||||
- __va_rounded_size (__type)))))
|
||||
#endif
|
||||
#else /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
#ifdef __mips64
|
||||
#define __va_next_addr(__AP, __type) \
|
||||
((__AP += __va_reg_size) - __va_reg_size)
|
||||
#else
|
||||
#define __va_next_addr(__AP, __type) \
|
||||
(((__builtin_classify_type (* (__type *) 0) < __record_type_class \
|
||||
&& __alignof__ (__type) > 4) \
|
||||
? __AP = (char *) (((__PTRDIFF_TYPE__) __AP + 8 - 1) & -8) \
|
||||
: (char *) 0), \
|
||||
(__builtin_classify_type (* (__type *) 0) >= __record_type_class \
|
||||
? (__AP += __va_reg_size) - __va_reg_size \
|
||||
: ((__AP += __va_rounded_size (__type)) \
|
||||
- __va_rounded_size (__type))))
|
||||
#endif
|
||||
#endif /* ! (! defined (__mips_soft_float) && ! defined (__mips_single_float)) */
|
||||
|
||||
#ifdef __MIPSEB__
|
||||
#define va_arg(__AP, __type) \
|
||||
((__va_rounded_size (__type) <= __va_reg_size) \
|
||||
? *(__type *) (void *) (__va_next_addr (__AP, __type) \
|
||||
+ __va_reg_size \
|
||||
- sizeof (__type)) \
|
||||
: (__builtin_classify_type (*(__type *) 0) >= __record_type_class \
|
||||
? **(__type **) (void *) (__va_next_addr (__AP, __type) \
|
||||
+ __va_reg_size \
|
||||
- sizeof (char *)) \
|
||||
: *(__type *) (void *) __va_next_addr (__AP, __type)))
|
||||
#else
|
||||
#define va_arg(__AP, __type) \
|
||||
((__va_rounded_size (__type) <= __va_reg_size) \
|
||||
? *(__type *) (void *) __va_next_addr (__AP, __type) \
|
||||
: (__builtin_classify_type (* (__type *) 0) >= __record_type_class \
|
||||
? **(__type **) (void *) __va_next_addr (__AP, __type) \
|
||||
: *(__type *) (void *) __va_next_addr (__AP, __type)))
|
||||
#endif
|
||||
|
||||
#else /* ! defined (__mips_eabi) */
|
||||
|
||||
/* We cast to void * and then to TYPE * because this avoids
|
||||
a warning about increasing the alignment requirement. */
|
||||
/* The __mips64 cases are reversed from the 32 bit cases, because the standard
|
||||
32 bit calling convention left-aligns all parameters smaller than a word,
|
||||
whereas the __mips64 calling convention does not (and hence they are
|
||||
right aligned). */
|
||||
#ifdef __mips64
|
||||
#ifdef __MIPSEB__
|
||||
#define va_arg(__AP, __type) \
|
||||
((__type *) (void *) (__AP = (char *) \
|
||||
((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \
|
||||
+ __va_rounded_size (__type))))[-1]
|
||||
#else
|
||||
#define va_arg(__AP, __type) \
|
||||
((__AP = (char *) ((((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8) \
|
||||
+ __va_rounded_size (__type))), \
|
||||
*(__type *) (void *) (__AP - __va_rounded_size (__type)))
|
||||
#endif
|
||||
|
||||
#else /* not __mips64 */
|
||||
|
||||
#ifdef __MIPSEB__
|
||||
/* For big-endian machines. */
|
||||
#define va_arg(__AP, __type) \
|
||||
((__AP = (char *) ((__alignof__ (__type) > 4 \
|
||||
? ((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8 \
|
||||
: ((__PTRDIFF_TYPE__)__AP + 4 - 1) & -4) \
|
||||
+ __va_rounded_size (__type))), \
|
||||
*(__type *) (void *) (__AP - __va_rounded_size (__type)))
|
||||
#else
|
||||
/* For little-endian machines. */
|
||||
#define va_arg(__AP, __type) \
|
||||
((__type *) (void *) (__AP = (char *) ((__alignof__(__type) > 4 \
|
||||
? ((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8 \
|
||||
: ((__PTRDIFF_TYPE__)__AP + 4 - 1) & -4) \
|
||||
+ __va_rounded_size(__type))))[-1]
|
||||
#endif
|
||||
#endif
|
||||
#endif /* ! defined (__mips_eabi) */
|
||||
|
||||
/* Copy __gnuc_va_list into another variable of this type. */
|
||||
#define __va_copy(dest, src) (dest) = (src)
|
||||
|
||||
#endif /* defined (_STDARG_H) || defined (_VARARGS_H) */
|
||||
@@ -0,0 +1,54 @@
|
||||
// #ifndef GLOBALS_H
|
||||
// #define GLOBALS_H
|
||||
//
|
||||
// #include "typedefs.h"
|
||||
//
|
||||
// extern DSP_M_SLCT_WRK dsp_ms;
|
||||
// extern INGAME_WRK ingame_wrk;
|
||||
// extern SYS_WRK sys_wrk;
|
||||
//
|
||||
// extern EVENT_WRK ev_wrk;
|
||||
// extern PLYR_WRK plyr_wrk;
|
||||
// extern TIME_WRK time_wrk;
|
||||
// extern OPTION_WRK opt_wrk;
|
||||
//
|
||||
// extern int msn0_wait_timer;
|
||||
// extern u_char mc_msn_flg;
|
||||
//
|
||||
// extern u_char event_stts[250];
|
||||
// extern u_char plyr_vib_time;
|
||||
// extern int disp3d_furn_req;
|
||||
// extern int disp3d_room_req;
|
||||
// extern u_char poss_item[200];
|
||||
// extern int black_time;
|
||||
// extern int load_file_id;
|
||||
// extern u_short hp_down_deg;
|
||||
// extern int init_load_id;
|
||||
// extern sceVu0FMATRIX SgWSMtx;
|
||||
// extern char is_newdata_albmside;
|
||||
// extern u_short *key_now[32];
|
||||
// extern int ms_load_id;
|
||||
// extern int cmn_tex_load;
|
||||
// extern int title_bgm_no;
|
||||
//
|
||||
// extern u_char save_pht_in_game;
|
||||
// extern u_int mc_photo_num;
|
||||
// extern DSP_MEM_ALBM dm_albm;
|
||||
// extern MC_ALBUM_SAVE album_save_dat[2];
|
||||
// extern PFILE_WRK pfile_wrk;
|
||||
// extern MC_ALBUM_SAVE mc_album_save;
|
||||
// extern STR_DAT ig_menu_str;
|
||||
// extern TITLE_WRK title_wrk;
|
||||
//
|
||||
// extern OUTGAME_WRK outgame_wrk;
|
||||
// extern u_int realtime_scene_flg;
|
||||
// extern int opening_movie_type;
|
||||
// extern u_int scene_bg_color;
|
||||
// extern u_char mc_start_flg;
|
||||
//
|
||||
// extern BTL_MODE_WRK btl_wrk;
|
||||
// extern int battle_scr_effct[0];
|
||||
// extern STAGE_WRK stage_wrk[20];
|
||||
// extern STAGE_DAT stage_dat[0];
|
||||
//
|
||||
// #endif /* GLOBALS_H */
|
||||
@@ -0,0 +1,36 @@
|
||||
#ifndef INCLUDE_ASM_H
|
||||
#define INCLUDE_ASM_H
|
||||
|
||||
#if !defined(SPLAT) && !defined(M2CTX) && !defined(PERMUTER)
|
||||
#ifndef INCLUDE_ASM
|
||||
#define INCLUDE_ASM(TYPE, FOLDER, NAME) \
|
||||
__asm__( \
|
||||
".section .text\n" \
|
||||
" .set noat\n" \
|
||||
" .set noreorder\n" \
|
||||
" .include \"asm/nonmatchings/" FOLDER "/" #NAME ".s\"\n" \
|
||||
" .set reorder\n" \
|
||||
" .set at\n" \
|
||||
" .globl " #NAME ".NON_MATCHING\n" \
|
||||
" " #NAME ".NON_MATCHING" " = " #NAME "\n" \
|
||||
)
|
||||
#endif
|
||||
#ifndef INCLUDE_RODATA
|
||||
#define INCLUDE_RODATA(TYPE, FOLDER, NAME) \
|
||||
__asm__( \
|
||||
".section .rodata\n" \
|
||||
" .include \"asm/nonmatchings/" FOLDER "/" #NAME ".s\"\n" \
|
||||
".section .text" \
|
||||
)
|
||||
#endif
|
||||
__asm__(".include \"include/macro.inc\"\n");
|
||||
#else
|
||||
#ifndef INCLUDE_ASM
|
||||
#define INCLUDE_ASM(FOLDER, NAME)
|
||||
#endif
|
||||
#ifndef INCLUDE_RODATA
|
||||
#define INCLUDE_RODATA(FOLDER, NAME)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,20 @@
|
||||
.macro glabel label
|
||||
.global \label
|
||||
.type \label, @function
|
||||
\label:
|
||||
.endm
|
||||
|
||||
.macro dlabel label
|
||||
.global \label
|
||||
\label:
|
||||
.endm
|
||||
|
||||
.macro jlabel label
|
||||
.global \label
|
||||
\label:
|
||||
.endm
|
||||
|
||||
.macro llabel label
|
||||
.local \label
|
||||
\label:
|
||||
.endm
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef SCE_DEVVIF0_H
|
||||
#define SCE_DEVVIF0_H
|
||||
|
||||
void sceDevVif0Reset();
|
||||
|
||||
#endif // SCE_DEVVIF0_H
|
||||
@@ -0,0 +1,36 @@
|
||||
#ifndef SCE_DEVVIF1_H
|
||||
#define SCE_DEVVIF1_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
typedef struct {
|
||||
u_int row[4];
|
||||
u_int col[4];
|
||||
u_int mask;
|
||||
u_int code;
|
||||
u_int stat;
|
||||
u_short itop;
|
||||
u_short itops;
|
||||
u_short base;
|
||||
u_short offset;
|
||||
u_short top;
|
||||
u_short tops;
|
||||
u_short mark;
|
||||
u_short num;
|
||||
u_char error;
|
||||
u_char cl;
|
||||
u_char wl;
|
||||
u_char cmod;
|
||||
u_char pad;
|
||||
} sceDevVif1Cnd;
|
||||
|
||||
void sceDevVif1Reset(void);
|
||||
int sceDevVif1Pause(int mode);
|
||||
int sceDevVif1Continue(void);
|
||||
u_int sceDevVif1PutErr(int interrupt, int miss1, int miss2);
|
||||
u_int sceDevVif1GetErr(void);
|
||||
int sceDevVif1GetCnd(sceDevVif1Cnd *);
|
||||
int sceDevVif1PutFifo(u_long128 *addr, int n);
|
||||
int sceDevVif1GetFifo(u_long128 *addr, int n);
|
||||
|
||||
#endif // SCE_DEVVIF1_H
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef SCE_DEVVU0_H
|
||||
#define SCE_DEVVU0_H
|
||||
|
||||
void sceDevVu0Reset();
|
||||
|
||||
#endif // SCE_DEVVU0_H
|
||||
@@ -0,0 +1,63 @@
|
||||
#ifndef SCE_LIBCDVD_H
|
||||
#define SCE_LIBCDVD_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
#define STMNBLK 0
|
||||
#define STMBLK 1
|
||||
|
||||
#define SCECdINIT 0
|
||||
#define SCECdINoD 1
|
||||
#define SCECdEXIT 5
|
||||
|
||||
#define SCECdCD 1
|
||||
#define SCECdDVD 2
|
||||
|
||||
#define SCECdSpinMax 0
|
||||
#define SCECdSpinNom 1
|
||||
#define SCECdSpinStm 0
|
||||
#define SCECdSpinDvdDL0 0
|
||||
#define SCECdSpinX1 2
|
||||
|
||||
#define SCECdSecS2048 0
|
||||
#define SCECdSecS2328 1
|
||||
#define SCECdSecS2340 2
|
||||
|
||||
typedef struct {
|
||||
u_char stat;
|
||||
u_char second;
|
||||
u_char minute;
|
||||
u_char hour;
|
||||
u_char pad;
|
||||
u_char day;
|
||||
u_char month;
|
||||
u_char year;
|
||||
} sceCdCLOCK;
|
||||
|
||||
typedef struct {
|
||||
u_char trycount;
|
||||
u_char spindlctrl;
|
||||
u_char datapattern;
|
||||
u_char pad;
|
||||
} sceCdRMode;
|
||||
|
||||
typedef struct {
|
||||
u_int lsn;
|
||||
u_int size;
|
||||
char name[16];
|
||||
u_char date[8];
|
||||
u_int flag;
|
||||
} sceCdlFILE;
|
||||
|
||||
int sceCdInit(int init_mode);
|
||||
int sceCdMmode(int media);
|
||||
int sceCdReadClock(sceCdCLOCK *rtc);
|
||||
int sceCdStRead(u_int size, u_int *buf, u_int mode, u_int *err);
|
||||
int sceCdStStop();
|
||||
|
||||
int sceCdDiskReady(int mode);
|
||||
int sceCdStInit(u_int bufmax, u_int bankmax, u_int iop_bufaddr);
|
||||
int sceCdSearchFile(sceCdlFILE *fp,const char *name);
|
||||
int sceCdStStart(u_int lbn, sceCdRMode *mode);
|
||||
|
||||
#endif // SCE_LIBCDVD_H
|
||||
@@ -0,0 +1,77 @@
|
||||
#ifndef SCE_LIBDMA_H
|
||||
#define SCE_LIBDMA_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
typedef struct {
|
||||
u_char sts;
|
||||
u_char std;
|
||||
u_char mfd;
|
||||
u_char rcycle;
|
||||
u_short express;
|
||||
u_short notify;
|
||||
u_short sqwc;
|
||||
u_short tqwc;
|
||||
void *rbadr;
|
||||
u_int rbmsk;
|
||||
} sceDmaEnv;
|
||||
|
||||
typedef struct {
|
||||
unsigned DIR: 1;
|
||||
unsigned p0 : 1;
|
||||
unsigned MOD: 2;
|
||||
unsigned ASP: 2;
|
||||
unsigned TTE: 1;
|
||||
unsigned TIE: 1;
|
||||
unsigned STR: 1;
|
||||
unsigned p1 : 7;
|
||||
unsigned TAG:16;
|
||||
} tD_CHCR;
|
||||
|
||||
typedef struct _sceDmaTag {
|
||||
u_short qwc;
|
||||
u_char mark;
|
||||
u_char id;
|
||||
struct _sceDmaTag *next;
|
||||
u_int p[2];
|
||||
} sceDmaTag __attribute__ ((aligned(16)));
|
||||
|
||||
typedef struct {
|
||||
tD_CHCR chcr; u_int p0[3];
|
||||
volatile void *madr; u_int p1[3];
|
||||
volatile u_int qwc; u_int p2[3];
|
||||
volatile sceDmaTag *tadr; u_int p3[3];
|
||||
volatile void *as0; u_int p4[3];
|
||||
volatile void *as1; u_int p5[3];
|
||||
u_int p6[4];
|
||||
u_int p7[4];
|
||||
volatile void *sadr; u_int p8[3];
|
||||
} sceDmaChan;
|
||||
|
||||
#define settag(t,i,a,q) (t)->id=(i),(t)->next=(sceDmaTag *)(a),(t)->qwc=(u_short)(q)
|
||||
|
||||
inline static void *sceDmaAddRef(sceDmaTag **tag, int qwc, void *addr)
|
||||
{
|
||||
settag(*tag,0x30,addr,qwc);
|
||||
(*tag)++;
|
||||
return(addr);
|
||||
}
|
||||
|
||||
inline static void *sceDmaAddEnd(sceDmaTag **tag, int qwc, void *addr)
|
||||
{
|
||||
void *ret;
|
||||
settag(*tag,0x70,addr,qwc);
|
||||
ret = *tag+1;
|
||||
(*tag) += qwc+1;
|
||||
return(ret);
|
||||
}
|
||||
|
||||
int sceDmaReset(int mode);
|
||||
sceDmaEnv *sceDmaGetEnv(sceDmaEnv *env);
|
||||
int sceDmaPutEnv(sceDmaEnv *env);
|
||||
sceDmaChan *sceDmaGetChan(int id);
|
||||
void sceDmaSend(sceDmaChan *d, void *tag);
|
||||
int sceDmaSync(sceDmaChan *d, int mode, int timeout);
|
||||
|
||||
|
||||
#endif // SCE_LIBDMA_H
|
||||
@@ -0,0 +1,26 @@
|
||||
#ifndef SCE_LIBGIFPK_H
|
||||
#define SCE_LIBGIFPK_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
typedef struct {
|
||||
u_int *pCurrent;
|
||||
u_long128 *pBase;
|
||||
u_long128 *pDmaTag;
|
||||
u_long *pGifTag;
|
||||
} sceGifPacket;
|
||||
|
||||
u_long128 *sceGifPkTerminate(sceGifPacket *pPacket);
|
||||
void sceGifPkCloseGifTag(sceGifPacket *pPacket);
|
||||
void sceGifPkOpenGifTag(sceGifPacket *pPacket, u_long128 gifTag);
|
||||
void sceGifPkAddGsAD(sceGifPacket *pPacket, u_int addr, u_long data);
|
||||
void sceGifPkEnd(sceGifPacket *pPacket, u_int opt1, u_int opt2, u_int flag);
|
||||
void sceGifPkReset(sceGifPacket *pPacket);
|
||||
void sceGifPkInit(sceGifPacket *pPacket, u_long128 *pBase);
|
||||
void sceGifPkReset(sceGifPacket *pPacket);
|
||||
void sceGifPkCnt(sceGifPacket *pPacket, u_int opt1, u_int opt2, u_int flag);
|
||||
u_int *sceGifPkReserve(sceGifPacket *pPacket, u_int count);
|
||||
void sceGifPkRef(sceGifPacket *pPacket, u_long128 *pRef, u_int size, u_int opt1, u_int opt2, u_int flag);
|
||||
|
||||
|
||||
#endif // SCE_LIBGIFPK_H
|
||||
@@ -0,0 +1,191 @@
|
||||
#ifndef SCE_LIBGRAPH_H
|
||||
#define SCE_LIBGRAPH_H
|
||||
|
||||
#include "ee/eestruct.h"
|
||||
#include "ee/eeregs.h"
|
||||
|
||||
#define SCE_GS_NOINTERLACE 0
|
||||
#define SCE_GS_INTERLACE 1
|
||||
|
||||
#define SCE_GS_FIELD 0
|
||||
#define SCE_GS_FRAME 1
|
||||
|
||||
#define SCE_GS_NTSC 2
|
||||
#define SCE_GS_PAL 3
|
||||
|
||||
typedef struct {
|
||||
long unsigned int NLOOP : 15;
|
||||
long unsigned int EOP : 1;
|
||||
long unsigned int pad16 : 16;
|
||||
long unsigned int id : 14;
|
||||
long unsigned int PRE : 1;
|
||||
long unsigned int PRIM : 11;
|
||||
long unsigned int FLG : 2;
|
||||
long unsigned int NREG : 4;
|
||||
long unsigned int REGS0 : 4;
|
||||
long unsigned int REGS1 : 4;
|
||||
long unsigned int REGS2 : 4;
|
||||
long unsigned int REGS3 : 4;
|
||||
long unsigned int REGS4 : 4;
|
||||
long unsigned int REGS5 : 4;
|
||||
long unsigned int REGS6 : 4;
|
||||
long unsigned int REGS7 : 4;
|
||||
long unsigned int REGS8 : 4;
|
||||
long unsigned int REGS9 : 4;
|
||||
long unsigned int REGS10 : 4;
|
||||
long unsigned int REGS11 : 4;
|
||||
long unsigned int REGS12 : 4;
|
||||
long unsigned int REGS13 : 4;
|
||||
long unsigned int REGS14 : 4;
|
||||
long unsigned int REGS15 : 4;
|
||||
} sceGifTag __attribute__((aligned(16)));
|
||||
|
||||
typedef struct {
|
||||
long unsigned int SBP : 14;
|
||||
long unsigned int pad14 : 2;
|
||||
long unsigned int SBW : 6;
|
||||
long unsigned int pad22 : 2;
|
||||
long unsigned int SPSM : 6;
|
||||
long unsigned int pad30 : 2;
|
||||
long unsigned int DBP : 14;
|
||||
long unsigned int pad46 : 2;
|
||||
long unsigned int DBW : 6;
|
||||
long unsigned int pad54 : 2;
|
||||
long unsigned int DPSM : 6;
|
||||
long unsigned int pad62 : 2;
|
||||
} sceGsBitbltbuf;
|
||||
|
||||
typedef struct {
|
||||
long unsigned int SSAX : 11;
|
||||
long unsigned int pad11 : 5;
|
||||
long unsigned int SSAY : 11;
|
||||
long unsigned int pad27 : 5;
|
||||
long unsigned int DSAX : 11;
|
||||
long unsigned int pad43 : 5;
|
||||
long unsigned int DSAY : 11;
|
||||
long unsigned int DIR : 2;
|
||||
long unsigned int pad61 : 3;
|
||||
} sceGsTrxpos;
|
||||
|
||||
typedef struct {
|
||||
long unsigned int RRW : 12;
|
||||
long unsigned int pad12 : 20;
|
||||
long unsigned int RRH : 12;
|
||||
long unsigned int pad44 : 20;
|
||||
} sceGsTrxreg;
|
||||
|
||||
typedef struct {
|
||||
long unsigned int pad00;
|
||||
} sceGsFinish;
|
||||
|
||||
typedef struct {
|
||||
long unsigned int XDR : 2;
|
||||
long unsigned int pad02 : 62;
|
||||
} sceGsTrxdir;
|
||||
|
||||
typedef struct {
|
||||
sceGifTag giftag0;
|
||||
sceGsBitbltbuf bitbltbuf;
|
||||
long bitbltbufaddr;
|
||||
sceGsTrxpos trxpos;
|
||||
long trxposaddr;
|
||||
sceGsTrxreg trxreg;
|
||||
long trxregaddr;
|
||||
sceGsTrxdir trxdir;
|
||||
long trxdiraddr;
|
||||
sceGifTag giftag1;
|
||||
} sceGsLoadImage __attribute__((aligned(16)));
|
||||
|
||||
typedef struct {
|
||||
u_int vifcode[4];
|
||||
sceGifTag giftag;
|
||||
sceGsBitbltbuf bitbltbuf;
|
||||
long bitbltbufaddr;
|
||||
sceGsTrxpos trxpos;
|
||||
long trxposaddr;
|
||||
sceGsTrxreg trxreg;
|
||||
long trxregaddr;
|
||||
sceGsFinish finish;
|
||||
long finishaddr;
|
||||
sceGsTrxdir trxdir;
|
||||
long trxdiraddr;
|
||||
} sceGsStoreImage __attribute__((aligned(16)));
|
||||
|
||||
typedef struct {
|
||||
sceGsFrame frame1;
|
||||
u_long frame1addr;
|
||||
sceGsZbuf zbuf1;
|
||||
long zbuf1addr;
|
||||
sceGsXyoffset xyoffset1;
|
||||
long xyoffset1addr;
|
||||
sceGsScissor scissor1;
|
||||
long scissor1addr;
|
||||
sceGsPrmodecont prmodecont;
|
||||
long prmodecontaddr;
|
||||
sceGsColclamp colclamp;
|
||||
long colclampaddr;
|
||||
sceGsDthe dthe;
|
||||
long dtheaddr;
|
||||
sceGsTest test1;
|
||||
long test1addr;
|
||||
} sceGsDrawEnv1 __attribute__((aligned(16)));
|
||||
|
||||
typedef struct {
|
||||
sceGsTest testa;
|
||||
long testaaddr;
|
||||
sceGsPrim prim;
|
||||
long primaddr;
|
||||
sceGsRgbaq rgbaq;
|
||||
long rgbaqaddr;
|
||||
sceGsXyz xyz2a;
|
||||
long xyz2aaddr;
|
||||
sceGsXyz xyz2b;
|
||||
long xyz2baddr;
|
||||
sceGsTest testb;
|
||||
long testbaddr;
|
||||
} sceGsClear __attribute__((aligned(16)));
|
||||
|
||||
typedef struct {
|
||||
tGS_PMODE pmode;
|
||||
tGS_SMODE2 smode2;
|
||||
tGS_DISPFB2 dispfb;
|
||||
tGS_DISPLAY2 display;
|
||||
tGS_BGCOLOR bgcolor;
|
||||
} sceGsDispEnv;
|
||||
|
||||
typedef struct {
|
||||
sceGsDispEnv disp[2];
|
||||
sceGifTag giftag0;
|
||||
sceGsDrawEnv1 draw0;
|
||||
sceGsClear clear0;
|
||||
sceGifTag giftag1;
|
||||
sceGsDrawEnv1 draw1;
|
||||
sceGsClear clear1;
|
||||
} sceGsDBuff;
|
||||
|
||||
typedef struct { // 0x10
|
||||
/* 0x0 */ short int sceGsInterMode;
|
||||
/* 0x2 */ short int sceGsOutMode;
|
||||
/* 0x4 */ short int sceGsFFMode;
|
||||
/* 0x6 */ short int sceGsVersion;
|
||||
/* 0x8 */ int (*sceGsVSCfunc)(int);
|
||||
/* 0xc */ int sceGsVSCid;
|
||||
} sceGsGParam __attribute__((aligned(16)));
|
||||
|
||||
void sceGsSetDefDBuff(sceGsDBuff *dp, short psm, short w, short h, short ztest, short zpsm, short clear);
|
||||
void sceGsResetPath();
|
||||
void sceGsResetGraph(short mode, short inter, short omode, short ffmode);
|
||||
void sceGsPutDispEnv(sceGsDispEnv *disp);
|
||||
int sceGsPutDrawEnv(sceGifTag *giftag);
|
||||
void sceGsSetHalfOffset(sceGsDrawEnv1 *draw, short centerx, short centery, short halfoff);
|
||||
int sceGsSyncV(int mode);
|
||||
int sceGsSwapDBuff(sceGsDBuff *db, int id);
|
||||
int sceGsSetDefStoreImage(sceGsStoreImage *sp, short sbp, short sbw, short spsm, short x, short y, short w, short h);
|
||||
int sceGsExecStoreImage(sceGsStoreImage *sp, u_long128 *dstaddr);
|
||||
int sceGsSyncPath(int mode, u_short timeout);
|
||||
int sceGsSetDefLoadImage(sceGsLoadImage *lp, short dbp, short dbw, short dpsm, short x, short y, short w, short h);
|
||||
int sceGsExecLoadImage(sceGsLoadImage *lp, u_long128 *srcaddr);
|
||||
int sceGsSetDefDrawEnv(sceGsDrawEnv1 *draw, short psm, short w, short h, short ztest, short zpsm);
|
||||
sceGsGParam *sceGsGetGParam();
|
||||
|
||||
#endif // SCE_LIBGRAPH_H
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef SCE_LIBIPU_H
|
||||
#define SCE_LIBIPU_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
#define SCE_IPU_BCLR 0x00000000
|
||||
#define sceIpuIsBusy() ((int)((int)DGET_IPU_CTRL() < 0))
|
||||
#define sceIpuBCLR(bp) DPUT_IPU_CMD(SCE_IPU_BCLR | (bp))
|
||||
|
||||
typedef struct {
|
||||
u_int d4madr;
|
||||
u_int d4tadr;
|
||||
u_int d4qwc;
|
||||
u_int d4chcr;
|
||||
u_int d3madr;
|
||||
u_int d3qwc;
|
||||
u_int d3chcr;
|
||||
u_int ipubp;
|
||||
u_int ipuctrl;
|
||||
} sceIpuDmaEnv;
|
||||
|
||||
#endif // SCE_LIBIPU_H
|
||||
@@ -0,0 +1,57 @@
|
||||
#ifndef SCE_LIBMC_H
|
||||
#define SCE_LIBMC_H
|
||||
|
||||
typedef int _iconVu0IVECTOR[4];
|
||||
typedef float _iconVu0FVECTOR[4];
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char Head[4];
|
||||
unsigned short Reserv1;
|
||||
unsigned short OffsLF;
|
||||
unsigned int Reserv2;
|
||||
unsigned int TransRate;
|
||||
_iconVu0IVECTOR BgColor[4];
|
||||
_iconVu0FVECTOR LightDir[3];
|
||||
_iconVu0FVECTOR LightColor[3];
|
||||
_iconVu0FVECTOR Ambient;
|
||||
unsigned char TitleName[68];
|
||||
unsigned char FnameView[64];
|
||||
unsigned char FnameCopy[64];
|
||||
unsigned char FnameDel[64];
|
||||
unsigned char Reserve3[512];
|
||||
} sceMcIconSys;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
unsigned char Resv2,Sec,Min,Hour;
|
||||
unsigned char Day,Month;
|
||||
unsigned short Year;
|
||||
} sceMcStDateTime;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
sceMcStDateTime _Create;
|
||||
sceMcStDateTime _Modify;
|
||||
unsigned int FileSizeByte;
|
||||
unsigned short AttrFile;
|
||||
unsigned short Reserve1;
|
||||
unsigned int Reserve2;
|
||||
unsigned int PdaAplNo;
|
||||
unsigned char EntryName[32];
|
||||
} sceMcTblGetDir __attribute__((aligned (64)));
|
||||
|
||||
int sceMcInit();
|
||||
int sceMcSync(int mode, int *cmd, int *result);
|
||||
int sceMcDelete(int port, int slot, const char *name);
|
||||
int sceMcFormat(int port, int slot);
|
||||
int sceMcMkdir(int port, int slot, const char *name);
|
||||
int sceMcGetInfo(int port, int slot, int *type, int *free, int *format);
|
||||
int sceMcWrite(int fd, const void *buffer, int size);
|
||||
int sceMcRead(int fd, void *buffer, int size);
|
||||
int sceMcClose(int fd);
|
||||
int sceMcOpen(int port, int slot, const char *name, int mode);
|
||||
int sceMcGetDir(int port, int slot, const char *name, unsigned mode, int maxent, sceMcTblGetDir *table);
|
||||
int sceMcGetInfo(int port, int slot, int *type, int *free, int *format);
|
||||
|
||||
#endif // SCE_LIBMC_H
|
||||
@@ -0,0 +1,38 @@
|
||||
#ifndef SCE_LIBPAD_H
|
||||
#define SCE_LIBPAD_H
|
||||
|
||||
#define scePadDmaBufferMax (16)
|
||||
|
||||
int scePadPortOpen(int port, int slot, void* addr);
|
||||
int scePadInit(int mode);
|
||||
int scePadGetState(int port, int slot);
|
||||
int scePadRead(int port, int slot, unsigned char* rdata);
|
||||
int scePadGetState(int port, int slot);
|
||||
int scePadInfoMode(int port, int slot, int term, int offs);
|
||||
int scePadSetMainMode(int port, int slot, int offs, int lock);
|
||||
int scePadInfoAct(int port, int slot, int actno, int term);
|
||||
int scePadSetActAlign(int port, int slot, const unsigned char* data);
|
||||
int scePadGetReqState(int port, int slot);
|
||||
int scePadInfoPressMode(int port, int slot);
|
||||
int scePadEnterPressMode(int port, int slot);
|
||||
int scePadSetActDirect(int port, int slot, const unsigned char* data);
|
||||
|
||||
#define scePadStateDiscon (0)
|
||||
#define scePadStateFindPad (1)
|
||||
#define scePadStateFindCTP1 (2)
|
||||
#define scePadStateExecCmd (5)
|
||||
#define scePadStateStable (6)
|
||||
#define scePadStateError (7)
|
||||
#define scePadStateClosed (99)
|
||||
|
||||
#define scePadReqStateComplete (0)
|
||||
#define scePadReqStateFaild (1)
|
||||
#define scePadReqStateFailed (1)
|
||||
#define scePadReqStateBusy (2)
|
||||
|
||||
#define InfoModeCurID (1)
|
||||
#define InfoModeCurExID (2)
|
||||
#define InfoModeCurExOffs (3)
|
||||
#define InfoModeIdTable (4)
|
||||
|
||||
#endif // SCE_LIBPAD_H
|
||||
@@ -0,0 +1,61 @@
|
||||
#ifndef SCE_LIBPC_H
|
||||
#define SCE_LIBPC_H
|
||||
|
||||
static inline int scePcGetCounter0(void) {
|
||||
register int ctr0;
|
||||
__asm__ volatile ("mfpc %0, 0": "=r" (ctr0));
|
||||
return ctr0;
|
||||
}
|
||||
|
||||
#define SCE_PC0_RESERVED (0 << 5)
|
||||
#define SCE_PC0_CPU_CYCLE (1 << 5)
|
||||
#define SCE_PC0_SINGLE_ISSUE (2 << 5)
|
||||
#define SCE_PC0_BRANCH_ISSUED (3 << 5)
|
||||
#define SCE_PC0_BTAC_MISS (4 << 5)
|
||||
#define SCE_PC0_ITLB_MISS (5 << 5)
|
||||
#define SCE_PC0_ICACHE_MISS (6 << 5)
|
||||
#define SCE_PC0_DTLB_ACCESSED (7 << 5)
|
||||
#define SCE_PC0_NONBLOCK_LOAD (8 << 5)
|
||||
#define SCE_PC0_WBB_SINGLE_REQ (9 << 5)
|
||||
#define SCE_PC0_WBB_BURST_REQ (10 << 5)
|
||||
#define SCE_PC0_ADDR_BUS_BUSY (11 << 5)
|
||||
#define SCE_PC0_INST_COMP (12 << 5)
|
||||
#define SCE_PC0_NON_BDS_COMP (13 << 5)
|
||||
#define SCE_PC0_COP2_COMP (14 << 5)
|
||||
#define SCE_PC0_LOAD_COMP (15 << 5)
|
||||
#define SCE_PC0_NO_EVENT (16 << 5)
|
||||
|
||||
#define SCE_PC1_LOW_BRANCH_ISSUED (0 << 15)
|
||||
#define SCE_PC1_CPU_CYCLE (1 << 15)
|
||||
#define SCE_PC1_DUAL_ISSUE (2 << 15)
|
||||
#define SCE_PC1_BRANCH_MISS_PREDICT (3 << 15)
|
||||
#define SCE_PC1_TLB_MISS (4 << 15)
|
||||
#define SCE_PC1_DTLB_MISS (5 << 15)
|
||||
#define SCE_PC1_DCACHE_MISS (6 << 15)
|
||||
#define SCE_PC1_WBB_SINGLE_UNAVAIL (7 << 15)
|
||||
#define SCE_PC1_WBB_BURST_UNAVAIL (8 << 15)
|
||||
#define SCE_PC1_WBB_BURST_ALMOST (9 << 15)
|
||||
#define SCE_PC1_WBB_BURST_FULL (10 << 15)
|
||||
#define SCE_PC1_DATA_BUS_BUSY (11 << 15)
|
||||
#define SCE_PC1_INST_COMP (12 << 15)
|
||||
#define SCE_PC1_NON_BDS_COMP (13 << 15)
|
||||
#define SCE_PC1_COP1_COMP (14 << 15)
|
||||
#define SCE_PC1_STORE_COMP (15 << 15)
|
||||
#define SCE_PC1_NO_EVENT (16 << 15)
|
||||
|
||||
#define SCE_PC_EXL0 (1 << 1)
|
||||
#define SCE_PC_K0 (1 << 2)
|
||||
#define SCE_PC_S0 (1 << 3)
|
||||
#define SCE_PC_U0 (1 << 4)
|
||||
#define SCE_PC_EVENT0 (31 << 5)
|
||||
#define SCE_PC_EXL1 (1 << 11)
|
||||
#define SCE_PC_K1 (1 << 12)
|
||||
#define SCE_PC_S1 (1 << 13)
|
||||
#define SCE_PC_U1 (1 << 14)
|
||||
#define SCE_PC_EVENT1 (31 << 15)
|
||||
#define SCE_PC_CTE (1 << 31)
|
||||
|
||||
void scePcStart(int control, int counter0, int counter1);
|
||||
void scePcStop();
|
||||
|
||||
#endif // SCE_LIBPC_H
|
||||
@@ -0,0 +1,7 @@
|
||||
#ifndef SCE_LIBSDR_H
|
||||
#define SCE_LIBSDR_H
|
||||
|
||||
int sceSdRemoteInit();
|
||||
int sceSdRemote(int arg, ...);
|
||||
|
||||
#endif // SCE_LIBSDR_H
|
||||
@@ -0,0 +1,37 @@
|
||||
#ifndef SCE_LIBVU0_H
|
||||
#define SCE_LIBVU0_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
void sceVu0ScaleVectorXYZ(sceVu0FVECTOR v0, sceVu0FVECTOR v1, float s);
|
||||
void sceVu0AddVector(sceVu0FVECTOR v0, sceVu0FVECTOR v1, sceVu0FVECTOR v2);
|
||||
void sceVu0SubVector(sceVu0FVECTOR v0, sceVu0FVECTOR v1, sceVu0FVECTOR v2);
|
||||
void sceVu0MulVector(sceVu0FVECTOR v0, sceVu0FVECTOR v1, sceVu0FVECTOR v2);
|
||||
void sceVu0CopyVector(sceVu0FVECTOR v0, sceVu0FVECTOR v1);
|
||||
void sceVu0Normalize(sceVu0FVECTOR v0, sceVu0FVECTOR v1);
|
||||
float sceVu0InnerProduct(sceVu0FVECTOR v0, sceVu0FVECTOR v1);
|
||||
void sceVu0OuterProduct(sceVu0FVECTOR v0, sceVu0FVECTOR v1, sceVu0FVECTOR v2);
|
||||
void sceVu0UnitMatrix(sceVu0FMATRIX m);
|
||||
void sceVu0TransposeMatrix(sceVu0FMATRIX m0, sceVu0FMATRIX m1);
|
||||
void sceVu0CameraMatrix(sceVu0FMATRIX m, sceVu0FVECTOR p, sceVu0FVECTOR zd, sceVu0FVECTOR yd);
|
||||
void sceVu0MulMatrix(sceVu0FMATRIX m0, sceVu0FMATRIX m1, sceVu0FMATRIX m2);
|
||||
void sceVu0InversMatrix(sceVu0FMATRIX m0, sceVu0FMATRIX m1);
|
||||
void sceVu0CopyMatrix(sceVu0FMATRIX m0, sceVu0FMATRIX m1);
|
||||
void sceVu0RotMatrixZ(sceVu0FMATRIX m0, sceVu0FMATRIX m1, float rz);
|
||||
void sceVu0ApplyMatrix(sceVu0FVECTOR v0, sceVu0FMATRIX m, sceVu0FVECTOR v1);
|
||||
void sceVu0RotMatrixX(sceVu0FMATRIX m0, sceVu0FMATRIX m1, float rx);
|
||||
void sceVu0RotMatrixY(sceVu0FMATRIX m0, sceVu0FMATRIX m1, float ry);
|
||||
void sceVu0RotMatrix(sceVu0FMATRIX m0, sceVu0FMATRIX m1, sceVu0FVECTOR rot);
|
||||
void sceVu0TransMatrix(sceVu0FMATRIX m0, sceVu0FMATRIX m1, sceVu0FVECTOR tv);
|
||||
void sceVu0MulMatrix(sceVu0FMATRIX m0, sceVu0FMATRIX m1, sceVu0FMATRIX m2);
|
||||
void sceVu0RotTransPers(sceVu0IVECTOR v0, sceVu0FMATRIX m0, sceVu0FVECTOR v1, int mode);
|
||||
void sceVu0SubVector(sceVu0FVECTOR v0, sceVu0FVECTOR v1, sceVu0FVECTOR v2);
|
||||
void sceVu0ScaleVector(sceVu0FVECTOR v0, sceVu0FVECTOR v1, float s);
|
||||
void sceVu0RotTransPers(sceVu0IVECTOR v0, sceVu0FMATRIX m0, sceVu0FVECTOR v1, int mode);
|
||||
void sceVu0RotTransPersN(sceVu0IVECTOR *v0, sceVu0FMATRIX m0, sceVu0FVECTOR *v1, int n, int mode);
|
||||
void sceVu0DivVector(sceVu0FVECTOR v0, sceVu0FVECTOR v1, float q);
|
||||
void sceVu0DivVectorXYZ(sceVu0FVECTOR v0, sceVu0FVECTOR v1, float q);
|
||||
void sceVu0ClampVector(sceVu0FVECTOR v0, sceVu0FVECTOR v1, float min, float max);
|
||||
void sceVu0InterVector(sceVu0FVECTOR v0, sceVu0FVECTOR v1, sceVu0FVECTOR v2, float r);
|
||||
|
||||
#endif // SCE_LIBVU0_H
|
||||
@@ -0,0 +1,7 @@
|
||||
#ifndef SCE_MISC_DIEI_H
|
||||
#define SCE_MISC_DIEI_H
|
||||
|
||||
int EIntr();
|
||||
int DIntr();
|
||||
|
||||
#endif // SCE_MISC_DIEI_H
|
||||
@@ -0,0 +1,51 @@
|
||||
#ifndef SCE_MPEG_AUDIODEC_H
|
||||
#define SCE_MPEG_AUDIODEC_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
#define VOLUME_MASTER_MAX 0x3fff
|
||||
|
||||
#define AU_STATE_INIT 0
|
||||
#define AU_STATE_PRESET 1
|
||||
#define AU_STATE_PLAY 2
|
||||
#define AU_STATE_PAUSE 3
|
||||
|
||||
#define AUTODMA_CH 0
|
||||
|
||||
#define UNIT_SIZE 1024
|
||||
|
||||
typedef struct { // 0x20
|
||||
/* 0x00 */ char id[4];
|
||||
/* 0x04 */ int size;
|
||||
/* 0x08 */ int type;
|
||||
/* 0x0c */ int rate;
|
||||
/* 0x10 */ int ch;
|
||||
/* 0x14 */ int interSize;
|
||||
/* 0x18 */ int loopStart;
|
||||
/* 0x1c */ int loopEnd;
|
||||
} SpuStreamHeader;
|
||||
|
||||
typedef struct { // 0x8
|
||||
/* 0x0 */ char id[4];
|
||||
/* 0x4 */ int size;
|
||||
} SpuStreamBody;
|
||||
|
||||
typedef struct { // 0x5c
|
||||
/* 0x00 */ int state;
|
||||
/* 0x04 */ SpuStreamHeader sshd;
|
||||
/* 0x24 */ SpuStreamBody ssbd;
|
||||
/* 0x2c */ int hdrCount;
|
||||
/* 0x30 */ u_char *data;
|
||||
/* 0x34 */ int put;
|
||||
/* 0x38 */ int count;
|
||||
/* 0x3c */ int size;
|
||||
/* 0x40 */ int totalBytes;
|
||||
/* 0x44 */ int iopBuff;
|
||||
/* 0x48 */ int iopBuffSize;
|
||||
/* 0x4c */ int iopLastPos;
|
||||
/* 0x50 */ int iopPausePos;
|
||||
/* 0x54 */ int totalBytesSent;
|
||||
/* 0x58 */ int iopZero;
|
||||
} AudioDec;
|
||||
|
||||
#endif // SCE_MPEG_AUDIODEC_H
|
||||
@@ -0,0 +1,38 @@
|
||||
#ifndef SCE_MPEG_DEFS_H
|
||||
#define SCE_MPEG_DEFS_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
#ifdef BUILD_EU_VERSION
|
||||
#define MAX_WIDTH 640
|
||||
#define MAX_HEIGHT 448
|
||||
#else
|
||||
#define MAX_WIDTH 640
|
||||
#define MAX_HEIGHT 480
|
||||
#endif
|
||||
|
||||
// these are the same for both US and EU versions of the game
|
||||
#define MPEG_DISP_WIDTH 640
|
||||
#define MPEG_DISP_HEIGHT 480
|
||||
|
||||
#define bound(val, x) ((((val) + (x) - 1) / (x))*(x))
|
||||
|
||||
#define N_VOBUF 2
|
||||
|
||||
#define N_LDTAGS (MAX_WIDTH/16 * MAX_HEIGHT/16 * 6 + 10)
|
||||
|
||||
#define TS_NONE -1
|
||||
|
||||
static inline void *DmaAddr(void *val)
|
||||
{
|
||||
return (void*)((u_int)val & 0x0fffffff);
|
||||
}
|
||||
|
||||
static inline void *UncAddr(void *val)
|
||||
{
|
||||
return (void*)(((u_int)val & 0x0fffffff) | 0x20000000);
|
||||
}
|
||||
|
||||
void clearGsMem(int r, int g, int b, int disp_width, int disp_height);
|
||||
|
||||
#endif // SCE_MPEG_DEFS_H
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef SCE_MPEG_DISP_H
|
||||
#define SCE_MPEG_DISP_H
|
||||
|
||||
void clearGsMem(int r, int g, int b, int disp_width, int disp_height);
|
||||
|
||||
#endif // SCE_MPEG_DISP_H
|
||||
@@ -0,0 +1,84 @@
|
||||
#ifndef SCE_MPEG_LIBMPEG_H
|
||||
#define SCE_MPEG_LIBMPEG_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
#include "sce/mpeg/defs.h"
|
||||
|
||||
#define SCE_MPEG_BUFFER_SIZE(w, h) ((w)*(h)*9/2 + 512 + 24*64 + 8192)
|
||||
|
||||
typedef enum {
|
||||
sceMpegCbError = 0,
|
||||
sceMpegCbNodata = 1,
|
||||
sceMpegCbStopDMA = 2,
|
||||
sceMpegCbRestartDMA = 3,
|
||||
sceMpegCbBackground = 4,
|
||||
sceMpegCbTimeStamp = 5,
|
||||
sceMpegCbStr = 6,
|
||||
} sceMpegCbType;
|
||||
|
||||
typedef enum {
|
||||
sceMpegStrM2V = 0,
|
||||
sceMpegStrIPU = 1,
|
||||
sceMpegStrPCM = 2,
|
||||
sceMpegStrADPCM = 3,
|
||||
sceMpegStrDATA = 4,
|
||||
} sceMpegStrType;
|
||||
|
||||
typedef struct {
|
||||
int width;
|
||||
int height;
|
||||
int frameCount;
|
||||
long int pts;
|
||||
long int dts;
|
||||
u_long flags;
|
||||
long int pts2nd;
|
||||
long int dts2nd;
|
||||
u_long flags2nd;
|
||||
void *sys;
|
||||
} sceMpeg;
|
||||
|
||||
typedef struct {
|
||||
sceMpegCbType type;
|
||||
char *errMessage;
|
||||
} sceMpegCbDataError;
|
||||
|
||||
typedef struct {
|
||||
sceMpegCbType type;
|
||||
long int pts;
|
||||
long int dts;
|
||||
} sceMpegCbDataTimeStamp;
|
||||
|
||||
typedef struct {
|
||||
sceMpegCbType type;
|
||||
u_char *header;
|
||||
u_char *data;
|
||||
u_int len;
|
||||
long int pts;
|
||||
long int dts;
|
||||
} sceMpegCbDataStr;
|
||||
|
||||
typedef union {
|
||||
sceMpegCbType type;
|
||||
sceMpegCbDataError error;
|
||||
sceMpegCbDataTimeStamp ts;
|
||||
sceMpegCbDataStr str;
|
||||
} sceMpegCbData;
|
||||
|
||||
typedef struct {
|
||||
u_int pix[256];
|
||||
} sceIpuRGB32;
|
||||
|
||||
typedef int (*sceMpegCallback)(sceMpeg *mp, sceMpegCbData *cbData, void *anyData);
|
||||
|
||||
int sceMpegReset(sceMpeg *mp);
|
||||
int sceMpegCreate(sceMpeg *mp, u_char *work_area, int work_area_size);
|
||||
int sceMpegDelete(sceMpeg *mp);
|
||||
int sceMpegGetPicture(sceMpeg *mp, sceIpuRGB32 *rgb32, int mbcount);
|
||||
int sceMpegIsEnd(sceMpeg *mp);
|
||||
int sceMpegIsRefBuffEmpty(sceMpeg *mp);
|
||||
void sceMpegSetDecodeMode(sceMpeg *mp, int ni, int np, int nb);
|
||||
sceMpegCallback sceMpegAddCallback(sceMpeg *mp, sceMpegCbType type, sceMpegCallback callback, void *anyData);
|
||||
sceMpegCallback sceMpegAddStrCallback(sceMpeg *mp, sceMpegStrType strType, int ch, sceMpegCallback callback, void *anyData);
|
||||
|
||||
#endif // SCE_MPEG_LIBMPEG_H
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef SCE_MPEG_READBUF_H
|
||||
#define SCE_MPEG_READBUF_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
#define READ_UNIT_SIZE (64*1024)
|
||||
#define N_READ_UNIT 5
|
||||
#define READBUF_BUFF_SIZE (N_READ_UNIT * READ_UNIT_SIZE)
|
||||
|
||||
typedef struct
|
||||
{ // 0x5000c
|
||||
/* 0x00000 */ u_char data[N_READ_UNIT * READ_UNIT_SIZE];
|
||||
/* 0x50000 */ int put;
|
||||
/* 0x50004 */ int count;
|
||||
/* 0x50008 */ int size;
|
||||
} ReadBuf;
|
||||
|
||||
#endif // SCE_MPEG_READBUF_H
|
||||
@@ -0,0 +1,52 @@
|
||||
#ifndef SCE_MPEG_VIBUF_H
|
||||
#define SCE_MPEG_VIBUF_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
#include "sce/libipu.h"
|
||||
|
||||
#define DMA_ID_REFE 0
|
||||
#define DMA_ID_NEXT 2
|
||||
#define DMA_ID_REF 3
|
||||
|
||||
#define VIBUF_ELM_SIZE 2048
|
||||
#define VIBUF_SIZE 256
|
||||
#define VIBUF_TS_SIZE (VIBUF_SIZE*2)
|
||||
|
||||
#define TAG_ADDR(i) ((u_int)DmaAddr(f->tag + i))
|
||||
#define DATA_ADDR(i) ((u_int)f->data + VIBUF_ELM_SIZE * (i))
|
||||
#define WRAP_ADDR(addr) ((u_int)(f->data) + (((u_int)(addr) - (u_int)(f->data)) % (VIBUF_ELM_SIZE * f->n)))
|
||||
#define IsInRegion(i,start,len,n) ( (0 <= (((i) + (n) - (start)) % (n))) && ((((i) + (n) - (start)) % (n)) < (len)))
|
||||
|
||||
extern inline int IsPtsInRegion(int tgt, int pos, int len, int size)
|
||||
{
|
||||
int tgt1 = (tgt + size - pos) % size;
|
||||
return tgt1 < len;
|
||||
}
|
||||
|
||||
typedef struct { // 0x18
|
||||
/* 0x00 */ long int pts;
|
||||
/* 0x08 */ long int dts;
|
||||
/* 0x10 */ int pos;
|
||||
/* 0x14 */ int len;
|
||||
} TimeStamp;
|
||||
|
||||
typedef struct { // 0x60
|
||||
/* 0x00 */ u_long128 *data;
|
||||
/* 0x04 */ u_long128 *tag;
|
||||
/* 0x08 */ int n;
|
||||
/* 0x0c */ int dmaStart;
|
||||
/* 0x10 */ int dmaN;
|
||||
/* 0x14 */ int readBytes;
|
||||
/* 0x18 */ int buffSize;
|
||||
/* 0x1c */ sceIpuDmaEnv env;
|
||||
/* 0x40 */ int sema;
|
||||
/* 0x44 */ int isActive;
|
||||
/* 0x48 */ long int totalBytes;
|
||||
/* 0x50 */ TimeStamp *ts;
|
||||
/* 0x54 */ int n_ts;
|
||||
/* 0x58 */ int count_ts;
|
||||
/* 0x5c */ int wt_ts;
|
||||
} ViBuf;
|
||||
|
||||
#endif // SCE_MPEG_VIBUF_H
|
||||
@@ -0,0 +1,21 @@
|
||||
#ifndef SCE_MPEG_VIDEODEC_H
|
||||
#define SCE_MPEG_VIDEODEC_H
|
||||
|
||||
#include "sce/mpeg/libmpeg.h"
|
||||
#include "sce/mpeg/vibuf.h"
|
||||
|
||||
#define VD_STATE_NORMAL 0
|
||||
#define VD_STATE_ABORT 1
|
||||
#define VD_STATE_FLUSH 2
|
||||
#define VD_STATE_END 3
|
||||
|
||||
typedef struct { // 0xb8
|
||||
/* 0x00 */ sceMpeg mpeg;
|
||||
/* 0x48 */ ViBuf vibuf;
|
||||
/* 0xa8 */ u_int state;
|
||||
/* 0xac */ int sema;
|
||||
/* 0xb0 */ int hid_endimage;
|
||||
/* 0xb4 */ int hid_vblank;
|
||||
} VideoDec;
|
||||
|
||||
#endif // SCE_MPEG_VIDEODEC_H
|
||||
@@ -0,0 +1,32 @@
|
||||
#ifndef SCE_MPEG_VOBUF_H
|
||||
#define SCE_MPEG_VOBUF_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
#include "sce/mpeg/libmpeg.h"
|
||||
|
||||
#define N_GSBUF 2
|
||||
|
||||
#define VOBUF_STATUS_ 0
|
||||
#define VOBUF_STATUS_TOPDONE 1
|
||||
#define VOBUF_STATUS_FULL 2
|
||||
|
||||
typedef struct {
|
||||
u_char v[MAX_WIDTH * MAX_HEIGHT * 4];
|
||||
} VoData;
|
||||
|
||||
typedef struct {
|
||||
int status;
|
||||
int dummy[15];
|
||||
u_int v[N_VOBUF][bound((N_LDTAGS+100)*4, 64)];
|
||||
} VoTag;
|
||||
|
||||
typedef struct {
|
||||
VoData *data;
|
||||
VoTag *tag;
|
||||
volatile int write;
|
||||
volatile int count;
|
||||
int size;
|
||||
} VoBuf;
|
||||
|
||||
#endif // SCE_MPEG_VOBUF_H
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef SCE_SDMACRO_H
|
||||
#define SCE_SDMACRO_H
|
||||
|
||||
#define SD_INIT_COLD 0
|
||||
|
||||
#define SD_TRANS_MODE_WRITE 0
|
||||
#define SD_TRANS_MODE_READ 1
|
||||
#define SD_TRANS_MODE_STOP 2
|
||||
#define SD_TRANS_MODE_WRITE_FROM 3
|
||||
|
||||
#define SD_TRANS_BY_DMA (0x0<<3)
|
||||
#define SD_TRANS_BY_IO (0x1<<3)
|
||||
|
||||
#define SD_BLOCK_ONESHOT (0<<4)
|
||||
#define SD_BLOCK_LOOP (1<<4)
|
||||
#define SD_BLOCK_HANDLER (1<<7)
|
||||
|
||||
#endif // SCE_SDMACRO_H
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef SCE_SDRCMD_H
|
||||
#define SCE_SDRCMD_H
|
||||
|
||||
#define rSdInit 0x8000
|
||||
#define rSdVoiceTrans 0x80d0
|
||||
#define rSdBlockTrans 0x80e0
|
||||
|
||||
#endif // SCE_SDRCMD_H
|
||||
@@ -0,0 +1,14 @@
|
||||
#ifndef SCE_SIF_H
|
||||
#define SCE_SIF_H
|
||||
|
||||
typedef struct {
|
||||
unsigned int data;
|
||||
unsigned int addr;
|
||||
unsigned int size;
|
||||
unsigned int mode;
|
||||
} sceSifDmaData;
|
||||
|
||||
int sceSifDmaStat(unsigned int id);
|
||||
unsigned int sceSifSetDma(sceSifDmaData *sdd, int len);
|
||||
|
||||
#endif // SCE_SIF_H
|
||||
@@ -0,0 +1,34 @@
|
||||
#ifndef SCE_SIFDEV_H
|
||||
#define SCE_SIFDEV_H
|
||||
|
||||
#define SCE_RDONLY 0x0001
|
||||
#define SCE_WRONLY 0x0002
|
||||
#define SCE_RDWR 0x0003
|
||||
#define SCE_NBLOCK 0x0010
|
||||
#define SCE_APPEND 0x0100
|
||||
#define SCE_CREAT 0x0200
|
||||
#define SCE_TRUNC 0x0400
|
||||
#define SCE_EXCL 0x0800
|
||||
#define SCE_NOBUF 0x4000
|
||||
#define SCE_NOWAIT 0x8000
|
||||
|
||||
#define SCE_SEEK_SET 0
|
||||
#define SCE_SEEK_CUR 1
|
||||
#define SCE_SEEK_END 2
|
||||
|
||||
int sceOpen(const char *filename, int flag, ...);
|
||||
int sceClose(int fd);
|
||||
int sceRead(int fd, void *buf, int nbyte);
|
||||
int sceWrite(int fd, const void *buf, int nbyte);
|
||||
int sceLseek(int fd, int offset, int where);
|
||||
|
||||
int sceFsReset();
|
||||
|
||||
int sceSifInitIopHeap();
|
||||
int sceSifFreeIopHeap(void *);
|
||||
void *sceSifAllocIopHeap(unsigned int);
|
||||
int sceSifRebootIop(const char *img);
|
||||
int sceSifSyncIop();
|
||||
int sceSifLoadModule(const char *filename, int args, const char *argp);
|
||||
|
||||
#endif // SCE_SIFDEV_H
|
||||
@@ -0,0 +1,29 @@
|
||||
#ifndef SCE_SIFRPC_H
|
||||
#define SCE_SIFRPC_H
|
||||
|
||||
typedef struct _sif_rpc_data {
|
||||
void *paddr;
|
||||
unsigned int pid;
|
||||
int tid;
|
||||
unsigned int mode;
|
||||
} sceSifRpcData;
|
||||
|
||||
typedef void (* sceSifEndFunc)(void *);
|
||||
|
||||
typedef struct _sif_client_data {
|
||||
struct _sif_rpc_data rpcd;
|
||||
unsigned int command;
|
||||
void *buff;
|
||||
void *gp;
|
||||
sceSifEndFunc func;
|
||||
void *para;
|
||||
struct _sif_serve_data *serve;
|
||||
} sceSifClientData;
|
||||
|
||||
void sceSifInitRpc(unsigned int mode);
|
||||
int sceSifBindRpc(sceSifClientData *client, unsigned int rpc_number, unsigned int mode);
|
||||
int sceSifCheckStatRpc(sceSifRpcData *cd);
|
||||
int sceSifCallRpc(sceSifClientData *client, unsigned int rpc_number, unsigned int mode, void * send, int ssize, void * receive, int rsize, sceSifEndFunc end_function, void *end_param);
|
||||
|
||||
|
||||
#endif // SCE_SIFRPC_H
|
||||
@@ -0,0 +1,25 @@
|
||||
#ifndef STRUCTS_H
|
||||
#define STRUCTS_H
|
||||
|
||||
#include "typedefs.h"
|
||||
|
||||
typedef struct
|
||||
{ // 0x8
|
||||
/* 0x0 */ u_char mode;
|
||||
/* 0x1 */ u_char csr[6];
|
||||
/* 0x7 */ u_char yn_mode;
|
||||
} CAMERA_MENU_WRK;
|
||||
|
||||
typedef struct
|
||||
{ // 0x4
|
||||
/* 0x0 */ short int p;
|
||||
/* 0x2 */ short int n;
|
||||
} CSR_ADD;
|
||||
|
||||
typedef struct
|
||||
{ // 0x20
|
||||
/* 0x00 */ sceVu0FVECTOR stq;
|
||||
/* 0x10 */ sceVu0FVECTOR vtw;
|
||||
} SCRDEF;
|
||||
|
||||
#endif // STRUCTS_H
|
||||
@@ -0,0 +1,50 @@
|
||||
#ifndef TYPEDEFS_H
|
||||
#define TYPEDEFS_H
|
||||
|
||||
typedef long s_long;
|
||||
typedef short s_short;
|
||||
typedef char s_char;
|
||||
typedef int s_int;
|
||||
typedef int s_long128 __attribute__ ((mode (TI)));
|
||||
|
||||
typedef unsigned long u_long;
|
||||
typedef unsigned short u_short;
|
||||
typedef unsigned char u_char;
|
||||
typedef unsigned int u_int;
|
||||
typedef unsigned int u_long128 __attribute__ ((mode (TI)));
|
||||
|
||||
typedef long int dword[2] __attribute__ ((aligned(16)));;
|
||||
typedef int qword[4] __attribute__ ((aligned(16)));
|
||||
typedef int sceVu0IVECTOR[4] __attribute__((aligned (16)));
|
||||
typedef float sceVu0FVECTOR[4] __attribute__((aligned (16)));
|
||||
typedef float sceVu0FMATRIX[4][4] __attribute__((aligned (16)));
|
||||
|
||||
typedef union {
|
||||
int ui32;
|
||||
float fl32;
|
||||
} U32DATA;
|
||||
|
||||
typedef union {
|
||||
u_long128 ul128;
|
||||
u_long ul64[2];
|
||||
u_int ui32[4];
|
||||
float fl32[4];
|
||||
u_short us16[8];
|
||||
u_char uc8[16];
|
||||
sceVu0FVECTOR fv;
|
||||
sceVu0IVECTOR iv;
|
||||
} Q_WORDDATA;
|
||||
|
||||
typedef union {
|
||||
u_char *pu8;
|
||||
u_short *pu16;
|
||||
u_int *pu32;
|
||||
u_long *pu64;
|
||||
s_char *ps8;
|
||||
s_short *ps16;
|
||||
int *ps32;
|
||||
s_long *ps64;
|
||||
long int wrk;
|
||||
} P_INT;
|
||||
|
||||
#endif /* TYPEDEFS_H */
|
||||
Reference in New Issue
Block a user