mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +00:00
Implement gSPSetStatus.
This commit is contained in:
parent
c3caf2747d
commit
cf2bce9176
|
@ -122,6 +122,7 @@
|
||||||
#define G_MW_CLIP 0x04
|
#define G_MW_CLIP 0x04
|
||||||
#define G_MW_SEGMENT 0x06
|
#define G_MW_SEGMENT 0x06
|
||||||
#define G_MW_FOG 0x08
|
#define G_MW_FOG 0x08
|
||||||
|
#define G_MW_GENSTAT 0x08
|
||||||
#define G_MW_LIGHTCOL 0x0A
|
#define G_MW_LIGHTCOL 0x0A
|
||||||
#define G_MW_FORCEMTX 0x0C
|
#define G_MW_FORCEMTX 0x0C
|
||||||
#define G_MW_POINTS 0x0C
|
#define G_MW_POINTS 0x0C
|
||||||
|
|
|
@ -44,6 +44,19 @@ void S2DEX_Obj_MoveMem( u32 w0, u32 w1 )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void S2DEX_MoveWord( u32 w0, u32 w1 )
|
||||||
|
{
|
||||||
|
switch (_SHIFTR( w0, 16, 8 ))
|
||||||
|
{
|
||||||
|
case G_MW_GENSTAT:
|
||||||
|
gSPSetStatus(_SHIFTR(w0, 0, 16), w1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
F3D_MoveWord(w0, w1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void S2DEX_Select_DL( u32 w0, u32 w1 )
|
void S2DEX_Select_DL( u32 w0, u32 w1 )
|
||||||
{
|
{
|
||||||
LOG(LOG_WARNING, "S2DEX_Select_DL unimplemented\n");
|
LOG(LOG_WARNING, "S2DEX_Select_DL unimplemented\n");
|
||||||
|
@ -102,7 +115,7 @@ void S2DEX_Init()
|
||||||
GBI_SetGBI( G_OBJ_LDTX_SPRITE, S2DEX_OBJ_LDTX_SPRITE, S2DEX_Obj_LdTx_Sprite );
|
GBI_SetGBI( G_OBJ_LDTX_SPRITE, S2DEX_OBJ_LDTX_SPRITE, S2DEX_Obj_LdTx_Sprite );
|
||||||
GBI_SetGBI( G_OBJ_LDTX_RECT, S2DEX_OBJ_LDTX_RECT, S2DEX_Obj_LdTx_Rect );
|
GBI_SetGBI( G_OBJ_LDTX_RECT, S2DEX_OBJ_LDTX_RECT, S2DEX_Obj_LdTx_Rect );
|
||||||
GBI_SetGBI( G_OBJ_LDTX_RECT_R, S2DEX_OBJ_LDTX_RECT_R, S2DEX_Obj_LdTx_Rect_R );
|
GBI_SetGBI( G_OBJ_LDTX_RECT_R, S2DEX_OBJ_LDTX_RECT_R, S2DEX_Obj_LdTx_Rect_R );
|
||||||
GBI_SetGBI( G_MOVEWORD, F3D_MOVEWORD, F3D_MoveWord );
|
GBI_SetGBI( G_MOVEWORD, F3D_MOVEWORD, S2DEX_MoveWord );
|
||||||
GBI_SetGBI( G_SETOTHERMODE_H, F3D_SETOTHERMODE_H, F3D_SetOtherMode_H );
|
GBI_SetGBI( G_SETOTHERMODE_H, F3D_SETOTHERMODE_H, F3D_SetOtherMode_H );
|
||||||
GBI_SetGBI( G_SETOTHERMODE_L, F3D_SETOTHERMODE_L, F3D_SetOtherMode_L );
|
GBI_SetGBI( G_SETOTHERMODE_L, F3D_SETOTHERMODE_L, F3D_SetOtherMode_L );
|
||||||
GBI_SetGBI( G_ENDDL, F3D_ENDDL, F3D_EndDL );
|
GBI_SetGBI( G_ENDDL, F3D_ENDDL, F3D_EndDL );
|
||||||
|
|
|
@ -10,6 +10,19 @@
|
||||||
#include "RSP.h"
|
#include "RSP.h"
|
||||||
#include "Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
|
void S2DEX2_MoveWord( u32 w0, u32 w1 )
|
||||||
|
{
|
||||||
|
switch (_SHIFTR( w0, 16, 8 ))
|
||||||
|
{
|
||||||
|
case G_MW_GENSTAT:
|
||||||
|
gSPSetStatus(_SHIFTR(w0, 0, 16), w1);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
F3DEX2_MoveWord(w0, w1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void S2DEX2_Init()
|
void S2DEX2_Init()
|
||||||
{
|
{
|
||||||
gSPSetupFunctions();
|
gSPSetupFunctions();
|
||||||
|
@ -33,7 +46,7 @@ void S2DEX2_Init()
|
||||||
GBI_SetGBI( G_OBJ_LDTX_SPRITE, S2DEX2_OBJ_LDTX_SPRITE, S2DEX_Obj_LdTx_Sprite );
|
GBI_SetGBI( G_OBJ_LDTX_SPRITE, S2DEX2_OBJ_LDTX_SPRITE, S2DEX_Obj_LdTx_Sprite );
|
||||||
GBI_SetGBI( G_OBJ_LDTX_RECT, S2DEX2_OBJ_LDTX_RECT, S2DEX_Obj_LdTx_Rect );
|
GBI_SetGBI( G_OBJ_LDTX_RECT, S2DEX2_OBJ_LDTX_RECT, S2DEX_Obj_LdTx_Rect );
|
||||||
GBI_SetGBI( G_OBJ_LDTX_RECT_R, S2DEX2_OBJ_LDTX_RECT_R, S2DEX_Obj_LdTx_Rect_R );
|
GBI_SetGBI( G_OBJ_LDTX_RECT_R, S2DEX2_OBJ_LDTX_RECT_R, S2DEX_Obj_LdTx_Rect_R );
|
||||||
GBI_SetGBI( G_MOVEWORD, F3DEX2_MOVEWORD, F3DEX2_MoveWord );
|
GBI_SetGBI( G_MOVEWORD, F3DEX2_MOVEWORD, S2DEX2_MoveWord );
|
||||||
GBI_SetGBI( G_SETOTHERMODE_H, F3DEX2_SETOTHERMODE_H, F3DEX2_SetOtherMode_H );
|
GBI_SetGBI( G_SETOTHERMODE_H, F3DEX2_SETOTHERMODE_H, F3DEX2_SetOtherMode_H );
|
||||||
GBI_SetGBI( G_SETOTHERMODE_L, F3DEX2_SETOTHERMODE_L, F3DEX2_SetOtherMode_L );
|
GBI_SetGBI( G_SETOTHERMODE_L, F3DEX2_SETOTHERMODE_L, F3DEX2_SetOtherMode_L );
|
||||||
GBI_SetGBI( G_ENDDL, F3DEX2_ENDDL, F3D_EndDL );
|
GBI_SetGBI( G_ENDDL, F3DEX2_ENDDL, F3D_EndDL );
|
||||||
|
|
|
@ -1789,6 +1789,11 @@ void gSPLineW3D( s32 v0, s32 v1, s32 wd, s32 flag )
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void gSPSetStatus(u32 sid, u32 val)
|
||||||
|
{
|
||||||
|
gSP.status[sid>>2] = val;
|
||||||
|
}
|
||||||
|
|
||||||
void gSPObjLoadTxtr( u32 tx )
|
void gSPObjLoadTxtr( u32 tx )
|
||||||
{
|
{
|
||||||
const u32 address = RSP_SegmentToPhysical( tx );
|
const u32 address = RSP_SegmentToPhysical( tx );
|
||||||
|
|
|
@ -173,6 +173,7 @@ void gSPSetOtherMode_H(u32 _length, u32 _shift, u32 _data);
|
||||||
void gSPSetOtherMode_L(u32 _length, u32 _shift, u32 _data);
|
void gSPSetOtherMode_L(u32 _length, u32 _shift, u32 _data);
|
||||||
void gSPLine3D(s32 v0, s32 v1, s32 flag);
|
void gSPLine3D(s32 v0, s32 v1, s32 flag);
|
||||||
void gSPLineW3D( s32 v0, s32 v1, s32 wd, s32 flag );
|
void gSPLineW3D( s32 v0, s32 v1, s32 wd, s32 flag );
|
||||||
|
void gSPSetStatus(u32 sid, u32 val);
|
||||||
void gSPObjRectangle(u32 _sp );
|
void gSPObjRectangle(u32 _sp );
|
||||||
void gSPObjRectangleR(u32 _sp);
|
void gSPObjRectangleR(u32 _sp);
|
||||||
void gSPObjSprite(u32 _sp);
|
void gSPObjSprite(u32 _sp);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user