mirror of
https://github.com/RaySollium99/picodrive.git
synced 2025-09-05 15:27:46 -04:00
91 lines
1.8 KiB
C
91 lines
1.8 KiB
C
/*
|
|
* PicoDrive
|
|
* (C) notaz, 2006,2009
|
|
*
|
|
* This work is licensed under the terms of MAME license.
|
|
* See COPYING file in the top-level directory.
|
|
*/
|
|
|
|
// Convert 0000bbb0 ggg0rrr0 0000bbb0 ggg0rrr0
|
|
// to 00000000 rrr00000 ggg00000 bbb00000 ...
|
|
// TODO: rm when gp2x/emu.c is no longer used
|
|
|
|
void bgr444_to_rgb32(void *to, void *from, unsigned entries)
|
|
{
|
|
unsigned short *ps = from;
|
|
unsigned int *pd = to;
|
|
int pixels;
|
|
|
|
for (pixels = entries; pixels; pixels--, ps++, pd++)
|
|
{
|
|
*pd = ((*ps<<20)&0xe00000) | ((*ps<<8)&0xe000) | ((*ps>>4)&0xe0);
|
|
*pd |= *pd >> 3;
|
|
}
|
|
}
|
|
|
|
void bgr444_to_rgb32_sh(void *to, void *from)
|
|
{
|
|
unsigned short *ps = from;
|
|
unsigned int *pd = to;
|
|
int pixels;
|
|
|
|
pd += 0x40;
|
|
for (pixels = 0x40; pixels; pixels--, ps++, pd++)
|
|
{
|
|
*pd = ((*ps<<20)&0xe00000) | ((*ps<<8)&0xe000) | ((*ps>>4)&0xe0);
|
|
*pd >>= 1;
|
|
*pd |= *pd >> 3;
|
|
pd[0x40*2] = *pd;
|
|
}
|
|
|
|
ps -= 0x40;
|
|
for (pixels = 0x40; pixels; pixels--, ps++, pd++)
|
|
{
|
|
*pd = ((*ps<<20)&0xe00000) | ((*ps<<8)&0xe000) | ((*ps>>4)&0xe0);
|
|
continue;
|
|
*pd += 0x00404040;
|
|
if (*pd & 0x01000000) *pd |= 0x00e00000;
|
|
if (*pd & 0x00010000) *pd |= 0x0000e000;
|
|
if (*pd & 0x00000100) *pd |= 0x000000e0;
|
|
*pd &= 0x00e0e0e0;
|
|
*pd |= *pd >> 3;
|
|
}
|
|
}
|
|
|
|
void vidcpy_m2(void *dest, void *src, int m32col, int with_32c_border)
|
|
{
|
|
unsigned char *pd = dest, *ps = src;
|
|
int i, u;
|
|
|
|
if (m32col) {
|
|
for (i = 0; i < 224; i++)
|
|
{
|
|
ps += 8;
|
|
ps += 32;
|
|
pd += 32;
|
|
for (u = 0; u < 256; u++)
|
|
*pd++ = *ps++;
|
|
ps += 32;
|
|
pd += 32;
|
|
}
|
|
} else {
|
|
for (i = 0; i < 224; i++)
|
|
{
|
|
ps += 8;
|
|
for (u = 0; u < 320; u++)
|
|
*pd++ = *ps++;
|
|
}
|
|
}
|
|
}
|
|
|
|
void vidcpy_m2_rot(void *dest, void *src, int m32col, int with_32c_border)
|
|
{
|
|
}
|
|
|
|
void rotated_blit8 (void *dst, void *linesx4, int y, int is_32col)
|
|
{
|
|
}
|
|
|
|
void rotated_blit16(void *dst, void *linesx4, int y, int is_32col)
|
|
{
|
|
}
|