1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-02 09:03:37 +00:00

Fix implementation of 0xD5 (Special_1) command for F3DEX2 ucode.

olivieryuyu found that 0xD5 command, when presents in ucode, updates combined matrix.
I could not remeber, which game uses implementation of F3DEX2_Special_1 with gSPDlistCount call.
Probably such game does not exists and this code was added by mistake. I removed it.
This commit is contained in:
Sergey Lipskiy 2017-09-13 17:59:04 +07:00
parent 187f9ef390
commit 8985e38bc0
4 changed files with 3 additions and 16 deletions

View File

@ -138,12 +138,8 @@ void F3DEX2_DMAIO( u32 w0, u32 w1 )
void F3DEX2_Special_1( u32 w0, u32 w1 )
{
if (GBI.isCombineMatrices()) {
const u32 mode = _SHIFTR( w0, 0, 8 );
gSPCombineMatrices(mode);
} else {
gSPDlistCount(_SHIFTR( w0, 0, 8 ), w1);
}
const u32 mode = _SHIFTR( w0, 0, 8 );
gSPCombineMatrices(mode);
}
void F3DEX2_Special_2( u32 w0, u32 w1 )

View File

@ -251,7 +251,6 @@ void GBIInfo::loadMicrocode(u32 uc_start, u32 uc_dstart, u16 uc_dsize)
current.negativeY = true;
current.textureGen = true;
current.texturePersp = true;
current.combineMatrices = false;
current.type = NONE;
// See if we can identify it by CRC
@ -293,11 +292,8 @@ void GBIInfo::loadMicrocode(u32 uc_start, u32 uc_dstart, u16 uc_dsize)
if (strncmp( &uc_str[14], "F3D", 3 ) == 0) {
if (uc_str[28] == '1' || strncmp(&uc_str[28], "0.95", 4) == 0 || strncmp(&uc_str[28], "0.96", 4) == 0)
type = F3DEX;
else if (uc_str[31] == '2') {
else if (uc_str[31] == '2')
type = F3DEX2;
if (uc_str[35] == 'H')
current.combineMatrices = true;
}
if (strncmp(&uc_str[14], "F3DF", 4) == 0)
current.textureGen = false;
else if (strncmp(&uc_str[14], "F3DZEX", 6) == 0) {

View File

@ -501,7 +501,6 @@ struct MicrocodeInfo
bool negativeY;
bool textureGen;
bool texturePersp;
bool combineMatrices;
};
struct GBIInfo
@ -519,7 +518,6 @@ struct GBIInfo
bool isNegativeY() const { return m_pCurrent != nullptr ? m_pCurrent->negativeY : true; }
bool isTextureGen() const { return m_pCurrent != nullptr ? m_pCurrent->textureGen: true; }
bool isTexturePersp() const { return m_pCurrent != nullptr ? m_pCurrent->texturePersp: true; }
bool isCombineMatrices() const { return m_pCurrent != nullptr ? m_pCurrent->combineMatrices: false; }
private:
void _flushCommands();

View File

@ -1768,9 +1768,6 @@ void gSPInsertMatrix( u32 where, u32 num )
f32 fraction, integer;
if (gSP.changed & CHANGED_MATRIX)
_gSPCombineMatrices();
if ((where & 0x3) || (where > 0x3C))
return;