220 int lDataSize = apInfo -> m_Width * apInfo -> m_Height * 4;
221 char* retVal = (
char* )malloc ( lDataSize );
223 int lMBW = ( apInfo -> m_Width ) >> 4;
224 int lMBH = ( apInfo -> m_Height ) >> 4;
225 int lTBW = ( apInfo -> m_Width + 63 ) >> 6;
226 int lTW =
draw_log2 ( apInfo -> m_Width );
227 int lTH =
draw_log2 ( apInfo -> m_Height );
232 lpParam -> m_TexAddr >>= 6;
234 lpParam -> m_pData = lpImg = retVal;
235 lpParam -> m_pInfo = apInfo;
244 q = lpParam-> m_XFerPck ->
data;
255 for ( lY = 0; lY < apInfo -> m_Height; lY += 16 ) {
256 for ( lX = 0; lX < apInfo -> m_Width; lX += 16, lpImg += 1024 ) {
267 DMATAG_REF(q, 64, (
unsigned )lpImg, 0, 0, 0);
275 lpParam-> m_XFerPck -> qwc = q - lpParam-> m_XFerPck ->
data;
281 q = lpParam -> m_DrawPck ->
data;
284 PACK_GIFTAG(q,
GS_SET_TEX0( lpParam -> m_TexAddr, lTBW,
GS_PSM_32, lTW, lTH, 1, 1, 0, 0, 0, 0, 0 ),
GS_REG_TEX0_1 );
286 PACK_GIFTAG(q,
GS_SET_PRIM( 6, 0, 1, 0, 0, 0, 1, 0, 0 ),
GS_REG_PRIM );
297 lpParam -> m_DrawPck -> qwc = q - lpParam -> m_DrawPck ->
data;
unsigned char draw_log2(unsigned int x)
#define GS_SET_XYZ(X, Y, Z)
#define GS_SET_TRXREG(W, H)
#define GS_SET_PRIM(PRIM, IIP, TME, FGE, ABE, AA1, FST, CTXT, FIX)
#define GS_SET_BITBLTBUF(SBA, SBW, SPSM, DBA, DBW, DPSM)
#define GS_SET_TRXPOS(SX, SY, DX, DY, DIR)
#define GS_SET_TEX0(TBA, TBW, PSM, TW, TH, TCC, TFNCT, CBA, CPSM, CSM, CSA, CLD)
#define GS_SET_TRXDIR(DIR)
void SyncDCache(void *start, void *end)
packet_t * packet_init(int qwords, int type)