summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/pacbox/pacbox.h6
-rw-r--r--apps/plugins/pacbox/pacbox_lcd.c8
2 files changed, 11 insertions, 3 deletions
diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h
index 2734088..99d9e2f 100644
--- a/apps/plugins/pacbox/pacbox.h
+++ b/apps/plugins/pacbox/pacbox.h
@@ -293,7 +293,13 @@
#define YOFS ((LCD_HEIGHT-224/2)/2)
#elif (LCD_WIDTH >= 128)
#define XOFS ((LCD_WIDTH-224/2)/2)
+#if LCD_HEIGHT < 144
#define YCLIP ((288-2*LCD_HEIGHT)/2)
+#define YOFS 0
+#else
+#define YCLIP 0
+#define YOFS ((LCD_HEIGHT-288/2)/2)
+#endif
#endif
/* How many video frames (out of a possible 60) we display each second.
diff --git a/apps/plugins/pacbox/pacbox_lcd.c b/apps/plugins/pacbox/pacbox_lcd.c
index 04bfe5f..bc2de20 100644
--- a/apps/plugins/pacbox/pacbox_lcd.c
+++ b/apps/plugins/pacbox/pacbox_lcd.c
@@ -106,11 +106,13 @@ void blit_display(fb_data* lcd_framebuffer, unsigned char* vbuf)
vbuf+=ScreenWidth;
}
#elif (LCD_WIDTH >= 128) && (LCD_HEIGHT >= 128)
- /* 0.5 scaling - display every other pixel = 112x144, crop to 112x128 */
+ /* 0.5 scaling - display every other pixel
+ * LCD_HEIGHT < 144: 112x144, crop to 112x128
+ * else center vertically without clipping */
(void)next_dst;
- dst=&lcd_framebuffer[XOFS];
+ dst=&lcd_framebuffer[YOFS*LCD_WIDTH+XOFS];
- /* Skip first 16 lines */
+ /* Skip first YCLIP lines */
vbuf+=ScreenWidth*YCLIP;
/* Show regular screen */