1 #ifndef F3DEX2_H
2 #define F3DEX2_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #define F3DEX2_MTX_STACKSIZE        18
9 
10 #define F3DEX2_MTX_MODELVIEW        0x00
11 #define F3DEX2_MTX_PROJECTION       0x04
12 #define F3DEX2_MTX_MUL              0x00
13 #define F3DEX2_MTX_LOAD             0x02
14 #define F3DEX2_MTX_NOPUSH           0x00
15 #define F3DEX2_MTX_PUSH             0x01
16 
17 #define F3DEX2_TEXTURE_ENABLE       0x00000000
18 #define F3DEX2_SHADING_SMOOTH       0x00200000
19 #define F3DEX2_CULL_FRONT           0x00000200
20 #define F3DEX2_CULL_BACK            0x00000400
21 #define F3DEX2_CULL_BOTH            0x00000600
22 #define F3DEX2_CLIPPING             0x00800000
23 
24 #define F3DEX2_MV_VIEWPORT          8
25 
26 #define F3DEX2_MWO_aLIGHT_1     0x00
27 #define F3DEX2_MWO_bLIGHT_1     0x04
28 #define F3DEX2_MWO_aLIGHT_2     0x18
29 #define F3DEX2_MWO_bLIGHT_2     0x1c
30 #define F3DEX2_MWO_aLIGHT_3     0x30
31 #define F3DEX2_MWO_bLIGHT_3     0x34
32 #define F3DEX2_MWO_aLIGHT_4     0x48
33 #define F3DEX2_MWO_bLIGHT_4     0x4c
34 #define F3DEX2_MWO_aLIGHT_5     0x60
35 #define F3DEX2_MWO_bLIGHT_5     0x64
36 #define F3DEX2_MWO_aLIGHT_6     0x78
37 #define F3DEX2_MWO_bLIGHT_6     0x7c
38 #define F3DEX2_MWO_aLIGHT_7     0x90
39 #define F3DEX2_MWO_bLIGHT_7     0x94
40 #define F3DEX2_MWO_aLIGHT_8     0xa8
41 #define F3DEX2_MWO_bLIGHT_8     0xac
42 
43 
44 #define F3DEX2_RDPHALF_2        0xF1
45 #define F3DEX2_SETOTHERMODE_H   0xE3
46 #define F3DEX2_SETOTHERMODE_L   0xE2
47 #define F3DEX2_RDPHALF_1        0xE1
48 #define F3DEX2_SPNOOP           0xE0
49 #define F3DEX2_ENDDL            0xDF
50 #define F3DEX2_DL               0xDE
51 #define F3DEX2_LOAD_UCODE       0xDD
52 #define F3DEX2_MOVEMEM          0xDC
53 #define F3DEX2_MOVEWORD         0xDB
54 #define F3DEX2_MTX              0xDA
55 #define F3DEX2_GEOMETRYMODE     0xD9
56 #define F3DEX2_POPMTX           0xD8
57 #define F3DEX2_TEXTURE          0xD7
58 #define F3DEX2_DMA_IO           0xD6
59 #define F3DEX2_SPECIAL_1        0xD5
60 #define F3DEX2_SPECIAL_2        0xD4
61 #define F3DEX2_SPECIAL_3        0xD3
62 
63 #define F3DEX2_VTX              0x01
64 #define F3DEX2_MODIFYVTX        0x02
65 #define F3DEX2_CULLDL           0x03
66 #define F3DEX2_BRANCH_Z         0x04
67 #define F3DEX2_TRI1             0x05
68 #define F3DEX2_TRI2             0x06
69 #define F3DEX2_QUAD             0x07
70 #define F3DEX2_LINE3D			0x08
71 
72 
73 void F3DEX2_Mtx( uint32_t w0, uint32_t w1 );
74 void F3DEX2_MoveMem( uint32_t w0, uint32_t w1 );
75 void F3DEX2_Vtx( uint32_t w0, uint32_t w1 );
76 void F3DEX2_Reserved1( uint32_t w0, uint32_t w1 );
77 void F3DEX2_Tri1( uint32_t w0, uint32_t w1 );
78 void F3DEX2_PopMtx( uint32_t w0, uint32_t w1 );
79 void F3DEX2_MoveWord( uint32_t w0, uint32_t w1 );
80 void F3DEX2_Texture( uint32_t w0, uint32_t w1 );
81 void F3DEX2_SetOtherMode_H( uint32_t w0, uint32_t w1 );
82 void F3DEX2_SetOtherMode_L( uint32_t w0, uint32_t w1 );
83 void F3DEX2_GeometryMode( uint32_t w0, uint32_t w1 );
84 void F3DEX2_Line3D( uint32_t w0, uint32_t w1 );
85 void F3DEX2_DMAIO( uint32_t w0, uint32_t w1 );
86 void F3DEX2_Special_1( uint32_t w0, uint32_t w1 );
87 void F3DEX2_Special_2( uint32_t w0, uint32_t w1 );
88 void F3DEX2_Special_3( uint32_t w0, uint32_t w1 );
89 void F3DEX2_Quad( uint32_t w0, uint32_t w1 );
90 void F3DEX2_Init();
91 
92 #ifdef __cplusplus
93 }
94 #endif
95 
96 #endif
97 
98