Skip to content

Commit 5ebc34b

Browse files
committed
Fix c_guMtxQuat
Add missing macros Commit missed assembly changes
1 parent ee3e2e0 commit 5ebc34b

File tree

3 files changed

+21
-16
lines changed

3 files changed

+21
-16
lines changed

gc/ogc/gu.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -444,7 +444,7 @@ void guMtx44RotAxisRad(Mtx44 mt,const guVector *axis,f32 rad);
444444
#define guQuatAdd c_guQuatAdd
445445
#define guQuatSub c_guQuatSub
446446
#define guQuatMultiply c_guQuatMultiply
447-
#define guQuatNoramlize c_guQuatNormalize
447+
#define guQuatNormalize c_guQuatNormalize
448448
#define guQuatInverse c_guQuatInverse
449449
#define guQuatMtx c_guQuatMtx
450450

@@ -482,6 +482,7 @@ void guMtx44RotAxisRad(Mtx44 mt,const guVector *axis,f32 rad);
482482
#define guQuatMultiply ps_guQuatMultiply
483483
#define guQuatNormalize ps_guQuatNormalize
484484
#define guQuatInverse ps_guQuatInverse
485+
#define guQuatMtx c_guQuatMtx
485486

486487
#define guMtxIdentity ps_guMtxIdentity
487488
#define guMtxCopy ps_guMtxCopy
@@ -499,6 +500,7 @@ void guMtx44RotAxisRad(Mtx44 mt,const guVector *axis,f32 rad);
499500
#define guMtxRotTrig ps_guMtxRotTrig
500501
#define guMtxRotAxisRad ps_guMtxRotAxisRad
501502
#define guMtxReflect ps_guMtxReflect
503+
#define guMtxQuat c_guMtxQuat
502504

503505
#endif //MTX_USE_PS
504506

libogc/gu.c

+9-6
Original file line numberDiff line numberDiff line change
@@ -1236,16 +1236,19 @@ void c_guQuatMtx(guQuaternion *a,const Mtx m)
12361236
void c_guMtxQuat(Mtx m,const guQuaternion *a)
12371237
{
12381238
guMtxRowCol(m,0,0) = 1.0f - 2.0f*a->y*a->y - 2.0f*a->z*a->z;
1239-
guMtxRowCol(m,1,0) = 2.0f*a->x*a->y - 2.0f*a->z*a->w;
1240-
guMtxRowCol(m,2,0) = 2.0f*a->x*a->z + 2.0f*a->y*a->w;
1239+
guMtxRowCol(m,0,1) = 2.0f*a->x*a->y - 2.0f*a->w*a->z;
1240+
guMtxRowCol(m,0,2) = 2.0f*a->x*a->z + 2.0f*a->w*a->y;
1241+
guMtxRowCol(m,0,3) = 0.0f;
12411242

1242-
guMtxRowCol(m,0,1) = 2.0f*a->x*a->y + 2.0f*a->z*a->w;
1243+
guMtxRowCol(m,1,0) = 2.0f*a->x*a->y + 2.0f*a->w*a->z;
12431244
guMtxRowCol(m,1,1) = 1.0f - 2.0f*a->x*a->x - 2.0f*a->z*a->z;
1244-
guMtxRowCol(m,2,1) = 2.0f*a->z*a->y - 2.0f*a->x*a->w;
1245+
guMtxRowCol(m,1,2) = 2.0f*a->y*a->z - 2.0f*a->w*a->x;
1246+
guMtxRowCol(m,1,3) = 0.0f;
12451247

1246-
guMtxRowCol(m,0,2) = 2.0f*a->x*a->z - 2.0f*a->y*a->w;
1247-
guMtxRowCol(m,1,2) = 2.0f*a->z*a->y + 2.0f*a->x*a->w;
1248+
guMtxRowCol(m,2,0) = 2.0f*a->x*a->z - 2.0f*a->w*a->y;
1249+
guMtxRowCol(m,2,1) = 2.0f*a->y*a->z + 2.0f*a->w*a->x;
12481250
guMtxRowCol(m,2,2) = 1.0f - 2.0f*a->x*a->x - 2.0f*a->y*a->y;
1251+
guMtxRowCol(m,2,3) = 0.0f;
12491252
}
12501253

12511254
void guVecHalfAngle(const guVector *a,const guVector *b,guVector *half)

libogc/gu_psasm.S

+9-9
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@
4040
.globl ps_guMtxConcat
4141
//r3 = mtxA, r4 = mtxB, r5 = mtxAB
4242
ps_guMtxConcat:
43-
stwu r1,-64(r1)
43+
stwu sp,-64(sp)
4444
psq_l A00_A01,0(r3),0,0
45-
stfd fr14,8(r1)
45+
stfd fr14,8(sp)
4646
psq_l B00_B01,0(r4),0,0
4747
lis r6,Unit01@ha
4848
psq_l B02_B03,8(r4),0,0
49-
stfd fr15,16(r1)
49+
stfd fr15,16(sp)
5050
addi r6,r6,Unit01@l
51-
stfd fr31,40(r1)
51+
stfd fr31,40(sp)
5252
psq_l B10_B11,16(r4),0,0
5353
ps_muls0 D00_D01,B00_B01,A00_A01
5454
psq_l A10_A11,16(r3),0,0
@@ -81,15 +81,15 @@ ps_guMtxConcat:
8181
ps_madds1 D20_D21,B10_B11,A20_A21,D20_D21
8282
ps_madds1 D22_D23,B12_B13,A20_A21,D22_D23
8383
ps_madds0 D20_D21,B20_B21,A22_A23,D20_D21
84-
lfd fr14,8(r1)
84+
lfd fr14,8(sp)
8585
psq_st D12_D13,24(r5),0,0
8686
ps_madds0 D22_D23,B22_B23,A22_A23,D22_D23
8787
psq_st D20_D21,32(r5),0,0
8888
ps_madds1 D22_D23,UNIT01,A22_A23,D22_D23
89-
lfd fr15,16(r1)
89+
lfd fr15,16(sp)
9090
psq_st D22_D23,40(r5),0,0
91-
lfd fr31,40(r1)
92-
addi r1,r1,64
91+
lfd fr31,40(sp)
92+
addi sp,sp,64
9393
blr
9494

9595
.globl ps_guMtxIdentity
@@ -684,7 +684,7 @@ ps_guVecMultiplySR:
684684
ps_madd fr11,fr3,fr7,fr10
685685
psq_st fr11,4(r5),1,0 // store Y
686686
ps_madd fr13,fr5,fr7,fr12
687-
psq_st fr13,8(r5),1,0 // sore Z
687+
psq_st fr13,8(r5),1,0 // store Z
688688
blr
689689

690690
.globl ps_quQuatScale

0 commit comments

Comments
 (0)