Esempio n. 1
0
void F3DDKR_DMA_Mtx( u32 w0, u32 w1 )
{
   if (_SHIFTR( w0, 0, 16 ) != 64)
   {
      //      GBI_DetectUCode(); // Something's wrong
#ifdef DEBUG
      DebugMsg( DEBUG_MEDIUM | DEBUG_HIGH | DEBUG_ERROR, "G_MTX: address = 0x%08X    length = %i    params = 0x%02X\n", w1, _SHIFTR( w0, 0, 16 ), _SHIFTR( w0, 16, 8 ) );
#endif
      return;
   }

   u32 index = _SHIFTR( w0, 16, 4 );
   u32 multiply;

   if (index == 0) // DKR
   {
      index = _SHIFTR( w0, 22, 2 );
      multiply = 0;
   }
   else // Gemini
   {
      multiply = _SHIFTR( w0, 23, 1 );
   }

   gSPDMAMatrix( w1, index, multiply );
}
Esempio n. 2
0
void F3DDKR_DMA_Mtx( u32 w0, u32 w1 )
{
	if (_SHIFTR( w0, 0, 16 ) != 64) {
#ifdef DEBUG
	DebugMsg( DEBUG_MEDIUM | DEBUG_HIGH | DEBUG_ERROR, "G_MTX: address = 0x%08X    length = %i    params = 0x%02X\n", w1, _SHIFTR( w0, 0, 16 ), _SHIFTR( w0, 16, 8 ) );
#endif
		return;
	}

	u32 index = _SHIFTR( w0, 16, 4 );
	u32 multiply;

	if (index == 0) {// DKR
		index = _SHIFTR( w0, 22, 2 );
		multiply = 0;
	}
	else { // JFG
		multiply = _SHIFTR( w0, 23, 1 );
	}

	gSPDMAMatrix( w1, index, multiply );
}