18 extern QWORD GsPrimWorkArea[];
22 static s8 twh(s16 val)
27 __asm__ __volatile__ (
"plzcw %0, %1\n":
"=r" (res) :
"r" (val));
29 res = __builtin_clrsb(val);
40 int GsSetXYOffset1(u16 x, u16 y)
43 p=UNCACHED_SEG(GsPrimWorkArea);
47 GsDmaSend(GsPrimWorkArea, 2);
53 int GsSetXYOffset2(u16 x, u16 y)
56 p=UNCACHED_SEG(GsPrimWorkArea);
60 GsDmaSend(GsPrimWorkArea, 2);
66 int GsSetScissor1(u16 upper_x, u16 upper_y, u16 lower_x, u16 lower_y)
69 p=UNCACHED_SEG(GsPrimWorkArea);
71 gs_setR_SCISSOR_1(((
GS_R_SCISSOR *)&p[1]), upper_x,lower_x,upper_y,lower_y);
73 GsDmaSend(GsPrimWorkArea, 2);
79 int GsSetScissor2(u16 upper_x, u16 upper_y, u16 lower_x, u16 lower_y)
82 p=UNCACHED_SEG(GsPrimWorkArea);
84 gs_setR_SCISSOR_2(((
GS_R_SCISSOR *)&p[1]), upper_x,lower_x,upper_y,lower_y);
86 GsDmaSend(GsPrimWorkArea, 2);
92 int GsSetFrame1(u16 framebuffer_addr, u8 framebuffer_width, u8 psm, u32 draw_mask)
95 p=UNCACHED_SEG(GsPrimWorkArea);
97 gs_setR_FRAME_1(((
GS_R_FRAME *)&p[1]), framebuffer_addr,framebuffer_width,psm,draw_mask);
99 GsDmaSend(GsPrimWorkArea, 2);
105 int GsSetFrame2(u16 framebuffer_addr, u8 framebuffer_width, u8 psm, u32 draw_mask)
108 p=UNCACHED_SEG(GsPrimWorkArea);
110 gs_setR_FRAME_2(((
GS_R_FRAME *)&p[1]), framebuffer_addr,framebuffer_width,psm,draw_mask);
112 GsDmaSend(GsPrimWorkArea, 2);
118 int GsTextureFlush(
void)
121 p=UNCACHED_SEG(GsPrimWorkArea);
125 GsDmaSend(GsPrimWorkArea,2);
131 int GsSetPixelTest1(u8 enable_alpha_test, u8 alpha_test_method, u8 alpha_reference, u8 alpha_fail_method, u8 enable_dest_alpha_test, u8 dest_alpha_test_mode, u8 enable_zbuff_test, u8 alpha_zbuff_method)
134 p=UNCACHED_SEG(GsPrimWorkArea);
136 gs_setR_TEST_1(((
GS_R_TEST *)&p[1]), enable_alpha_test, alpha_test_method, alpha_reference, alpha_fail_method, enable_dest_alpha_test, dest_alpha_test_mode, enable_zbuff_test, alpha_zbuff_method);
138 GsDmaSend(GsPrimWorkArea, 2);
144 int GsSetPixelTest2(u8 enable_alpha_test, u8 alpha_test_method, u8 alpha_reference, u8 alpha_fail_method, u8 enable_dest_alpha_test, u8 dest_alpha_test_mode, u8 enable_zbuff_test, u8 alpha_zbuff_method)
147 p=UNCACHED_SEG(GsPrimWorkArea);
149 gs_setR_TEST_2(((
GS_R_TEST *)&p[1]), enable_alpha_test, alpha_test_method, alpha_reference, alpha_fail_method, enable_dest_alpha_test, dest_alpha_test_mode, enable_zbuff_test, alpha_zbuff_method);
151 GsDmaSend(GsPrimWorkArea, 2);
157 int GsSelectTexure1(u16 tex_addr, u8 addr_width, u8 tex_pixmode, u16 tex_width, u16 tex_height, u16 clut_addr, u8 clut_pixmode, u8 clut_storagemode,u8 clut_offset)
160 p=UNCACHED_SEG(GsPrimWorkArea);
162 gs_setR_TEX0_1(((
GS_R_TEX0 *)&p[1]), tex_addr,addr_width,tex_pixmode, twh(tex_width), twh(tex_height),1,0,clut_addr,clut_pixmode,clut_storagemode,clut_offset,4);
164 GsDmaSend(GsPrimWorkArea, 2);
170 int GsSelectTexure2(u16 tex_addr, u8 addr_width, u8 tex_pixmode, u16 tex_width, u16 tex_height, u16 clut_addr, u8 clut_pixmode, u8 clut_storagemode,u8 clut_offset)
173 p=UNCACHED_SEG(GsPrimWorkArea);
175 gs_setR_TEX0_2(((
GS_R_TEX0 *)&p[1]), tex_addr, addr_width, tex_pixmode, twh(tex_width), twh(tex_height), 1, 0, clut_addr, clut_pixmode, clut_storagemode,clut_offset,5);
177 GsDmaSend(GsPrimWorkArea, 2);
183 void GsSetFogColor(u8 r, u8 g, u8 b)
186 p=UNCACHED_SEG(GsPrimWorkArea);
190 GsDmaSend(GsPrimWorkArea, 2);
194 void GsEnableColorClamp(u16 enable)
197 p=UNCACHED_SEG(GsPrimWorkArea);
201 GsDmaSend(GsPrimWorkArea, 2);