1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-04 10:03:36 +00:00

Separate JFG microcode from DKR one because Vertex commands differ a bit.

This commit is contained in:
Sergey Lipskiy 2014-10-10 10:43:02 +07:00
parent 254f315803
commit 070f914583
6 changed files with 33 additions and 8 deletions

View File

@ -53,7 +53,22 @@ void F3DDKR_DMA_Vtx( u32 w0, u32 w1 )
gSP.vertexi += n;
}
void F3DDKR_DMA_Tri( u32 w0, u32 w1 )
void F3DJFG_DMA_Vtx(u32 w0, u32 w1)
{
if ((w0 & F3DDKR_VTX_APPEND)) {
if (gSP.matrix.billboard)
gSP.vertexi = 1;
} else
gSP.vertexi = 0;
u32 n = _SHIFTR(w0, 19, 5);
gSPDMAVertex(w1, n, gSP.vertexi + _SHIFTR(w0, 9, 5));
gSP.vertexi += n;
}
void F3DDKR_DMA_Tri(u32 w0, u32 w1)
{
gSPDMATriangles( w1, _SHIFTR( w0, 4, 12 ) );
gSP.vertexi = 0;
@ -120,3 +135,8 @@ void F3DDKR_Init()
gSPSetDMAOffsets( 0, 0 );
}
void F3DJFG_Init()
{
F3DDKR_Init();
GBI_SetGBI(G_DMA_VTX, F3DDKR_DMA_VTX, F3DJFG_DMA_Vtx);
}

View File

@ -10,5 +10,6 @@
#define F3DDKR_DMA_OFFSETS 0xBF
void F3DDKR_Init();
void F3DJFG_Init();
#endif

View File

@ -34,7 +34,7 @@ SpecialMicrocodeInfo specialMicrocodes[] =
{ F3DDKR, FALSE, 0x8d91244f, "Diddy Kong Racing" },
{ F3DDKR, FALSE, 0x6e6fc893, "Diddy Kong Racing" },
{ F3DDKR, FALSE, 0xbde9d1fb, "Jet Force Gemini" },
{ F3DJFG, FALSE, 0xbde9d1fb, "Jet Force Gemini" },
{ F3DPD, FALSE, 0x1c4f7869, "Perfect Dark" }
};
@ -136,6 +136,7 @@ void GBIInfo::_makeCurrent(MicrocodeInfo * _pCurrent)
case S2DEX: S2DEX_Init(); break;
case S2DEX2: S2DEX2_Init(); break;
case F3DDKR: F3DDKR_Init(); break;
case F3DJFG: F3DJFG_Init(); break;
case F3DWRUS: F3DWRUS_Init(); break;
case F3DPD: F3DPD_Init(); break;
}

5
GBI.h
View File

@ -16,8 +16,9 @@
#define S2DEX2 7
#define F3DPD 8
#define F3DDKR 9
#define F3DWRUS 10
#define NONE 11
#define F3DJFG 10
#define F3DWRUS 11
#define NONE 12
// Fixed point conversion factors
#define FIXED2FLOATRECIP1 0.5f

View File

@ -19,12 +19,13 @@ static const char *MicrocodeTypes[] =
"S2DEX",
"S2DEX2",
"Perfect Dark",
"DKR/JFG",
"DKR",
"JFG",
"Waverace US",
"None"
};
static const int numMicrocodeTypes = 11;
static const int numMicrocodeTypes = 12;
static unsigned int uc_crc;
static const char * uc_str;

View File

@ -16,12 +16,13 @@ static const char *MicrocodeTypes[] =
"S2DEX",
"S2DEX2",
"Perfect Dark",
"DKR/JFG",
"DKR",
"JFG",
"Waverace US",
"None"
};
static const int numMicrocodeTypes = 11;
static const int numMicrocodeTypes = 12;
static unsigned int uc_crc;
static const char * uc_str;