void gpuLoadImage(PtrUnion packet)
{
u16 x0, y0, w0, h0;
- x0 = packet.U2[2] & 1023;
- y0 = packet.U2[3] & 511;
- w0 = packet.U2[4];
- h0 = packet.U2[5];
+ x0 = le16_to_u16(packet.U2[2]) & 1023;
+ y0 = le16_to_u16(packet.U2[3]) & 511;
+ w0 = le16_to_u16(packet.U2[4]);
+ h0 = le16_to_u16(packet.U2[5]);
if ((y0 + h0) > FRAME_HEIGHT)
{
h0 = FRAME_HEIGHT - y0;
}
- gpu_senquack.dma.FrameToWrite = ((w0)&&(h0));
+ gpu_unai.dma.FrameToWrite = ((w0)&&(h0));
- gpu_senquack.dma.px = 0;
- gpu_senquack.dma.py = 0;
- gpu_senquack.dma.x_end = w0;
- gpu_senquack.dma.y_end = h0;
- gpu_senquack.dma.pvram = &((u16*)gpu_senquack.vram)[x0+(y0*1024)];
+ gpu_unai.dma.px = 0;
+ gpu_unai.dma.py = 0;
+ gpu_unai.dma.x_end = w0;
+ gpu_unai.dma.y_end = h0;
+ gpu_unai.dma.pvram = &gpu_unai.vram[x0+(y0*1024)];
- gpu_senquack.GPU_GP1 |= 0x08000000;
+ gpu_unai.GPU_GP1 |= 0x08000000;
}
#endif // !USE_GPULIB
void gpuStoreImage(PtrUnion packet)
{
u16 x0, y0, w0, h0;
- x0 = packet.U2[2] & 1023;
- y0 = packet.U2[3] & 511;
- w0 = packet.U2[4];
- h0 = packet.U2[5];
+ x0 = le16_to_u16(packet.U2[2]) & 1023;
+ y0 = le16_to_u16(packet.U2[3]) & 511;
+ w0 = le16_to_u16(packet.U2[4]);
+ h0 = le16_to_u16(packet.U2[5]);
if ((y0 + h0) > FRAME_HEIGHT)
{
h0 = FRAME_HEIGHT - y0;
}
- gpu_senquack.dma.FrameToRead = ((w0)&&(h0));
+ gpu_unai.dma.FrameToRead = ((w0)&&(h0));
- gpu_senquack.dma.px = 0;
- gpu_senquack.dma.py = 0;
- gpu_senquack.dma.x_end = w0;
- gpu_senquack.dma.y_end = h0;
- gpu_senquack.dma.pvram = &((u16*)gpu_senquack.vram)[x0+(y0*1024)];
+ gpu_unai.dma.px = 0;
+ gpu_unai.dma.py = 0;
+ gpu_unai.dma.x_end = w0;
+ gpu_unai.dma.y_end = h0;
+ gpu_unai.dma.pvram = &gpu_unai.vram[x0+(y0*1024)];
- gpu_senquack.GPU_GP1 |= 0x08000000;
+ gpu_unai.GPU_GP1 |= 0x08000000;
}
#endif // !USE_GPULIB
{
u32 x0, y0, x1, y1;
s32 w0, h0;
- x0 = packet.U2[2] & 1023;
- y0 = packet.U2[3] & 511;
- x1 = packet.U2[4] & 1023;
- y1 = packet.U2[5] & 511;
- w0 = packet.U2[6];
- h0 = packet.U2[7];
+ x0 = le16_to_u16(packet.U2[2]) & 1023;
+ y0 = le16_to_u16(packet.U2[3]) & 511;
+ x1 = le16_to_u16(packet.U2[4]) & 1023;
+ y1 = le16_to_u16(packet.U2[5]) & 511;
+ w0 = le16_to_u16(packet.U2[6]);
+ h0 = le16_to_u16(packet.U2[7]);
if( (x0==x1) && (y0==y1) ) return;
if ((w0<=0) || (h0<=0)) return;
if (((y0+h0)>512)||((x0+w0)>1024)||((y1+h0)>512)||((x1+w0)>1024))
{
- u16 *psxVuw=gpu_senquack.vram;
+ le16_t *psxVuw=gpu_unai.vram;
s32 i,j;
for(j=0;j<h0;j++)
for(i=0;i<w0;i++)
}
else if ((x0&1)||(x1&1))
{
- u16 *lpDst, *lpSrc;
- lpDst = lpSrc = (u16*)gpu_senquack.vram;
+ le16_t *lpDst, *lpSrc;
+ lpDst = lpSrc = gpu_unai.vram;
lpSrc += FRAME_OFFSET(x0, y0);
lpDst += FRAME_OFFSET(x1, y1);
x1 = FRAME_WIDTH - w0;
}
else
{
- u32 *lpDst, *lpSrc;
- lpDst = lpSrc = (u32*)(void*)gpu_senquack.vram;
+ le32_t *lpDst, *lpSrc;
+ lpDst = lpSrc = (le32_t *)gpu_unai.vram;
lpSrc += ((FRAME_OFFSET(x0, y0))>>1);
lpDst += ((FRAME_OFFSET(x1, y1))>>1);
if (w0&1)
w0>>=1;
if (!w0) {
do {
- *((u16*)lpDst) = *((u16*)lpSrc);
+ *((le16_t*)lpDst) = *((le16_t*)lpSrc);
lpDst += x1;
lpSrc += x1;
} while (--h0);
do {
x0=w0;
do { *lpDst++ = *lpSrc++; } while (--x0);
- *((u16*)lpDst) = *((u16*)lpSrc);
+ *((le16_t*)lpDst) = *((le16_t*)lpSrc);
lpDst += x1;
lpSrc += x1;
} while (--h0);
void gpuClearImage(PtrUnion packet)
{
s32 x0, y0, w0, h0;
- x0 = packet.S2[2];
- y0 = packet.S2[3];
- w0 = packet.S2[4] & 0x3ff;
- h0 = packet.S2[5] & 0x3ff;
-
+ x0 = le16_to_s16(packet.U2[2]);
+ y0 = le16_to_s16(packet.U2[3]);
+ w0 = le16_to_s16(packet.U2[4]) & 0x3ff;
+ h0 = le16_to_s16(packet.U2[5]) & 0x3ff;
+
w0 += x0;
if (x0 < 0) x0 = 0;
if (w0 > FRAME_WIDTH) w0 = FRAME_WIDTH;
#ifdef ENABLE_GPU_LOG_SUPPORT
fprintf(stdout,"gpuClearImage(x0=%d,y0=%d,w0=%d,h0=%d)\n",x0,y0,w0,h0);
#endif
-
+
if (x0&1)
{
- u16* pixel = (u16*)gpu_senquack.vram + FRAME_OFFSET(x0, y0);
- u16 rgb = GPU_RGB16(packet.U4[0]);
+ le16_t* pixel = gpu_unai.vram + FRAME_OFFSET(x0, y0);
+ le16_t rgb = u16_to_le16(GPU_RGB16(le32_to_u32(packet.U4[0])));
y0 = FRAME_WIDTH - w0;
do {
x0=w0;
}
else
{
- u32* pixel = (u32*)gpu_senquack.vram + ((FRAME_OFFSET(x0, y0))>>1);
- u32 rgb = GPU_RGB16(packet.U4[0]);
- rgb |= (rgb<<16);
+ le32_t* pixel = (le32_t*)gpu_unai.vram + ((FRAME_OFFSET(x0, y0))>>1);
+ u32 _rgb = GPU_RGB16(le32_to_u32(packet.U4[0]));
+ le32_t rgb = u32_to_le32(_rgb | (_rgb << 16));
if (w0&1)
{
y0 = (FRAME_WIDTH - w0 +1)>>1;
do {
x0=w0;
do { *pixel++ = rgb; } while (--x0);
- *((u16*)pixel) = (u16)rgb;
+ *((u16*)pixel) = (u16)le32_raw(rgb);
pixel += y0;
} while (--h0);
}