GLES2N64 (from mupen64plus-ae) plugin. Compile and run on the OpenPandora
[mupen64plus-pandora.git] / source / gles2n64 / src / S2DEX.cpp
1 #include "OpenGL.h"
2 #include "S2DEX.h"
3 #include "F3D.h"
4 #include "F3DEX.h"
5 #include "GBI.h"
6 #include "gSP.h"
7 #include "gDP.h"
8 #include "RSP.h"
9 #include "Types.h"
10
11 void S2DEX_BG_1Cyc( u32 w0, u32 w1 )
12 {
13     gSPBgRect1Cyc( w1 );
14 }
15
16 void S2DEX_BG_Copy( u32 w0, u32 w1 )
17 {
18     gSPBgRectCopy( w1 );
19 }
20
21 void S2DEX_Obj_Rectangle( u32 w0, u32 w1 )
22 {
23     gSPObjRectangle( w1 );
24 }
25
26 void S2DEX_Obj_Sprite( u32 w0, u32 w1 )
27 {
28     gSPObjSprite( w1 );
29 }
30
31 void S2DEX_Obj_MoveMem( u32 w0, u32 w1 )
32 {
33     if (_SHIFTR( w0, 0, 16 ) == 0)
34         gSPObjMatrix( w1 );
35     else
36         gSPObjSubMatrix( w1 );
37 }
38
39 void S2DEX_Select_DL( u32 w0, u32 w1 )
40 {
41 }
42
43 void S2DEX_Obj_RenderMode( u32 w0, u32 w1 )
44 {
45 }
46
47 void S2DEX_Obj_Rectangle_R( u32 w0, u32 w1 )
48 {
49 }
50
51 void S2DEX_Obj_LoadTxtr( u32 w0, u32 w1 )
52 {
53     gSPObjLoadTxtr( w1 );
54 }
55
56 void S2DEX_Obj_LdTx_Sprite( u32 w0, u32 w1 )
57 {
58     gSPObjLoadTxSprite( w1 );
59 }
60
61 void S2DEX_Obj_LdTx_Rect( u32 w0, u32 w1 )
62 {
63 }
64
65 void S2DEX_Obj_LdTx_Rect_R( u32 w0, u32 w1 )
66 {
67     gSPObjLoadTxRectR( w1 );
68 }
69
70 void S2DEX_Init()
71 {
72     // Set GeometryMode flags
73     GBI_InitFlags( F3DEX );
74
75     gSP.geometryMode = 0;
76
77     GBI.PCStackSize = 18;
78
79     //          GBI Command             Command Value           Command Function
80     GBI_SetGBI( G_SPNOOP,               F3D_SPNOOP,             F3D_SPNoOp );
81     GBI_SetGBI( G_BG_1CYC,              S2DEX_BG_1CYC,          S2DEX_BG_1Cyc );
82     GBI_SetGBI( G_BG_COPY,              S2DEX_BG_COPY,          S2DEX_BG_Copy );
83     GBI_SetGBI( G_OBJ_RECTANGLE,        S2DEX_OBJ_RECTANGLE,    S2DEX_Obj_Rectangle );
84     GBI_SetGBI( G_OBJ_SPRITE,           S2DEX_OBJ_SPRITE,       S2DEX_Obj_Sprite );
85     GBI_SetGBI( G_OBJ_MOVEMEM,          S2DEX_OBJ_MOVEMEM,      S2DEX_Obj_MoveMem );
86     GBI_SetGBI( G_DL,                   F3D_DL,                 F3D_DList );
87     GBI_SetGBI( G_SELECT_DL,            S2DEX_SELECT_DL,        S2DEX_Select_DL );
88     GBI_SetGBI( G_OBJ_RENDERMODE,       S2DEX_OBJ_RENDERMODE,   S2DEX_Obj_RenderMode );
89     GBI_SetGBI( G_OBJ_RECTANGLE_R,      S2DEX_OBJ_RECTANGLE_R,  S2DEX_Obj_Rectangle_R );
90     GBI_SetGBI( G_OBJ_LOADTXTR,         S2DEX_OBJ_LOADTXTR,     S2DEX_Obj_LoadTxtr );
91     GBI_SetGBI( G_OBJ_LDTX_SPRITE,      S2DEX_OBJ_LDTX_SPRITE,  S2DEX_Obj_LdTx_Sprite );
92     GBI_SetGBI( G_OBJ_LDTX_RECT,        S2DEX_OBJ_LDTX_RECT,    S2DEX_Obj_LdTx_Rect );
93     GBI_SetGBI( G_OBJ_LDTX_RECT_R,      S2DEX_OBJ_LDTX_RECT_R,  S2DEX_Obj_LdTx_Rect_R );
94     GBI_SetGBI( G_MOVEWORD,             F3D_MOVEWORD,           F3D_MoveWord );
95     GBI_SetGBI( G_SETOTHERMODE_H,       F3D_SETOTHERMODE_H,     F3D_SetOtherMode_H );
96     GBI_SetGBI( G_SETOTHERMODE_L,       F3D_SETOTHERMODE_L,     F3D_SetOtherMode_L );
97     GBI_SetGBI( G_ENDDL,                F3D_ENDDL,              F3D_EndDL );
98     GBI_SetGBI( G_RDPHALF_1,            F3D_RDPHALF_1,          F3D_RDPHalf_1 );
99     GBI_SetGBI( G_RDPHALF_2,            F3D_RDPHALF_2,          F3D_RDPHalf_2 );
100     GBI_SetGBI( G_LOAD_UCODE,           S2DEX_LOAD_UCODE,       F3DEX_Load_uCode );
101 }
102