diff --git a/dlist.asm b/dlist.asm index 4761aad..a28508f 100644 --- a/dlist.asm +++ b/dlist.asm @@ -105,23 +105,23 @@ WriteDList: la t8, view_mat1 - sh s2, 0x20(t8) // xx lo + sh s2, MAT_XX_FRAC(t8) sra t9, s2, 16 - sh t9, 0x00(t8) // xx hi + sh t9, MAT_XX(t8) subu v0, r0, v0 - sh v0, 0x24(t8) // xz lo + sh v0, MAT_XZ_FRAC(t8) sra t9, v0, 16 - sh t9, 0x04(t8) // xz hi + sh t9, MAT_XZ(t8) subu v0, r0, v0 - sh v0, 0x30(t8) // zx lo + sh v0, MAT_ZX_FRAC(t8) sra t9, v0, 16 - sh t9, 0x10(t8) // zx hi + sh t9, MAT_ZX(t8) - sh s2, 0x34(t8) // zz lo + sh s2, MAT_ZZ_FRAC(t8) sra t9, s2, 16 - sh t9, 0x14(t8) // zz hi + sh t9, MAT_ZZ(t8) or a0, s0, r0 or a1, s1, r0 @@ -216,10 +216,6 @@ view_mat0: constant PERSPECTIVE_NORMALIZATION($00FF) view_mat1: - // xx 0x00, xy 0x02, xz 0x04, xw 0x06 - // yx 0x08, yy 0x0A, yz 0x0C, yw 0x0E - // zx 0x10, zy 0x12, zz 0x14, zw 0x16 - // wx 0x18, wy 0x1A, wz 0x1C, ww 0x1E Mat.X($0001'0000, $0000'0000, $0000'0000, $0000'0000) Mat.Y($0000'0000, $0001'0000, $0000'0000, $0000'0000) Mat.Z($0000'0000, $0000'0000, $0001'0000, $0000'0000) diff --git a/inc/dlist.inc b/inc/dlist.inc index a6e7161..696df76 100644 --- a/inc/dlist.inc +++ b/inc/dlist.inc @@ -3,6 +3,43 @@ constant G_SETCIMB_UPPER_WORD(0xFF180000) } else { constant G_SETCIMB_UPPER_WORD(0xFF100000) } + +constant MAT_XX(0x00) +constant MAT_XY(0x02) +constant MAT_XZ(0x04) +constant MAT_XW(0x06) +constant MAT_YX(0x08) +constant MAT_YY(0x0A) +constant MAT_YZ(0x0C) +constant MAT_YW(0x0E) +constant MAT_ZX(0x10) +constant MAT_ZY(0x12) +constant MAT_ZZ(0x14) +constant MAT_ZW(0x16) +constant MAT_WX(0x18) +constant MAT_WY(0x1A) +constant MAT_WZ(0x1C) +constant MAT_WW(0x1E) + +constant MAT_FRAC(0x20) + +constant MAT_XX_FRAC(MAT_XX + MAT_FRAC) +constant MAT_XY_FRAC(MAT_XY + MAT_FRAC) +constant MAT_XZ_FRAC(MAT_XZ + MAT_FRAC) +constant MAT_XW_FRAC(MAT_XW + MAT_FRAC) +constant MAT_YX_FRAC(MAT_YX + MAT_FRAC) +constant MAT_YY_FRAC(MAT_YY + MAT_FRAC) +constant MAT_YZ_FRAC(MAT_YZ + MAT_FRAC) +constant MAT_YW_FRAC(MAT_YW + MAT_FRAC) +constant MAT_ZX_FRAC(MAT_ZX + MAT_FRAC) +constant MAT_ZY_FRAC(MAT_ZY + MAT_FRAC) +constant MAT_ZZ_FRAC(MAT_ZZ + MAT_FRAC) +constant MAT_ZW_FRAC(MAT_ZW + MAT_FRAC) +constant MAT_WX_FRAC(MAT_WX + MAT_FRAC) +constant MAT_WY_FRAC(MAT_WY + MAT_FRAC) +constant MAT_WZ_FRAC(MAT_WZ + MAT_FRAC) +constant MAT_WW_FRAC(MAT_WW + MAT_FRAC) + define dpos(0) macro WriteDL(evaluate L, evaluate R) {