42static void drawTexWindow8Tri(uint8_t mask_x, uint8_t off_x) {
44 rasterClearTestRegion(0, 0, 64, 16);
46 setTextureWindow(mask_x, 0, off_x, 0);
54 rasterFlushPrimitive();
57static void drawTexWindow15Tri(uint8_t mask_x, uint8_t off_x) {
59 rasterClearTestRegion(0, 0, 32, 16);
61 setTextureWindow(mask_x, 0, off_x, 0);
67 rasterFlushPrimitive();
72static void drawTexWindow8TriV(uint8_t mask_y, uint8_t off_y) {
74 rasterClearTestRegion(0, 0, 64, 16);
76 setTextureWindow(0, mask_y, 0, off_y);
82 rasterFlushPrimitive();
95CESTER_TEST(texwin8_mask01_off00_u0, gpu_raster_phase9,
96 drawTexWindow8Tri(0x01, 0x00);
100CESTER_TEST(texwin8_mask01_off00_u7, gpu_raster_phase9,
101 drawTexWindow8Tri(0x01, 0x00);
104CESTER_TEST(texwin8_mask01_off00_u8_wraps_to_0, gpu_raster_phase9,
105 drawTexWindow8Tri(0x01, 0x00);
109CESTER_TEST(texwin8_mask01_off00_u15_wraps_to_7, gpu_raster_phase9,
110 drawTexWindow8Tri(0x01, 0x00);
114CESTER_TEST(texwin8_mask01_off00_u16, gpu_raster_phase9,
115 drawTexWindow8Tri(0x01, 0x00);
119CESTER_TEST(texwin8_mask01_off00_u24_wraps_to_16, gpu_raster_phase9,
120 drawTexWindow8Tri(0x01, 0x00);
131CESTER_TEST(texwin8_mask01_off01_u0_forced_to_8, gpu_raster_phase9,
132 drawTexWindow8Tri(0x01, 0x01);
135CESTER_TEST(texwin8_mask01_off01_u3_forced_to_b, gpu_raster_phase9,
136 drawTexWindow8Tri(0x01, 0x01);
148CESTER_TEST(texwin8_mask03_off00_u20_wraps_to_4, gpu_raster_phase9,
149 drawTexWindow8Tri(0x03, 0x00);
153CESTER_TEST(texwin8_mask03_off00_u31_wraps_to_7, gpu_raster_phase9,
154 drawTexWindow8Tri(0x03, 0x00);
164CESTER_TEST(texwin8_mask07_off03_u0_forced_to_18, gpu_raster_phase9,
165 drawTexWindow8Tri(0x07, 0x03);
169CESTER_TEST(texwin8_mask07_off03_u5_forced_to_1d, gpu_raster_phase9,
170 drawTexWindow8Tri(0x07, 0x03);
185CESTER_TEST(texwin8_maskV01_off00_v0, gpu_raster_phase9,
186 drawTexWindow8TriV(0x01, 0x00);
198CESTER_TEST(texwin15_mask01_off00_u0, gpu_raster_phase9,
199 drawTexWindow15Tri(0x01, 0x00);
205CESTER_TEST(texwin15_mask01_off00_u7, gpu_raster_phase9,
206 drawTexWindow15Tri(0x01, 0x00);
210CESTER_TEST(texwin15_mask01_off00_u8_wraps_to_0, gpu_raster_phase9,
211 drawTexWindow15Tri(0x01, 0x00);
215CESTER_TEST(texwin15_mask01_off00_u15_wraps_to_7, gpu_raster_phase9,
216 drawTexWindow15Tri(0x01, 0x00);
226CESTER_TEST(texwin15_mask01_off01_u0_forced_to_8, gpu_raster_phase9,
227 drawTexWindow15Tri(0x01, 0x01);
231CESTER_TEST(texwin15_mask01_off01_u3_forced_to_b, gpu_raster_phase9,
232 drawTexWindow15Tri(0x01, 0x01);
236CESTER_TEST(texwin15_mask01_off01_u8_already_set, gpu_raster_phase9,
237 drawTexWindow15Tri(0x01, 0x01);
246CESTER_TEST(texwin15_mask03_off00_u13, gpu_raster_phase9,
247 drawTexWindow15Tri(0x03, 0x00);
CESTER_BODY(static int s_got40;static int s_got80;static uint32_t s_cause;static uint32_t s_epc;static uint32_t s_from;static uint32_t *s_resume;static uint32_t *s_regs;static uint32_t(*s_customhandler)()=NULL;static uint32_t s_oldIMASK;static uint32_t s_oldDPCR;static uint32_t s_oldDICR;uint32_t handler(uint32_t *regs, uint32_t from) { if(from==0x40) s_got40=1;if(from==0x80) s_got80=1;uint32_t cause;uint32_t epc;s_from=from;asm("mfc0 %0, $13\nnop\nmfc0 %1, $14\nnop" :"=r"(cause), "=r"(epc));s_cause=cause;s_epc=epc;if(s_customhandler) { return s_customhandler();} else { return s_resume ?((uint32_t) s_resume) :(epc+4);} } void installExceptionHandlers(uint32_t(*handler)(uint32_t *regs, uint32_t from));void uninstallExceptionHandlers();uint32_t branchbranch1();uint32_t branchbranch2();uint32_t jumpjump1();uint32_t jumpjump2();uint32_t cpu_LWR_LWL_half(uint32_t buff[], uint32_t initial);uint32_t cpu_LWR_LWL_nodelay(uint32_t buff[], uint32_t initial);uint32_t cpu_LWR_LWL_delayed(uint32_t buff[], uint32_t initial);uint32_t cpu_LWR_LWL_load_different(uint32_t buff[], uint32_t initial);uint32_t cpu_LW_LWR(uint32_t buff[], uint32_t initial);uint32_t cpu_delayed_load(uint32_t buff[], uint32_t override);uint32_t cpu_delayed_load_cancelled(uint32_t buff[], uint32_t override);uint64_t cpu_delayed_load_load(uint32_t buff[], uint32_t override);uint32_t linkandload();uint32_t lwandlink();uint32_t nolink();static int s_interruptsWereEnabled;) CESTER_BEFORE_EACH(cpu_tests
CESTER_TEST(cpu_cop0_basic_write_bp, cpu_tests, uint32_t expectedEPC;uint32_t t;volatile uint32_t *ptr=(volatile uint32_t *) 0x58; *ptr=1;__asm__ volatile("" " lui %0, 0b1100101010000000\n" " mtc0 %0, $7\n" " li %0, 0x58\n" " mtc0 %0, $5\n" " li %0, 0xfffffff0\n" " mtc0 %0, $9\n" :"=r"(t));cester_assert_uint_eq(1, *ptr);__asm__ volatile("la %0, 1f\n1:\nsw $0, 0x58($0)" :"=r"(expectedEPC));__asm__ volatile("mtc0 $0, $7\n");cester_assert_uint_eq(0, *ptr);cester_assert_uint_eq(1, s_got40);cester_assert_uint_eq(0, s_got80);cester_assert_uint_eq(0x40, s_from);cester_assert_uint_eq(expectedEPC, s_epc);) CESTER_TEST(cpu_cop0_kseg_write_bp
#define TW15_M01_O01_U0_Y0
Definition raster-expected-phase9.h:56
#define TW15_M01_O00_U15_Y0
Definition raster-expected-phase9.h:53
#define TW15_M01_O01_U3_Y0
Definition raster-expected-phase9.h:57
#define TW15_M01_O01_U8_Y0
Definition raster-expected-phase9.h:58
#define TW15_M01_O00_U0_Y0
Definition raster-expected-phase9.h:50
#define TW15_M03_O00_U13_Y0
Definition raster-expected-phase9.h:61
#define TW15_M01_O00_U8_Y0
Definition raster-expected-phase9.h:52
#define TW15_M01_O00_U7_Y0
Definition raster-expected-phase9.h:51
#define ASSERT_PIXEL_EQ(expected, x_, y_)
Definition raster-helpers.h:472
#define CLUT8_FIELD
Definition texture-fixtures.h:84
#define TEX15_TY
Definition texture-fixtures.h:66
#define TEX8_TY
Definition texture-fixtures.h:61
#define TEX15_TPAGE
Definition texture-fixtures.h:104
#define TEX8_TPAGE
Definition texture-fixtures.h:103
#define CLUT15_FIELD
Definition texture-fixtures.h:85
#define TEX15_TX
Definition texture-fixtures.h:65
#define TEX8_TX
Definition texture-fixtures.h:60
#define TEX_MOD_NEUTRAL
Definition texture-fixtures.h:328