Dave2001
Moderator
Hmm.. it appears to be YET ANOTHER matrix problem. :devil:
An interesting effect:
When I comment out the last line in matrix multiplication, the zooming in the game works perfectly, but the mario logo, text, and portraits do not work.
void modelview_mul (float m[4][4])
{
float m_src[4][4];
memcpy (m_src, rdp.model, 64);
for (int i=0; i<4; i++)
{
for (int j=0; j<4; j++)
{
rdp.model[j] =
m_src[0] * m[j][0] +
m_src[1] * m[j][1] +
m_src[2] * m[j][2]/* +
m_src[3] * m[j][3]*/;
}
}
}
or even more specific, if I don't add the projection matrix's z:
v.x = x*rdp.proj[0][0] + y*rdp.proj[1][0] + z*rdp.proj[2][0] + rdp.proj[3][0];
v.y = x*rdp.proj[0][1] + y*rdp.proj[1][1] + z*rdp.proj[2][1] + rdp.proj[3][1];
v.z = x*rdp.proj[0][2] + y*rdp.proj[1][2] + z*rdp.proj[2][2];// + rdp.proj[3][2];
An interesting effect:
When I comment out the last line in matrix multiplication, the zooming in the game works perfectly, but the mario logo, text, and portraits do not work.
void modelview_mul (float m[4][4])
{
float m_src[4][4];
memcpy (m_src, rdp.model, 64);
for (int i=0; i<4; i++)
{
for (int j=0; j<4; j++)
{
rdp.model[j] =
m_src[0] * m[j][0] +
m_src[1] * m[j][1] +
m_src[2] * m[j][2]/* +
m_src[3] * m[j][3]*/;
}
}
}
or even more specific, if I don't add the projection matrix's z:
v.x = x*rdp.proj[0][0] + y*rdp.proj[1][0] + z*rdp.proj[2][0] + rdp.proj[3][0];
v.y = x*rdp.proj[0][1] + y*rdp.proj[1][1] + z*rdp.proj[2][1] + rdp.proj[3][1];
v.z = x*rdp.proj[0][2] + y*rdp.proj[1][2] + z*rdp.proj[2][2];// + rdp.proj[3][2];
Last edited: