pacbox: fix screen and buttons for Creative Zen

* rotate screen counterclockwise
* rotate directional buttons

Change-Id: Icbdf26fe1e14638eb8b0746a9eea99e0236ac6b1
This commit is contained in:
Sebastian Leonhardt 2018-07-28 01:00:44 +02:00
parent 5dfcadc45b
commit 91500e1296
2 changed files with 21 additions and 4 deletions

View File

@ -340,10 +340,10 @@
#define PACMAN_COIN BUTTON_PLAY
#elif CONFIG_KEYPAD == CREATIVE_ZEN_PAD
#define PACMAN_UP BUTTON_UP
#define PACMAN_DOWN BUTTON_DOWN
#define PACMAN_LEFT BUTTON_LEFT
#define PACMAN_RIGHT BUTTON_RIGHT
#define PACMAN_UP BUTTON_LEFT
#define PACMAN_DOWN BUTTON_RIGHT
#define PACMAN_LEFT BUTTON_DOWN
#define PACMAN_RIGHT BUTTON_UP
#define PACMAN_MENU BUTTON_MENU
#define PACMAN_1UP BUTTON_SELECT
#define PACMAN_COIN BUTTON_PLAYPAUSE
@ -406,10 +406,17 @@
#define YOFS ((LCD_HEIGHT-288)/2)
#elif (LCD_WIDTH >= 288) && (LCD_HEIGHT >= 224)
#if defined(CREATIVE_ZEN)
#define LCD_SCALE 100
#define LCD_ROTATE 2
#define XOFS ((LCD_WIDTH-288)/2)
#define YOFS ((LCD_HEIGHT-224)/2)
#else
#define LCD_SCALE 100
#define LCD_ROTATE 1
#define XOFS ((LCD_WIDTH-288)/2)
#define YOFS ((LCD_HEIGHT-224)/2)
#endif
#elif (LCD_WIDTH >= 168) && (LCD_HEIGHT >= 216)
#define LCD_SCALE 75

View File

@ -55,6 +55,16 @@ void blit_display(fb_data* lcd_framebuffer, unsigned char* vbuf)
dst+=LCD_WIDTH;
}
}
#elif LCD_SCALE==100 && LCD_ROTATE==2
/* Native resolution - rotated 270 degrees = 288x224 */
next_dst=&lcd_framebuffer[(LCD_HEIGHT-YOFS)*LCD_WIDTH+XOFS];
for( y=0; y<ScreenHeight; y++ ) {
dst = (next_dst++);
for( x=ScreenWidth-1; x>=0; x-- ) {
*dst = palette[*(vbuf++)];
dst-=LCD_WIDTH;
}
}
#elif LCD_SCALE==75 && LCD_ROTATE==1
/* 0.75 scaling - display 3 out of 4 pixels - rotated = 216x168
Skipping pixel #2 out of 4 seems to give the most legible display