menu: add reset hotkey
[picodrive.git] / platform / linux / blit.c
CommitLineData
cff531af 1/*
2 * PicoDrive
3 * (C) notaz, 2006,2009
4 *
5 * This work is licensed under the terms of MAME license.
6 * See COPYING file in the top-level directory.
7 */
cc68a136 8
9// Convert 0000bbb0 ggg0rrr0 0000bbb0 ggg0rrr0
10// to 00000000 rrr00000 ggg00000 bbb00000 ...
645ec129 11// TODO: rm when gp2x/emu.c is no longer used
cc68a136 12
19954be1 13void bgr444_to_rgb32(void *to, void *from)
cc68a136 14{
15 unsigned short *ps = from;
16 unsigned int *pd = to;
19954be1 17 int pixels;
cc68a136 18
19954be1 19 for (pixels = 0x40; pixels; pixels--, ps++, pd++)
cc68a136 20 {
21 *pd = ((*ps<<20)&0xe00000) | ((*ps<<8)&0xe000) | ((*ps>>4)&0xe0);
22 *pd |= *pd >> 3;
23 }
24}
25
19954be1 26void bgr444_to_rgb32_sh(void *to, void *from)
cc68a136 27{
28 unsigned short *ps = from;
29 unsigned int *pd = to;
19954be1 30 int pixels;
cc68a136 31
19954be1 32 pd += 0x40;
33 for (pixels = 0x40; pixels; pixels--, ps++, pd++)
cc68a136 34 {
35 *pd = ((*ps<<20)&0xe00000) | ((*ps<<8)&0xe000) | ((*ps>>4)&0xe0);
36 *pd >>= 1;
37 *pd |= *pd >> 3;
19954be1 38 pd[0x40*2] = *pd;
cc68a136 39 }
cc68a136 40
19954be1 41 ps -= 0x40;
42 for (pixels = 0x40; pixels; pixels--, ps++, pd++)
cc68a136 43 {
44 *pd = ((*ps<<20)&0xe00000) | ((*ps<<8)&0xe000) | ((*ps>>4)&0xe0);
45 continue;
46 *pd += 0x00404040;
47 if (*pd & 0x01000000) *pd |= 0x00e00000;
48 if (*pd & 0x00010000) *pd |= 0x0000e000;
49 if (*pd & 0x00000100) *pd |= 0x000000e0;
50 *pd &= 0x00e0e0e0;
51 *pd |= *pd >> 3;
52 }
53}
54
645ec129 55void vidcpy_m2(void *dest, void *src, int m32col, int with_32c_border)
cc68a136 56{
57 unsigned char *pd = dest, *ps = src;
58 int i, u;
59
645ec129 60 if (m32col) {
61 for (i = 0; i < 224; i++)
62 {
63 ps += 8;
64 pd += 32;
65 for (u = 0; u < 256; u++)
66 *pd++ = *ps++;
67 ps += 64;
68 pd += 32;
69 }
70 } else {
71 for (i = 0; i < 224; i++)
72 {
73 ps += 8;
74 for (u = 0; u < 320; u++)
75 *pd++ = *ps++;
76 }
cc68a136 77 }
78}
79
645ec129 80void vidcpy_m2_rot(void *dest, void *src, int m32col, int with_32c_border)
cc68a136 81{
cc68a136 82}
83
645ec129 84void rotated_blit8 (void *dst, void *linesx4, int y, int is_32col)
cc68a136 85{
cc68a136 86}
87
645ec129 88void rotated_blit16(void *dst, void *linesx4, int y, int is_32col)
89{
90}