inital commit
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user