2017-03-20 20:51:11 +00:00
|
|
|
#include "RSP.h"
|
2018-06-11 13:12:13 +00:00
|
|
|
#include "3DMath.h"
|
2017-03-20 20:51:11 +00:00
|
|
|
|
2022-01-16 17:27:17 +00:00
|
|
|
#define ENDIAN_BIT_SWAP 0
|
|
|
|
|
|
|
|
void RSP_LoadMatrix( f32 mtx[4][4], word address )
|
2017-03-20 20:51:11 +00:00
|
|
|
{
|
|
|
|
struct _N64Matrix
|
|
|
|
{
|
|
|
|
s16 integer[4][4];
|
|
|
|
u16 fraction[4][4];
|
|
|
|
} *n64Mat = (struct _N64Matrix *)&RDRAM[address];
|
|
|
|
|
2022-01-16 17:27:17 +00:00
|
|
|
#ifdef NATIVE2
|
|
|
|
for (u32 i = 0; i < 4; i++)
|
|
|
|
for (u32 j = 0; j < 4; j++)
|
|
|
|
mtx[i][j] = GetFloatMatrixElement(n64Mat->integer[i][j], n64Mat->fraction[i][j]);
|
|
|
|
#else
|
2018-06-11 13:12:13 +00:00
|
|
|
for (u32 i = 0; i < 4; i++)
|
|
|
|
for (u32 j = 0; j < 4; j++)
|
2022-01-16 17:27:17 +00:00
|
|
|
mtx[i][j] = GetFloatMatrixElement(n64Mat->integer[i][j ^ ENDIAN_BIT_SWAP], n64Mat->fraction[i][j ^ ENDIAN_BIT_SWAP]);
|
|
|
|
#endif
|
2017-03-20 20:51:11 +00:00
|
|
|
}
|