Nugget
Loading...
Searching...
No Matches
Functions | Variables
gte-mvmva.c File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

 CESTER_TEST (mvmva_rt_v0_tr, gte_tests, cop2_putc(0, 0xf0000000);cop2_putc(1, 0x10000000);cop2_putc(2, 0x00000000);cop2_putc(3, 0x00000000);cop2_putc(4, 0x1000);gte_set_translation(10, 20, 30);cop2_put(0,(200<< 16)|100);cop2_put(1, 300);gte_clear_flag();cop2_cmd(COP2_MVMVA(1, 0, 0, 0, 0));int32_t mac1, mac2, mac3;cop2_get(25, mac1);cop2_get(26, mac2);cop2_get(27, mac3);cester_assert_int_eq(-190, mac1);cester_assert_int_eq(120, mac2);cester_assert_int_eq(330, mac3);) CESTER_TEST(mvmva_rt_v1_zero
 
 gte_set_identity_rotation ()
 
 cop2_put (2,(40<< 16)|30)
 
 cop2_put (3, 50)
 
 gte_clear_flag ()
 
 cop2_cmd (COP2_MVMVA(1, 0, 1, 3, 0))
 
 cop2_get (25, mac1)
 
 cop2_get (26, mac2)
 
 cop2_get (27, mac3)
 
 cester_assert_int_eq (30, mac1)
 
 cester_assert_int_eq (40, mac2)
 
 cester_assert_int_eq (50, mac3)
 
 CESTER_TEST (mvmva_rt_v2_bk, gte_tests, gte_set_identity_rotation();cop2_putc(13, 1000);cop2_putc(14, 2000);cop2_putc(15, 3000);cop2_put(4,(200<< 16)|100);cop2_put(5, 300);gte_clear_flag();cop2_cmd(COP2_MVMVA(1, 0, 2, 1, 0));int32_t mac1, mac2, mac3;cop2_get(25, mac1);cop2_get(26, mac2);cop2_get(27, mac3);cester_assert_int_eq(1100, mac1);cester_assert_int_eq(2200, mac2);cester_assert_int_eq(3300, mac3);) CESTER_TEST(mvmva_rt_ir_zero
 
 cop2_put (9, 500)
 
 cop2_put (10, 600)
 
 cop2_put (11, 700)
 
 cop2_cmd (COP2_MVMVA(1, 0, 3, 3, 0))
 
 cester_assert_int_eq (500, mac1)
 
 cester_assert_int_eq (600, mac2)
 
 cester_assert_int_eq (700, mac3)
 
 CESTER_TEST (mvmva_ll_v0_zero, gte_tests, gte_set_simple_light();cop2_put(0,(200<< 16)|100);cop2_put(1, 0x1000);gte_clear_flag();cop2_cmd(COP2_MVMVA(1, 1, 0, 3, 0));int32_t mac1, mac2, mac3;cop2_get(25, mac1);cop2_get(26, mac2);cop2_get(27, mac3);cester_assert_int_eq(0, mac1);cester_assert_int_eq(0, mac2);cester_assert_int_eq(0x1000, mac3);) CESTER_TEST(mvmva_lc_ir_bk
 
 gte_set_white_light_color ()
 
 cop2_putc (13, 100)
 
 cop2_putc (14, 200)
 
 cop2_putc (15, 300)
 
 cop2_put (9, 0x1000)
 
 cop2_put (10, 0x1000)
 
 cop2_put (11, 0x1000)
 
 cop2_cmd (COP2_MVMVA(1, 2, 3, 1, 0))
 
 cester_assert_int_eq (4196, mac1)
 
 cester_assert_int_eq (4296, mac2)
 
 cester_assert_int_eq (4396, mac3)
 
 CESTER_TEST (mvmva_cv2_fc_bug, gte_tests, gte_set_identity_rotation();gte_set_far_color(0x1000, 0x2000, 0x3000);cop2_put(0,(0x200<< 16)|0x100);cop2_put(1, 0x300);gte_clear_flag();cop2_cmd(COP2_MVMVA(1, 0, 0, 2, 0));int32_t mac1, mac2, mac3;uint32_t flag;cop2_get(25, mac1);cop2_get(26, mac2);cop2_get(27, mac3);flag=gte_read_flag();ramsyscall_printf("MVMVA cv=2: MAC=(%d,%d,%d) FLAG=0x%08x\n", mac1, mac2, mac3, flag);cester_assert_int_eq(0, mac1);cester_assert_int_eq(512, mac2);cester_assert_int_eq(768, mac3);cester_assert_uint_eq(0x00000000, flag);) CESTER_TEST(mvmva_mx3_garbage
 
 cop2_putc (0, 0x20001000)
 
 cop2_putc (1, 0x40003000)
 
 cop2_putc (2, 0x60005000)
 
 cop2_putc (3, 0x80007000)
 
 cop2_putc (4, 0x1000)
 
 cop2_put (8, 0x0800)
 
 cop2_put (0,(0x100<< 16)|0x100)
 
 cop2_put (1, 0x100)
 
 cop2_cmd (COP2_MVMVA(1, 3, 0, 3, 0))
 
 ramsyscall_printf ("MVMVA mx=3: MAC=(%d,%d,%d) FLAG=0x%08x\n", mac1, mac2, mac3, flag)
 
 cester_assert_int_eq (128, mac1)
 
 cester_assert_int_eq (2304, mac2)
 
 cester_assert_int_eq (3840, mac3)
 
 cester_assert_uint_eq (0x00000000, flag)
 

Variables

 gte_tests
 
int32_t mac1
 
int32_t mac2
 
int32_t mac3
 
uint32_t flag = gte_read_flag()
 

Function Documentation

◆ cester_assert_int_eq() [1/12]

cester_assert_int_eq ( 128  ,
mac1   
)

◆ cester_assert_int_eq() [2/12]

cester_assert_int_eq ( 2304  ,
mac2   
)

◆ cester_assert_int_eq() [3/12]

cester_assert_int_eq ( 30  ,
mac1   
)

◆ cester_assert_int_eq() [4/12]

cester_assert_int_eq ( 3840  ,
mac3   
)

◆ cester_assert_int_eq() [5/12]

cester_assert_int_eq ( 40  ,
mac2   
)

◆ cester_assert_int_eq() [6/12]

cester_assert_int_eq ( 4196  ,
mac1   
)

◆ cester_assert_int_eq() [7/12]

cester_assert_int_eq ( 4296  ,
mac2   
)

◆ cester_assert_int_eq() [8/12]

cester_assert_int_eq ( 4396  ,
mac3   
)

◆ cester_assert_int_eq() [9/12]

cester_assert_int_eq ( 50  ,
mac3   
)

◆ cester_assert_int_eq() [10/12]

cester_assert_int_eq ( 500  ,
mac1   
)

◆ cester_assert_int_eq() [11/12]

cester_assert_int_eq ( 600  ,
mac2   
)

◆ cester_assert_int_eq() [12/12]

cester_assert_int_eq ( 700  ,
mac3   
)

◆ cester_assert_uint_eq()

cester_assert_uint_eq ( 0x00000000  ,
flag   
)

◆ CESTER_TEST() [1/4]

CESTER_TEST ( mvmva_cv2_fc_bug  ,
gte_tests  ,
gte_set_identity_rotation();gte_set_far_color(0x1000, 0x2000, 0x3000);cop2_put(0,(0x200<< 16)|0x100);cop2_put(1, 0x300);gte_clear_flag();cop2_cmd(COP2_MVMVA(1, 0, 0, 2, 0));int32_t  mac1,
mac2  ,
mac3;uint32_t flag;cop2_get(25, mac1);cop2_get(26, mac2);cop2_get(27, mac3);  flag = gte_read_flag();      ramsyscall_printf("MVMVA cv=2: MAC=(%d,%d,%d) FLAG=0x%08x\n", mac1mac2mac3flag); cester_assert_int_eq(0, mac1); cester_assert_int_eq(512, mac2); cester_assert_int_eq(768, mac3); cester_assert_uint_eq(0x00000000, flag); 
)

◆ CESTER_TEST() [2/4]

CESTER_TEST ( mvmva_ll_v0_zero  ,
gte_tests  ,
gte_set_simple_light();cop2_put(0,(200<< 16)|100);cop2_put(1, 0x1000);gte_clear_flag();cop2_cmd(COP2_MVMVA(1, 1, 0, 3, 0));int32_t  mac1,
mac2  ,
mac3;cop2_get(25, mac1);cop2_get(26, mac2);cop2_get(27, mac3);cester_assert_int_eq(0, mac1);cester_assert_int_eq(0, mac2);cester_assert_int_eq(0x1000, mac3);   
)

◆ CESTER_TEST() [3/4]

CESTER_TEST ( mvmva_rt_v0_tr  ,
gte_tests  ,
cop2_putc(0, 0xf0000000);cop2_putc(1, 0x10000000);cop2_putc(2, 0x00000000);cop2_putc(3, 0x00000000);cop2_putc(4, 0x1000);gte_set_translation(10, 20, 30);cop2_put(0,(200<< 16)|100);cop2_put(1, 300);gte_clear_flag();cop2_cmd(COP2_MVMVA(1, 0, 0, 0, 0));int32_t  mac1,
mac2  ,
mac3;cop2_get(25, mac1);cop2_get(26, mac2);cop2_get(27, mac3);cester_assert_int_eq(-190, mac1);cester_assert_int_eq(120, mac2);cester_assert_int_eq(330, mac3);   
)

◆ CESTER_TEST() [4/4]

CESTER_TEST ( mvmva_rt_v2_bk  ,
gte_tests  ,
gte_set_identity_rotation();cop2_putc(13, 1000);cop2_putc(14, 2000);cop2_putc(15, 3000);cop2_put(4,(200<< 16)|100);cop2_put(5, 300);gte_clear_flag();cop2_cmd(COP2_MVMVA(1, 0, 2, 1, 0));int32_t  mac1,
mac2  ,
mac3;cop2_get(25, mac1);cop2_get(26, mac2);cop2_get(27, mac3);cester_assert_int_eq(1100, mac1);cester_assert_int_eq(2200, mac2);cester_assert_int_eq(3300, mac3);   
)

◆ cop2_cmd() [1/4]

cop2_cmd ( COP2_MVMVA(1, 0, 1, 3, 0)  )

◆ cop2_cmd() [2/4]

cop2_cmd ( COP2_MVMVA(1, 0, 3, 3, 0)  )

◆ cop2_cmd() [3/4]

cop2_cmd ( COP2_MVMVA(1, 2, 3, 1, 0)  )

◆ cop2_cmd() [4/4]

cop2_cmd ( COP2_MVMVA(1, 3, 0, 3, 0)  )

◆ cop2_get() [1/3]

cop2_get ( 25  ,
mac1   
)

◆ cop2_get() [2/3]

cop2_get ( 26  ,
mac2   
)

◆ cop2_get() [3/3]

cop2_get ( 27  ,
mac3   
)

◆ cop2_put() [1/11]

cop2_put ( ,
(0x100<< 16)|  0x100 
)

◆ cop2_put() [2/11]

cop2_put ( ,
0x100   
)

◆ cop2_put() [3/11]

cop2_put ( 10  ,
0x1000   
)

◆ cop2_put() [4/11]

cop2_put ( 10  ,
600   
)

◆ cop2_put() [5/11]

cop2_put ( 11  ,
0x1000   
)

◆ cop2_put() [6/11]

cop2_put ( 11  ,
700   
)

◆ cop2_put() [7/11]

cop2_put ( ,
(40<< 16)|  30 
)

◆ cop2_put() [8/11]

cop2_put ( ,
50   
)

◆ cop2_put() [9/11]

cop2_put ( ,
0x0800   
)

◆ cop2_put() [10/11]

cop2_put ( ,
0x1000   
)

◆ cop2_put() [11/11]

cop2_put ( ,
500   
)

◆ cop2_putc() [1/8]

cop2_putc ( ,
0x20001000   
)

◆ cop2_putc() [2/8]

cop2_putc ( ,
0x40003000   
)

◆ cop2_putc() [3/8]

cop2_putc ( 13  ,
100   
)

◆ cop2_putc() [4/8]

cop2_putc ( 14  ,
200   
)

◆ cop2_putc() [5/8]

cop2_putc ( 15  ,
300   
)

◆ cop2_putc() [6/8]

cop2_putc ( ,
0x60005000   
)

◆ cop2_putc() [7/8]

cop2_putc ( ,
0x80007000   
)

◆ cop2_putc() [8/8]

cop2_putc ( ,
0x1000   
)

◆ gte_clear_flag()

gte_clear_flag ( )

◆ gte_set_identity_rotation()

gte_set_identity_rotation ( )

◆ gte_set_white_light_color()

gte_set_white_light_color ( )

◆ ramsyscall_printf()

ramsyscall_printf ( )

Variable Documentation

◆ flag

flag = gte_read_flag()

◆ gte_tests

gte_tests

◆ mac1

int32_t mac1

◆ mac2

int32_t mac2

◆ mac3

int32_t mac3