forked from len0rd/rockbox
pacbox for small screens, up to 75x96
Change-Id: I6e9adf2f6923f4d0078a54e9857fc8eacef259a6
This commit is contained in:
parent
96335a7eb2
commit
fb3f7651fd
6 changed files with 65 additions and 2 deletions
|
@ -65,7 +65,8 @@ zxbox
|
||||||
#endif /* HAVE_LCD_BITMAP */
|
#endif /* HAVE_LCD_BITMAP */
|
||||||
|
|
||||||
/* For all big enough colour screens, iriver H1x0 and iAudio M5 */
|
/* For all big enough colour screens, iriver H1x0 and iAudio M5 */
|
||||||
#if defined(HAVE_LCD_COLOR) && LCD_HEIGHT > 96\
|
#if defined(HAVE_LCD_COLOR) && ( (LCD_HEIGHT >= 90 && LCD_WIDTH >=116) \
|
||||||
|
|| (LCD_HEIGHT >= 96 && LCD_WIDTH >=75) ) \
|
||||||
|| defined(IRIVER_H100_SERIES) || defined(IAUDIO_M5)
|
|| defined(IRIVER_H100_SERIES) || defined(IAUDIO_M5)
|
||||||
pacbox
|
pacbox
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -123,6 +123,17 @@
|
||||||
#define PACMAN_COIN (BUTTON_SELECT | BUTTON_DOWN)
|
#define PACMAN_COIN (BUTTON_SELECT | BUTTON_DOWN)
|
||||||
#define PACMAN_MENU BUTTON_HOME
|
#define PACMAN_MENU BUTTON_HOME
|
||||||
|
|
||||||
|
#elif CONFIG_KEYPAD == SANSA_CLIP_PAD
|
||||||
|
|
||||||
|
#define PACMAN_UP BUTTON_UP
|
||||||
|
#define PACMAN_DOWN BUTTON_DOWN
|
||||||
|
#define PACMAN_LEFT BUTTON_LEFT
|
||||||
|
#define PACMAN_RIGHT BUTTON_RIGHT
|
||||||
|
#define PACMAN_1UP BUTTON_SELECT
|
||||||
|
#define PACMAN_COIN_PRE BUTTON_SELECT
|
||||||
|
#define PACMAN_COIN (BUTTON_SELECT | BUTTON_DOWN)
|
||||||
|
#define PACMAN_MENU BUTTON_HOME
|
||||||
|
|
||||||
#elif CONFIG_KEYPAD == IRIVER_H10_PAD
|
#elif CONFIG_KEYPAD == IRIVER_H10_PAD
|
||||||
|
|
||||||
#if defined(IRIVER_H10_5GB)
|
#if defined(IRIVER_H10_5GB)
|
||||||
|
@ -418,6 +429,18 @@
|
||||||
#define YOFS ((LCD_HEIGHT-288/2)/2)
|
#define YOFS ((LCD_HEIGHT-288/2)/2)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#elif (LCD_WIDTH >= 116) && (LCD_HEIGHT >= 90)
|
||||||
|
#define LCD_SCALE 40
|
||||||
|
#define LCD_ROTATE 1
|
||||||
|
#define XOFS ((LCD_HEIGHT-224*2/5)/2)
|
||||||
|
#define YOFS ((LCD_WIDTH-288*2/5)/2)
|
||||||
|
|
||||||
|
#elif (LCD_WIDTH >= 75) && (LCD_HEIGHT >= 96)
|
||||||
|
#define LCD_SCALE 33
|
||||||
|
#define LCD_ROTATE 0
|
||||||
|
#define XOFS ((LCD_HEIGHT-224/3)/2)
|
||||||
|
#define YOFS ((LCD_WIDTH-288/3)/2)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#error "unsupported screen resolution"
|
#error "unsupported screen resolution"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -124,7 +124,46 @@ void blit_display(fb_data* lcd_framebuffer, unsigned char* vbuf)
|
||||||
dst += XOFS*2;
|
dst += XOFS*2;
|
||||||
vbuf+=ScreenWidth;
|
vbuf+=ScreenWidth;
|
||||||
}
|
}
|
||||||
|
#elif LCD_SCALE==40 && LCD_ROTATE==1
|
||||||
|
/* 0.4 scaling - rotated = 116x90 */
|
||||||
|
/* show 2 out of 5 pixels: 1st and 3rd anf 4th merged together */
|
||||||
|
next_dst=&lcd_framebuffer[XOFS*LCD_WIDTH+YOFS+ScreenHeight*2/5-1];
|
||||||
|
for (y=(ScreenHeight*2/5)-1;y >= 0; y--) {
|
||||||
|
dst = (next_dst--);
|
||||||
|
for (x=0;x<ScreenWidth*2/5;x++) {
|
||||||
|
*dst = palette[*(vbuf)] | palette[*(vbuf+ScreenWidth+1)];
|
||||||
|
/* every odd row number merge 2 source lines as one */
|
||||||
|
if (y & 1) *dst |= palette[*(vbuf+ScreenWidth*2)];
|
||||||
|
vbuf+=2;
|
||||||
|
dst+=LCD_WIDTH;
|
||||||
|
|
||||||
|
x++;
|
||||||
|
/* every odd column merge 2 colums together */
|
||||||
|
*dst = palette[*(vbuf)] | palette[*(vbuf+1)] |palette[*(vbuf+ScreenWidth+2)];
|
||||||
|
if (y & 1) *dst |= palette[*(vbuf+ScreenWidth*2+1)];
|
||||||
|
vbuf+=3;
|
||||||
|
dst+=LCD_WIDTH;
|
||||||
|
}
|
||||||
|
vbuf+=ScreenWidth-1;
|
||||||
|
if (y & 1) vbuf+=ScreenWidth;
|
||||||
|
}
|
||||||
|
#elif LCD_SCALE==33 && LCD_ROTATE==0
|
||||||
|
/* 1/3 scaling - display every third pixel - 75x96 */
|
||||||
|
(void)next_dst;
|
||||||
|
dst=&lcd_framebuffer[YOFS*LCD_WIDTH+XOFS];
|
||||||
|
|
||||||
|
for (y=0;y<ScreenHeight/3;y++) {
|
||||||
|
for (x=0;x<ScreenWidth/3;x++) {
|
||||||
|
*(dst++) = palette[*(vbuf)]
|
||||||
|
| palette[*(vbuf+ScreenWidth+1)]
|
||||||
|
| palette[*(vbuf+ScreenWidth*2+2)];
|
||||||
|
vbuf+=3;
|
||||||
|
}
|
||||||
|
dst += XOFS*2;
|
||||||
|
vbuf+=ScreenWidth*2+2;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else /* Greyscale LCDs */
|
#else /* Greyscale LCDs */
|
||||||
#if LCD_SCALE==50 && LCD_ROTATE==1
|
#if LCD_SCALE==50 && LCD_ROTATE==1
|
||||||
#if LCD_PIXELFORMAT == VERTICAL_PACKING
|
#if LCD_PIXELFORMAT == VERTICAL_PACKING
|
||||||
|
|
BIN
manual/plugins/images/ss-pacbox-128x96x16.png
Normal file
BIN
manual/plugins/images/ss-pacbox-128x96x16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
BIN
manual/plugins/images/ss-pacbox-96x96x16.png
Normal file
BIN
manual/plugins/images/ss-pacbox-96x96x16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
|
@ -68,7 +68,7 @@ text files%
|
||||||
|
|
||||||
\opt{archosplayer}{\input{plugins/nim.tex}}
|
\opt{archosplayer}{\input{plugins/nim.tex}}
|
||||||
|
|
||||||
\opt{iriverh100,iaudiom5,lcd_color}{\nopt{c200,c200v2,clipzip,samsungyh820}{\input{plugins/pacbox.tex}}}
|
\opt{iriverh100,iaudiom5,lcd_color}{\nopt{c200,c200v2}{\input{plugins/pacbox.tex}}}
|
||||||
|
|
||||||
\opt{lcd_bitmap}{\input{plugins/pegbox.tex}}
|
\opt{lcd_bitmap}{\input{plugins/pegbox.tex}}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue