From d94e41bade97756046f7c3b379ef65dbb7f46e14 Mon Sep 17 00:00:00 2001 From: Marcin Bukat Date: Fri, 2 Oct 2026 10:30:58 +0200 Subject: [PATCH] invadrox: bracket SCORENUM_Y Five layouts define SCORENUM_Y as SCORE_Y + (...) unbracketed, so the playfield update after each frame, PLAYFIELD_Y + 1 - SCORENUM_Y - FONT_HEIGHT high, added that part rather than subtracting it: on a 240-line screen it ran 25 lines past the bottom. Most LCD drivers clip it; the rk27xx one did not, and nothing in the playfield moved. Co-Authored-By: Claude Opus 5.5 Change-Id: Icecf7780d81595db9d6e42125fc421cc1cb40339 --- apps/plugins/invadrox.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c index 3b12307d0e..40b0967dce 100644 --- a/apps/plugins/invadrox.c +++ b/apps/plugins/invadrox.c @@ -431,7 +431,7 @@ CONFIG_KEYPAD == MROBE500_PAD #define SHIP_Y (PLAYFIELD_Y - 3 * SHIP_HEIGHT) #define ALIEN_START_Y (UFO_Y + 3 * ALIEN_HEIGHT) #define SCORENUM_X (PLAYFIELD_X + NUMBERS_WIDTH) -#define SCORENUM_Y SCORE_Y + (2 * (FONT_HEIGHT + 1) + 1) +#define SCORENUM_Y (SCORE_Y + 2 * (FONT_HEIGHT + 1) + 1) #define HISCORENUM_X (LCD_WIDTH - PLAYFIELD_X - 1 - 6 * NUMBERS_WIDTH - 5 * NUM_SPACING) #define SHIELD_Y (PLAYFIELD_Y - 6 * SHIP_HEIGHT) #define LIVES_X 10 @@ -455,7 +455,7 @@ CONFIG_KEYPAD == MROBE500_PAD #define SHIP_Y (PLAYFIELD_Y - 3 * SHIP_HEIGHT) #define ALIEN_START_Y (UFO_Y + 3 * ALIEN_HEIGHT) #define SCORENUM_X (PLAYFIELD_X + NUMBERS_WIDTH) + 10 -#define SCORENUM_Y SCORE_Y + (2 * (FONT_HEIGHT + 1) + 1) +#define SCORENUM_Y (SCORE_Y + 2 * (FONT_HEIGHT + 1) + 1) #define HISCORENUM_X (LCD_WIDTH - PLAYFIELD_X - 1 - 6 * NUMBERS_WIDTH - 8 * NUM_SPACING) #define SHIELD_Y (PLAYFIELD_Y - 6 * SHIP_HEIGHT) #define LIVES_X 10 @@ -645,7 +645,7 @@ CONFIG_KEYPAD == MROBE500_PAD #undef SCORE_Y #define SCORE_Y 80 #define SCORENUM_X (PLAYFIELD_X + NUMBERS_WIDTH) -#define SCORENUM_Y SCORE_Y + (2 * (FONT_HEIGHT + 1) + 1) +#define SCORENUM_Y (SCORE_Y + 2 * (FONT_HEIGHT + 1) + 1) #define HISCORENUM_X (LCD_WIDTH - PLAYFIELD_X - 1 - 6 * NUMBERS_WIDTH - 5 * NUM_SPACING) #define SHIELD_Y (PLAYFIELD_Y - 6 * SHIP_HEIGHT) #define LIVES_X 10 @@ -699,7 +699,7 @@ CONFIG_KEYPAD == MROBE500_PAD #undef SCORE_Y #define SCORE_Y 80 #define SCORENUM_X (PLAYFIELD_X + NUMBERS_WIDTH) -#define SCORENUM_Y SCORE_Y + (2 * (FONT_HEIGHT + 1) + 1) +#define SCORENUM_Y (SCORE_Y + 2 * (FONT_HEIGHT + 1) + 1) #define HISCORENUM_X (LCD_WIDTH - PLAYFIELD_X - 1 - 6 * NUMBERS_WIDTH - 5 * NUM_SPACING) #define SHIELD_Y (PLAYFIELD_Y - 6 * SHIP_HEIGHT) #define LIVES_X 10 @@ -717,7 +717,7 @@ CONFIG_KEYPAD == MROBE500_PAD #undef SCORE_Y #define SCORE_Y 80 #define SCORENUM_X (PLAYFIELD_X + NUMBERS_WIDTH) -#define SCORENUM_Y SCORE_Y + (2 * (FONT_HEIGHT + 1) + 1) +#define SCORENUM_Y (SCORE_Y + 2 * (FONT_HEIGHT + 1) + 1) #define HISCORENUM_X (LCD_WIDTH - PLAYFIELD_X - 1 - 6 * NUMBERS_WIDTH - 5 * NUM_SPACING) #define SHIELD_Y (PLAYFIELD_Y - 6 * SHIP_HEIGHT) #define LIVES_X 10