Add 240x240 support to various plugins and rgnano manual updates

This should be all of the "standard" plugins (except sdl ones).

Change-Id: Iacae3edcc69a136a9dd887f31ad6ca51a9b5aea4
This commit is contained in:
Hairo R. Carela 2025-08-20 20:40:56 -04:00
parent a60c09c24c
commit 2aed517a07
25 changed files with 148 additions and 27 deletions

View file

@ -26,6 +26,7 @@ playing_time.c
properties.c
random_folder_advance_config.c
rb_info.c
rockblox.c
search.c
settings_dumper.c
snow.c
@ -139,15 +140,9 @@ robotfindskitten.c
xobox.c
spacerocks.c
#if (LCD_WIDTH != 240) && (LCD_HEIGHT != 240)
/* No 240x240 support */
rockblox.c
bubbles.c
wormlet.c
#endif
blackjack.c
bounce.c
bubbles.c
calculator.c
chip8.c
chopper.c
@ -167,6 +162,7 @@ sokoban.c
star.c
starfield.c
vu_meter.c
wormlet.c
#ifdef HAVE_HOTKEY
announce_status.c
@ -203,7 +199,7 @@ rocklife.c
matrix.c
speedread.c
#if (LCD_WIDTH > 138) && ((LCD_WIDTH != 240) && (LCD_HEIGHT != 240))
#if (LCD_WIDTH > 138)
invadrox.c
superdom.c
#endif

View file

@ -41,10 +41,7 @@ fft
chessbox
fractals
imageviewer
#if (LCD_WIDTH != 240) && (LCD_HEIGHT != 240)
/* No 240x240 support */
sudoku
#endif
reversi
goban
frotz

View file

@ -18,7 +18,8 @@ bubbles_bubble.138x110x1.bmp
#elif ((LCD_WIDTH == 220) && (LCD_HEIGHT == 176)) || \
((LCD_WIDTH == 176) && (LCD_HEIGHT == 220))
bubbles_bubble.220x176x1.bmp
#elif ((LCD_WIDTH == 320) && (LCD_HEIGHT == 240)) || \
#elif ((LCD_WIDTH == 240) && (LCD_HEIGHT == 240)) || \
((LCD_WIDTH == 320) && (LCD_HEIGHT == 240)) || \
((LCD_WIDTH == 240) && (LCD_HEIGHT >= 320)) || \
((LCD_WIDTH == 360) && (LCD_HEIGHT == 400))
bubbles_bubble.320x240x1.bmp

View file

@ -209,6 +209,9 @@ bubbles_background.320x240x16.bmp
#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 320)
bubbles_emblem.320x240x16.bmp
bubbles_background.240x320x16.bmp
#elif (LCD_WIDTH >= 240) && (LCD_HEIGHT >= 240)
bubbles_emblem.320x240x16.bmp
bubbles_background.240x240x16.bmp
#elif (LCD_WIDTH >= 220) && (LCD_HEIGHT >= 176)
bubbles_emblem.220x176x16.bmp
bubbles_background.220x176x16.bmp
@ -437,6 +440,8 @@ invadrox_numbers.50x7x16.bmp
invadrox_background.360x400x16.bmp
#elif LCD_WIDTH == 320
invadrox_background.320x240x16.bmp
#elif LCD_WIDTH == 240 && LCD_HEIGHT == 240
invadrox_background.240x240x16.bmp
#elif LCD_WIDTH == 240
invadrox_background.240x320x16.bmp
#elif LCD_WIDTH == 220
@ -602,6 +607,8 @@ rockblox_background.360x400x16.bmp
rockblox_background.320x240x16.bmp
#elif (LCD_WIDTH == 240) && (LCD_HEIGHT >= 320)
rockblox_background.240x320x16.bmp
#elif (LCD_WIDTH == 240) && (LCD_HEIGHT == 240)
rockblox_background.240x240x16.bmp
#elif (LCD_WIDTH == 220) && (LCD_HEIGHT == 176)
rockblox_background.220x176x16.bmp
#elif (LCD_WIDTH == 176) && (LCD_HEIGHT == 220)
@ -891,6 +898,10 @@ sudoku_inverse.160x128x1.bmp
sudoku_start.220x176x16.bmp
sudoku_normal.220x176x16.bmp
sudoku_inverse.220x176x16.bmp
#elif (LCD_WIDTH == 240) && (LCD_HEIGHT == 240) && (LCD_DEPTH == 16)
sudoku_start.240x240x16.bmp
sudoku_normal.240x240x16.bmp
sudoku_inverse.240x240x16.bmp
#elif (LCD_WIDTH >= 320) && (LCD_HEIGHT >= 240) && (LCD_DEPTH == 2)
/* Temporary bitmaps for Archos AV300 */
sudoku_start.320x240x16.bmp
@ -929,7 +940,8 @@ superdom_boarditems.220x176x16.bmp
((LCD_WIDTH == 160) && (LCD_HEIGHT == 128)) || \
((LCD_WIDTH == 176) && (LCD_HEIGHT == 220))
superdom_boarditems.176x132x16.bmp
#elif (LCD_WIDTH == 320 && LCD_HEIGHT == 240)
#elif ((LCD_WIDTH == 240) && (LCD_HEIGHT == 240)) || \
((LCD_WIDTH == 320) && (LCD_HEIGHT == 220))
superdom_boarditems.320x240x16.bmp
#elif ((LCD_WIDTH == 240) && (LCD_HEIGHT == 320)) || \
((LCD_WIDTH == 240) && (LCD_HEIGHT == 400)) || \

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View file

@ -176,6 +176,22 @@ enum {
#define NEXT_BB_WIDTH 32
#define NEXT_BB_Y 200
/* 22x22 bubbles (Anbernic RG Nano) */
#elif (LCD_HEIGHT == 240) && (LCD_WIDTH == 240)
#define XOFS 64
#define MAX_FPS 40
/* custom text positioning */
#define SCORE_TXT_X 12
#define SCORE_TXT_WIDTH 32
#define SCORE_TXT_Y 29
#define LEVEL_TXT_X 12
#define LEVEL_TXT_WIDTH 32
#define LEVEL_TXT_Y 2
#define NEXT_BB_X 12
#define NEXT_BB_WIDTH 32
#define NEXT_BB_Y 200
/* 16x16 bubbles (H300, iPod Color, HDD6330) */
#elif (LCD_HEIGHT == 176) && (LCD_WIDTH == 220)
#define XOFS 46

View file

@ -298,6 +298,13 @@ CONFIG_KEYPAD == MROBE500_PAD
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_PLAY
#elif CONFIG_KEYPAD == RG_NANO_PAD
#define QUIT BUTTON_START
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_A
#else
#error INVADROX: Unsupported keypad
#endif
@ -424,6 +431,30 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LIVES_X 10
#define MAX_Y 18
/* Anbernic RG Nano defines */
#elif (LCD_WIDTH == 240) && (LCD_HEIGHT == 240)
/* Original arcade game size 224x240, 1bpp with
* red overlay at top and green overlay at bottom.
*
* Anbernic RG Nano: 240x240x16
* ======================
* X: 8p padding at left/right gives 224p playfield in middle.
* 10p "border" gives 204p actual playfield. UFO use full 224p.
* Y: Use full 240p.
*/
#define ARCADISH_GRAPHICS
#define PLAYFIELD_X 8
#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 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
#define MAX_Y 18
#elif (LCD_WIDTH == 176) && (LCD_HEIGHT == 220)
/* Sandisk Sansa e200: 176x220x16

View file

@ -479,6 +479,18 @@
#define ROCKBLOX_DROP BUTTON_MENU
#define ROCKBLOX_RESTART BUTTON_BACK
#elif CONFIG_KEYPAD == RG_NANO_PAD
#define ROCKBLOX_OFF BUTTON_START
#define ROCKBLOX_ROTATE_CCW BUTTON_X
#define ROCKBLOX_ROTATE_CW BUTTON_Y
#define ROCKBLOX_ROTATE BUTTON_UP
#define ROCKBLOX_DOWN BUTTON_DOWN
#define ROCKBLOX_LEFT BUTTON_LEFT
#define ROCKBLOX_RIGHT BUTTON_RIGHT
#define ROCKBLOX_DROP BUTTON_A
#define ROCKBLOX_RESTART BUTTON_B
#else
#error No keymap defined!
#endif
@ -593,6 +605,22 @@
#define HIGH_SCORE_Y 163
#define HIGH_LEVEL_Y 172
#elif (LCD_WIDTH == 240) && (LCD_HEIGHT == 240)
#define BLOCK_WIDTH 12
#define BLOCK_HEIGHT 12
#define BOARD_X 20
#define BOARD_Y 0
#define PREVIEW_X 176
#define PREVIEW_Y 187
#define LABEL_X 172
#define SCORE_Y 19
#define LEVEL_Y 51
#define LINES_Y 84
#define HIGH_LABEL_X 172
#define HIGH_SCORE_Y 122
#define HIGH_LEVEL_Y 172
#elif (LCD_WIDTH == 220) && (LCD_HEIGHT == 176)
#define BLOCK_WIDTH 8

View file

@ -141,6 +141,12 @@ static const char default_game[9][9] =
#define MARK_SPACE 1 /* Pixels between two marks */
#define MARK_SIZE 4 /* Mark width and height */
#elif (LCD_HEIGHT==240) && (LCD_WIDTH==240)
/* Anbernic RG Nano - 240x240, 9 cells @ 20x20 with 14 border lines */
#define MARK_OFFS 1 /* Pixels between border and mark */
#define MARK_SPACE 1 /* Pixels between two marks */
#define MARK_SIZE 4 /* Mark width and height */
#elif (LCD_HEIGHT==240) && (LCD_WIDTH==320)
/* iPod Video - 320x240, 9 cells @ 24x24 with 14 border lines */
#define MARK_OFFS 1 /* Pixels between border and mark */

View file

@ -472,6 +472,17 @@
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD
/* use touchscreen */
#elif CONFIG_KEYPAD == RG_NANO_PAD
#define SUDOKU_BUTTON_QUIT BUTTON_START
#define SUDOKU_BUTTON_UP BUTTON_UP
#define SUDOKU_BUTTON_DOWN BUTTON_DOWN
#define SUDOKU_BUTTON_LEFT BUTTON_LEFT
#define SUDOKU_BUTTON_RIGHT BUTTON_RIGHT
#define SUDOKU_BUTTON_TOGGLEBACK BUTTON_Y
#define SUDOKU_BUTTON_TOGGLE BUTTON_A
#define SUDOKU_BUTTON_MENU BUTTON_B
#define SUDOKU_BUTTON_POSSIBLE BUTTON_X
#else
#error No keymap defined!
#endif

View file

@ -419,6 +419,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_BACK
#define BTN_STOPRESET BUTTON_MENU
#elif CONFIG_KEYPAD == RG_NANO_PAD
#define BTN_DIR_UP BUTTON_UP
#define BTN_DIR_DOWN BUTTON_DOWN
#define BTN_DIR_LEFT BUTTON_LEFT
#define BTN_DIR_RIGHT BUTTON_RIGHT
#define BTN_STARTPAUSE BUTTON_A
#define BTN_QUIT BUTTON_START
#define BTN_STOPRESET BUTTON_B
#else
#error No keymap defined!
#endif
@ -503,7 +513,8 @@ CONFIG_KEYPAD == MROBE500_PAD
#define ARGH_SIZE 6
#define SPEED 4
#define MAX_WORM_SEGMENTS 512
#elif ((LCD_WIDTH == 320) && (LCD_HEIGHT == 240)) || \
#elif ((LCD_WIDTH == 240) && (LCD_HEIGHT == 240)) || \
((LCD_WIDTH == 320) && (LCD_HEIGHT == 240)) || \
((LCD_WIDTH == 240) && ((LCD_HEIGHT == 320) || (LCD_HEIGHT == 400))) || \
((LCD_WIDTH == 360) && (LCD_HEIGHT == 400))
#define FOOD_SIZE 7