ps2sdk  1.1
A collection of Open Source libraries used for developing applications on Sony's PlayStation 2® (PS2).
libgs.h File Reference
#include <tamtypes.h>
+ Include dependency graph for libgs.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  GsGParam_t
 
struct  QWORD
 
struct  GS_PMODE
 
struct  GS_SMODE1
 
struct  GS_SMODE2
 
struct  GS_DISPFB
 
struct  GS_DISPLAY
 
struct  GS_EXTBUF
 
struct  GS_EXTDATA
 
struct  GS_EXTWRITE
 
struct  GS_BGCOLOR
 
struct  GS_CSR
 
struct  GS_IMR
 
struct  GS_BUSDIR
 
struct  GS_PRIM
 
struct  GS_RGBAQ
 
struct  GS_ST
 
struct  GS_UV
 
struct  GS_XYZF
 
struct  GS_XYZ
 
struct  GS_TEX0
 
struct  GS_CLAMP
 
struct  GS_FOG
 
struct  GS_TEX1
 
struct  GS_TEX2
 
struct  GS_XYOFFSET
 
struct  GS_PRMODECONT
 
struct  GS_PRMODE
 
struct  GS_TEXCLUT
 
struct  GS_SCANMSK
 
struct  GS_MIPTBP1
 
struct  GS_MIPTBP2
 
struct  GS_TEXA
 
struct  GS_FOGCOLOR
 
struct  GS_TEXFLUSH
 
struct  GS_SCISSOR
 
struct  GS_ALPHA
 
struct  GS_DIMX
 
struct  GS_DTHE
 
struct  GS_COLCLAMP
 
struct  GS_TEST
 
struct  GS_PABE
 
struct  GS_FBA
 
struct  GS_FRAME
 
struct  GS_ZBUF
 
struct  GS_BITBLTBUF
 
struct  GS_TRXPOS
 
struct  GS_TRXREG
 
struct  GS_TRXDIR
 
struct  GS_HWREG
 
struct  GS_SIGNAL
 
struct  GS_FINISH
 
struct  GS_LABEL
 
struct  GS_NOP
 
struct  GS_R_PRIM
 
struct  GS_R_RGBAQ
 
struct  GS_R_ST
 
struct  GS_R_UV
 
struct  GS_R_XYZF
 
struct  GS_R_XYZ
 
struct  GS_R_TEX0
 
struct  GS_R_CLAMP
 
struct  GS_R_FOG
 
struct  GS_R_TEX1
 
struct  GS_R_TEX2
 
struct  GS_R_XYOFFSET
 
struct  GS_R_PRMODECONT
 
struct  GS_R_PRMODE
 
struct  GS_R_TEXCLUT
 
struct  GS_R_SCANMSK
 
struct  GS_R_MIPTBP1
 
struct  GS_R_MIPTBP2
 
struct  GS_R_TEXA
 
struct  GS_R_FOGCOLOR
 
struct  GS_R_TEXFLUSH
 
struct  GS_R_SCISSOR
 
struct  GS_R_ALPHA
 
struct  GS_R_DIMX
 
struct  GS_R_DTHE
 
struct  GS_R_COLCLAMP
 
struct  GS_R_TEST
 
struct  GS_R_PABE
 
struct  GS_R_FBA
 
struct  GS_R_FRAME
 
struct  GS_R_ZBUF
 
struct  GS_R_BITBLTBUF
 
struct  GS_R_TRXPOS
 
struct  GS_R_TRXREG
 
struct  GS_R_TRXDIR
 
struct  GS_R_HWREG
 
struct  GS_R_SIGNAL
 
struct  GS_R_FINISH
 
struct  GS_R_LABEL
 
struct  GS_R_NOP
 
struct  GS_GIF_DMACHAIN_TAG
 
struct  GS_GIF_TAG
 
struct  GS_RECT
 
struct  GS_URECT
 
struct  GS_RECT32
 
struct  GS_POS
 
struct  GS_ZENV
 
struct  GS_DRAWENV
 
struct  GS_DISPENV
 
struct  GS_POINT_P
 
struct  GS_POINT
 
struct  GS_LINE_F1_P
 
struct  GS_LINE_F1
 
struct  GS_LINE_G1_P
 
struct  GS_LINE_G1
 
struct  GS_TRIANGLE_F3_P
 
struct  GS_TRIANGLE_F3
 
struct  GS_TRIANGLE_FT3_P
 
struct  GS_TRIANGLE_FT3
 
struct  GS_TRIANGLE_FT3ST_P
 
struct  GS_TRIANGLE_FT3ST
 
struct  GS_TRIANGLE_G3_P
 
struct  GS_TRIANGLE_G3
 
struct  GS_TRIANGLE_GT3ST_P
 
struct  GS_TRIANGLE_GT3ST
 
struct  GS_SPRITE_F4_P
 
struct  GS_SPRITE_F4
 
struct  GS_SPRITE_FT4_P
 
struct  GS_SPRITE_FT4
 
struct  GS_GIF_PACKET
 
struct  GS_PACKET_TABLE
 
struct  GS_IMAGE
 

Macros

#define GS_INIT_RESET   0
 
#define GS_INIT_DRAW_RESET   1
 
#define GS_NONINTERLACED   0x00
 
#define GS_INTERLACED   0x01
 
#define GS_FFMD_FIELD   0x00
 
#define GS_FFMD_FRAME   0x01
 
#define GS_DISABLE   0
 
#define GS_ENABLE   1
 
#define GS_PIXMODE_32   0
 
#define GS_PIXMODE_24   1
 
#define GS_PIXMODE_16   2
 
#define GS_PIXMODE_16S   10
 
#define GS_CLUT_32   0
 
#define GS_CLUT_16   2
 
#define GS_CLUT_16S   10
 
#define GS_TEX_32   0
 
#define GS_TEX_24   1
 
#define GS_TEX_16   2
 
#define GS_TEX_16S   10
 
#define GS_TEX_8   19
 
#define GS_TEX_4   20
 
#define GS_TEX_8H   27
 
#define GS_TEX_4HL   36
 
#define GS_TEX_4HH   44
 
#define GS_ZBUFF_32   48
 
#define GS_ZBUFF_24   49
 
#define GS_ZBUFF_16   50
 
#define GS_ZBUFF_16S   58
 
#define GS_TEX_CALC   0
 
#define GS_TEX_FIXED   1
 
#define GS_TEX_MIPMAP_DEFINE   0
 
#define GS_TEX_MIPMAP_AUTO   1
 
#define gs_p_pmode   0x12000000
 
#define gs_p_smode1   0x12000010
 
#define gs_p_smode2   0x12000020
 
#define gs_p_dispfb1   0x12000070
 
#define gs_p_display1   0x12000080
 
#define gs_p_dispfb2   0x12000090
 
#define gs_p_display2   0x120000a0
 
#define gs_p_extbuf   0x120000b0
 
#define gs_p_extdata   0x120000c0
 
#define gs_p_extwrite   0x120000d0
 
#define gs_p_bgcolor   0x120000e0
 
#define gs_p_csr   0x12001000
 
#define gs_p_imr   0x12001010
 
#define gs_p_busdir   0x12001040
 
#define gs_p_siglblid   0x12001080
 
#define gs_g_prim   0x00
 
#define gs_g_rgbaq   0x01
 
#define gs_g_st   0x02
 
#define gs_g_uv   0x03
 
#define gs_g_xyzf2   0x04
 
#define gs_g_xyz2   0x05
 
#define gs_g_tex0_1   0x06
 
#define gs_g_tex0_2   0x07
 
#define gs_g_clamp_1   0x08
 
#define gs_g_clamp_2   0x09
 
#define gs_g_fog   0x0a
 
#define gs_g_xyzf3   0x0c
 
#define gs_g_xyz3   0x0d
 
#define gs_g_tex1_1   0x14
 
#define gs_g_tex1_2   0x15
 
#define gs_g_tex2_1   0x16
 
#define gs_g_tex2_2   0x17
 
#define gs_g_xyoffset_1   0x18
 
#define gs_g_xyoffset_2   0x19
 
#define gs_g_prmodecont   0x1a
 
#define gs_g_prmode   0x1b
 
#define gs_g_texclut   0x1c
 
#define gs_g_scanmsk   0x22
 
#define gs_g_miptbp1_1   0x34
 
#define gs_g_miptbp1_2   0x35
 
#define gs_g_miptbp2_1   0x36
 
#define gs_g_miptbp2_2   0x37
 
#define gs_g_texa   0x3b
 
#define gs_g_fogcol   0x3d
 
#define gs_g_texflush   0x3f
 
#define gs_g_scissor_1   0x40
 
#define gs_g_scissor_2   0x41
 
#define gs_g_alpha_1   0x42
 
#define gs_g_alpha_2   0x43
 
#define gs_g_dimx   0x44
 
#define gs_g_dthe   0x45
 
#define gs_g_colclamp   0x46
 
#define gs_g_test_1   0x47
 
#define gs_g_test_2   0x48
 
#define gs_g_pabe   0x49
 
#define gs_g_fba_1   0x4a
 
#define gs_g_fba_2   0x4b
 
#define gs_g_frame_1   0x4c
 
#define gs_g_frame_2   0x4d
 
#define gs_g_zbuf_1   0x4e
 
#define gs_g_zbuf_2   0x4f
 
#define gs_g_bitbltbuf   0x50
 
#define gs_g_trxpos   0x51
 
#define gs_g_trxreg   0x52
 
#define gs_g_trxdir   0x53
 
#define gs_g_hwreg   0x54
 
#define gs_g_signal   0x60
 
#define gs_g_finish   0x61
 
#define gs_g_label   0x62
 
#define gs_g_nop   0x7f
 
#define gif_rd_ad   0x0e
 
#define gif_rd_nop   0x0f
 
#define GS_SET_PMODE(enable_rc1, enable_rc2, mmod, amod, blend_style, blend_value)
 
#define GS_SET_SMODE1(rc, lc, t1248, slck, cmod, ex, prst, sint, xpck, pck2, spml, gcont, phs, pvs, pehs, pevs, clksel, nvck, slck2, vcksel, vhp)
 
#define GS_SET_SMODE2(interlace, field_frame, vesta_dpms)
 
#define GS_SET_DISPFB1(address, width, psm, x, y)
 
#define GS_SET_DISPFB2(address, width, psm, x, y)
 
#define GS_SET_DISPLAY1(display_x, display_y, magnify_h, magnify_v, display_w, display_h)
 
#define GS_SET_DISPLAY2(display_x, display_y, magnify_h, magnify_v, display_w, display_h)
 
#define GS_SET_EXTBUF(A, B, C, D, E, F, G, H)
 
#define GS_SET_EXTDATA(x, y, sample_r_h, sample_r_v, write_w, write_h)
 
#define GS_SET_EXTWRITE(write)
 
#define GS_SET_BGCOLOR(r, g, b)
 
#define GS_SET_CSR(signal_evnt, finish_evnt, hsync_intrupt, vsync_intrupt, write_terminate, flush, reset, nfield, current_field, fifo_status, gs_rev_number, gs_id)
 
#define GS_SET_IMR(signal_mask, finish_mask, hsync_mask, vsync_mask, write_mask, exhs_mask, exvs_mask)
 
#define GS_SET_BUSDIR(direction)
 
#define GS_SET_SIGLBLID(signal_id, label_id)
 
#define GS_SET_CSR_signal_evnt(val)    GS_SET_CSR(val,0,0,0,0,0,0,0,0,0,0,0)
 
#define GS_SET_CSR_finish_evnt(val)    GS_SET_CSR(0,val,0,0,0,0,0,0,0,0,0,0)
 
#define GS_SET_CSR_hsync_intrupt(val)    GS_SET_CSR(0,0,val,0,0,0,0,0,0,0,0,0)
 
#define GS_SET_CSR_vsync_intrupt(val)    GS_SET_CSR(0,0,0,val,0,0,0,0,0,0,0,0)
 
#define GS_SET_CSR_write_terminate(val)    GS_SET_CSR(0,0,0,0,val,0,0,0,0,0,0,0)
 
#define GS_SET_CSR_flush(val)    GS_SET_CSR(0,0,0,0,0,val,0,0,0,0,0,0)
 
#define GS_SET_CSR_reset(val)    GS_SET_CSR(0,0,0,0,0,0,val,0,0,0,0,0)
 
#define GS_GET_CSR_signal_evnt    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 0))
 
#define GS_GET_CSR_finish_evnt    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 1))
 
#define GS_GET_CSR_hsync_intrupt    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 2))
 
#define GS_GET_CSR_vsync_intrupt    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 3))
 
#define GS_GET_CSR_write_terminate    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 4))
 
#define GS_GET_CSR_write_nfield    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 12))
 
#define GS_GET_CSR_current_field    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 13))
 
#define GS_GET_CSR_fifo_status    (*((vu64 *)(gs_p_csr)) & (0x00000003 << 14))
 
#define GS_GET_CSR_gs_rev_number    (*((vu64 *)(gs_p_csr)) & (0x000000FF << 16))
 
#define GS_GET_CSR_gs_id    (*((vu64 *)(gs_p_csr)) & (0x000000FF << 24))
 
#define gs_setPRIM(p, _prim_type, _iip, _tme, _fge, _abe, _aa1, _fst, _ctxt, _fix)
 
#define gs_setRGBAQ(p, _r, _g, _b, _a, _q)
 
#define gs_setST(p, _s, _t)
 
#define gs_setUV(p, _u, _v)
 
#define gs_setXYZF2(p, _x, _y, _z, _f)
 
#define gs_setXYZF3(p, _x, _y, _z, _f)
 
#define gs_setXYZ2(p, _x, _y, _z)
 
#define gs_setXYZ3(p, _x, _y, _z)
 
#define gs_setTEX0_1(p, _tb_addr, _tb_width, _psm, _tex_width, _tex_height, _tex_cc, _tex_funtion, _cb_addr, _clut_pixmode, _clut_smode, _clut_offset, _clut_loadmode)
 
#define gs_setTEX0_2   gs_setTEX0_1
 
#define gs_setCLAMP_1(p, wms, wmt, minu, maxu, minv, maxv)
 
#define gs_setCLAMP_2   gs_setCLAMP_1
 
#define gs_setFOG(p, _f)    (p)->f = _f
 
#define gs_setTEX1_1(p, _lcm, _mxl, _mmag, _mmin, _mtba, _l, _k)
 
#define gs_setTEX1_2   gs_setTEX1_1
 
#define gs_setTEX2_1(p, _psm, _cbp, _cpsm, _csm, _csa, _cld)
 
#define gs_setTEX2_2   gs_setTEX2_1
 
#define gs_set_XYOFFSET_1(p, _offset_x, _offset_y)
 
#define gs_set_XYOFFSET_2   gs_set_XYOFFSET_1
 
#define gs_set_PRMODECONT(p, _control)    (p)->control = _control
 
#define gs_setPRMODE(p, _iip, _tme, _fge, _abe, _aa1, _fst, _ctxt, _fix)
 
#define gs_setTEXCLUT(p, _cbw, _cou, _cov)
 
#define gs_setSCANMSK(p, _msk)    (p)->msk = _msk
 
#define gs_setMIPTBP1_1(p, _tbp1, _tbw1, _tbp2, _tbw2, _tbp3, _tbw3)
 
#define gs_setMIPTBP1_2   gs_setMIPTBP1_1
 
#define gs_setMIPTBP2_1(p, _tbp4, _tbw4, _tbp5, _tbw5, _tbp6, _tbw6)
 
#define gs_setMIPTBP2_2   gs_setMIPTBP2_1
 
#define gs_setTEXA(p, _alpha_0, _alpha_method, _alpha_1)
 
#define gs_setFOGCOLOR(p, _r, _g, _b)
 
#define gs_setTEXFLUSH(p)
 
#define gs_setSCISSOR_1(p, _clip_x0, _clip_x1, _clip_y0, _clip_y1)
 
#define gs_setSCISSOR_2   gs_setSCISSOR_1
 
#define gs_setALPHA_1(p, _a, _b, _c, _d, _alpha)
 
#define gs_setALPHA_2   gs_setALPHA_1
 
#define gs_setDIMX(p, _dimx00, _dimx01, _dimx02, _dimx03, _dimx10, _dimx11, _dimx12, _dimx13, _dimx20, _dimx21, _dimx22, _dimx23, _dimx30, _dimx31, _dimx32, _dimx33)
 
#define gs_setDTHE(p, _enable)    (p)->enable = _enable
 
#define gs_setCOLCLAMP(p, _clamp)    (p)->clamp = _clamp
 
#define gs_setTEST_1(p, _atest_enable, _atest_method, _atest_reference, _atest_fail_method, _datest_enable, _datest_mode, _ztest_enable, _ztest_method)
 
#define gs_setTEST_2   gs_setTEST_1
 
#define gs_setPABE(p, _enable)    (p)->enable = _enable
 
#define gs_setFBA(p, _alpha)    (p)->alpha = _alpha
 
#define gs_setFRAME_1(p, _fb_addr, _fb_width, _psm, _draw_mask)
 
#define gs_setFRAME_2   gs_setFRAME_1
 
#define gs_setZBUF_1(p, _fb_addr, _psm, _update_mask)
 
#define gs_setZBUF_2   gs_setZBUF_1
 
#define gs_setBITBLTBUF(p, _src_addr, _src_width, _src_pixmode, _dest_addr, _dest_width, _dest_pixmode)
 
#define gs_setTRXPOS(p, _src_x, _src_y, _dest_x, _dest_y, _direction)
 
#define gs_setTRXREG(p, _trans_w, _trans_h)
 
#define gs_setTRXDIR(p, _trans_dir)    (p)->trans_dir = _trans_dir
 
#define gs_setHWREG(p, _data)    (p)->data = _data
 
#define gs_setSIGNAL(p, _signal_id, _update_mask)
 
#define gs_setFINISH(p)    (p)->pad0 = 0
 
#define gs_setLABEL(p, _label_id, _update_mask)
 
#define gs_setNOP(p)    (p)->pad0 = 0
 
#define gs_setR_PRIM(p, _prim_type, _iip, _tme, _fge, _abe, _aa1, _fst, _ctxt, _fix)
 
#define gs_setR_RGBAQ(p, _r, _g, _b, _a, _q)
 
#define gs_setR_ST(p, _s, _t)
 
#define gs_setR_UV(p, _u, _v)
 
#define gs_setR_XYZF2(p, _x, _y, _z, _f)
 
#define gs_setR_XYZF3(p, _x, _y, _z, _f)
 
#define gs_setR_XYZ2(p, _x, _y, _z)
 
#define gs_setR_XYZ3(p, _x, _y, _z)
 
#define gs_setR_TEX0_1(p, _fb_addr, _fb_width, _psm, _tex_width, _tex_height, _col_comp, _tex_cc, _clutb_addr, _clut_pixmode, _clut_smode, _clut_offset, _cld)
 
#define gs_setR_TEX0_2(p, _fb_addr, _fb_width, _psm, _tex_width, _tex_height, _col_comp, _tex_cc, _clutb_addr, _clut_pixmode, _clut_smode, _clut_offset, _cld)
 
#define gs_setR_CLAMP_1(p, wms, wmt, minu, maxu, minv, maxv)
 
#define gs_setR_CLAMP_2(p, wms, wmt, minu, maxu, minv, maxv)
 
#define gs_setR_FOG(p, _f)
 
#define gs_setR_TEX1_1(p, _lcm, _mxl, _mmag, _mmin, _mtba, _l, _k)
 
#define gs_setR_TEX1_2(p, _lcm, _mxl, _mmag, _mmin, _mtba, _l, _k)
 
#define gs_setR_TEX2_1(p, _psm, _cbp, _cpsm, _csm, _csa, _cld)
 
#define gs_setR_TEX2_2(p, _psm, _cbp, _cpsm, _csm, _csa, _cld)
 
#define gs_setR_XYOFFSET_1(p, _offset_x, _offset_y)
 
#define gs_setR_XYOFFSET_2(p, _offset_x, _offset_y)
 
#define gs_setR_PRMODECONT(p, _control)
 
#define gs_setR_PRMODE(p, _iip, _tme, _fge, _abe, _aa1, _fst, _ctxt, _fix)
 
#define gs_setR_TEXCLUT(p, _cbw, _cou, _cov)
 
#define gs_setR_SCANMSK(p, _msk)
 
#define gs_setR_MIPTBP1_1(p, _tbp1, _tbw1, _tbp2, _tbw2, _tbp3, _tbw3)
 
#define gs_setR_MIPTBP1_2(p, _tbp1, _tbw1, _tbp2, _tbw2, _tbp3, _tbw3)
 
#define gs_setR_MIPTBP2_1(p, _tbp4, _tbw4, _tbp5, _tbw5, _tbp6, _tbw6)
 
#define gs_setR_MIPTBP2_2(p, _tbp4, _tbw4, _tbp5, _tbw5, _tbp6, _tbw6)
 
#define gs_setR_TEXA(p, _ta0, _aem, _ta1)
 
#define gs_setR_FOGCOLOR(p, _r, _g, _b)
 
#define gs_setR_TEXFLUSH(p)    (p)->reg = gs_g_texflush
 
#define gs_setR_SCISSOR_1(p, _clip_x0, _clip_x1, _clip_y0, _clip_y1)
 
#define gs_setR_SCISSOR_2(p, _clip_x0, _clip_x1, _clip_y0, _clip_y1)
 
#define gs_setR_ALPHA_1(p, _a, _b, _c, _d, _fix)
 
#define gs_setR_ALPHA_2(p, _a, _b, _c, _d, _fix)
 
#define gs_setR_DIMX(p, _dimx00, _dimx01, _dimx02, _dimx03, _dimx10, _dimx11, _dimx12, _dimx13, _dimx20, _dimx21, _dimx22, _dimx23, _dimx30, _dimx31, _dimx32, _dimx33)
 
#define gs_setR_DTHE(p, _enable)
 
#define gs_setR_COLCLAMP(p, _clamp)
 
#define gs_setR_TEST_1(p, _ATE, _ATST, _AREF, _AFAIL, _DATE, _DATM, _ZTE, _ZTST)
 
#define gs_setR_TEST_2(p, _ATE, _ATST, _AREF, _AFAIL, _DATE, _DATM, _ZTE, _ZTST)
 
#define gs_setR_PABE(p, _enable)
 
#define gs_setR_FBA_1(p, _alpha)
 
#define gs_setR_FBA_2(p, _alpha)
 
#define gs_setR_FRAME_1(p, _fb_addr, _fb_width, _psm, _draw_mask)
 
#define gs_setR_FRAME_2(p, _fb_addr, _fb_width, _psm, _draw_mask)
 
#define gs_setR_ZBUF_1(p, _fb_addr, _psm, _update_mask)
 
#define gs_setR_ZBUF_2(p, _fb_addr, _psm, _update_mask)
 
#define gs_setR_BITBLTBUF(p, _src_addr, _src_width, _src_pixmode, _dest_addr, _dest_width, _dest_pixmode)
 
#define gs_setR_TRXPOS(p, _src_x, _src_y, _dest_x, _dest_y, _direction)
 
#define gs_setR_TRXREG(p, _trans_w, _trans_h)
 
#define gs_setR_TRXDIR(p, _trans_dir)
 
#define gs_setR_HWREG(p, _data)
 
#define gs_setR_SIGNAL(p, _signal_id, _update_mask)
 
#define gs_setR_FINISH(p)    (p)->reg = gs_g_finish
 
#define gs_setR_LABEL(p, _label_id, _update_mask)
 
#define gs_setR_NOP(p)
 
#define gs_setGIF_TAG(p, _nloop, _eop, _pre, _prim, _flg, _nreg, _reg)
 
#define CRTC_SETTINGS_DEFAULT1   CRTC_SETTINGS_EN1|CRTC_SETTINGS_BLENDVAL|CRTC_SETTINGS_OUTRC1|CRTC_SETTINGS_STYLERC1
 
#define CRTC_SETTINGS_DEFAULT2   CRTC_SETTINGS_EN2|CRTC_SETTINGS_BLENDVAL|CRTC_SETTINGS_OUTRC1|CRTC_SETTINGS_STYLERC1
 
#define CRTC_SETTINGS_EN1   ((u64)(1)<<0)
 
#define CRTC_SETTINGS_EN2   ((u64)(1)<<1)
 
#define CRTC_SETTINGS_ENBOTH   CRTC_SETTINGS_EN1|CRTC_SETTINGS_EN2
 
#define CRTC_SETTINGS_BLENDRC1   ((u64)(0)<<5)
 
#define CRTC_SETTINGS_BLENDVAL   ((u64)(1)<<5)
 
#define CRTC_SETTINGS_OUTRC1   ((u64)(0)<<6)
 
#define CRTC_SETTINGS_OUTRC2   ((u64)(1)<<6)
 
#define CRTC_SETTINGS_STYLERC1   ((u64)(0)<<7)
 
#define CRTC_SETTINGS_STYLEBG   ((u64)(1)<<7)
 
#define GS_PACKET_DATA_QWORD_MAX   32000
 

Enumerations

enum  GsVideoModes {
  GS_MODE_NTSC = 0x02 ,
  GS_MODE_PAL ,
  GS_MODE_DTV_480P = 0x50
}
 
enum  GsPrimitiveTypes {
  GS_PRIM_POINT =0 ,
  GS_PRIM_LINE ,
  GS_PRIM_LINE_STRIP ,
  GS_PRIM_TRI ,
  GS_PRIM_TRI_STRIP ,
  GS_PRIM_TRI_FAN ,
  GS_PRIM_SPRITE
}
 
enum  GsATestMethods {
  GS_ALPHA_NEVER =0 ,
  GS_ALPHA_ALWAYS ,
  GS_ALPHA_LESS ,
  GS_ALPHA_LEQUAL ,
  GS_ALPHA_EQUAL ,
  GS_ALPHA_GEQUAL ,
  GS_ALPHA_GREATER ,
  GS_ALPHA_NOTEQUAL
}
 
enum  GsATestFailedUpdateMethods {
  GS_ALPHA_NO_UPDATE =0 ,
  GS_ALPHA_FB_ONLY ,
  GS_ALPHA_ZB_ONLY ,
  GS_ALPHA_RGB_ONLY
}
 
enum  GsZTestMethodTypes {
  GS_ZBUFF_NEVER =0 ,
  GS_ZBUFF_ALWAYS ,
  GS_ZBUFF_GEQUAL ,
  GS_ZBUFF_GREATER
}
 
enum  GsTexMipmaps {
  GS_TEX_MIPMAP0 =0 ,
  GS_TEX_MIPMAP1 ,
  GS_TEX_MIPMAP2 ,
  GS_TEX_MIPMAP3 ,
  GS_TEX_MIPMAP4 ,
  GS_TEX_MIPMAP5 ,
  GS_TEX_MIPMAP6
}
 
enum  GsTexFilterMethods {
  GS_TEX_NEAREST =0 ,
  GS_TEX_LINEAR ,
  GS_TEX_NEAREST_MIPMAP_NEAREST ,
  GS_TEX_NEAREST_MIPMAP_LINEAR ,
  GS_TEX_LINEAR_MIPMAP_NEAREST ,
  GS_TEX_LINEAR_MIPMAP_LINEAR
}
 
enum  GsTexFunctions {
  GS_TEX_MODULATE =0 ,
  GS_TEX_DECAL ,
  GS_TEX_HIGHLIHGT1 ,
  GS_TEX_HIGHLIHGT2
}
 
enum  GsGifDataFormat {
  GS_GIF_PACKED =0 ,
  GS_GIF_REGLIST ,
  GS_GIF_IMAGE ,
  GS_GIF_DISABLE
}
 

Functions

int GsSetXYOffset1 (u16 x, u16 y)
 
int GsSetXYOffset2 (u16 x, u16 y)
 
int GsSetScissor1 (u16 upper_x, u16 upper_y, u16 lower_x, u16 lower_y)
 
int GsSetScissor2 (u16 upper_x, u16 upper_y, u16 lower_x, u16 lower_y)
 
int GsSetFrame1 (u16 framebuffer_addr, u8 framebuffer_width, u8 psm, u32 draw_mask)
 
int GsSetFrame2 (u16 framebuffer_addr, u8 framebuffer_width, u8 psm, u32 draw_mask)
 
int GsTextureFlush (void)
 
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)
 
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)
 
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)
 
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)
 
void GsSetFogColor (u8 r, u8 g, u8 b)
 
void GsEnableColorClamp (u16 enable)
 
GsGParam_tGsGetGParam (void)
 
void GsResetGraph (short int mode, short int interlace, short int omode, short int ffmode)
 
void GsResetPath (void)
 
void GsSetCRTCSettings (u64 settings, u8 alpha_value)
 
void GsSetDefaultDrawEnv (GS_DRAWENV *drawenv, u16 psm, u16 w, u16 h)
 
void GsSetDefaultDrawEnvAddress (GS_DRAWENV *drawenv, u16 vram_addr)
 
void GsSetDefaultDisplayEnv (GS_DISPENV *dispenv, u16 psm, u16 w, u16 h, u16 dx, u16 dy)
 
void GsSetDefaultDisplayEnvAddress (GS_DISPENV *dispenv, u16 vram_addr)
 
void GsSetDefaultZBufferEnv (GS_ZENV *zenv, u8 update_mask)
 
void GsSetDefaultZBufferEnvAddress (GS_ZENV *zenv, u16 vram_addr, u8 psm)
 
void GsPutDrawEnv1 (GS_DRAWENV *drawenv)
 
void GsPutDrawEnv2 (GS_DRAWENV *drawenv)
 
void GsPutDisplayEnv1 (GS_DISPENV *dispenv)
 
void GsPutDisplayEnv2 (GS_DISPENV *dispenv)
 
void GsPutZBufferEnv1 (GS_ZENV *zenv)
 
void GsPutZBufferEnv2 (GS_ZENV *zenv)
 
void GsClearDrawEnv1 (GS_DRAWENV *drawenv)
 
void GsClearDrawEnv2 (GS_DRAWENV *drawenv)
 
QWORDGsGifPacketsAlloc (GS_PACKET_TABLE *table, u32 num_qwords)
 
void GsGifPacketsClear (GS_PACKET_TABLE *table)
 
int GsGifPacketsExecute (GS_PACKET_TABLE *table, u16 wait)
 
int GsLoadImage (const void *source_addr, GS_IMAGE *dest)
 
void GsOverridePrimAttributes (s8 override, s8 iip, s8 tme, s8 fge, s8 abe, s8 aa1, s8 fst, s8 ctxt, s8 fix)
 
void GsEnableDithering (u8 enable, int mode)
 
void GsEnableAlphaTransparency1 (u16 enable, u16 method, u8 alpha_ref, u16 fail_method)
 
void GsEnableAlphaTransparency2 (u16 enable, u16 method, u8 alpha_ref, u16 fail_method)
 
void GsEnableZbuffer1 (u16 enable, u16 test_method)
 
void GsEnableZbuffer2 (u16 enable, u16 test_method)
 
void GsEnableAlphaBlending1 (u16 enable)
 
void GsEnableAlphaBlending2 (u16 enable)
 
void GsDrawSync (int mode)
 
void GsHSync (int mode)
 
void GsVSync (int mode)
 
int GsVramAllocFrameBuffer (s16 w, s16 h, s16 psm)
 
int GsVramAllocTextureBuffer (s16 w, s16 h, s16 psm)
 
void GsVramFreeAllTextureBuffer (void)
 
void GsVramFreeAll (void)
 
int GsDbGetDrawBuffer (void)
 
int GsDbGetDisplayBuffer (void)
 
void GsDbSwapBuffer (void)
 

Detailed Description

GS library functions.

Definition in file libgs.h.

Macro Definition Documentation

◆ CRTC_SETTINGS_BLENDRC1

#define CRTC_SETTINGS_BLENDRC1   ((u64)(0)<<5)

Use Alpha value from rc1 for blending

Definition at line 1894 of file libgs.h.

◆ CRTC_SETTINGS_BLENDVAL

#define CRTC_SETTINGS_BLENDVAL   ((u64)(1)<<5)

Use Alpha value from alpha_value of GsSetCRTCSettings() for blending

Definition at line 1896 of file libgs.h.

◆ CRTC_SETTINGS_DEFAULT1

Definition at line 1884 of file libgs.h.

◆ CRTC_SETTINGS_DEFAULT2

Definition at line 1885 of file libgs.h.

◆ CRTC_SETTINGS_EN1

#define CRTC_SETTINGS_EN1   ((u64)(1)<<0)

Enable RC1(ReadCircuit 1)

Definition at line 1888 of file libgs.h.

◆ CRTC_SETTINGS_EN2

#define CRTC_SETTINGS_EN2   ((u64)(1)<<1)

Enable RC2(ReadCircuit 1)

Definition at line 1890 of file libgs.h.

◆ CRTC_SETTINGS_ENBOTH

#define CRTC_SETTINGS_ENBOTH   CRTC_SETTINGS_EN1|CRTC_SETTINGS_EN2

Enable RC1 & R2

Definition at line 1892 of file libgs.h.

◆ CRTC_SETTINGS_OUTRC1

#define CRTC_SETTINGS_OUTRC1   ((u64)(0)<<6)

Output Final image to RC1

Definition at line 1898 of file libgs.h.

◆ CRTC_SETTINGS_OUTRC2

#define CRTC_SETTINGS_OUTRC2   ((u64)(1)<<6)

Output Final image to RC2

Definition at line 1900 of file libgs.h.

◆ CRTC_SETTINGS_STYLEBG

#define CRTC_SETTINGS_STYLEBG   ((u64)(1)<<7)

Blend With The Out Put of BG(background)

Definition at line 1904 of file libgs.h.

◆ CRTC_SETTINGS_STYLERC1

#define CRTC_SETTINGS_STYLERC1   ((u64)(0)<<7)

Blend With The Out Put of RC1

Definition at line 1902 of file libgs.h.

◆ gif_rd_ad

#define gif_rd_ad   0x0e

A+D

Definition at line 326 of file libgs.h.

◆ gif_rd_nop

#define gif_rd_nop   0x0f

NOP (Not OutPut)

Definition at line 328 of file libgs.h.

◆ GS_CLUT_16

#define GS_CLUT_16   2

Definition at line 84 of file libgs.h.

◆ GS_CLUT_16S

#define GS_CLUT_16S   10

Definition at line 85 of file libgs.h.

◆ GS_CLUT_32

#define GS_CLUT_32   0

clut Pixel Storage Modes (PSM)

Definition at line 83 of file libgs.h.

◆ GS_DISABLE

#define GS_DISABLE   0

Definition at line 62 of file libgs.h.

◆ GS_ENABLE

#define GS_ENABLE   1

Definition at line 63 of file libgs.h.

◆ GS_FFMD_FIELD

#define GS_FFMD_FIELD   0x00

Read every other line from the beginning with the start of FIELD.

Definition at line 41 of file libgs.h.

◆ GS_FFMD_FRAME

#define GS_FFMD_FRAME   0x01

Read every line from the beginning with the start of FRAME.

Definition at line 43 of file libgs.h.

◆ gs_g_alpha_1

#define gs_g_alpha_1   0x42

Alpha blending setting (Context 1)

Definition at line 281 of file libgs.h.

◆ gs_g_alpha_2

#define gs_g_alpha_2   0x43

Alpha blending setting (Context 2)

Definition at line 283 of file libgs.h.

◆ gs_g_bitbltbuf

#define gs_g_bitbltbuf   0x50

Texture transmission address & format

Definition at line 309 of file libgs.h.

◆ gs_g_clamp_1

#define gs_g_clamp_1   0x08

Set texture wrap mode in context 1

Definition at line 236 of file libgs.h.

◆ gs_g_clamp_2

#define gs_g_clamp_2   0x09

Set texture wrap mode in context 2

Definition at line 238 of file libgs.h.

◆ gs_g_colclamp

#define gs_g_colclamp   0x46

Color clamp control

Definition at line 289 of file libgs.h.

◆ gs_g_dimx

#define gs_g_dimx   0x44

Dither matrix values

Definition at line 285 of file libgs.h.

◆ gs_g_dthe

#define gs_g_dthe   0x45

Enabel dither matrix

Definition at line 287 of file libgs.h.

◆ gs_g_fba_1

#define gs_g_fba_1   0x4a

Alpha correction value (Context 1)

Definition at line 297 of file libgs.h.

◆ gs_g_fba_2

#define gs_g_fba_2   0x4b

Alpha correction value (Context 2)

Definition at line 299 of file libgs.h.

◆ gs_g_finish

#define gs_g_finish   0x61

Definition at line 318 of file libgs.h.

◆ gs_g_fog

#define gs_g_fog   0x0a

Set fog attributes

Definition at line 240 of file libgs.h.

◆ gs_g_fogcol

#define gs_g_fogcol   0x3d

Set fog far color

Definition at line 273 of file libgs.h.

◆ gs_g_frame_1

#define gs_g_frame_1   0x4c

Frame buffer settings (Context 1)

Definition at line 301 of file libgs.h.

◆ gs_g_frame_2

#define gs_g_frame_2   0x4d

Frame buffer settings (Context 2)

Definition at line 303 of file libgs.h.

◆ gs_g_hwreg

#define gs_g_hwreg   0x54

Definition at line 316 of file libgs.h.

◆ gs_g_label

#define gs_g_label   0x62

Definition at line 319 of file libgs.h.

◆ gs_g_miptbp1_1

#define gs_g_miptbp1_1   0x34

Set mipmap address in context 1(mip level 1-3)

Definition at line 263 of file libgs.h.

◆ gs_g_miptbp1_2

#define gs_g_miptbp1_2   0x35

Set mipmap address in context 1(mip level 1-3)

Definition at line 265 of file libgs.h.

◆ gs_g_miptbp2_1

#define gs_g_miptbp2_1   0x36

Set mipmap address in context 2(mip level 4-6)

Definition at line 267 of file libgs.h.

◆ gs_g_miptbp2_2

#define gs_g_miptbp2_2   0x37

Set mipmap address in context 2(mip level 4-6)

Definition at line 269 of file libgs.h.

◆ gs_g_nop

#define gs_g_nop   0x7f

no operation\does nothing\can be used as padding

Definition at line 321 of file libgs.h.

◆ gs_g_pabe

#define gs_g_pabe   0x49

Enable alpha blending

Definition at line 295 of file libgs.h.

◆ gs_g_prim

#define gs_g_prim   0x00

Select and configure current drawing primitive

Definition at line 220 of file libgs.h.

◆ gs_g_prmode

#define gs_g_prmode   0x1b

attributes of current drawing primitive

Definition at line 258 of file libgs.h.

◆ gs_g_prmodecont

#define gs_g_prmodecont   0x1a

gs_g_prim or gs_g_prmode selector

Definition at line 256 of file libgs.h.

◆ gs_g_rgbaq

#define gs_g_rgbaq   0x01

Setup current vertex color

Definition at line 222 of file libgs.h.

◆ gs_g_scanmsk

#define gs_g_scanmsk   0x22

Raster odd\even line drawing setting

Definition at line 261 of file libgs.h.

◆ gs_g_scissor_1

#define gs_g_scissor_1   0x40

Setup clipping rectangle (Context 1)

Definition at line 277 of file libgs.h.

◆ gs_g_scissor_2

#define gs_g_scissor_2   0x41

Setup clipping rectangle (Context 2)

Definition at line 279 of file libgs.h.

◆ gs_g_signal

#define gs_g_signal   0x60

Definition at line 317 of file libgs.h.

◆ gs_g_st

#define gs_g_st   0x02

ST map

Definition at line 224 of file libgs.h.

◆ gs_g_test_1

#define gs_g_test_1   0x47

FrameBuffer\ZBuffer Pixel test contol (Context 1)

Definition at line 291 of file libgs.h.

◆ gs_g_test_2

#define gs_g_test_2   0x48

FrameBuffer\ZBuffer Pixel test contol (Context 2)

Definition at line 293 of file libgs.h.

◆ gs_g_tex0_1

#define gs_g_tex0_1   0x06

Select current texture in context 1

Definition at line 232 of file libgs.h.

◆ gs_g_tex0_2

#define gs_g_tex0_2   0x07

Select current texture in context 2

Definition at line 234 of file libgs.h.

◆ gs_g_tex1_1

#define gs_g_tex1_1   0x14

Definition at line 245 of file libgs.h.

◆ gs_g_tex1_2

#define gs_g_tex1_2   0x15

Definition at line 246 of file libgs.h.

◆ gs_g_tex2_1

#define gs_g_tex2_1   0x16

Set texture filtering\sampling style in context 1

Definition at line 248 of file libgs.h.

◆ gs_g_tex2_2

#define gs_g_tex2_2   0x17

Set texture filtering\sampling style in context 2

Definition at line 250 of file libgs.h.

◆ gs_g_texa

#define gs_g_texa   0x3b

Texture alpha setting

Definition at line 271 of file libgs.h.

◆ gs_g_texclut

#define gs_g_texclut   0x1c

Definition at line 259 of file libgs.h.

◆ gs_g_texflush

#define gs_g_texflush   0x3f

Flush texture buffer/cache

Definition at line 275 of file libgs.h.

◆ gs_g_trxdir

#define gs_g_trxdir   0x53

Texture transmission direction

Definition at line 315 of file libgs.h.

◆ gs_g_trxpos

#define gs_g_trxpos   0x51

Texture transmission coordinates

Definition at line 311 of file libgs.h.

◆ gs_g_trxreg

#define gs_g_trxreg   0x52

Texture transmission width & height

Definition at line 313 of file libgs.h.

◆ gs_g_uv

#define gs_g_uv   0x03

UV map

Definition at line 226 of file libgs.h.

◆ gs_g_xyoffset_1

#define gs_g_xyoffset_1   0x18

Mapping from Primitive to Window coordinate system (Context 1)

Definition at line 252 of file libgs.h.

◆ gs_g_xyoffset_2

#define gs_g_xyoffset_2   0x19

Mapping from Primitive to Window coordinate system (Context 2)

Definition at line 254 of file libgs.h.

◆ gs_g_xyz2

#define gs_g_xyz2   0x05

Set vertex coordinate (with draw kick)

Definition at line 230 of file libgs.h.

◆ gs_g_xyz3

#define gs_g_xyz3   0x0d

Set vertex position (no draw kick)

Definition at line 244 of file libgs.h.

◆ gs_g_xyzf2

#define gs_g_xyzf2   0x04

Set vertex position and fog coefflcient (with draw kick)

Definition at line 228 of file libgs.h.

◆ gs_g_xyzf3

#define gs_g_xyzf3   0x0c

Set vertex position and fog coefflcient (no draw kick)

Definition at line 242 of file libgs.h.

◆ gs_g_zbuf_1

#define gs_g_zbuf_1   0x4e

Zbuffer configuration (Context 1)

Definition at line 305 of file libgs.h.

◆ gs_g_zbuf_2

#define gs_g_zbuf_2   0x4f

Zbuffer configuration (Context 2)

Definition at line 307 of file libgs.h.

◆ GS_GET_CSR_current_field

#define GS_GET_CSR_current_field    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 13))

Definition at line 1341 of file libgs.h.

◆ GS_GET_CSR_fifo_status

#define GS_GET_CSR_fifo_status    (*((vu64 *)(gs_p_csr)) & (0x00000003 << 14))

Definition at line 1344 of file libgs.h.

◆ GS_GET_CSR_finish_evnt

#define GS_GET_CSR_finish_evnt    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 1))

Definition at line 1323 of file libgs.h.

◆ GS_GET_CSR_gs_id

#define GS_GET_CSR_gs_id    (*((vu64 *)(gs_p_csr)) & (0x000000FF << 24))

Definition at line 1350 of file libgs.h.

◆ GS_GET_CSR_gs_rev_number

#define GS_GET_CSR_gs_rev_number    (*((vu64 *)(gs_p_csr)) & (0x000000FF << 16))

Definition at line 1347 of file libgs.h.

◆ GS_GET_CSR_hsync_intrupt

#define GS_GET_CSR_hsync_intrupt    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 2))

Definition at line 1326 of file libgs.h.

◆ GS_GET_CSR_signal_evnt

#define GS_GET_CSR_signal_evnt    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 0))

Definition at line 1320 of file libgs.h.

◆ GS_GET_CSR_vsync_intrupt

#define GS_GET_CSR_vsync_intrupt    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 3))

Definition at line 1329 of file libgs.h.

◆ GS_GET_CSR_write_nfield

#define GS_GET_CSR_write_nfield    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 12))

Definition at line 1338 of file libgs.h.

◆ GS_GET_CSR_write_terminate

#define GS_GET_CSR_write_terminate    (*((vu64 *)(gs_p_csr)) & (0x00000001 << 4))

Definition at line 1332 of file libgs.h.

◆ GS_INIT_DRAW_RESET

#define GS_INIT_DRAW_RESET   1

Drawing operations are cancelled and primitive data will be discarded.

Definition at line 35 of file libgs.h.

◆ GS_INIT_RESET

#define GS_INIT_RESET   0

Resets the GS and GIF.

Definition at line 33 of file libgs.h.

◆ GS_INTERLACED

#define GS_INTERLACED   0x01

Definition at line 38 of file libgs.h.

◆ GS_NONINTERLACED

#define GS_NONINTERLACED   0x00

Definition at line 37 of file libgs.h.

◆ gs_p_bgcolor

#define gs_p_bgcolor   0x120000e0

Set CRTC background color

Definition at line 207 of file libgs.h.

◆ gs_p_busdir

#define gs_p_busdir   0x12001040

Set direction of data transmission FIFO

Definition at line 213 of file libgs.h.

◆ gs_p_csr

#define gs_p_csr   0x12001000

System status and reset

Definition at line 209 of file libgs.h.

◆ gs_p_dispfb1

#define gs_p_dispfb1   0x12000070

Setup the CRTC's Read Circuit 1 data source settings

Definition at line 196 of file libgs.h.

◆ gs_p_dispfb2

#define gs_p_dispfb2   0x12000090

Setup the CRTC's Read Circuit 2 data source settings

Definition at line 200 of file libgs.h.

◆ gs_p_display1

#define gs_p_display1   0x12000080

RC1 display output settings

Definition at line 198 of file libgs.h.

◆ gs_p_display2

#define gs_p_display2   0x120000a0

RC2 display output settings

Definition at line 202 of file libgs.h.

◆ gs_p_extbuf

#define gs_p_extbuf   0x120000b0

Definition at line 203 of file libgs.h.

◆ gs_p_extdata

#define gs_p_extdata   0x120000c0

Definition at line 204 of file libgs.h.

◆ gs_p_extwrite

#define gs_p_extwrite   0x120000d0

Definition at line 205 of file libgs.h.

◆ gs_p_imr

#define gs_p_imr   0x12001010

Interrupt Mask Register

Definition at line 211 of file libgs.h.

◆ gs_p_pmode

#define gs_p_pmode   0x12000000

Setup CRT Controller

Definition at line 190 of file libgs.h.

◆ gs_p_siglblid

#define gs_p_siglblid   0x12001080

Signal\label value

Definition at line 215 of file libgs.h.

◆ gs_p_smode1

#define gs_p_smode1   0x12000010

Video signal settings, undocumented (don't set!)

Definition at line 192 of file libgs.h.

◆ gs_p_smode2

#define gs_p_smode2   0x12000020

CRTC Video Settings: PAL/NTCS, Interlace, etc.

Definition at line 194 of file libgs.h.

◆ GS_PACKET_DATA_QWORD_MAX

#define GS_PACKET_DATA_QWORD_MAX   32000

Definition at line 2279 of file libgs.h.

◆ GS_PIXMODE_16

#define GS_PIXMODE_16   2

Definition at line 79 of file libgs.h.

◆ GS_PIXMODE_16S

#define GS_PIXMODE_16S   10

Definition at line 80 of file libgs.h.

◆ GS_PIXMODE_24

#define GS_PIXMODE_24   1

Definition at line 78 of file libgs.h.

◆ GS_PIXMODE_32

#define GS_PIXMODE_32   0

regular Pixel Storage Modes (PSM)

Definition at line 77 of file libgs.h.

◆ GS_SET_BGCOLOR

#define GS_SET_BGCOLOR (   r,
  g,
 
)
Value:
(u64)((r) & 0x000000FF) << 0 | \
(u64)((g) & 0x000000FF) << 8 | \
(u64)((b) & 0x000000FF) << 16
#define gs_p_bgcolor
Definition: libgs.h:207
volatile u64 vu64
Definition: tamtypes.h:39
unsigned long u64
Definition: tamtypes.h:34

Definition at line 1243 of file libgs.h.

◆ GS_SET_BUSDIR

#define GS_SET_BUSDIR (   direction)
Value:
*(vu64 *)gs_p_busdir = \
(u64)((direction) & 0x00000001)
#define gs_p_busdir
Definition: libgs.h:213

Definition at line 1274 of file libgs.h.

◆ GS_SET_CSR

#define GS_SET_CSR (   signal_evnt,
  finish_evnt,
  hsync_intrupt,
  vsync_intrupt,
  write_terminate,
  flush,
  reset,
  nfield,
  current_field,
  fifo_status,
  gs_rev_number,
  gs_id 
)
Value:
*(vu64 *)gs_p_csr = \
(u64)((signal_evnt ) & 0x00000001) << 0 | \
(u64)((finish_evnt ) & 0x00000001) << 1 | \
(u64)((hsync_intrupt ) & 0x00000001) << 2 | \
(u64)((vsync_intrupt ) & 0x00000001) << 3 | \
(u64)((write_terminate) & 0x00000001) << 4 | \
(u64)((flush ) & 0x00000001) << 8 | \
(u64)((reset ) & 0x00000001) << 9 | \
(u64)((nfield ) & 0x00000001) << 12 | \
(u64)((current_field ) & 0x00000001) << 13 | \
(u64)((fifo_status ) & 0x00000003) << 14 | \
(u64)((gs_rev_number ) & 0x000000FF) << 16 | \
(u64)((gs_id ) & 0x000000FF) << 24
#define gs_p_csr
Definition: libgs.h:209

Definition at line 1249 of file libgs.h.

◆ GS_SET_CSR_finish_evnt

#define GS_SET_CSR_finish_evnt (   val)     GS_SET_CSR(0,val,0,0,0,0,0,0,0,0,0,0)

Definition at line 1291 of file libgs.h.

◆ GS_SET_CSR_flush

#define GS_SET_CSR_flush (   val)     GS_SET_CSR(0,0,0,0,0,val,0,0,0,0,0,0)

Definition at line 1303 of file libgs.h.

◆ GS_SET_CSR_hsync_intrupt

#define GS_SET_CSR_hsync_intrupt (   val)     GS_SET_CSR(0,0,val,0,0,0,0,0,0,0,0,0)

Definition at line 1294 of file libgs.h.

◆ GS_SET_CSR_reset

#define GS_SET_CSR_reset (   val)     GS_SET_CSR(0,0,0,0,0,0,val,0,0,0,0,0)

Definition at line 1306 of file libgs.h.

◆ GS_SET_CSR_signal_evnt

#define GS_SET_CSR_signal_evnt (   val)     GS_SET_CSR(val,0,0,0,0,0,0,0,0,0,0,0)

Definition at line 1288 of file libgs.h.

◆ GS_SET_CSR_vsync_intrupt

#define GS_SET_CSR_vsync_intrupt (   val)     GS_SET_CSR(0,0,0,val,0,0,0,0,0,0,0,0)

Definition at line 1297 of file libgs.h.

◆ GS_SET_CSR_write_terminate

#define GS_SET_CSR_write_terminate (   val)     GS_SET_CSR(0,0,0,0,val,0,0,0,0,0,0,0)

Definition at line 1300 of file libgs.h.

◆ GS_SET_DISPFB1

#define GS_SET_DISPFB1 (   address,
  width,
  psm,
  x,
  y 
)
Value:
(u64)((address ) & 0x000001FF) << 0 | \
(u64)((width ) & 0x0000003F) << 9 | \
(u64)((psm ) & 0x0000001F) << 15 | \
(u64)((x ) & 0x000007FF) << 32 | \
(u64)((y ) & 0x000007FF) << 43
#define gs_p_dispfb1
Definition: libgs.h:196
s32 x
Definition: libmouse.c:34
s32 y
Definition: libmouse.c:34

Definition at line 1185 of file libgs.h.

◆ GS_SET_DISPFB2

#define GS_SET_DISPFB2 (   address,
  width,
  psm,
  x,
  y 
)
Value:
(u64)((address ) & 0x000001FF) << 0 | \
(u64)((width ) & 0x0000003F) << 9 | \
(u64)((psm ) & 0x0000001F) << 15 | \
(u64)((x ) & 0x000007FF) << 32 | \
(u64)((y ) & 0x000007FF) << 43
#define gs_p_dispfb2
Definition: libgs.h:200

Definition at line 1193 of file libgs.h.

◆ GS_SET_DISPLAY1

#define GS_SET_DISPLAY1 (   display_x,
  display_y,
  magnify_h,
  magnify_v,
  display_w,
  display_h 
)
Value:
(u64)((display_x) & 0x00000FFF) << 0 | \
(u64)((display_y) & 0x000007FF) << 12 | \
(u64)((magnify_h) & 0x0000000F) << 23 | \
(u64)((magnify_v) & 0x00000003) << 27 | \
(u64)((display_w) & 0x00000FFF) << 32 | \
(u64)((display_h) & 0x000007FF) << 44
#define gs_p_display1
Definition: libgs.h:198

Definition at line 1201 of file libgs.h.

◆ GS_SET_DISPLAY2

#define GS_SET_DISPLAY2 (   display_x,
  display_y,
  magnify_h,
  magnify_v,
  display_w,
  display_h 
)
Value:
(u64)((display_x) & 0x00000FFF) << 0 | \
(u64)((display_y) & 0x000007FF) << 12 | \
(u64)((magnify_h) & 0x0000000F) << 23 | \
(u64)((magnify_v) & 0x00000003) << 27 | \
(u64)((display_w) & 0x00000FFF) << 32 | \
(u64)((display_h) & 0x000007FF) << 44
#define gs_p_display2
Definition: libgs.h:202

Definition at line 1210 of file libgs.h.

◆ GS_SET_EXTBUF

#define GS_SET_EXTBUF (   A,
  B,
  C,
  D,
  E,
  F,
  G,
 
)
Value:
*(vu64 *)gs_p_extbuf = \
(u64)((A) & 0x00003FFF) << 0 | \
(u64)((B) & 0x0000003F) << 14 | \
(u64)((C) & 0x00000003) << 20 | \
(u64)((D) & 0x00000001) << 22 | \
(u64)((E) & 0x00000003) << 23 | \
(u64)((F) & 0x00000003) << 25 | \
(u64)((G) & 0x000007FF) << 32 | \
(u64)((H) & 0x000007FF) << 43
#define D(fmt, args...)
Definition: fileio.c:25
#define gs_p_extbuf
Definition: libgs.h:203

Definition at line 1219 of file libgs.h.

◆ GS_SET_EXTDATA

#define GS_SET_EXTDATA (   x,
  y,
  sample_r_h,
  sample_r_v,
  write_w,
  write_h 
)
Value:
(u64)((x ) & 0x00000FFF) << 0 | \
(u64)((y ) & 0x000007FF) << 12 | \
(u64)((sample_r_h ) & 0x0000000F) << 23 | \
(u64)((sample_r_v ) & 0x00000003) << 27 | \
(u64)((write_w ) & 0x00000FFF) << 32 | \
(u64)((write_h ) & 0x000007FF) << 44
#define gs_p_extdata
Definition: libgs.h:204

Definition at line 1230 of file libgs.h.

◆ GS_SET_EXTWRITE

#define GS_SET_EXTWRITE (   write)
Value:
(u64)((write) & 0x00000001)
#define gs_p_extwrite
Definition: libgs.h:205

Definition at line 1239 of file libgs.h.

◆ GS_SET_IMR

#define GS_SET_IMR (   signal_mask,
  finish_mask,
  hsync_mask,
  vsync_mask,
  write_mask,
  exhs_mask,
  exvs_mask 
)
Value:
*(vu64 *)gs_p_imr = \
(u64)((signal_mask) & 0x00000001) << 8 | \
(u64)((finish_mask) & 0x00000001) << 9 | \
(u64)((hsync_mask ) & 0x00000001) << 10 | \
(u64)((vsync_mask ) & 0x00000001) << 11 | \
(u64)((write_mask ) & 0x00000001) << 12 | \
(u64)((exhs_mask ) & 0x00000001) << 13 | \
(u64)((exvs_mask ) & 0x00000001) << 14
#define gs_p_imr
Definition: libgs.h:211

Definition at line 1264 of file libgs.h.

◆ GS_SET_PMODE

#define GS_SET_PMODE (   enable_rc1,
  enable_rc2,
  mmod,
  amod,
  blend_style,
  blend_value 
)
Value:
*(vu64 *)gs_p_pmode = \
(u64)((enable_rc1 ) & 0x00000001) << 0 | \
(u64)((enable_rc2 ) & 0x00000001) << 1 | \
(u64)((1 ) & 0x00000007) << 2 | \
(u64)((mmod ) & 0x00000001) << 5 | \
(u64)((amod ) & 0x00000001) << 6 | \
(u64)((blend_style) & 0x00000001) << 7 | \
(u64)((blend_value) & 0x000000FF) << 8
#define gs_p_pmode
Definition: libgs.h:190

Definition at line 1142 of file libgs.h.

◆ gs_set_PRMODECONT

#define gs_set_PRMODECONT (   p,
  _control 
)     (p)->control = _control

Definition at line 1459 of file libgs.h.

◆ GS_SET_SIGLBLID

#define GS_SET_SIGLBLID (   signal_id,
  label_id 
)
Value:
(u64)((signal_id ) & 0xFFFFFFFF) << 0 | \
(u64)((label_id ) & 0xFFFFFFFF) << 32
#define gs_p_siglblid
Definition: libgs.h:215

Definition at line 1278 of file libgs.h.

◆ GS_SET_SMODE1

#define GS_SET_SMODE1 (   rc,
  lc,
  t1248,
  slck,
  cmod,
  ex,
  prst,
  sint,
  xpck,
  pck2,
  spml,
  gcont,
  phs,
  pvs,
  pehs,
  pevs,
  clksel,
  nvck,
  slck2,
  vcksel,
  vhp 
)
Value:
*(vu64 *)gs_p_smode1 = \
(u64)((rc ) & 0x00000007) << 0 | \
(u64)((lc ) & 0x0000007F) << 3 | \
(u64)((t1248 ) & 0x00000003) << 10 | \
(u64)((slck ) & 0x00000001) << 12 | \
(u64)((cmod ) & 0x00000003) << 13 | \
(u64)((ex ) & 0x00000001) << 15 | \
(u64)((prst ) & 0x00000001) << 16 | \
(u64)((sint ) & 0x00000001) << 17 | \
(u64)((xpck ) & 0x00000001) << 18 | \
(u64)((pck2 ) & 0x00000003) << 19 | \
(u64)((spml ) & 0x0000000F) << 21 | \
(u64)((gcont ) & 0x00000001) << 25 | \
(u64)((phs ) & 0x00000001) << 26 | \
(u64)((pvs ) & 0x00000001) << 27 | \
(u64)((pehs ) & 0x00000001) << 28 | \
(u64)((pevs ) & 0x00000001) << 29 | \
(u64)((clksel ) & 0x00000003) << 30 | \
(u64)((nvck ) & 0x00000001) << 32 | \
(u64)((slck2 ) & 0x00000001) << 33 | \
(u64)((vcksel ) & 0x00000003) << 34 | \
(u64)((vhp ) & 0x00000003) << 36
#define gs_p_smode1
Definition: libgs.h:192

Set by SetGsCrt(). DO NOT SET MANUALLY!!

Definition at line 1153 of file libgs.h.

◆ GS_SET_SMODE2

#define GS_SET_SMODE2 (   interlace,
  field_frame,
  vesta_dpms 
)
Value:
*(vu64 *)gs_p_smode2 = \
(u64)((interlace ) & 0x00000001) << 0 | \
(u64)((field_frame ) & 0x00000001) << 1 | \
(u64)((vesta_dpms ) & 0x00000003) << 2
#define gs_p_smode2
Definition: libgs.h:194

Definition at line 1179 of file libgs.h.

◆ gs_set_XYOFFSET_1

#define gs_set_XYOFFSET_1 (   p,
  _offset_x,
  _offset_y 
)
Value:
(p)->offset_x = _offset_x, \
(p)->offset_y = _offset_y

Definition at line 1453 of file libgs.h.

◆ gs_set_XYOFFSET_2

#define gs_set_XYOFFSET_2   gs_set_XYOFFSET_1

Definition at line 1457 of file libgs.h.

◆ gs_setALPHA_1

#define gs_setALPHA_1 (   p,
  _a,
  _b,
  _c,
  _d,
  _alpha 
)
Value:
(p)->a = _a, \
(p)->b = _b, \
(p)->c = _c, \
(p)->d = _d, \
(p)->alpha = _alpha

Definition at line 1520 of file libgs.h.

◆ gs_setALPHA_2

#define gs_setALPHA_2   gs_setALPHA_1

Definition at line 1527 of file libgs.h.

◆ gs_setBITBLTBUF

#define gs_setBITBLTBUF (   p,
  _src_addr,
  _src_width,
  _src_pixmode,
  _dest_addr,
  _dest_width,
  _dest_pixmode 
)
Value:
(p)->src_addr = _src_addr, \
(p)->src_width = _src_width, \
(p)->src_pixmode = _src_pixmode, \
(p)->dest_addr = _dest_addr, \
(p)->dest_width = _dest_width, \
(p)->dest_pixmode = _dest_pixmode

Definition at line 1586 of file libgs.h.

◆ gs_setCLAMP_1

#define gs_setCLAMP_1 (   p,
  wms,
  wmt,
  minu,
  maxu,
  minv,
  maxv 
)
Value:
(p)->wms = wms, \
(p)->wmt = wmt, \
(p)->minu = minu, \
(p)->maxu = maxu, \
(p)->minv = minv, \
(p)->maxv = maxv

Definition at line 1419 of file libgs.h.

◆ gs_setCLAMP_2

#define gs_setCLAMP_2   gs_setCLAMP_1

Definition at line 1427 of file libgs.h.

◆ gs_setCOLCLAMP

#define gs_setCOLCLAMP (   p,
  _clamp 
)     (p)->clamp = _clamp

Definition at line 1550 of file libgs.h.

◆ gs_setDIMX

#define gs_setDIMX (   p,
  _dimx00,
  _dimx01,
  _dimx02,
  _dimx03,
  _dimx10,
  _dimx11,
  _dimx12,
  _dimx13,
  _dimx20,
  _dimx21,
  _dimx22,
  _dimx23,
  _dimx30,
  _dimx31,
  _dimx32,
  _dimx33 
)
Value:
(p)->dimx00 = _dimx00, \
(p)->dimx01 = _dimx01, \
(p)->dimx02 = _dimx02, \
(p)->dimx03 = _dimx03, \
(p)->dimx10 = _dimx10, \
(p)->dimx11 = _dimx11, \
(p)->dimx12 = _dimx12, \
(p)->dimx13 = _dimx13, \
(p)->dimx20 = _dimx20, \
(p)->dimx21 = _dimx21, \
(p)->dimx22 = _dimx22, \
(p)->dimx23 = _dimx23, \
(p)->dimx30 = _dimx30, \
(p)->dimx31 = _dimx31, \
(p)->dimx32 = _dimx32, \
(p)->dimx33 = _dimx33

Definition at line 1529 of file libgs.h.

◆ gs_setDTHE

#define gs_setDTHE (   p,
  _enable 
)     (p)->enable = _enable

Definition at line 1547 of file libgs.h.

◆ gs_setFBA

#define gs_setFBA (   p,
  _alpha 
)     (p)->alpha = _alpha

Definition at line 1568 of file libgs.h.

◆ gs_setFINISH

#define gs_setFINISH (   p)     (p)->pad0 = 0

Definition at line 1615 of file libgs.h.

◆ gs_setFOG

#define gs_setFOG (   p,
  _f 
)     (p)->f = _f

Definition at line 1429 of file libgs.h.

◆ gs_setFOGCOLOR

#define gs_setFOGCOLOR (   p,
  _r,
  _g,
  _b 
)
Value:
(p)->r = _r, \
(p)->g = _g, \
(p)->b = _b

Definition at line 1505 of file libgs.h.

◆ gs_setFRAME_1

#define gs_setFRAME_1 (   p,
  _fb_addr,
  _fb_width,
  _psm,
  _draw_mask 
)
Value:
(p)->fb_addr = _fb_addr, \
(p)->fb_width = _fb_width, \
(p)->psm = _psm, \
(p)->draw_mask = _draw_mask

Definition at line 1571 of file libgs.h.

◆ gs_setFRAME_2

#define gs_setFRAME_2   gs_setFRAME_1

Definition at line 1577 of file libgs.h.

◆ gs_setGIF_TAG

#define gs_setGIF_TAG (   p,
  _nloop,
  _eop,
  _pre,
  _prim,
  _flg,
  _nreg,
  _reg 
)
Value:
(p)->nloop = _nloop, \
(p)->eop = _eop, \
(p)->pre = _pre, \
(p)->prim = _prim, \
(p)->flg = _flg, \
(p)->nreg = _nreg, \
(p)->reg = _reg

Definition at line 1870 of file libgs.h.

◆ gs_setHWREG

#define gs_setHWREG (   p,
  _data 
)     (p)->data = _data

Definition at line 1608 of file libgs.h.

◆ gs_setLABEL

#define gs_setLABEL (   p,
  _label_id,
  _update_mask 
)
Value:
(p)->label_id = _label_id, \
(p)->update_mask= _update_mask

Definition at line 1618 of file libgs.h.

◆ gs_setMIPTBP1_1

#define gs_setMIPTBP1_1 (   p,
  _tbp1,
  _tbw1,
  _tbp2,
  _tbw2,
  _tbp3,
  _tbw3 
)
Value:
(p)->tbp1 = _tbp1, \
(p)->tbw1 = _tbw1, \
(p)->tbp2 = _tbp2, \
(p)->tbw2 = _tbw2, \
(p)->tbp3 = _tbp3, \
(p)->tbw3 = _tbw3

Definition at line 1480 of file libgs.h.

◆ gs_setMIPTBP1_2

#define gs_setMIPTBP1_2   gs_setMIPTBP1_1

Definition at line 1488 of file libgs.h.

◆ gs_setMIPTBP2_1

#define gs_setMIPTBP2_1 (   p,
  _tbp4,
  _tbw4,
  _tbp5,
  _tbw5,
  _tbp6,
  _tbw6 
)
Value:
(p)->tbp4 = _tbp4, \
(p)->tbw4 = _tbw4, \
(p)->tbp5 = _tbp5, \
(p)->tbw5 = _tbw5, \
(p)->tbp6 = _tbp6, \
(p)->tbw6 = _tbw6

Definition at line 1490 of file libgs.h.

◆ gs_setMIPTBP2_2

#define gs_setMIPTBP2_2   gs_setMIPTBP2_1

Definition at line 1498 of file libgs.h.

◆ gs_setNOP

#define gs_setNOP (   p)     (p)->pad0 = 0

Definition at line 1622 of file libgs.h.

◆ gs_setPABE

#define gs_setPABE (   p,
  _enable 
)     (p)->enable = _enable

Definition at line 1565 of file libgs.h.

◆ gs_setPRIM

#define gs_setPRIM (   p,
  _prim_type,
  _iip,
  _tme,
  _fge,
  _abe,
  _aa1,
  _fst,
  _ctxt,
  _fix 
)
Value:
(p)->prim_type = _prim_type, \
(p)->iip = _iip, \
(p)->tme = _tme, \
(p)->fge = _fge, \
(p)->abe = _abe, \
(p)->aa1 = _aa1, \
(p)->fst = _fst, \
(p)->ctxt = _ctxt, \
(p)->fix = _fix

Definition at line 1355 of file libgs.h.

◆ gs_setPRMODE

#define gs_setPRMODE (   p,
  _iip,
  _tme,
  _fge,
  _abe,
  _aa1,
  _fst,
  _ctxt,
  _fix 
)
Value:
(p)->iip = _iip, \
(p)->tme = _tme, \
(p)->fge = _fge, \
(p)->abe = _abe, \
(p)->aa1 = _aa1, \
(p)->fst = _fst, \
(p)->ctxt = _ctxt, \
(p)->fix = _fix

Definition at line 1462 of file libgs.h.

◆ gs_setR_ALPHA_1

#define gs_setR_ALPHA_1 (   p,
  _a,
  _b,
  _c,
  _d,
  _fix 
)
Value:
gs_setALPHA_1(&p->data, _a,_b,_c,_d,_fix),\
(p)->reg = gs_g_alpha_1
#define gs_g_alpha_1
Definition: libgs.h:281
#define gs_setALPHA_1(p, _a, _b, _c, _d, _alpha)
Definition: libgs.h:1520

Definition at line 1754 of file libgs.h.

◆ gs_setR_ALPHA_2

#define gs_setR_ALPHA_2 (   p,
  _a,
  _b,
  _c,
  _d,
  _fix 
)
Value:
gs_setALPHA_2(&p->data, _a,_b,_c,_d,_fix),\
(p)->reg = gs_g_alpha_2
#define gs_setALPHA_2
Definition: libgs.h:1527
#define gs_g_alpha_2
Definition: libgs.h:283

Definition at line 1758 of file libgs.h.

◆ gs_setR_BITBLTBUF

#define gs_setR_BITBLTBUF (   p,
  _src_addr,
  _src_width,
  _src_pixmode,
  _dest_addr,
  _dest_width,
  _dest_pixmode 
)
Value:
gs_setBITBLTBUF(&p->data, _src_addr,_src_width,_src_pixmode,_dest_addr,_dest_width,_dest_pixmode),\
(p)->reg = gs_g_bitbltbuf
#define gs_setBITBLTBUF(p, _src_addr, _src_width, _src_pixmode, _dest_addr, _dest_width, _dest_pixmode)
Definition: libgs.h:1586
#define gs_g_bitbltbuf
Definition: libgs.h:309

Definition at line 1810 of file libgs.h.

◆ gs_setR_CLAMP_1

#define gs_setR_CLAMP_1 (   p,
  wms,
  wmt,
  minu,
  maxu,
  minv,
  maxv 
)
Value:
gs_setCLAMP_1(&p->data, wms,wmt,minu,maxu,minv,maxv),\
(p)->reg = gs_g_clamp_1
#define gs_g_clamp_1
Definition: libgs.h:236
#define gs_setCLAMP_1(p, wms, wmt, minu, maxu, minv, maxv)
Definition: libgs.h:1419

Definition at line 1667 of file libgs.h.

◆ gs_setR_CLAMP_2

#define gs_setR_CLAMP_2 (   p,
  wms,
  wmt,
  minu,
  maxu,
  minv,
  maxv 
)
Value:
gs_setCLAMP_2(&p->data, wms,wmt,minu,maxu,minv,maxv),\
(p)->reg = gs_g_clamp_2
#define gs_setCLAMP_2
Definition: libgs.h:1427
#define gs_g_clamp_2
Definition: libgs.h:238

Definition at line 1671 of file libgs.h.

◆ gs_setR_COLCLAMP

#define gs_setR_COLCLAMP (   p,
  _clamp 
)
Value:
gs_setCOLCLAMP(&p->data, _clamp),\
(p)->reg = gs_g_colclamp
#define gs_setCOLCLAMP(p, _clamp)
Definition: libgs.h:1550
#define gs_g_colclamp
Definition: libgs.h:289

Definition at line 1770 of file libgs.h.

◆ gs_setR_DIMX

#define gs_setR_DIMX (   p,
  _dimx00,
  _dimx01,
  _dimx02,
  _dimx03,
  _dimx10,
  _dimx11,
  _dimx12,
  _dimx13,
  _dimx20,
  _dimx21,
  _dimx22,
  _dimx23,
  _dimx30,
  _dimx31,
  _dimx32,
  _dimx33 
)
Value:
gs_setDIMX(&p->data, _dimx00,_dimx01,_dimx02,_dimx03,_dimx10,_dimx11,_dimx12,_dimx13,_dimx20,_dimx21,_dimx22,_dimx23,_dimx30,_dimx31,_dimx32,_dimx33),\
(p)->reg = gs_g_dimx
#define gs_g_dimx
Definition: libgs.h:285
#define gs_setDIMX(p, _dimx00, _dimx01, _dimx02, _dimx03, _dimx10, _dimx11, _dimx12, _dimx13, _dimx20, _dimx21, _dimx22, _dimx23, _dimx30, _dimx31, _dimx32, _dimx33)
Definition: libgs.h:1529

Definition at line 1762 of file libgs.h.

◆ gs_setR_DTHE

#define gs_setR_DTHE (   p,
  _enable 
)
Value:
gs_setDTHE(&p->data, _enable),\
(p)->reg = gs_g_dthe
#define gs_g_dthe
Definition: libgs.h:287
#define gs_setDTHE(p, _enable)
Definition: libgs.h:1547

Definition at line 1766 of file libgs.h.

◆ gs_setR_FBA_1

#define gs_setR_FBA_1 (   p,
  _alpha 
)
Value:
gs_setFBA(&p->data, _alpha),\
(p)->reg = gs_g_fba_1
#define gs_g_fba_1
Definition: libgs.h:297
#define gs_setFBA(p, _alpha)
Definition: libgs.h:1568

Definition at line 1786 of file libgs.h.

◆ gs_setR_FBA_2

#define gs_setR_FBA_2 (   p,
  _alpha 
)
Value:
gs_setFBA(&p->data, _alpha),\
(p)->reg = gs_g_fba_2
#define gs_g_fba_2
Definition: libgs.h:299

Definition at line 1790 of file libgs.h.

◆ gs_setR_FINISH

#define gs_setR_FINISH (   p)     (p)->reg = gs_g_finish

Definition at line 1834 of file libgs.h.

◆ gs_setR_FOG

#define gs_setR_FOG (   p,
  _f 
)
Value:
gs_setFOG(&p->data, _f),\
(p)->reg = gs_g_fog
#define gs_setFOG(p, _f)
Definition: libgs.h:1429
#define gs_g_fog
Definition: libgs.h:240

Definition at line 1675 of file libgs.h.

◆ gs_setR_FOGCOLOR

#define gs_setR_FOGCOLOR (   p,
  _r,
  _g,
  _b 
)
Value:
gs_setFOGCOLOR(&p->data, _r,_g,_b),\
(p)->reg = gs_g_fogcol
#define gs_g_fogcol
Definition: libgs.h:273
#define gs_setFOGCOLOR(p, _r, _g, _b)
Definition: libgs.h:1505

Definition at line 1739 of file libgs.h.

◆ gs_setR_FRAME_1

#define gs_setR_FRAME_1 (   p,
  _fb_addr,
  _fb_width,
  _psm,
  _draw_mask 
)
Value:
gs_setFRAME_1(&p->data, _fb_addr,_fb_width,_psm,_draw_mask),\
(p)->reg = gs_g_frame_1
#define gs_setFRAME_1(p, _fb_addr, _fb_width, _psm, _draw_mask)
Definition: libgs.h:1571
#define gs_g_frame_1
Definition: libgs.h:301

Definition at line 1794 of file libgs.h.

◆ gs_setR_FRAME_2

#define gs_setR_FRAME_2 (   p,
  _fb_addr,
  _fb_width,
  _psm,
  _draw_mask 
)
Value:
gs_setFRAME_2(&p->data, _fb_addr,_fb_width,_psm,_draw_mask),\
(p)->reg = gs_g_frame_2
#define gs_setFRAME_2
Definition: libgs.h:1577
#define gs_g_frame_2
Definition: libgs.h:303

Definition at line 1798 of file libgs.h.

◆ gs_setR_HWREG

#define gs_setR_HWREG (   p,
  _data 
)
Value:
gs_setHWREG(&p->data, _data),\
(p)->reg = gs_g_hwreg
#define gs_g_hwreg
Definition: libgs.h:316
#define gs_setHWREG(p, _data)
Definition: libgs.h:1608

Definition at line 1826 of file libgs.h.

◆ gs_setR_LABEL

#define gs_setR_LABEL (   p,
  _label_id,
  _update_mask 
)
Value:
gs_setLABEL(&p->data, _label_id,_update_mask),\
(p)->reg = gs_g_label
#define gs_setLABEL(p, _label_id, _update_mask)
Definition: libgs.h:1618
#define gs_g_label
Definition: libgs.h:319

Definition at line 1837 of file libgs.h.

◆ gs_setR_MIPTBP1_1

#define gs_setR_MIPTBP1_1 (   p,
  _tbp1,
  _tbw1,
  _tbp2,
  _tbw2,
  _tbp3,
  _tbw3 
)
Value:
gs_setMIPTBP1_1(&p->data, _tbp1,_tbw1,_tbp2,_tbw2,_tbp3,_tbw3),\
(p)->reg = gs_g_miptbp1_1
#define gs_setMIPTBP1_1(p, _tbp1, _tbw1, _tbp2, _tbw2, _tbp3, _tbw3)
Definition: libgs.h:1480
#define gs_g_miptbp1_1
Definition: libgs.h:263

Definition at line 1719 of file libgs.h.

◆ gs_setR_MIPTBP1_2

#define gs_setR_MIPTBP1_2 (   p,
  _tbp1,
  _tbw1,
  _tbp2,
  _tbw2,
  _tbp3,
  _tbw3 
)
Value:
gs_setMIPTBP1_2(&p->data, _tbp1,_tbw1,_tbp2,_tbw2,_tbp3,_tbw3),\
(p)->reg = gs_g_miptbp1_2
#define gs_setMIPTBP1_2
Definition: libgs.h:1488
#define gs_g_miptbp1_2
Definition: libgs.h:265

Definition at line 1723 of file libgs.h.

◆ gs_setR_MIPTBP2_1

#define gs_setR_MIPTBP2_1 (   p,
  _tbp4,
  _tbw4,
  _tbp5,
  _tbw5,
  _tbp6,
  _tbw6 
)
Value:
gs_setR_MIPTBP2_1(&p->data, _tbp4,_tbw4,_tbp5,_tbw5,_tbp6,_tbw6),\
(p)->reg = gs_g_miptbp2_1
#define gs_setR_MIPTBP2_1(p, _tbp4, _tbw4, _tbp5, _tbw5, _tbp6, _tbw6)
Definition: libgs.h:1727
#define gs_g_miptbp2_1
Definition: libgs.h:267

Definition at line 1727 of file libgs.h.

◆ gs_setR_MIPTBP2_2

#define gs_setR_MIPTBP2_2 (   p,
  _tbp4,
  _tbw4,
  _tbp5,
  _tbw5,
  _tbp6,
  _tbw6 
)
Value:
gs_setMIPTBP2_2(&p->data, _tbp4,_tbw4,_tbp5,_tbw5,_tbp6,_tbw6),\
(p)->reg = gs_g_miptbp2_2
#define gs_setMIPTBP2_2
Definition: libgs.h:1498
#define gs_g_miptbp2_2
Definition: libgs.h:269

Definition at line 1731 of file libgs.h.

◆ gs_setR_NOP

#define gs_setR_NOP (   p)
Value:
gs_setNOP(&p->data),\
(p)->reg = gs_g_label
#define gs_setNOP(p)
Definition: libgs.h:1622

Definition at line 1841 of file libgs.h.

◆ gs_setR_PABE

#define gs_setR_PABE (   p,
  _enable 
)
Value:
gs_setPABE(&p->data, _enable),\
(p)->reg = gs_g_pabe
#define gs_setPABE(p, _enable)
Definition: libgs.h:1565
#define gs_g_pabe
Definition: libgs.h:295

Definition at line 1782 of file libgs.h.

◆ gs_setR_PRIM

#define gs_setR_PRIM (   p,
  _prim_type,
  _iip,
  _tme,
  _fge,
  _abe,
  _aa1,
  _fst,
  _ctxt,
  _fix 
)
Value:
gs_setPRIM(&p->data, _prim_type,_iip,_tme,_fge,_abe,_aa1,_fst,_ctxt,_fix),\
p->reg = gs_g_prim
#define gs_g_prim
Definition: libgs.h:220
#define gs_setPRIM(p, _prim_type, _iip, _tme, _fge, _abe, _aa1, _fst, _ctxt, _fix)
Definition: libgs.h:1355

Definition at line 1627 of file libgs.h.

◆ gs_setR_PRMODE

#define gs_setR_PRMODE (   p,
  _iip,
  _tme,
  _fge,
  _abe,
  _aa1,
  _fst,
  _ctxt,
  _fix 
)
Value:
gs_setPRMODE(&p->data, _iip,_tme,_fge,_abe,_aa1,_fst,_ctxt,_fix),\
(p)->reg = gs_g_prmode
#define gs_g_prmode
Definition: libgs.h:258
#define gs_setPRMODE(p, _iip, _tme, _fge, _abe, _aa1, _fst, _ctxt, _fix)
Definition: libgs.h:1462

Definition at line 1707 of file libgs.h.

◆ gs_setR_PRMODECONT

#define gs_setR_PRMODECONT (   p,
  _control 
)
Value:
gs_set_PRMODECONT(&p->data, _control),\
(p)->reg = gs_g_prmodecont
#define gs_set_PRMODECONT(p, _control)
Definition: libgs.h:1459
#define gs_g_prmodecont
Definition: libgs.h:256

Definition at line 1703 of file libgs.h.

◆ gs_setR_RGBAQ

#define gs_setR_RGBAQ (   p,
  _r,
  _g,
  _b,
  _a,
  _q 
)
Value:
gs_setRGBAQ(&p->data, _r,_g,_b,_a,_q),\
(p)->reg = gs_g_rgbaq
#define gs_g_rgbaq
Definition: libgs.h:222
#define gs_setRGBAQ(p, _r, _g, _b, _a, _q)
Definition: libgs.h:1366

Definition at line 1631 of file libgs.h.

◆ gs_setR_SCANMSK

#define gs_setR_SCANMSK (   p,
  _msk 
)
Value:
gs_setSCANMSK(&p->data, _msk),\
(p)->reg = gs_g_scanmsk
#define gs_setSCANMSK(p, _msk)
Definition: libgs.h:1477
#define gs_g_scanmsk
Definition: libgs.h:261

Definition at line 1715 of file libgs.h.

◆ gs_setR_SCISSOR_1

#define gs_setR_SCISSOR_1 (   p,
  _clip_x0,
  _clip_x1,
  _clip_y0,
  _clip_y1 
)
Value:
gs_setSCISSOR_1(&p->data, _clip_x0,_clip_x1,_clip_y0,_clip_y1),\
(p)->reg = gs_g_scissor_1
#define gs_g_scissor_1
Definition: libgs.h:277
#define gs_setSCISSOR_1(p, _clip_x0, _clip_x1, _clip_y0, _clip_y1)
Definition: libgs.h:1512

Definition at line 1746 of file libgs.h.

◆ gs_setR_SCISSOR_2

#define gs_setR_SCISSOR_2 (   p,
  _clip_x0,
  _clip_x1,
  _clip_y0,
  _clip_y1 
)
Value:
gs_setSCISSOR_2(&p->data, _clip_x0,_clip_x1,_clip_y0,_clip_y1),\
(p)->reg = gs_g_scissor_2
#define gs_g_scissor_2
Definition: libgs.h:279
#define gs_setSCISSOR_2
Definition: libgs.h:1518

Definition at line 1750 of file libgs.h.

◆ gs_setR_SIGNAL

#define gs_setR_SIGNAL (   p,
  _signal_id,
  _update_mask 
)
Value:
gs_setSIGNAL(&p->data, _signal_id,_update_mask),\
(p)->reg = gs_g_signal
#define gs_g_signal
Definition: libgs.h:317
#define gs_setSIGNAL(p, _signal_id, _update_mask)
Definition: libgs.h:1611

Definition at line 1830 of file libgs.h.

◆ gs_setR_ST

#define gs_setR_ST (   p,
  _s,
  _t 
)
Value:
gs_setST(&p->data, _s,_t),\
(p)->reg = gs_g_st
#define gs_g_st
Definition: libgs.h:224
#define gs_setST(p, _s, _t)
Definition: libgs.h:1373

Definition at line 1635 of file libgs.h.

◆ gs_setR_TEST_1

#define gs_setR_TEST_1 (   p,
  _ATE,
  _ATST,
  _AREF,
  _AFAIL,
  _DATE,
  _DATM,
  _ZTE,
  _ZTST 
)
Value:
gs_setTEST_1(&p->data, _ATE,_ATST,_AREF,_AFAIL,_DATE,_DATM,_ZTE,_ZTST),\
(p)->reg = gs_g_test_1
#define gs_setTEST_1(p, _atest_enable, _atest_method, _atest_reference, _atest_fail_method, _datest_enable, _datest_mode, _ztest_enable, _ztest_method)
Definition: libgs.h:1553
#define gs_g_test_1
Definition: libgs.h:291

Definition at line 1774 of file libgs.h.

◆ gs_setR_TEST_2

#define gs_setR_TEST_2 (   p,
  _ATE,
  _ATST,
  _AREF,
  _AFAIL,
  _DATE,
  _DATM,
  _ZTE,
  _ZTST 
)
Value:
gs_setTEST_2(&p->data, _ATE,_ATST,_AREF,_AFAIL,_DATE,_DATM,_ZTE,_ZTST),\
(p)->reg = gs_g_test_2
#define gs_setTEST_2
Definition: libgs.h:1563
#define gs_g_test_2
Definition: libgs.h:293

Definition at line 1778 of file libgs.h.

◆ gs_setR_TEX0_1

#define gs_setR_TEX0_1 (   p,
  _fb_addr,
  _fb_width,
  _psm,
  _tex_width,
  _tex_height,
  _col_comp,
  _tex_cc,
  _clutb_addr,
  _clut_pixmode,
  _clut_smode,
  _clut_offset,
  _cld 
)
Value:
gs_setTEX0_1(&p->data, _fb_addr,_fb_width,_psm,_tex_width,_tex_height,_col_comp,_tex_cc,_clutb_addr,_clut_pixmode,_clut_smode,_clut_offset,_cld),\
(p)->reg = gs_g_tex0_1
#define gs_g_tex0_1
Definition: libgs.h:232
#define gs_setTEX0_1(p, _tb_addr, _tb_width, _psm, _tex_width, _tex_height, _tex_cc, _tex_funtion, _cb_addr, _clut_pixmode, _clut_smode, _clut_offset, _clut_loadmode)
Definition: libgs.h:1403

Definition at line 1659 of file libgs.h.

◆ gs_setR_TEX0_2

#define gs_setR_TEX0_2 (   p,
  _fb_addr,
  _fb_width,
  _psm,
  _tex_width,
  _tex_height,
  _col_comp,
  _tex_cc,
  _clutb_addr,
  _clut_pixmode,
  _clut_smode,
  _clut_offset,
  _cld 
)
Value:
gs_setTEX0_2(&p->data, _fb_addr,_fb_width,_psm,_tex_width,_tex_height,_col_comp,_tex_cc,_clutb_addr,_clut_pixmode,_clut_smode,_clut_offset,_cld),\
(p)->reg = gs_g_tex0_2
#define gs_setTEX0_2
Definition: libgs.h:1417
#define gs_g_tex0_2
Definition: libgs.h:234

Definition at line 1663 of file libgs.h.

◆ gs_setR_TEX1_1

#define gs_setR_TEX1_1 (   p,
  _lcm,
  _mxl,
  _mmag,
  _mmin,
  _mtba,
  _l,
  _k 
)
Value:
gs_setTEX1_1(&p->data, _lcm,_mxl,_mmag,_mmin,_mtba,_l,_k),\
(p)->reg = gs_g_tex1_1
#define gs_g_tex1_1
Definition: libgs.h:245
#define gs_setTEX1_1(p, _lcm, _mxl, _mmag, _mmin, _mtba, _l, _k)
Definition: libgs.h:1432

Definition at line 1679 of file libgs.h.

◆ gs_setR_TEX1_2

#define gs_setR_TEX1_2 (   p,
  _lcm,
  _mxl,
  _mmag,
  _mmin,
  _mtba,
  _l,
  _k 
)
Value:
gs_setTEX1_2(&p->data, _lcm,_mxl,_mmag,_mmin,_mtba,_l,_k),\
(p)->reg = gs_g_tex1_2
#define gs_g_tex1_2
Definition: libgs.h:246
#define gs_setTEX1_2
Definition: libgs.h:1441

Definition at line 1683 of file libgs.h.

◆ gs_setR_TEX2_1

#define gs_setR_TEX2_1 (   p,
  _psm,
  _cbp,
  _cpsm,
  _csm,
  _csa,
  _cld 
)
Value:
gs_setTEX2_1(&p->data, _psm,_cbp,_cpsm,_csm,_csa,_cld),\
(p)->reg = gs_g_tex2_1
#define gs_g_tex2_1
Definition: libgs.h:248
#define gs_setTEX2_1(p, _psm, _cbp, _cpsm, _csm, _csa, _cld)
Definition: libgs.h:1443

Definition at line 1687 of file libgs.h.

◆ gs_setR_TEX2_2

#define gs_setR_TEX2_2 (   p,
  _psm,
  _cbp,
  _cpsm,
  _csm,
  _csa,
  _cld 
)
Value:
gs_setTEX2_2(&p->data, _psm,_cbp,_cpsm,_csm,_csa,_cld),\
(p)->reg = gs_g_tex2_2
#define gs_g_tex2_2
Definition: libgs.h:250
#define gs_setTEX2_2
Definition: libgs.h:1451

Definition at line 1691 of file libgs.h.

◆ gs_setR_TEXA

#define gs_setR_TEXA (   p,
  _ta0,
  _aem,
  _ta1 
)
Value:
gs_setTEXA(&p->data, _ta0,_aem,_ta1),\
(p)->reg = gs_g_texa
#define gs_g_texa
Definition: libgs.h:271
#define gs_setTEXA(p, _alpha_0, _alpha_method, _alpha_1)
Definition: libgs.h:1500

Definition at line 1735 of file libgs.h.

◆ gs_setR_TEXCLUT

#define gs_setR_TEXCLUT (   p,
  _cbw,
  _cou,
  _cov 
)
Value:
gs_setTEXCLUT(&p->data, _cbw,_cou,_cov),\
(p)->reg = gs_g_texclut
#define gs_g_texclut
Definition: libgs.h:259
#define gs_setTEXCLUT(p, _cbw, _cou, _cov)
Definition: libgs.h:1472

Definition at line 1711 of file libgs.h.

◆ gs_setR_TEXFLUSH

#define gs_setR_TEXFLUSH (   p)     (p)->reg = gs_g_texflush

Definition at line 1743 of file libgs.h.

◆ gs_setR_TRXDIR

#define gs_setR_TRXDIR (   p,
  _trans_dir 
)
Value:
gs_setTRXDIR(&p->data, _trans_dir),\
(p)->reg = gs_g_trxdir
#define gs_setTRXDIR(p, _trans_dir)
Definition: libgs.h:1605
#define gs_g_trxdir
Definition: libgs.h:315

Definition at line 1822 of file libgs.h.

◆ gs_setR_TRXPOS

#define gs_setR_TRXPOS (   p,
  _src_x,
  _src_y,
  _dest_x,
  _dest_y,
  _direction 
)
Value:
gs_setTRXPOS(&p->data, _src_x,_src_y,_dest_x,_dest_y,_direction),\
(p)->reg = gs_g_trxpos
#define gs_setTRXPOS(p, _src_x, _src_y, _dest_x, _dest_y, _direction)
Definition: libgs.h:1594
#define gs_g_trxpos
Definition: libgs.h:311

Definition at line 1814 of file libgs.h.

◆ gs_setR_TRXREG

#define gs_setR_TRXREG (   p,
  _trans_w,
  _trans_h 
)
Value:
gs_setTRXREG(&p->data, _trans_w,_trans_h),\
(p)->reg = gs_g_trxreg
#define gs_g_trxreg
Definition: libgs.h:313
#define gs_setTRXREG(p, _trans_w, _trans_h)
Definition: libgs.h:1601

Definition at line 1818 of file libgs.h.

◆ gs_setR_UV

#define gs_setR_UV (   p,
  _u,
  _v 
)
Value:
gs_setUV(&p->data, _u,_v),\
(p)->reg = gs_g_uv
#define gs_g_uv
Definition: libgs.h:226
#define gs_setUV(p, _u, _v)
Definition: libgs.h:1377

Definition at line 1639 of file libgs.h.

◆ gs_setR_XYOFFSET_1

#define gs_setR_XYOFFSET_1 (   p,
  _offset_x,
  _offset_y 
)
Value:
gs_set_XYOFFSET_1(&p->data, _offset_x,_offset_y),\
(p)->reg = gs_g_xyoffset_1
#define gs_g_xyoffset_1
Definition: libgs.h:252
#define gs_set_XYOFFSET_1(p, _offset_x, _offset_y)
Definition: libgs.h:1453

Definition at line 1695 of file libgs.h.

◆ gs_setR_XYOFFSET_2

#define gs_setR_XYOFFSET_2 (   p,
  _offset_x,
  _offset_y 
)
Value:
gs_set_XYOFFSET_2(&p->data, _offset_x,_offset_y),\
(p)->reg = gs_g_xyoffset_2
#define gs_set_XYOFFSET_2
Definition: libgs.h:1457
#define gs_g_xyoffset_2
Definition: libgs.h:254

Definition at line 1699 of file libgs.h.

◆ gs_setR_XYZ2

#define gs_setR_XYZ2 (   p,
  _x,
  _y,
  _z 
)
Value:
gs_setXYZ2(&p->data, _x,_y,_z),\
(p)->reg = gs_g_xyz2
#define gs_g_xyz2
Definition: libgs.h:230
#define gs_setXYZ2(p, _x, _y, _z)
Definition: libgs.h:1393

Definition at line 1651 of file libgs.h.

◆ gs_setR_XYZ3

#define gs_setR_XYZ3 (   p,
  _x,
  _y,
  _z 
)
Value:
gs_setXYZ3(&p->data, _x,_y,_z),\
(p)->reg = gs_g_xyz3
#define gs_g_xyz3
Definition: libgs.h:244
#define gs_setXYZ3(p, _x, _y, _z)
Definition: libgs.h:1398

Definition at line 1655 of file libgs.h.

◆ gs_setR_XYZF2

#define gs_setR_XYZF2 (   p,
  _x,
  _y,
  _z,
  _f 
)
Value:
gs_setXYZF2(&p->data, _x,_y,_z,_f),\
(p)->reg = gs_g_xyzf2
#define gs_setXYZF2(p, _x, _y, _z, _f)
Definition: libgs.h:1381
#define gs_g_xyzf2
Definition: libgs.h:228

Definition at line 1643 of file libgs.h.

◆ gs_setR_XYZF3

#define gs_setR_XYZF3 (   p,
  _x,
  _y,
  _z,
  _f 
)
Value:
gs_setR_XYZF3(&p->data, _x,_y,_z,_f),\
(p)->reg = gs_g_xyzf3
#define gs_setR_XYZF3(p, _x, _y, _z, _f)
Definition: libgs.h:1647
#define gs_g_xyzf3
Definition: libgs.h:242

Definition at line 1647 of file libgs.h.

◆ gs_setR_ZBUF_1

#define gs_setR_ZBUF_1 (   p,
  _fb_addr,
  _psm,
  _update_mask 
)
Value:
gs_setZBUF_1(&p->data, _fb_addr,_psm,_update_mask),\
(p)->reg = gs_g_zbuf_1
#define gs_setZBUF_1(p, _fb_addr, _psm, _update_mask)
Definition: libgs.h:1579
#define gs_g_zbuf_1
Definition: libgs.h:305

Definition at line 1802 of file libgs.h.

◆ gs_setR_ZBUF_2

#define gs_setR_ZBUF_2 (   p,
  _fb_addr,
  _psm,
  _update_mask 
)
Value:
gs_setZBUF_2(&p->data, _fb_addr,_psm,_update_mask),\
(p)->reg = gs_g_zbuf_2
#define gs_g_zbuf_2
Definition: libgs.h:307
#define gs_setZBUF_2
Definition: libgs.h:1584

Definition at line 1806 of file libgs.h.

◆ gs_setRGBAQ

#define gs_setRGBAQ (   p,
  _r,
  _g,
  _b,
  _a,
  _q 
)
Value:
(p)->r = _r, \
(p)->g = _g, \
(p)->b = _b, \
(p)->a = _a, \
(p)->q = _q

Definition at line 1366 of file libgs.h.

◆ gs_setSCANMSK

#define gs_setSCANMSK (   p,
  _msk 
)     (p)->msk = _msk

Definition at line 1477 of file libgs.h.

◆ gs_setSCISSOR_1

#define gs_setSCISSOR_1 (   p,
  _clip_x0,
  _clip_x1,
  _clip_y0,
  _clip_y1 
)
Value:
(p)->clip_x0 = _clip_x0, \
(p)->clip_x1 = _clip_x1, \
(p)->clip_y0 = _clip_y0, \
(p)->clip_y1 = _clip_y1

Definition at line 1512 of file libgs.h.

◆ gs_setSCISSOR_2

#define gs_setSCISSOR_2   gs_setSCISSOR_1

Definition at line 1518 of file libgs.h.

◆ gs_setSIGNAL

#define gs_setSIGNAL (   p,
  _signal_id,
  _update_mask 
)
Value:
(p)->signal_id = _signal_id, \
(p)->update_mask= _update_mask

Definition at line 1611 of file libgs.h.

◆ gs_setST

#define gs_setST (   p,
  _s,
  _t 
)
Value:
(p)->s = _s, \
(p)->t = _t
s32 s
Definition: ps2ipc.c:30

Definition at line 1373 of file libgs.h.

◆ gs_setTEST_1

#define gs_setTEST_1 (   p,
  _atest_enable,
  _atest_method,
  _atest_reference,
  _atest_fail_method,
  _datest_enable,
  _datest_mode,
  _ztest_enable,
  _ztest_method 
)
Value:
(p)->atest_enable = _atest_enable, \
(p)->atest_method = _atest_method, \
(p)->atest_reference = _atest_reference, \
(p)->atest_fail_method = _atest_fail_method, \
(p)->datest_enable = _datest_enable, \
(p)->datest_mode = _datest_mode, \
(p)->ztest_enable = _ztest_enable, \
(p)->ztest_method = _ztest_method

Definition at line 1553 of file libgs.h.

◆ gs_setTEST_2

#define gs_setTEST_2   gs_setTEST_1

Definition at line 1563 of file libgs.h.

◆ gs_setTEX0_1

#define gs_setTEX0_1 (   p,
  _tb_addr,
  _tb_width,
  _psm,
  _tex_width,
  _tex_height,
  _tex_cc,
  _tex_funtion,
  _cb_addr,
  _clut_pixmode,
  _clut_smode,
  _clut_offset,
  _clut_loadmode 
)
Value:
(p)->tb_addr = _tb_addr, \
(p)->tb_width = _tb_width, \
(p)->psm = _psm, \
(p)->tex_width = _tex_width, \
(p)->tex_height = _tex_height, \
(p)->tex_cc = _tex_cc, \
(p)->tex_funtion = _tex_funtion, \
(p)->cb_addr = _cb_addr, \
(p)->clut_pixmode = _clut_pixmode, \
(p)->clut_smode = _clut_smode, \
(p)->clut_offset = _clut_offset, \
(p)->clut_loadmode = _clut_loadmode

Definition at line 1403 of file libgs.h.

◆ gs_setTEX0_2

#define gs_setTEX0_2   gs_setTEX0_1

Definition at line 1417 of file libgs.h.

◆ gs_setTEX1_1

#define gs_setTEX1_1 (   p,
  _lcm,
  _mxl,
  _mmag,
  _mmin,
  _mtba,
  _l,
  _k 
)
Value:
(p)->lcm = _lcm, \
(p)->mxl = _mxl, \
(p)->mmag = _mmag, \
(p)->mmin = _mmin, \
(p)->mtba = _mtba, \
(p)->l = _l, \
(p)->k = _k

Definition at line 1432 of file libgs.h.

◆ gs_setTEX1_2

#define gs_setTEX1_2   gs_setTEX1_1

Definition at line 1441 of file libgs.h.

◆ gs_setTEX2_1

#define gs_setTEX2_1 (   p,
  _psm,
  _cbp,
  _cpsm,
  _csm,
  _csa,
  _cld 
)
Value:
(p)->psm = _psm, \
(p)->cbp = _cbp, \
(p)->cpsm = _cpsm, \
(p)->csm = _csm, \
(p)->csa = _csa, \
(p)->cld = _cld

Definition at line 1443 of file libgs.h.

◆ gs_setTEX2_2

#define gs_setTEX2_2   gs_setTEX2_1

Definition at line 1451 of file libgs.h.

◆ gs_setTEXA

#define gs_setTEXA (   p,
  _alpha_0,
  _alpha_method,
  _alpha_1 
)
Value:
(p)->alpha_0 = _alpha_0, \
(p)->alpha_method = _alpha_method, \
(p)->alpha_1 = _alpha_1

Definition at line 1500 of file libgs.h.

◆ gs_setTEXCLUT

#define gs_setTEXCLUT (   p,
  _cbw,
  _cou,
  _cov 
)
Value:
(p)->cbw = _cbw, \
(p)->cou = _cou, \
(p)->cov = _cov

Definition at line 1472 of file libgs.h.

◆ gs_setTEXFLUSH

#define gs_setTEXFLUSH (   p)

Definition at line 1510 of file libgs.h.

◆ gs_setTRXDIR

#define gs_setTRXDIR (   p,
  _trans_dir 
)     (p)->trans_dir = _trans_dir

Definition at line 1605 of file libgs.h.

◆ gs_setTRXPOS

#define gs_setTRXPOS (   p,
  _src_x,
  _src_y,
  _dest_x,
  _dest_y,
  _direction 
)
Value:
(p)->src_x = _src_x, \
(p)->src_y = _src_y, \
(p)->dest_x = _dest_x, \
(p)->dest_y = _dest_y, \
(p)->direction = _direction

Definition at line 1594 of file libgs.h.

◆ gs_setTRXREG

#define gs_setTRXREG (   p,
  _trans_w,
  _trans_h 
)
Value:
(p)->trans_w = _trans_w, \
(p)->trans_h = _trans_h

Definition at line 1601 of file libgs.h.

◆ gs_setUV

#define gs_setUV (   p,
  _u,
  _v 
)
Value:
(p)->u = _u, \
(p)->v = _v

Definition at line 1377 of file libgs.h.

◆ gs_setXYZ2

#define gs_setXYZ2 (   p,
  _x,
  _y,
  _z 
)
Value:
(p)->x = _x, \
(p)->y = _y, \
(p)->z = _z

Definition at line 1393 of file libgs.h.

◆ gs_setXYZ3

#define gs_setXYZ3 (   p,
  _x,
  _y,
  _z 
)
Value:
(p)->x = _x, \
(p)->y = _y, \
(p)->z = _z

Definition at line 1398 of file libgs.h.

◆ gs_setXYZF2

#define gs_setXYZF2 (   p,
  _x,
  _y,
  _z,
  _f 
)
Value:
(p)->x = _x, \
(p)->y = _y, \
(p)->z = _z, \
(p)->f = _f

Definition at line 1381 of file libgs.h.

◆ gs_setXYZF3

#define gs_setXYZF3 (   p,
  _x,
  _y,
  _z,
  _f 
)
Value:
(p)->x = _x, \
(p)->y = _y, \
(p)->z = _z, \
(p)->f = _f

Definition at line 1387 of file libgs.h.

◆ gs_setZBUF_1

#define gs_setZBUF_1 (   p,
  _fb_addr,
  _psm,
  _update_mask 
)
Value:
(p)->fb_addr = _fb_addr, \
(p)->psm = _psm, \
(p)->update_mask = _update_mask

Definition at line 1579 of file libgs.h.

◆ gs_setZBUF_2

#define gs_setZBUF_2   gs_setZBUF_1

Definition at line 1584 of file libgs.h.

◆ GS_TEX_16

#define GS_TEX_16   2

Definition at line 90 of file libgs.h.

◆ GS_TEX_16S

#define GS_TEX_16S   10

Definition at line 91 of file libgs.h.

◆ GS_TEX_24

#define GS_TEX_24   1

Definition at line 89 of file libgs.h.

◆ GS_TEX_32

#define GS_TEX_32   0

texture/image Pixel Storage Modes (PSM)

Definition at line 88 of file libgs.h.

◆ GS_TEX_4

#define GS_TEX_4   20

Definition at line 93 of file libgs.h.

◆ GS_TEX_4HH

#define GS_TEX_4HH   44

Definition at line 96 of file libgs.h.

◆ GS_TEX_4HL

#define GS_TEX_4HL   36

Definition at line 95 of file libgs.h.

◆ GS_TEX_8

#define GS_TEX_8   19

Definition at line 92 of file libgs.h.

◆ GS_TEX_8H

#define GS_TEX_8H   27

Definition at line 94 of file libgs.h.

◆ GS_TEX_CALC

#define GS_TEX_CALC   0

use near/far formula

Definition at line 135 of file libgs.h.

◆ GS_TEX_FIXED

#define GS_TEX_FIXED   1

fixed value (use K value)

Definition at line 137 of file libgs.h.

◆ GS_TEX_MIPMAP_AUTO

#define GS_TEX_MIPMAP_AUTO   1

auto calculate mipmap address

Definition at line 170 of file libgs.h.

◆ GS_TEX_MIPMAP_DEFINE

#define GS_TEX_MIPMAP_DEFINE   0

use values in MIPTBP1

Definition at line 168 of file libgs.h.

◆ GS_ZBUFF_16

#define GS_ZBUFF_16   50

Definition at line 101 of file libgs.h.

◆ GS_ZBUFF_16S

#define GS_ZBUFF_16S   58

Definition at line 102 of file libgs.h.

◆ GS_ZBUFF_24

#define GS_ZBUFF_24   49

Definition at line 100 of file libgs.h.

◆ GS_ZBUFF_32

#define GS_ZBUFF_32   48

Z-Buffer Pixel Storage Modes (PSM)

Definition at line 99 of file libgs.h.

Enumeration Type Documentation

◆ GsATestFailedUpdateMethods

Alpha test failed update Methods

Enumerator
GS_ALPHA_NO_UPDATE 

standard

GS_ALPHA_FB_ONLY 
GS_ALPHA_ZB_ONLY 
GS_ALPHA_RGB_ONLY 

Definition at line 117 of file libgs.h.

117  {
123 };
@ GS_ALPHA_ZB_ONLY
Definition: libgs.h:121
@ GS_ALPHA_FB_ONLY
Definition: libgs.h:120
@ GS_ALPHA_NO_UPDATE
Definition: libgs.h:119
@ GS_ALPHA_RGB_ONLY
Definition: libgs.h:122

◆ GsATestMethods

Alpha test Methods

Enumerator
GS_ALPHA_NEVER 
GS_ALPHA_ALWAYS 
GS_ALPHA_LESS 
GS_ALPHA_LEQUAL 
GS_ALPHA_EQUAL 
GS_ALPHA_GEQUAL 
GS_ALPHA_GREATER 
GS_ALPHA_NOTEQUAL 

Definition at line 105 of file libgs.h.

105  {
106  GS_ALPHA_NEVER =0,
114 };
@ GS_ALPHA_GEQUAL
Definition: libgs.h:111
@ GS_ALPHA_ALWAYS
Definition: libgs.h:107
@ GS_ALPHA_LEQUAL
Definition: libgs.h:109
@ GS_ALPHA_NEVER
Definition: libgs.h:106
@ GS_ALPHA_LESS
Definition: libgs.h:108
@ GS_ALPHA_NOTEQUAL
Definition: libgs.h:113
@ GS_ALPHA_GREATER
Definition: libgs.h:112
@ GS_ALPHA_EQUAL
Definition: libgs.h:110

◆ GsGifDataFormat

Enumerator
GS_GIF_PACKED 
GS_GIF_REGLIST 
GS_GIF_IMAGE 
GS_GIF_DISABLE 

Same operation with the IMAGE mode

Definition at line 180 of file libgs.h.

180  {
181  GS_GIF_PACKED =0,
183  GS_GIF_IMAGE,
186 };
@ GS_GIF_PACKED
Definition: libgs.h:181
@ GS_GIF_IMAGE
Definition: libgs.h:183
@ GS_GIF_DISABLE
Definition: libgs.h:185
@ GS_GIF_REGLIST
Definition: libgs.h:182

◆ GsPrimitiveTypes

types of primitives

Enumerator
GS_PRIM_POINT 
GS_PRIM_LINE 
GS_PRIM_LINE_STRIP 
GS_PRIM_TRI 
GS_PRIM_TRI_STRIP 
GS_PRIM_TRI_FAN 
GS_PRIM_SPRITE 

Definition at line 66 of file libgs.h.

66  {
67  GS_PRIM_POINT =0,
74 };
@ GS_PRIM_TRI_FAN
Definition: libgs.h:72
@ GS_PRIM_TRI
Definition: libgs.h:70
@ GS_PRIM_LINE
Definition: libgs.h:68
@ GS_PRIM_LINE_STRIP
Definition: libgs.h:69
@ GS_PRIM_TRI_STRIP
Definition: libgs.h:71
@ GS_PRIM_POINT
Definition: libgs.h:67
@ GS_PRIM_SPRITE
Definition: libgs.h:73

◆ GsTexFilterMethods

Enumerator
GS_TEX_NEAREST 

UnFiltered

GS_TEX_LINEAR 

Filtered

GS_TEX_NEAREST_MIPMAP_NEAREST 
GS_TEX_NEAREST_MIPMAP_LINEAR 
GS_TEX_LINEAR_MIPMAP_NEAREST 
GS_TEX_LINEAR_MIPMAP_LINEAR 

Definition at line 156 of file libgs.h.

156  {
158  GS_TEX_NEAREST =0,
165 };
@ GS_TEX_LINEAR
Definition: libgs.h:160
@ GS_TEX_LINEAR_MIPMAP_LINEAR
Definition: libgs.h:164
@ GS_TEX_LINEAR_MIPMAP_NEAREST
Definition: libgs.h:163
@ GS_TEX_NEAREST_MIPMAP_LINEAR
Definition: libgs.h:162
@ GS_TEX_NEAREST
Definition: libgs.h:158
@ GS_TEX_NEAREST_MIPMAP_NEAREST
Definition: libgs.h:161

◆ GsTexFunctions

Texture Function (used in TEX0->tex_cc)

Enumerator
GS_TEX_MODULATE 
GS_TEX_DECAL 

brighten texture based on Pixel's Alpha

GS_TEX_HIGHLIHGT1 

keep texture as is

GS_TEX_HIGHLIHGT2 

used when highlighting translucent polygons used when highlighting opaque polygons

Definition at line 173 of file libgs.h.

173  {
174  GS_TEX_MODULATE =0,
175  GS_TEX_DECAL,
178 };
@ GS_TEX_HIGHLIHGT1
Definition: libgs.h:176
@ GS_TEX_DECAL
Definition: libgs.h:175
@ GS_TEX_HIGHLIHGT2
Definition: libgs.h:177
@ GS_TEX_MODULATE
Definition: libgs.h:174

◆ GsTexMipmaps

Enumerator
GS_TEX_MIPMAP0 

no mipmap

GS_TEX_MIPMAP1 

1 mipmap

GS_TEX_MIPMAP2 

2 mipmaps

GS_TEX_MIPMAP3 

3 mipmaps

GS_TEX_MIPMAP4 

4 mipmaps

GS_TEX_MIPMAP5 

5 mipmaps

GS_TEX_MIPMAP6 

6 mipmaps

Definition at line 139 of file libgs.h.

139  {
141  GS_TEX_MIPMAP0 =0,
154 };
@ GS_TEX_MIPMAP6
Definition: libgs.h:153
@ GS_TEX_MIPMAP5
Definition: libgs.h:151
@ GS_TEX_MIPMAP2
Definition: libgs.h:145
@ GS_TEX_MIPMAP0
Definition: libgs.h:141
@ GS_TEX_MIPMAP1
Definition: libgs.h:143
@ GS_TEX_MIPMAP3
Definition: libgs.h:147
@ GS_TEX_MIPMAP4
Definition: libgs.h:149

◆ GsVideoModes

Enumerator
GS_MODE_NTSC 
GS_MODE_PAL 
GS_MODE_DTV_480P 

Definition at line 55 of file libgs.h.

55  {
56  GS_MODE_NTSC = 0x02,
58 
59  GS_MODE_DTV_480P = 0x50,
60 };
@ GS_MODE_PAL
Definition: libgs.h:57
@ GS_MODE_DTV_480P
Definition: libgs.h:59
@ GS_MODE_NTSC
Definition: libgs.h:56

◆ GsZTestMethodTypes

Zbuffer test Methods

Enumerator
GS_ZBUFF_NEVER 
GS_ZBUFF_ALWAYS 
GS_ZBUFF_GEQUAL 
GS_ZBUFF_GREATER 

Definition at line 126 of file libgs.h.

126  {
127  GS_ZBUFF_NEVER =0,
131 };
@ GS_ZBUFF_GEQUAL
Definition: libgs.h:129
@ GS_ZBUFF_NEVER
Definition: libgs.h:127
@ GS_ZBUFF_GREATER
Definition: libgs.h:130
@ GS_ZBUFF_ALWAYS
Definition: libgs.h:128

Function Documentation

◆ GsClearDrawEnv1()

void GsClearDrawEnv1 ( GS_DRAWENV drawenv)

clear draw buffer with GS_DRAWENV->bg_color color (contex 1)

Definition at line 182 of file draw.c.

183 {
184  unsigned char context;
185  QWORD *p;
186 
187  // use a sprite to clear background
188  context =0; // contex 1
189 
191  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 4,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
192  gs_setR_PRIM(((GS_R_PRIM *)&p[1]), GS_PRIM_SPRITE,0, 0, 0, 1, 0, 1, context, 0);
193  gs_setR_RGBAQ(((GS_R_RGBAQ *)&p[2]), drawenv->bg_color.r, drawenv->bg_color.g, drawenv->bg_color.b, drawenv->bg_color.a, drawenv->bg_color.q);
194  gs_setR_XYZ2(((GS_R_XYZ *)&p[3]), (drawenv->offset_x+drawenv->clip.x)<<4, (drawenv->offset_y+drawenv->clip.y)<<4, 0x00000000);
195  gs_setR_XYZ2(((GS_R_XYZ *)&p[4]), (drawenv->offset_x+drawenv->clip.x+drawenv->clip.w)<<4, (drawenv->offset_y+drawenv->clip.y+drawenv->clip.h)<<4, 0x00000000);
196 
198  GsDmaWait();
199 }
u8 context
Definition: main.c:71
#define UNCACHED_SEG(x)
Definition: kernel.h:35
void GsDmaWait(void)
Definition: dma.c:148
void GsDmaSend(const void *addr, u32 qwords)
Definition: dma.c:88
QWORD GsPrimWorkArea[]
Definition: packets.c:18
#define gs_setR_RGBAQ(p, _r, _g, _b, _a, _q)
Definition: libgs.h:1631
#define gs_setR_XYZ2(p, _x, _y, _z)
Definition: libgs.h:1651
#define gs_setGIF_TAG(p, _nloop, _eop, _pre, _prim, _flg, _nreg, _reg)
Definition: libgs.h:1870
#define gif_rd_ad
Definition: libgs.h:326
#define gs_setR_PRIM(p, _prim_type, _iip, _tme, _fge, _abe, _aa1, _fst, _ctxt, _fix)
Definition: libgs.h:1627
u16 offset_y
Definition: libgs.h:1944
GS_RGBAQ bg_color
Definition: libgs.h:1962
u16 offset_x
Definition: libgs.h:1942
GS_URECT clip
Definition: libgs.h:1946
u8 a
Definition: libgs.h:598
u8 r
Definition: libgs.h:595
u8 b
Definition: libgs.h:597
u8 g
Definition: libgs.h:596
float q
Definition: libgs.h:599
u16 w
Definition: libgs.h:1916
u16 x
Definition: libgs.h:1914
u16 h
Definition: libgs.h:1917
u16 y
Definition: libgs.h:1915
Definition: libgs.h:333

References GS_RGBAQ::a, GS_RGBAQ::b, GS_DRAWENV::bg_color, GS_DRAWENV::clip, context, GS_RGBAQ::g, gif_rd_ad, GS_GIF_PACKED, GS_PRIM_SPRITE, gs_setGIF_TAG, gs_setR_PRIM, gs_setR_RGBAQ, gs_setR_XYZ2, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, GS_URECT::h, GS_DRAWENV::offset_x, GS_DRAWENV::offset_y, GS_RGBAQ::q, GS_RGBAQ::r, UNCACHED_SEG, GS_URECT::w, GS_URECT::x, and GS_URECT::y.

Referenced by ClearDrawingContext(), GsPutDrawEnv1(), and main().

◆ GsClearDrawEnv2()

void GsClearDrawEnv2 ( GS_DRAWENV drawenv)

clear draw buffer with GS_DRAWENV->bg_color color (contex 2)

Definition at line 219 of file draw.c.

220 {
221  unsigned char context;
222  QWORD *p;
223 
224  // use a sprite to clear background
225  context =1; // contex 2
226 
228  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 4,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
229  gs_setR_PRIM(((GS_R_PRIM *)&p[1]), GS_PRIM_SPRITE,0, 0, 0, 1, 0, 1, context, 0);
230  gs_setR_RGBAQ(((GS_R_RGBAQ *)&p[2]), drawenv->bg_color.r, drawenv->bg_color.g, drawenv->bg_color.b, drawenv->bg_color.a, drawenv->bg_color.q);
231  gs_setR_XYZ2(((GS_R_XYZ *)&p[3]), (drawenv->offset_x+drawenv->clip.x)<<4, (drawenv->offset_y+drawenv->clip.y)<<4, 0x00000000);
232  gs_setR_XYZ2(((GS_R_XYZ *)&p[4]), (drawenv->offset_x+drawenv->clip.x+drawenv->clip.w)<<4, (drawenv->offset_y+drawenv->clip.y+drawenv->clip.h)<<4, 0x00000000);
233 
235  GsDmaWait();
236 }

References GS_RGBAQ::a, GS_RGBAQ::b, GS_DRAWENV::bg_color, GS_DRAWENV::clip, context, GS_RGBAQ::g, gif_rd_ad, GS_GIF_PACKED, GS_PRIM_SPRITE, gs_setGIF_TAG, gs_setR_PRIM, gs_setR_RGBAQ, gs_setR_XYZ2, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, GS_URECT::h, GS_DRAWENV::offset_x, GS_DRAWENV::offset_y, GS_RGBAQ::q, GS_RGBAQ::r, UNCACHED_SEG, GS_URECT::w, GS_URECT::x, and GS_URECT::y.

Referenced by ClearDrawingContext(), and GsPutDrawEnv2().

◆ GsDbGetDisplayBuffer()

int GsDbGetDisplayBuffer ( void  )

Definition at line 25 of file DoubleBuff.c.

26 {
27  return(gs_db_draw_buffer? 0: 1);
28 }
static short int gs_db_draw_buffer
Definition: DoubleBuff.c:18

References gs_db_draw_buffer.

Referenced by main().

◆ GsDbGetDrawBuffer()

int GsDbGetDrawBuffer ( void  )

Definition at line 20 of file DoubleBuff.c.

21 {
22  return gs_db_draw_buffer;
23 }

References gs_db_draw_buffer.

Referenced by main().

◆ GsDbSwapBuffer()

void GsDbSwapBuffer ( void  )

Definition at line 30 of file DoubleBuff.c.

31 {
33 }

References gs_db_draw_buffer.

Referenced by main().

◆ GsDrawSync()

void GsDrawSync ( int  mode)

Definition at line 18 of file sync.c.

19 {
20  switch(mode)
21  {
22  case 0:
23  default:
24  GsDmaWait();
25  }
26 }
s32 mode
Definition: rpc_client.c:15

References GsDmaWait(), and mode.

Referenced by main().

◆ GsEnableAlphaBlending1()

void GsEnableAlphaBlending1 ( u16  enable)

Definition at line 137 of file primitives.c.

138 {
139  QWORD *p;
140 
142  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 4,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
143 
144  if(enable)
145  {
146  gs_setR_ALPHA_1(((GS_R_ALPHA *)&p[1]), 0,1,0,1,0x00); //last arg(0x00) is not used bceause of other settings
147  }
148  else
149  {
150  gs_setR_ALPHA_1(((GS_R_ALPHA *)&p[1]), 0,0,0,0,0x80);
151  }
152  gs_setR_PABE(((GS_R_PABE *)&p[2]), 0);
153  gs_setR_FBA_1(((GS_R_FBA *)&p[3]), 0);
154  gs_setR_TEXA(((GS_R_TEXA *)&p[4]), 0x80, 0, 0x00);
155 
157  GsDmaWait();
158 }
#define gs_setR_FBA_1(p, _alpha)
Definition: libgs.h:1786
#define gs_setR_TEXA(p, _ta0, _aem, _ta1)
Definition: libgs.h:1735
#define gs_setR_ALPHA_1(p, _a, _b, _c, _d, _fix)
Definition: libgs.h:1754
#define gs_setR_PABE(p, _enable)
Definition: libgs.h:1782
QWORD GsPrimWorkArea[]
Definition: packets.c:18

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_ALPHA_1, gs_setR_FBA_1, gs_setR_PABE, gs_setR_TEXA, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

Referenced by InitGraphics().

◆ GsEnableAlphaBlending2()

void GsEnableAlphaBlending2 ( u16  enable)

Definition at line 160 of file primitives.c.

161 {
162  QWORD *p;
163 
165  gs_setGIF_TAG(((GS_GIF_TAG*)&p[0]), 4,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
166 
167  if(enable)
168  {
169  gs_setR_ALPHA_2(((GS_R_ALPHA*)&p[1]), 0,1,0,1,0x00); //last arg(0x00) is not used bceause of other settings
170  }
171  else
172  {
173  gs_setR_ALPHA_2(((GS_R_ALPHA *)&p[1]), 0,0,0,0,0x80);
174  }
175  gs_setR_PABE(((GS_R_PABE *)&p[2]), 0);
176  gs_setR_FBA_2(((GS_R_FBA *)&p[3]), 0);
177  gs_setR_TEXA(((GS_R_TEXA *)&p[4]), 0x80, 0, 0x00);
178 
180  GsDmaWait();
181 }
#define gs_setR_FBA_2(p, _alpha)
Definition: libgs.h:1790
#define gs_setR_ALPHA_2(p, _a, _b, _c, _d, _fix)
Definition: libgs.h:1758

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_ALPHA_2, gs_setR_FBA_2, gs_setR_PABE, gs_setR_TEXA, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

Referenced by InitGraphics().

◆ GsEnableAlphaTransparency1()

void GsEnableAlphaTransparency1 ( u16  enable,
u16  method,
u8  alpha_ref,
u16  fail_method 
)

Definition at line 72 of file primitives.c.

73 {
74  QWORD *p;
75 
79  GSGLOBAL_TEST1.atest_reference = alpha_ref;
80  GSGLOBAL_TEST1.atest_fail_method = fail_method;
81 
85 
86  // tell GS in 16bit texture 1=transparent,0=solid
87  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
88  gs_setR_TEXA(((GS_R_TEXA *)&p[1]), 0x80, 0, 0x00);
89 
91  GsDmaWait();
92 }
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)
Definition: lowlevel.c:127
static GS_TEST GSGLOBAL_TEST1
Definition: primitives.c:20
u64 datest_enable
Definition: libgs.h:835
u64 atest_reference
Definition: libgs.h:833
u64 datest_mode
Definition: libgs.h:836
u64 ztest_method
Definition: libgs.h:838
u64 atest_fail_method
Definition: libgs.h:834
u64 atest_enable
Definition: libgs.h:831
u64 atest_method
Definition: libgs.h:832
u64 ztest_enable
Definition: libgs.h:837

References GS_TEST::atest_enable, GS_TEST::atest_fail_method, GS_TEST::atest_method, GS_TEST::atest_reference, GS_TEST::datest_enable, GS_TEST::datest_mode, gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_TEXA, GsDmaSend(), GsDmaWait(), GSGLOBAL_TEST1, GsPrimWorkArea, GsSetPixelTest1(), UNCACHED_SEG, GS_TEST::ztest_enable, and GS_TEST::ztest_method.

Referenced by InitGraphics().

◆ GsEnableAlphaTransparency2()

void GsEnableAlphaTransparency2 ( u16  enable,
u16  method,
u8  alpha_ref,
u16  fail_method 
)

Definition at line 94 of file primitives.c.

95 {
96  QWORD *p;
97 
100  GSGLOBAL_TEST2.atest_method = method;
101  GSGLOBAL_TEST2.atest_reference = alpha_ref;
102  GSGLOBAL_TEST2.atest_fail_method = fail_method;
103 
107 
108  // tell GS in 16bit texture 1=transparent,0=solid
109  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
110  gs_setR_TEXA(((GS_R_TEXA *)&p[1]), 0x80, 0, 0x00);
111 
113  GsDmaWait();
114 }
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)
Definition: lowlevel.c:140
static GS_TEST GSGLOBAL_TEST2
Definition: primitives.c:21

References GS_TEST::atest_enable, GS_TEST::atest_fail_method, GS_TEST::atest_method, GS_TEST::atest_reference, GS_TEST::datest_enable, GS_TEST::datest_mode, gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_TEXA, GsDmaSend(), GsDmaWait(), GSGLOBAL_TEST2, GsPrimWorkArea, GsSetPixelTest2(), UNCACHED_SEG, GS_TEST::ztest_enable, and GS_TEST::ztest_method.

Referenced by InitGraphics().

◆ GsEnableColorClamp()

void GsEnableColorClamp ( u16  enable)

Definition at line 190 of file lowlevel.c.

191 {
192  QWORD *p;
194  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
195  gs_setR_COLCLAMP(((GS_R_COLCLAMP *)&p[1]), enable);
196 
198  GsDmaWait();
199 }
#define gs_setR_COLCLAMP(p, _clamp)
Definition: libgs.h:1770
QWORD GsPrimWorkArea[]
Definition: packets.c:18

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_COLCLAMP, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

◆ GsEnableDithering()

void GsEnableDithering ( u8  enable,
int  mode 
)

Definition at line 46 of file primitives.c.

47 {
48  QWORD *p;
49 
51  if(enable)
52  {
53  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 3,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
54  gs_setR_DTHE(((GS_R_DTHE *)&p[1]), 1);
55  gs_setR_DIMX(((GS_R_DIMX *)&p[2]), 4,2,5,3,0,6,1,7,5,3,4,2,1,7,0,6); //thanks to:"Maximus32" on ps2dev.org
56  gs_setR_COLCLAMP(((GS_R_COLCLAMP *)&p[3]), 1);
57 
59  }
60  else
61  {
62  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 2,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
63  gs_setR_DTHE(((GS_R_DTHE *)&p[1]), 0);
64  gs_setR_DIMX(((GS_R_DIMX *)&p[2]), 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
65 
67  }
68 
69  GsDmaWait();
70 }
#define gs_setR_DTHE(p, _enable)
Definition: libgs.h:1766
#define gs_setR_DIMX(p, _dimx00, _dimx01, _dimx02, _dimx03, _dimx10, _dimx11, _dimx12, _dimx13, _dimx20, _dimx21, _dimx22, _dimx23, _dimx30, _dimx31, _dimx32, _dimx33)
Definition: libgs.h:1762

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_COLCLAMP, gs_setR_DIMX, gs_setR_DTHE, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

◆ GsEnableZbuffer1()

◆ GsEnableZbuffer2()

◆ GsGetGParam()

GsGParam_t* GsGetGParam ( void  )

Definition at line 24 of file libgs.c.

25 {
26  return &gp_15;
27 }
static GsGParam_t gp_15
Definition: libgs.c:22

References gp_15.

Referenced by GsResetGraph(), and GsSetDefaultDisplayEnv().

◆ GsGifPacketsAlloc()

QWORD* GsGifPacketsAlloc ( GS_PACKET_TABLE table,
u32  num_qwords 
)

Definition at line 20 of file packets.c.

21 {
22  void *pointer;
24 
25  if(num_qwords <= (GS_PACKET_DATA_QWORD_MAX-table->qword_offset)) //check if we can alloc in current packet
26  {
27  pointer=&table->packets[table->packet_offset].data[table->qword_offset];
28  table->qword_offset += num_qwords;
29  }
30  else //couldnt fit so we going to have to try to jump to next packet
31  {
32  if(table->packet_offset+1 == table->packet_count) //no more packet available so we return error;
33  {
34  pointer=NULL;
35  }
36  else //there is another pocket available so we can jump to it
37  {
38  //before we jup to this packet then we got to end current packet and point it to the new one
40  packet->tag.qwc=table->qword_offset;
41  packet->tag.pad1=0;
42  packet->tag.pce=0;
43  packet->tag.id=0x02; //next = tag.addr
44  packet->tag.irq =0;
45  packet->tag.addr=(unsigned int)&((GS_GIF_PACKET*)UNCACHED_SEG(&table->packets[table->packet_offset + 1]))->tag;
46  packet->tag.spr =0;
47  packet->tag.pad2 =0;
48 
49  //now reset qwords offset in this packet & update packet offset
50  table->qword_offset= 0;
51  table->packet_offset++;
52 
53  //now we use the new packet
54  // but we still got to check if enough mem is available
55  if( num_qwords <= (GS_PACKET_DATA_QWORD_MAX-table->qword_offset) )
56  {
57  pointer=&table->packets[table->packet_offset].data[table->qword_offset];
58  table->qword_offset += num_qwords;
59  }
60  else //not enough
61  {
62  pointer=NULL;
63  }
64  }
65  }
66 
67  return pointer;
68 }
packet_t packet
Definition: font.c:24
#define GS_PACKET_DATA_QWORD_MAX
Definition: libgs.h:2279
QWORD data[GS_PACKET_DATA_QWORD_MAX]
Definition: libgs.h:2284
u32 packet_count
Definition: libgs.h:2289
GS_GIF_PACKET * packets
Definition: libgs.h:2292
u32 packet_offset
Definition: libgs.h:2290
u32 qword_offset
Definition: libgs.h:2291
u16 qwc
Definition: packet.h:25
#define NULL
Definition: tamtypes.h:91

References GS_GIF_PACKET::data, GS_PACKET_DATA_QWORD_MAX, NULL, packet, GS_PACKET_TABLE::packet_count, GS_PACKET_TABLE::packet_offset, GS_PACKET_TABLE::packets, packet_t::qwc, GS_PACKET_TABLE::qword_offset, and UNCACHED_SEG.

Referenced by DrawSprites(), and DrawTriangles().

◆ GsGifPacketsClear()

void GsGifPacketsClear ( GS_PACKET_TABLE table)

Definition at line 70 of file packets.c.

71 {
72  table->packet_offset=0;
73  table->qword_offset=0;
74 }

References GS_PACKET_TABLE::packet_offset, and GS_PACKET_TABLE::qword_offset.

Referenced by main().

◆ GsGifPacketsExecute()

int GsGifPacketsExecute ( GS_PACKET_TABLE table,
u16  wait 
)

Definition at line 76 of file packets.c.

77 {
79 
80  if(table->packet_offset==0 && table->qword_offset==0)
81  return 0;
82 
83  if(table->packets == NULL)
84  return -1;
85 
86  //close the current pocket
88  packet->tag.qwc =table->qword_offset;
89  packet->tag.pad1 =0;
90  packet->tag.pce =0;
91  packet->tag.id =0x07; //end
92  packet->tag.irq =0;
93  packet->tag.addr =(u32)0;
94  packet->tag.spr =0;
95  packet->tag.pad2 =0;
96 
97  GsDmaSend_tag(0, 0, &table->packets[0].tag);
98  if(wait)
99  GsDmaWait();
100 
101  return 0;
102 }
void GsDmaSend_tag(const void *addr, u32 qwords, const GS_GIF_DMACHAIN_TAG *tag)
Definition: dma.c:118
GS_GIF_DMACHAIN_TAG tag
Definition: libgs.h:2283
unsigned int u32
Definition: tamtypes.h:30

References GsDmaSend_tag(), GsDmaWait(), NULL, packet, GS_PACKET_TABLE::packet_offset, GS_PACKET_TABLE::packets, packet_t::qwc, GS_PACKET_TABLE::qword_offset, GS_GIF_PACKET::tag, and UNCACHED_SEG.

Referenced by main().

◆ GsHSync()

void GsHSync ( int  mode)

Definition at line 28 of file sync.c.

29 {
30  unsigned short i;
31 
32  switch(mode)
33  {
34  case 0:
37  break;
38  default:
39  if(mode>1)
40  {
41  for(i=0;i<mode;i++)
42  {
45  }
46  }
47  }
48 }
#define GS_GET_CSR_hsync_intrupt
Definition: libgs.h:1326
#define GS_SET_CSR_hsync_intrupt(val)
Definition: libgs.h:1294

References GS_GET_CSR_hsync_intrupt, GS_SET_CSR_hsync_intrupt, and mode.

◆ GsLoadImage()

int GsLoadImage ( const void *  source_addr,
GS_IMAGE dest 
)

Definition at line 20 of file texture.c.

21 {
22  int i;
23  const unsigned char *pTexSrc;
24  unsigned int current, max, remainder, img_qwc;
25  QWORD *p;
26 
27  switch(dest->psm)
28  {
29  case GS_TEX_32: //32 bit image
30  img_qwc = ((dest->width * dest->height)*4)/16;
31  break;
32  case GS_TEX_24: //24 bit image
33  img_qwc = ((dest->width * dest->height)*3)/16;
34  break;
35  case GS_TEX_16: //16 bit image
36  img_qwc = ((dest->width * dest->height)*2)/16;
37  break;
38  case GS_TEX_8: //8 bit image
39  img_qwc = ((dest->width * dest->height)*1)/16;
40  break;
41  case GS_TEX_4: //4 bit image
42  img_qwc = ((dest->width * dest->height)/2)/16;
43  break;
44  default:
45  //printf("unable to load unsupported image(%02x)",dest->psm);
46  return -1;
47  }
48 
50  gs_setGIF_TAG(((GS_GIF_TAG*)&p[0]), 4,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
51  gs_setR_BITBLTBUF(((GS_R_BITBLTBUF*)&p[1]),0,0,0,dest->vram_addr,dest->vram_width,dest->psm);
52  gs_setR_TRXPOS(((GS_R_TRXPOS*)&p[2]), 0,0,dest->x,dest->y,0);
53  gs_setR_TRXREG(((GS_R_TRXREG*)&p[3]), dest->width,dest->height);
54  gs_setR_TRXDIR(((GS_R_TRXDIR*)&p[4]), 0);
55 
57  GsDmaWait();
58 
59  // Ok , We Send Image Now
60  max = img_qwc / 16384;
61  remainder = img_qwc % 16384;
62  current = 16384;
63  pTexSrc = (const unsigned char *)source_addr;
64  for(i=0;i<max;i++)
65  {
66  //1st we signal gs we are about to send
67  //16384 qwords
68 
69  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), current,1,0,0,GS_GIF_IMAGE,0,0x00);
70 
72  GsDmaWait();
73 
74  //we now send 16384 more qwords
75  GsDmaSend(pTexSrc, current);
76  GsDmaWait();
77 
78  pTexSrc += current*16;
79  }
80 
81  //transfer the rest if we have left overs
82  current = remainder;
83  //or exit if none is left
84  if(current)
85  {
86  // we signal are about to send whats left
87  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), current,1,0,0,GS_GIF_IMAGE,0,0x00);
88 
90  GsDmaWait();
91 
92  //send data leftover
93  GsDmaSend(pTexSrc, current);
94  GsDmaWait();
95  }
96 
97  return 1;
98 }
QWORD GsPrimWorkArea[]
Definition: packets.c:18
#define GS_TEX_32
Definition: libgs.h:88
#define gs_setR_TRXDIR(p, _trans_dir)
Definition: libgs.h:1822
#define GS_TEX_8
Definition: libgs.h:92
#define GS_TEX_4
Definition: libgs.h:93
#define GS_TEX_16
Definition: libgs.h:90
#define gs_setR_TRXREG(p, _trans_w, _trans_h)
Definition: libgs.h:1818
#define gs_setR_TRXPOS(p, _src_x, _src_y, _dest_x, _dest_y, _direction)
Definition: libgs.h:1814
#define gs_setR_BITBLTBUF(p, _src_addr, _src_width, _src_pixmode, _dest_addr, _dest_width, _dest_pixmode)
Definition: libgs.h:1810
#define GS_TEX_24
Definition: libgs.h:89
#define max(a, b)
Definition: standard.h:57
u16 width
Definition: libgs.h:2302
u16 vram_addr
Definition: libgs.h:2306
u8 psm
Definition: libgs.h:2310
u16 y
Definition: libgs.h:2300
u16 x
Definition: libgs.h:2298
u8 vram_width
Definition: libgs.h:2308
u16 height
Definition: libgs.h:2304

References gif_rd_ad, GS_GIF_IMAGE, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_BITBLTBUF, gs_setR_TRXDIR, gs_setR_TRXPOS, gs_setR_TRXREG, GS_TEX_16, GS_TEX_24, GS_TEX_32, GS_TEX_4, GS_TEX_8, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, GS_IMAGE::height, max, GS_IMAGE::psm, UNCACHED_SEG, GS_IMAGE::vram_addr, GS_IMAGE::vram_width, GS_IMAGE::width, GS_IMAGE::x, and GS_IMAGE::y.

◆ GsOverridePrimAttributes()

void GsOverridePrimAttributes ( s8  override,
s8  iip,
s8  tme,
s8  fge,
s8  abe,
s8  aa1,
s8  fst,
s8  ctxt,
s8  fix 
)

Definition at line 23 of file primitives.c.

24 {
25  QWORD *p;
26 
28  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 2,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
29 
30  //override. (0 = use PRIM)(1 = use PRMODE)
31  if(override)
32  {
33  gs_setR_PRMODECONT(((GS_R_PRMODECONT *)&p[1]), 0);
34  }
35  else
36  {
37  gs_setR_PRMODECONT(((GS_R_PRMODECONT *)&p[1]), 1);
38  }
39 
40  gs_setR_PRMODE(((GS_R_PRMODE *)&p[2]), iip,tme,fge,abe,aa1,fst,ctxt,fix);
41 
43  GsDmaWait();
44 }
#define gs_setR_PRMODE(p, _iip, _tme, _fge, _abe, _aa1, _fst, _ctxt, _fix)
Definition: libgs.h:1707
#define gs_setR_PRMODECONT(p, _control)
Definition: libgs.h:1703

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_PRMODE, gs_setR_PRMODECONT, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

Referenced by InitGraphics().

◆ GsPutDisplayEnv1()

void GsPutDisplayEnv1 ( GS_DISPENV dispenv)

Definition at line 201 of file draw.c.

202 {
203  *((volatile GS_DISPLAY *)(gs_p_display1)) = dispenv->disp;
204  *((volatile GS_DISPFB *)(gs_p_dispfb1)) = dispenv->dispfb;
205 }
GS_DISPFB dispfb
Definition: libgs.h:1969
GS_DISPLAY disp
Definition: libgs.h:1968

References GS_DISPENV::disp, GS_DISPENV::dispfb, gs_p_dispfb1, and gs_p_display1.

Referenced by InitGraphics().

◆ GsPutDisplayEnv2()

void GsPutDisplayEnv2 ( GS_DISPENV dispenv)

Definition at line 238 of file draw.c.

239 {
240  *((volatile GS_DISPLAY *)(gs_p_display2)) = dispenv->disp;
241  *((volatile GS_DISPFB *)(gs_p_dispfb2)) = dispenv->dispfb;
242 }

References GS_DISPENV::disp, GS_DISPENV::dispfb, gs_p_dispfb2, and gs_p_display2.

Referenced by InitGraphics().

◆ GsPutDrawEnv1()

void GsPutDrawEnv1 ( GS_DRAWENV drawenv)

Definition at line 169 of file draw.c.

170 {
171  GsSetXYOffset1(drawenv->offset_x<<4, drawenv->offset_y<<4);
172  GsSetScissor1(drawenv->clip.x, drawenv->clip.y, drawenv->clip.x+drawenv->clip.w, drawenv->clip.y+drawenv->clip.h);
173  GsSetFrame1(drawenv->vram_addr, drawenv->fbw, drawenv->psm, drawenv->draw_mask);
174 
175  //use a sprite to clear background
176  if(drawenv->auto_clear)
177  {
178  GsClearDrawEnv1(drawenv);
179  }
180 }
void GsClearDrawEnv1(GS_DRAWENV *drawenv)
Definition: draw.c:182
int GsSetXYOffset1(u16 x, u16 y)
Definition: lowlevel.c:36
int GsSetScissor1(u16 upper_x, u16 upper_y, u16 lower_x, u16 lower_y)
Definition: lowlevel.c:62
int GsSetFrame1(u16 framebuffer_addr, u8 framebuffer_width, u8 psm, u32 draw_mask)
Definition: lowlevel.c:88
u8 psm
Definition: libgs.h:1952
u8 auto_clear
Definition: libgs.h:1960
u8 fbw
Definition: libgs.h:1950
u16 vram_addr
Definition: libgs.h:1948
u32 draw_mask
Definition: libgs.h:1958

References GS_DRAWENV::auto_clear, GS_DRAWENV::clip, GS_DRAWENV::draw_mask, GS_DRAWENV::fbw, GsClearDrawEnv1(), GsSetFrame1(), GsSetScissor1(), GsSetXYOffset1(), GS_URECT::h, GS_DRAWENV::offset_x, GS_DRAWENV::offset_y, GS_DRAWENV::psm, GS_DRAWENV::vram_addr, GS_URECT::w, GS_URECT::x, and GS_URECT::y.

Referenced by InitGraphics().

◆ GsPutDrawEnv2()

void GsPutDrawEnv2 ( GS_DRAWENV drawenv)

Definition at line 207 of file draw.c.

208 {
209  GsSetXYOffset2(drawenv->offset_x<<4, drawenv->offset_y<<4);
210  GsSetScissor2(drawenv->clip.x, drawenv->clip.y, drawenv->clip.x+drawenv->clip.w, drawenv->clip.y+drawenv->clip.h);
211  GsSetFrame2(drawenv->vram_addr, drawenv->fbw, drawenv->psm, drawenv->draw_mask);
212 
213  if(drawenv->auto_clear)
214  {
215  GsClearDrawEnv2(drawenv);
216  }
217 }
void GsClearDrawEnv2(GS_DRAWENV *drawenv)
Definition: draw.c:219
int GsSetFrame2(u16 framebuffer_addr, u8 framebuffer_width, u8 psm, u32 draw_mask)
Definition: lowlevel.c:101
int GsSetXYOffset2(u16 x, u16 y)
Definition: lowlevel.c:49
int GsSetScissor2(u16 upper_x, u16 upper_y, u16 lower_x, u16 lower_y)
Definition: lowlevel.c:75

References GS_DRAWENV::auto_clear, GS_DRAWENV::clip, GS_DRAWENV::draw_mask, GS_DRAWENV::fbw, GsClearDrawEnv2(), GsSetFrame2(), GsSetScissor2(), GsSetXYOffset2(), GS_URECT::h, GS_DRAWENV::offset_x, GS_DRAWENV::offset_y, GS_DRAWENV::psm, GS_DRAWENV::vram_addr, GS_URECT::w, GS_URECT::x, and GS_URECT::y.

Referenced by InitGraphics().

◆ GsPutZBufferEnv1()

void GsPutZBufferEnv1 ( GS_ZENV zenv)

Definition at line 31 of file Zbuffer.c.

32 {
33  QWORD *p;
35  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
36  gs_setR_ZBUF_1(((GS_R_ZBUF *)&p[1]), zenv->vram_addr, zenv->psm, zenv->update_mask);
37 
39  GsDmaWait();
40 }
QWORD GsPrimWorkArea[]
Definition: packets.c:18
#define gs_setR_ZBUF_1(p, _fb_addr, _psm, _update_mask)
Definition: libgs.h:1802
u8 update_mask
Definition: libgs.h:1936
u16 vram_addr
Definition: libgs.h:1934
u8 psm
Definition: libgs.h:1935

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_ZBUF_1, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, GS_ZENV::psm, UNCACHED_SEG, GS_ZENV::update_mask, and GS_ZENV::vram_addr.

◆ GsPutZBufferEnv2()

void GsPutZBufferEnv2 ( GS_ZENV zenv)

Definition at line 42 of file Zbuffer.c.

43 {
44  QWORD *p;
46  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 4,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
47  gs_setR_ZBUF_2(((GS_R_ZBUF *)&p[1]), zenv->vram_addr, zenv->psm, zenv->update_mask);
48 
50  GsDmaWait();
51 }
#define gs_setR_ZBUF_2(p, _fb_addr, _psm, _update_mask)
Definition: libgs.h:1806

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_ZBUF_2, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, GS_ZENV::psm, UNCACHED_SEG, GS_ZENV::update_mask, and GS_ZENV::vram_addr.

◆ GsResetGraph()

void GsResetGraph ( short int  mode,
short int  interlace,
short int  omode,
short int  ffmode 
)

Referenced by InitGraphics().

◆ GsResetPath()

void GsResetPath ( void  )

◆ GsSelectTexure1()

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 
)

Definition at line 153 of file lowlevel.c.

154 {
155  QWORD *p;
157  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
158  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); /*4 load contex 0*/
159 
161  GsDmaWait();
162 
163  return 0;
164 }
#define gs_setR_TEX0_1(p, _fb_addr, _fb_width, _psm, _tex_width, _tex_height, _col_comp, _tex_cc, _clutb_addr, _clut_pixmode, _clut_smode, _clut_offset, _cld)
Definition: libgs.h:1659
static s8 twh(s16 val)
Definition: lowlevel.c:22

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_TEX0_1, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, twh(), and UNCACHED_SEG.

◆ GsSelectTexure2()

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 
)

Definition at line 166 of file lowlevel.c.

167 {
168  QWORD *p;
170  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
171  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);/*5 load contex 2*/
172 
174  GsDmaWait();
175 
176  return 0;
177 }
#define gs_setR_TEX0_2(p, _fb_addr, _fb_width, _psm, _tex_width, _tex_height, _col_comp, _tex_cc, _clutb_addr, _clut_pixmode, _clut_smode, _clut_offset, _cld)
Definition: libgs.h:1663

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_TEX0_2, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, twh(), and UNCACHED_SEG.

◆ GsSetCRTCSettings()

void GsSetCRTCSettings ( u64  settings,
u8  alpha_value 
)

Definition at line 56 of file libgs.c.

57 {
58  *((vu64 *)(gs_p_pmode)) = (settings|((u64)(0x001) << 2)|((u64)(alpha_value) << 8));
59 }

References gs_p_pmode.

Referenced by GsResetGraph(), and SelectDisplayContext().

◆ GsSetDefaultDisplayEnv()

void GsSetDefaultDisplayEnv ( GS_DISPENV dispenv,
u16  psm,
u16  w,
u16  h,
u16  dx,
u16  dy 
)

Definition at line 74 of file draw.c.

75 {
76  GsGParam_t *pGParams;
77  int gs_DH, gs_DW, gs_DY, gs_DX;
78 
79  pGParams=GsGetGParam();
80  dispenv->disp.pad1=dispenv->disp.pad2=0;
81 
82  if(pGParams->omode >= GS_MODE_NTSC && pGParams->omode <= GS_MODE_PAL)
83  {
84  gs_DH=0;
85  gs_DW=0;
86  gs_DY=0;
87  gs_DX=0;
88  } else {
89  if(checkModelVersion())
90  _GetGsDxDyOffset(pGParams->omode, &gs_DX, &gs_DY, &gs_DW, &gs_DH);
91  else{
92  gs_DH=0;
93  gs_DW=0;
94  gs_DY=0;
95  gs_DX=0;
96  }
97  }
98 
99  dispenv->dispfb.pad1=dispenv->dispfb.pad2=0;
100  dispenv->dispfb.x=0;
101  dispenv->dispfb.y=0;
102  dispenv->dispfb.address=0;
103  dispenv->dispfb.fbw=(w+63)/64;
104  dispenv->dispfb.psm=psm;
105  switch(pGParams->omode)
106  {
107  case GS_MODE_NTSC:
108  if(pGParams->interlace)
109  {
110  dispenv->disp.display_y = dy+gs_DY+0x32;
111  dispenv->disp.display_x = (gs_DX+0x27C) + dx*((w+0x9FF)/w);
112  dispenv->disp.magnify_h = (w+0x9FF)/w - 1;
113  dispenv->disp.magnify_v = 0;
114  dispenv->disp.display_w = (w+0x9FF)/w*w - 1;
115 
116  if(pGParams->ffmode)
117  dispenv->disp.display_h = (h<<1) - 1;
118  else
119  dispenv->disp.display_h = h - 1;
120  } else {
121  dispenv->disp.display_h = h-1;
122  dispenv->disp.display_x = gs_DX+0x27C + dx*((w+0x9FF)/w);
123  dispenv->disp.display_y = gs_DY+dy+0x19;
124  dispenv->disp.magnify_h = (w+0x9FF)/w - 1;
125  dispenv->disp.magnify_v = 0;
126  dispenv->disp.display_w = (w+0x9FF)/w*w - 1;
127  }
128  break;
129  case GS_MODE_PAL:
130  if(pGParams->interlace)
131  {
132  dispenv->disp.display_y = gs_DY+dy+0x48;
133  dispenv->disp.display_x = gs_DX+0x290 + dx*((w+0x9FF)/w);
134  dispenv->disp.magnify_h = (w+0x9FF)/w - 1;
135  dispenv->disp.magnify_v = 0;
136  dispenv->disp.display_w = (w+0x9FF)/w*w - 1;
137 
138  if(pGParams->ffmode)
139  dispenv->disp.display_h = (h<<1) - 1;
140  else
141  dispenv->disp.display_h = h - 1;
142  } else {
143  dispenv->disp.display_h = h-1;
144  dispenv->disp.display_x = gs_DX+0x290 + dx*((w+0x9FF)/w);
145  dispenv->disp.display_y = dy+gs_DY+0x48;
146  dispenv->disp.magnify_h = (w+0x9FF)/w - 1;
147  dispenv->disp.magnify_v = 0;
148  dispenv->disp.display_w = (w+0x9FF)/w*w - 1;
149  }
150  break;
151  case GS_MODE_DTV_480P:
152  dispenv->disp.display_x = gs_DX+((0x2D0-w) + ((0x2D0-w)>>31))/2*2 + (dx<<1)+0xE8;
153  dispenv->disp.display_h = h-1;
154  dispenv->disp.display_w = (w<<1) - 1;
155  dispenv->disp.display_y = gs_DY+dy+0x23;
156  dispenv->disp.magnify_h = 1;
157  dispenv->disp.magnify_v = 0;
158  break;
159  default:
160  printf("GsSetDefaultDisplayEnv: Unsupported video mode: 0x%x\n", pGParams->omode);
161  }
162 }
void _GetGsDxDyOffset(int mode, int *dx, int *dy, int *dw, int *dh)
int checkModelVersion(void)
Definition: draw.c:52
GsGParam_t * GsGetGParam(void)
Definition: libgs.c:24
u32 fbw
Definition: libgs.h:409
u32 pad2
Definition: libgs.h:419
u32 x
Definition: libgs.h:415
u32 psm
Definition: libgs.h:411
u32 y
Definition: libgs.h:417
u32 address
Definition: libgs.h:407
u32 pad1
Definition: libgs.h:413
u32 display_w
Definition: libgs.h:434
u32 display_x
Definition: libgs.h:424
u32 pad2
Definition: libgs.h:438
u32 pad1
Definition: libgs.h:432
u32 display_y
Definition: libgs.h:426
u32 magnify_h
Definition: libgs.h:428
u32 display_h
Definition: libgs.h:436
u32 magnify_v
Definition: libgs.h:430
u8 interlace
Definition: libgs.h:23
u8 ffmode
Definition: libgs.h:27
u8 omode
Definition: libgs.h:25

References _GetGsDxDyOffset(), GS_DISPFB::address, checkModelVersion(), GS_DISPENV::disp, GS_DISPENV::dispfb, GS_DISPLAY::display_h, GS_DISPLAY::display_w, GS_DISPLAY::display_x, GS_DISPLAY::display_y, GS_DISPFB::fbw, GsGParam_t::ffmode, GS_MODE_DTV_480P, GS_MODE_NTSC, GS_MODE_PAL, GsGetGParam(), GsGParam_t::interlace, GS_DISPLAY::magnify_h, GS_DISPLAY::magnify_v, GsGParam_t::omode, GS_DISPFB::pad1, GS_DISPLAY::pad1, GS_DISPFB::pad2, GS_DISPLAY::pad2, GS_DISPFB::psm, GS_DISPFB::x, and GS_DISPFB::y.

Referenced by InitGraphics().

◆ GsSetDefaultDisplayEnvAddress()

void GsSetDefaultDisplayEnvAddress ( GS_DISPENV dispenv,
u16  vram_addr 
)

Definition at line 164 of file draw.c.

165 {
166  dispenv->dispfb.address=vram_addr;
167 }

References GS_DISPFB::address, and GS_DISPENV::dispfb.

Referenced by InitGraphics().

◆ GsSetDefaultDrawEnv()

void GsSetDefaultDrawEnv ( GS_DRAWENV drawenv,
u16  psm,
u16  w,
u16  h 
)

Definition at line 23 of file draw.c.

24 {
25  drawenv->offset_x = 2048-w/2;
26  drawenv->offset_y = 2048-h/2;
27  drawenv->clip.x = 0;
28  drawenv->clip.y = 0;
29  drawenv->clip.w = w;
30  drawenv->clip.h = h;
31  drawenv->draw_mask = 0;
32  drawenv->auto_clear = 1;
33 
34  drawenv->bg_color.r = 0x01;
35  drawenv->bg_color.g = 0x01;
36  drawenv->bg_color.b = 0x01;
37  drawenv->bg_color.a = 0x80;
38  drawenv->bg_color.q = 0.0f;
39 
40  drawenv->fbw = (w+63)/64;
41  drawenv->psm = psm;
42  drawenv->vram_addr = 0;
43  drawenv->vram_x = 0;
44  drawenv->vram_y = 0;
45 }
u16 vram_y
Definition: libgs.h:1956
u16 vram_x
Definition: libgs.h:1954

References GS_RGBAQ::a, GS_DRAWENV::auto_clear, GS_RGBAQ::b, GS_DRAWENV::bg_color, GS_DRAWENV::clip, GS_DRAWENV::draw_mask, GS_DRAWENV::fbw, GS_RGBAQ::g, GS_URECT::h, GS_DRAWENV::offset_x, GS_DRAWENV::offset_y, GS_DRAWENV::psm, GS_RGBAQ::q, GS_RGBAQ::r, GS_DRAWENV::vram_addr, GS_DRAWENV::vram_x, GS_DRAWENV::vram_y, GS_URECT::w, GS_URECT::x, and GS_URECT::y.

Referenced by InitGraphics().

◆ GsSetDefaultDrawEnvAddress()

void GsSetDefaultDrawEnvAddress ( GS_DRAWENV drawenv,
u16  vram_addr 
)

Definition at line 47 of file draw.c.

48 {
49  drawenv->vram_addr=vram_addr;
50 }

References GS_DRAWENV::vram_addr.

Referenced by InitGraphics().

◆ GsSetDefaultZBufferEnv()

void GsSetDefaultZBufferEnv ( GS_ZENV zenv,
u8  update_mask 
)

Definition at line 20 of file Zbuffer.c.

21 {
22  zenv->update_mask = update_mask;
23 }

References GS_ZENV::update_mask.

◆ GsSetDefaultZBufferEnvAddress()

void GsSetDefaultZBufferEnvAddress ( GS_ZENV zenv,
u16  vram_addr,
u8  psm 
)

Definition at line 25 of file Zbuffer.c.

26 {
27  zenv->vram_addr=vram_addr;
28  zenv->psm=psm;
29 }

References GS_ZENV::psm, and GS_ZENV::vram_addr.

◆ GsSetFogColor()

void GsSetFogColor ( u8  r,
u8  g,
u8  b 
)

Definition at line 179 of file lowlevel.c.

180 {
181  QWORD *p;
183  gs_setGIF_TAG(((GS_GIF_TAG*)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
184  gs_setR_FOGCOLOR(((GS_R_FOGCOLOR*)&p[1]), r,g,b);
185 
187  GsDmaWait();
188 }
#define gs_setR_FOGCOLOR(p, _r, _g, _b)
Definition: libgs.h:1739

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_FOGCOLOR, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

◆ GsSetFrame1()

int GsSetFrame1 ( u16  framebuffer_addr,
u8  framebuffer_width,
u8  psm,
u32  draw_mask 
)

Definition at line 88 of file lowlevel.c.

89 {
90  QWORD *p;
92  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
93  gs_setR_FRAME_1(((GS_R_FRAME *)&p[1]), framebuffer_addr,framebuffer_width,psm,draw_mask);
94 
96  GsDmaWait();
97 
98  return 0;
99 }
#define gs_setR_FRAME_1(p, _fb_addr, _fb_width, _psm, _draw_mask)
Definition: libgs.h:1794

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_FRAME_1, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

Referenced by GsPutDrawEnv1().

◆ GsSetFrame2()

int GsSetFrame2 ( u16  framebuffer_addr,
u8  framebuffer_width,
u8  psm,
u32  draw_mask 
)

Definition at line 101 of file lowlevel.c.

102 {
103  QWORD *p;
105  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
106  gs_setR_FRAME_2(((GS_R_FRAME *)&p[1]), framebuffer_addr,framebuffer_width,psm,draw_mask);
107 
109  GsDmaWait();
110 
111  return 0;
112 }
#define gs_setR_FRAME_2(p, _fb_addr, _fb_width, _psm, _draw_mask)
Definition: libgs.h:1798

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_FRAME_2, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

Referenced by GsPutDrawEnv2().

◆ GsSetPixelTest1()

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 
)

Definition at line 127 of file lowlevel.c.

128 {
129  QWORD *p;
131  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
132  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);
133 
135  GsDmaWait();
136 
137  return 0;
138 }
#define gs_setR_TEST_1(p, _ATE, _ATST, _AREF, _AFAIL, _DATE, _DATM, _ZTE, _ZTST)
Definition: libgs.h:1774

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_TEST_1, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

Referenced by GsEnableAlphaTransparency1(), and GsEnableZbuffer1().

◆ GsSetPixelTest2()

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 
)

Definition at line 140 of file lowlevel.c.

141 {
142  QWORD *p;
144  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
145  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);
146 
148  GsDmaWait();
149 
150  return 0;
151 }
#define gs_setR_TEST_2(p, _ATE, _ATST, _AREF, _AFAIL, _DATE, _DATM, _ZTE, _ZTST)
Definition: libgs.h:1778

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_TEST_2, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

Referenced by GsEnableAlphaTransparency2(), and GsEnableZbuffer2().

◆ GsSetScissor1()

int GsSetScissor1 ( u16  upper_x,
u16  upper_y,
u16  lower_x,
u16  lower_y 
)

Definition at line 62 of file lowlevel.c.

63 {
64  QWORD *p;
66  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
67  gs_setR_SCISSOR_1(((GS_R_SCISSOR *)&p[1]), upper_x,lower_x,upper_y,lower_y);
68 
70  GsDmaWait();
71 
72  return 0;
73 }
#define gs_setR_SCISSOR_1(p, _clip_x0, _clip_x1, _clip_y0, _clip_y1)
Definition: libgs.h:1746

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_SCISSOR_1, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

Referenced by GsPutDrawEnv1().

◆ GsSetScissor2()

int GsSetScissor2 ( u16  upper_x,
u16  upper_y,
u16  lower_x,
u16  lower_y 
)

Definition at line 75 of file lowlevel.c.

76 {
77  QWORD *p;
79  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
80  gs_setR_SCISSOR_2(((GS_R_SCISSOR *)&p[1]), upper_x,lower_x,upper_y,lower_y);
81 
83  GsDmaWait();
84 
85  return 0;
86 }
#define gs_setR_SCISSOR_2(p, _clip_x0, _clip_x1, _clip_y0, _clip_y1)
Definition: libgs.h:1750

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_SCISSOR_2, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

Referenced by GsPutDrawEnv2().

◆ GsSetXYOffset1()

int GsSetXYOffset1 ( u16  x,
u16  y 
)

Definition at line 36 of file lowlevel.c.

37 {
38  QWORD *p;
40  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
41  gs_setR_XYOFFSET_1(((GS_R_XYOFFSET *)&p[1]), x,y);
42 
44  GsDmaWait();
45 
46  return 0;
47 }
#define gs_setR_XYOFFSET_1(p, _offset_x, _offset_y)
Definition: libgs.h:1695

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_XYOFFSET_1, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, UNCACHED_SEG, x, and y.

Referenced by GsPutDrawEnv1().

◆ GsSetXYOffset2()

int GsSetXYOffset2 ( u16  x,
u16  y 
)

Definition at line 49 of file lowlevel.c.

50 {
51  QWORD *p;
53  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
54  gs_setR_XYOFFSET_2(((GS_R_XYOFFSET *)&p[1]), x,y);
55 
57  GsDmaWait();
58 
59  return 0;
60 }
#define gs_setR_XYOFFSET_2(p, _offset_x, _offset_y)
Definition: libgs.h:1699

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_XYOFFSET_2, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, UNCACHED_SEG, x, and y.

Referenced by GsPutDrawEnv2().

◆ GsTextureFlush()

int GsTextureFlush ( void  )

Definition at line 114 of file lowlevel.c.

115 {
116  QWORD *p;
118  gs_setGIF_TAG(((GS_GIF_TAG *)&p[0]), 1,1,0,0,GS_GIF_PACKED,1,gif_rd_ad);
119  gs_setR_TEXFLUSH(((GS_R_TEXFLUSH *)&p[1]));
120 
122  GsDmaWait();
123 
124  return 0;
125 }
#define gs_setR_TEXFLUSH(p)
Definition: libgs.h:1743

References gif_rd_ad, GS_GIF_PACKED, gs_setGIF_TAG, gs_setR_TEXFLUSH, GsDmaSend(), GsDmaWait(), GsPrimWorkArea, and UNCACHED_SEG.

◆ GsVramAllocFrameBuffer()

int GsVramAllocFrameBuffer ( s16  w,
s16  h,
s16  psm 
)

Definition at line 105 of file texture.c.

106 {
107  int size, remainder, ret, byte_pp; // byte per pixel
108 
109  switch(psm)
110  {
111  case GS_PIXMODE_32:
112  case GS_TEX_4HH: // these are 32bit
113  case GS_TEX_4HL: // ..
114  case GS_TEX_8H: // ..
115  case GS_ZBUFF_32: //
116  case GS_ZBUFF_24: //
117  case GS_PIXMODE_24: // also 24bit takes up 4 bytes
118  byte_pp = 4;
119  break;
120  case GS_PIXMODE_16:
121  case GS_PIXMODE_16S:
122  case GS_ZBUFF_16:
123  byte_pp = 2;
124  break;
125  case GS_TEX_8:
126  byte_pp = 1;
127  break;
128  case GS_TEX_4:
129  byte_pp = 0;
130  break;
131  default:
132  return -EINVAL;
133  }
134 
135  if(byte_pp > 0) // 8 to 32 bit
136  {
137  size = ((w*h)*byte_pp)/4;
138  }
139  else // 4 bit
140  {
141  size = (w*h)/2;
142  }
143 
144  remainder = (vr_addr % (2048));
145 
146  if(remainder)
147  vr_addr += ((2048)-remainder);
148 
149  ret = vr_addr/(2048);
150  vr_addr += size;
152 
153  return ret;
154 }
#define EINVAL
Definition: errno.h:62
static unsigned int vr_tex_start
Definition: texture.c:102
static unsigned int vr_addr
Definition: texture.c:101
#define GS_PIXMODE_24
Definition: libgs.h:78
#define GS_TEX_4HL
Definition: libgs.h:95
#define GS_PIXMODE_16
Definition: libgs.h:79
#define GS_ZBUFF_24
Definition: libgs.h:100
#define GS_TEX_8H
Definition: libgs.h:94
#define GS_ZBUFF_16
Definition: libgs.h:101
#define GS_PIXMODE_32
Definition: libgs.h:77
#define GS_TEX_4HH
Definition: libgs.h:96
#define GS_ZBUFF_32
Definition: libgs.h:99
#define GS_PIXMODE_16S
Definition: libgs.h:80

References EINVAL, GS_PIXMODE_16, GS_PIXMODE_16S, GS_PIXMODE_24, GS_PIXMODE_32, GS_TEX_4, GS_TEX_4HH, GS_TEX_4HL, GS_TEX_8, GS_TEX_8H, GS_ZBUFF_16, GS_ZBUFF_24, GS_ZBUFF_32, vr_addr, and vr_tex_start.

Referenced by InitGraphics().

◆ GsVramAllocTextureBuffer()

int GsVramAllocTextureBuffer ( s16  w,
s16  h,
s16  psm 
)

Definition at line 156 of file texture.c.

157 {
158  int size, remainder, ret, byte_pp; // byte per pixel
159 
160  switch(psm)
161  {
162  case GS_PIXMODE_32:
163  case GS_PIXMODE_24: // also 24bit takes up 4 bytes
164  case GS_TEX_8H: // ..
165  case GS_TEX_4HH: // these are 32bit
166  case GS_TEX_4HL: // ..
167  byte_pp = 4;
168  break;
169  case GS_PIXMODE_16:
170  case GS_PIXMODE_16S:
171  byte_pp = 2;
172  break;
173  case GS_TEX_8:
174  byte_pp = 1;
175  break;
176  case GS_TEX_4:
177  byte_pp = 0;
178  break;
179  default:
180  return -EINVAL;
181  }
182 
183  if(byte_pp > 0) // 8 to 32 bit
184  {
185  size = ((w*h)*byte_pp)/4;
186  }
187  else // 4 bit
188  {
189  size = (w*h)/2;
190  }
191 
192  remainder = (vr_addr % (64));
193 
194  //---
196 
197  if(remainder)
198  vr_addr += ((64)-remainder);
199 
200  ret = vr_addr/(64);
201  vr_addr += size;
202 
203  return ret;
204 }
static unsigned int vr_2ndtolast_alloc
Definition: texture.c:103

References EINVAL, GS_PIXMODE_16, GS_PIXMODE_16S, GS_PIXMODE_24, GS_PIXMODE_32, GS_TEX_4, GS_TEX_4HH, GS_TEX_4HL, GS_TEX_8, GS_TEX_8H, vr_2ndtolast_alloc, and vr_addr.

◆ GsVramFreeAll()

void GsVramFreeAll ( void  )

Definition at line 222 of file texture.c.

223 {
224  vr_addr = 0;
225  vr_tex_start = 0;
226 }

References vr_addr, and vr_tex_start.

◆ GsVramFreeAllTextureBuffer()

void GsVramFreeAllTextureBuffer ( void  )

free texture buffer without freeing frame buffer

Definition at line 206 of file texture.c.

207 {
209 }

References vr_addr, and vr_tex_start.

◆ GsVSync()

void GsVSync ( int  mode)

Definition at line 50 of file sync.c.

51 {
52  unsigned short i;
53 
54  switch(mode)
55  {
56  case 0: //just wait
59  break;
60  default: // wait for num of vsync to pass
61  if(mode>1)
62  {
63 
64  for(i=0;i<mode;i++)
65  {
68 
69  }
70  }
71  }
72 }
#define GS_GET_CSR_vsync_intrupt
Definition: libgs.h:1329
#define GS_SET_CSR_vsync_intrupt(val)
Definition: libgs.h:1297

References GS_GET_CSR_vsync_intrupt, GS_SET_CSR_vsync_intrupt, and mode.

Referenced by main().