11#pragma once
22
3+ #define EMULATE_GTE //enable me to enable gte simulation (and do not emit gte asm).
4+
35#include <ctr/math.h>
6+ #if !defined(EMULATE_GTE )
47#include <ctr/nugget/inline_n.h>
8+ #include <ctr/gte_extended.h>
9+ #else
10+ #include <ctr/gte_simulator.h>
11+ #endif
512
613typedef enum GTE_ROW_INDEX
714{
@@ -27,6 +34,14 @@ typedef enum GTE_VECTOR
2734 GTE_VECTOR_MAC , /* Vec */
2835} GTE_VECTOR ;
2936
37+ typedef enum GTE_TRANS_VECTOR
38+ {
39+ GTE_TRANS_TRANSLATION , /*Vec*/
40+ GTE_TRANS_BG_COLOR , /*Vec*/
41+ GTE_TRANS_FAR_COLOR , /*Vec*/
42+ GTE_TRANS_NONE
43+ } GTE_TRANS_VECTOR ;
44+
3045typedef enum GTE_IR
3146{
3247 GTE_IR_0 , /* s16 */
@@ -53,6 +68,7 @@ typedef enum GTE_CALC
5368#define _CAT (a , b ) a##b
5469#define CAT (a , b ) _CAT(a, b)
5570#define CAT3 (a , b , c ) CAT(CAT(a, b), c)
71+ #define CAT4 (a , b , c , d ) CAT(CAT(CAT(a, b), c), d)
5672
5773/* Private definitions */
5874#define _gte_loadSVecMatrix_GTE_MATRIX_ROT_GTE_ROW_INDEX_0 (v ) gte_ldsvrtrow0(v)
@@ -63,12 +79,7 @@ typedef enum GTE_CALC
6379#define _gte_loadSVec_GTE_VECTOR_2 (v ) gte_ldv2(v)
6480#define _gte_loadSVec_GTE_VECTOR_IR (v ) gte_ldsv(v)
6581#define _gte_loadVec_GTE_VECTOR_IR (v ) gte_ldlvl(v)
66- #define _gte_loadVec_GTE_VECTOR_MAC (v ) __asm__ volatile ( \
67- "lwc2 $25, 0( %0 );" \
68- "lwc2 $26, 4( %0 );" \
69- "lwc2 $27, 8( %0 );" \
70- : \
71- : "r"( v ) )
82+ #define _gte_loadVec_GTE_VECTOR_MAC (v ) _Impl_gte_loadVec_GTE_VECTOR_MAC(v)
7283#define _gte_readMac_GTE_MAC_0 (out ) gte_stopz(out)
7384#define _gte_readMac_GTE_MAC_1 (out ) gte_stlvnl0(out)
7485#define _gte_readMac_GTE_MAC_2 (out ) gte_stlvnl1(out)
@@ -86,15 +97,7 @@ typedef enum GTE_CALC
8697#define _gte_interpolate_GTE_CALC_FLOATING_POINT () gte_gpf12()
8798#define _gte_interpolateBase_GTE_CALC_INT () gte_gpl0()
8899#define _gte_interpolateBase_GTE_CALC_FLOATING_POINT () gte_gpl12()
89- #define _gte_leadingZeroes (out , in ) __asm__ volatile ( \
90- "mtc2 %1, $30;" \
91- "nop;" \
92- "nop;" \
93- "swc2 $31, 0( %0 );" \
94- : \
95- : "r"( out ), "r"( in ) \
96- : "memory" \
97- )
100+ #define _gte_leadingZeroes (out , in ) _Impl_gte_leadingZeroes(out, in)
98101
99102/* API */
100103#define gte_readMac (out , macType ) CAT(_gte_readMac_, macType)(out)
0 commit comments