X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=source%2Fgles2n64%2Fsrc%2FL3DEX2.cpp;fp=source%2Fgles2n64%2Fsrc%2FL3DEX2.cpp;h=4194a8b2ed349d26614aff37d485085f77d6d5e2;hb=34cf40586ac07c54d9bfc5be30f28743232b6d67;hp=0000000000000000000000000000000000000000;hpb=22726e4d55be26faa48b57b22689cbedde27ae44;p=mupen64plus-pandora.git diff --git a/source/gles2n64/src/L3DEX2.cpp b/source/gles2n64/src/L3DEX2.cpp new file mode 100644 index 0000000..4194a8b --- /dev/null +++ b/source/gles2n64/src/L3DEX2.cpp @@ -0,0 +1,61 @@ +#include "gles2N64.h" +#include "Debug.h" +#include "F3D.h" +#include "F3DEX.h" +#include "F3DEX2.h" +#include "L3DEX2.h" +#include "N64.h" +#include "RSP.h" +#include "RDP.h" +#include "gSP.h" +#include "gDP.h" +#include "GBI.h" + +void L3DEX2_Line3D( u32 w0, u32 w1 ) +{ + u32 wd = _SHIFTR( w0, 0, 8 ); + + if (wd == 0) + gSPLine3D( _SHIFTR( w0, 17, 7 ), _SHIFTR( w0, 9, 7 ), 0 ); + else + gSPLineW3D( _SHIFTR( w0, 17, 7 ), _SHIFTR( w0, 9, 7 ), wd, 0 ); +} + +void L3DEX2_Init() +{ + // Set GeometryMode flags + GBI_InitFlags( F3DEX2 ); + + GBI.PCStackSize = 18; + + // GBI Command Command Value Command Function +// GBI_SetGBI( G_BG_COPY, 0x0A, S2DEX_BG_Copy ); + GBI_SetGBI( G_RDPHALF_2, F3DEX2_RDPHALF_2, F3D_RDPHalf_2 ); + 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_RDPHALF_1, F3DEX2_RDPHALF_1, F3D_RDPHalf_1 ); + GBI_SetGBI( G_SPNOOP, F3DEX2_SPNOOP, F3D_SPNoOp ); + GBI_SetGBI( G_ENDDL, F3DEX2_ENDDL, F3D_EndDL ); + GBI_SetGBI( G_DL, F3DEX2_DL, F3D_DList ); + GBI_SetGBI( G_LOAD_UCODE, F3DEX2_LOAD_UCODE, F3DEX_Load_uCode ); + GBI_SetGBI( G_MOVEMEM, F3DEX2_MOVEMEM, F3DEX2_MoveMem ); + GBI_SetGBI( G_MOVEWORD, F3DEX2_MOVEWORD, F3DEX2_MoveWord ); + GBI_SetGBI( G_MTX, F3DEX2_MTX, F3DEX2_Mtx ); + GBI_SetGBI( G_GEOMETRYMODE, F3DEX2_GEOMETRYMODE, F3DEX2_GeometryMode ); + GBI_SetGBI( G_POPMTX, F3DEX2_POPMTX, F3DEX2_PopMtx ); + GBI_SetGBI( G_TEXTURE, F3DEX2_TEXTURE, F3DEX2_Texture ); + GBI_SetGBI( G_DMA_IO, F3DEX2_DMA_IO, F3DEX2_DMAIO ); + GBI_SetGBI( G_SPECIAL_1, F3DEX2_SPECIAL_1, F3DEX2_Special_1 ); + GBI_SetGBI( G_SPECIAL_2, F3DEX2_SPECIAL_2, F3DEX2_Special_2 ); + GBI_SetGBI( G_SPECIAL_3, F3DEX2_SPECIAL_3, F3DEX2_Special_3 ); + + GBI_SetGBI( G_VTX, F3DEX2_VTX, F3DEX2_Vtx ); + GBI_SetGBI( G_MODIFYVTX, F3DEX2_MODIFYVTX, F3DEX_ModifyVtx ); + GBI_SetGBI( G_CULLDL, F3DEX2_CULLDL, F3DEX_CullDL ); + GBI_SetGBI( G_BRANCH_Z, F3DEX2_BRANCH_Z, F3DEX_Branch_Z ); +// GBI_SetGBI( G_TRI1, F3DEX2_TRI1, F3DEX2_Tri1 ); +// GBI_SetGBI( G_TRI2, F3DEX2_TRI2, F3DEX_Tri2 ); +// GBI_SetGBI( G_QUAD, F3DEX2_QUAD, F3DEX2_Quad ); + GBI_SetGBI( G_LINE3D, L3DEX2_LINE3D, L3DEX2_Line3D ); +} +