3ds: Enable plugins for the 3ds platform.

This commit enables plugins for the 3ds platform.
And adds 3ds specific pad configurations for each plugin.

Change-Id: Ie28fef4da32ed4cd2caa6c9fa3b2fe312ee009ef
This commit is contained in:
Mauricio Garrido 2025-12-30 17:16:48 -06:00 committed by Solomon Peachy
parent 7d067ca798
commit 09a31fff91
55 changed files with 549 additions and 8 deletions

View file

@ -75,7 +75,7 @@ mikmod
(CONFIG_KEYPAD == SANSA_FUZE_PAD) || (CONFIG_KEYPAD == SANSA_E200_PAD) || \
(CONFIG_KEYPAD == IPOD_4G_PAD) || (CONFIG_KEYPAD == IPOD_3G_PAD) || \
(CONFIG_KEYPAD == IPOD_1G2G_PAD || CONFIG_KEYPAD == SAMSUNG_YPR0_PAD) || \
(CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD)
(CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD) || (CONFIG_KEYPAD == CTRU_PAD)
/* PDBox is confirmed to run on these player models. */
pdbox
#endif

View file

@ -265,6 +265,12 @@ struct battery_tables_t {
#define BATTERY_ON_TXT "A"
#define BATTERY_OFF_TXT "X"
#elif CONFIG_KEYPAD == CTRU_PAD
#define BATTERY_ON BUTTON_SELECT
#define BATTERY_OFF BUTTON_BACK
#define BATTERY_ON_TXT "A - start"
#define BATTERY_OFF_TXT "B"
#else
#error "No keymap defined!"
#endif

View file

@ -628,6 +628,22 @@ enum {
#define BJACK_RIGHT BUTTON_RIGHT
#define BJACK_LEFT BUTTON_LEFT
#elif CONFIG_KEYPAD == CTRU_PAD
#define BJACK_SELECT_NAME "A"
#define BJACK_STAY_NAME "X"
#define BJACK_QUIT_NAME "B"
#define BJACK_DOUBLE_NAME "Y"
#define BJACK_SELECT BUTTON_SELECT
#define BJACK_QUIT BUTTON_BACK
#define BJACK_MAX (BUTTON_LEFT|BUTTON_UP)
#define BJACK_MIN (BUTTON_RIGHT|BUTTON_DOWN)
#define BJACK_STAY BUTTON_MENU
#define BJACK_DOUBLEDOWN BUTTON_USER
#define BJACK_UP BUTTON_UP
#define BJACK_DOWN BUTTON_DOWN
#define BJACK_RIGHT BUTTON_RIGHT
#define BJACK_LEFT BUTTON_LEFT
#else
#error No keymap defined!
#endif

View file

@ -382,6 +382,14 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define UP BUTTON_UP
#define DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == CTRU_PAD
#define QUIT BUTTON_BACK
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
#define SELECT BUTTON_SELECT
#define UP BUTTON_UP
#define DOWN BUTTON_DOWN
#else
#error No keymap defined!
#endif

View file

@ -557,6 +557,17 @@ F3: equal to "="
#define CALCULATOR_CALC BUTTON_X
#define CALCULATOR_CLEAR BUTTON_B
#elif CONFIG_KEYPAD == CTRU_PAD
#define CALCULATOR_LEFT BUTTON_LEFT
#define CALCULATOR_RIGHT BUTTON_RIGHT
#define CALCULATOR_UP BUTTON_UP
#define CALCULATOR_DOWN BUTTON_DOWN
#define CALCULATOR_QUIT BUTTON_BACK
#define CALCULATOR_INPUT BUTTON_SELECT
#define CALCULATOR_CALC BUTTON_MENU
#define CALCULATOR_CLEAR BUTTON_USER
#else
#error No keymap defined!
#endif

View file

@ -443,6 +443,16 @@
#define CALENDAR_PREV_MONTH BUTTON_L
#define CALENDAR_EVENT_MENU_NAME "A"
#elif CONFIG_KEYPAD == CTRU_PAD
#define CALENDAR_QUIT BUTTON_BACK
#define CALENDAR_SELECT BUTTON_SELECT
#define CALENDAR_NEXT_WEEK BUTTON_DOWN
#define CALENDAR_PREV_WEEK BUTTON_UP
#define CALENDAR_NEXT_DAY BUTTON_RIGHT
#define CALENDAR_PREV_DAY BUTTON_LEFT
#define CALENDAR_NEXT_MONTH BUTTON_POWER
#define CALENDAR_PREV_MONTH BUTTON_USER
#else
#error "No keypad setting."
#endif

View file

@ -614,6 +614,20 @@
#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
#define CB_RC_QUIT BUTTON_START
#elif CONFIG_KEYPAD == CTRU_PAD
#define CB_SELECT BUTTON_SELECT
#define CB_UP BUTTON_UP
#define CB_DOWN BUTTON_DOWN
#define CB_LEFT BUTTON_LEFT
#define CB_RIGHT BUTTON_RIGHT
#define CB_PLAY BUTTON_USER
#define CB_LEVEL BUTTON_BACK
#define CB_MENU BUTTON_MENU
#define CB_SCROLL_UP (BUTTON_UP|BUTTON_REPEAT)
#define CB_SCROLL_DOWN (BUTTON_DOWN|BUTTON_REPEAT)
#define CB_SCROLL_LEFT (BUTTON_LEFT|BUTTON_REPEAT)
#define CB_SCROLL_RIGHT (BUTTON_RIGHT|BUTTON_REPEAT)
#else
#error No keymap defined!
#endif

View file

@ -418,6 +418,16 @@
#define CHC_SETTINGS_OK BUTTON_A
#define CHC_SETTINGS_CANCEL BUTTON_B
#elif CONFIG_KEYPAD == CTRU_PAD
#define CHC_QUIT BUTTON_BACK
#define CHC_STARTSTOP BUTTON_SELECT
#define CHC_RESET BUTTON_USER
#define CHC_MENU BUTTON_MENU
#define CHC_SETTINGS_INC BUTTON_UP
#define CHC_SETTINGS_DEC BUTTON_DOWN
#define CHC_SETTINGS_OK BUTTON_SELECT
#define CHC_SETTINGS_CANCEL BUTTON_BACK
#else
#error No keymap defined!
#endif

View file

@ -1312,6 +1312,18 @@ CONFIG_KEYPAD == MROBE500_PAD
#define CHIP8_KEY9 BUTTON_R
#define CHIP8_KEY0 BUTTON_L
#elif (CONFIG_KEYPAD == CTRU_PAD)
#define CHIP8_OFF (BUTTON_BACK|BUTTON_REPEAT)
#define CHIP8_KEY1 BUTTON_MENU
#define CHIP8_KEY2 BUTTON_UP
#define CHIP8_KEY3 BUTTON_DOWN
#define CHIP8_KEY4 BUTTON_LEFT
#define CHIP8_KEY5 BUTTON_SELECT
#define CHIP8_KEY6 BUTTON_RIGHT
#define CHIP8_KEY7 BUTTON_BACK
#define CHIP8_KEY8 BUTTON_POWER
#define CHIP8_KEY9 BUTTON_USER
#elif CONFIG_KEYPAD == SHANLING_Q1_PAD || CONFIG_KEYPAD == HIBY_R3PROII_PAD
/* use touchscreen */

View file

@ -213,6 +213,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#define ACTION2 BUTTON_B
#define ACTIONTEXT "A"
#elif CONFIG_KEYPAD == CTRU_PAD
#define QUIT BUTTON_BACK
#define ACTION BUTTON_SELECT
#define ACTION2 BUTTON_MENU
#define ACTIONTEXT "A"
#elif !defined(HAVE_TOUCHSCREEN)
#error No keymap defined!
#endif

View file

@ -333,6 +333,14 @@
#define CLIX_BUTTON_UP BUTTON_UP
#define CLIX_BUTTON_DOWN BUTTON_DOWN
#elif (CONFIG_KEYPAD == CTRU_PAD)
#define CLIX_BUTTON_QUIT BUTTON_BACK
#define CLIX_BUTTON_LEFT BUTTON_LEFT
#define CLIX_BUTTON_RIGHT BUTTON_RIGHT
#define CLIX_BUTTON_CLICK BUTTON_SELECT
#define CLIX_BUTTON_UP BUTTON_UP
#define CLIX_BUTTON_DOWN BUTTON_DOWN
#else
#error "no keymap"
#endif

View file

@ -425,6 +425,16 @@
#define CUBE_PAUSE BUTTON_A
#define CUBE_HIGHSPEED BUTTON_Y
#elif (CONFIG_KEYPAD == CTRU_PAD)
#define CUBE_QUIT BUTTON_BACK
#define CUBE_NEXT BUTTON_RIGHT
#define CUBE_PREV BUTTON_LEFT
#define CUBE_INC BUTTON_UP
#define CUBE_DEC BUTTON_DOWN
#define CUBE_MODE BUTTON_MENU
#define CUBE_PAUSE BUTTON_USER
#define CUBE_HIGHSPEED BUTTON_SELECT
#else
#error No keymap defined!
#endif

View file

@ -645,6 +645,17 @@ void I_ShutdownGraphics(void)
#define DOOMBUTTON_WEAPON BUTTON_X
#define DOOMBUTTON_MAP BUTTON_Y
#elif CONFIG_KEYPAD == CTRU_PAD
#define DOOMBUTTON_UP BUTTON_UP
#define DOOMBUTTON_DOWN BUTTON_DOWN
#define DOOMBUTTON_LEFT BUTTON_LEFT
#define DOOMBUTTON_RIGHT BUTTON_RIGHT
#define DOOMBUTTON_SHOOT BUTTON_SELECT
#define DOOMBUTTON_OPEN BUTTON_MENU
#define DOOMBUTTON_ESC BUTTON_BACK
#define DOOMBUTTON_ENTER BUTTON_POWER
#define DOOMBUTTON_WEAPON BUTTON_USER
#else
#error Keymap not defined!
#endif

View file

@ -523,6 +523,18 @@
#define FLIPIT_STEP_BY_STEP BUTTON_Y
#define FLIPIT_TOGGLE BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define FLIPIT_LEFT BUTTON_LEFT
#define FLIPIT_RIGHT BUTTON_RIGHT
#define FLIPIT_UP BUTTON_UP
#define FLIPIT_DOWN BUTTON_DOWN
#define FLIPIT_QUIT BUTTON_BACK
#define FLIPIT_SHUFFLE BUTTON_MENU
#define FLIPIT_SOLVE BUTTON_USER
#define FLIPIT_STEP_BY_STEP BUTTON_POWER
#define FLIPIT_TOGGLE BUTTON_SELECT
#else
#error No keymap defined!
#endif

View file

@ -531,6 +531,18 @@
#define FRACTAL_PRECISION_DEC BUTTON_L
#define FRACTAL_RESET BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define FRACTAL_QUIT BUTTON_BACK
#define FRACTAL_UP BUTTON_UP
#define FRACTAL_DOWN BUTTON_DOWN
#define FRACTAL_LEFT BUTTON_LEFT
#define FRACTAL_RIGHT BUTTON_RIGHT
#define FRACTAL_ZOOM_IN (BUTTON_MENU|BUTTON_REL)
#define FRACTAL_ZOOM_OUT (BUTTON_USER|BUTTON_REL)
#define FRACTAL_PRECISION_INC (BUTTON_MENU|BUTTON_REPEAT)
#define FRACTAL_PRECISION_DEC (BUTTON_USER|BUTTON_REPEAT)
#define FRACTAL_RESET BUTTON_POWER
#else
#error No keymap defined!
#endif

View file

@ -524,6 +524,16 @@
#define GBN_BUTTON_CONTEXT BUTTON_X
#define GBN_BUTTON_NEXT_VAR BUTTON_Y
#elif (CONFIG_KEYPAD == CTRU_PAD)
#define GBN_BUTTON_UP BUTTON_UP
#define GBN_BUTTON_DOWN BUTTON_DOWN
#define GBN_BUTTON_LEFT BUTTON_LEFT
#define GBN_BUTTON_RIGHT BUTTON_RIGHT
#define GBN_BUTTON_RETREAT BUTTON_BACK
#define GBN_BUTTON_ADVANCE BUTTON_USER
#define GBN_BUTTON_PLAY BUTTON_SELECT
#define GBN_BUTTON_MENU BUTTON_MENU
#else
#error Unsupported keypad
#endif

View file

@ -572,6 +572,18 @@
#define IMGVIEW_MENU BUTTON_B
#define IMGVIEW_QUIT BUTTON_START
#elif CONFIG_KEYPAD == CTRU_PAD
#define IMGVIEW_ZOOM_IN BUTTON_POWER
#define IMGVIEW_ZOOM_OUT BUTTON_USER
#define IMGVIEW_UP BUTTON_UP
#define IMGVIEW_DOWN BUTTON_DOWN
#define IMGVIEW_LEFT BUTTON_LEFT
#define IMGVIEW_RIGHT BUTTON_RIGHT
#define IMGVIEW_NEXT BUTTON_SELECT
#define IMGVIEW_PREVIOUS 0xFFFFFFA //not used
#define IMGVIEW_MENU BUTTON_MENU
#define IMGVIEW_QUIT BUTTON_BACK
#else
#error No keymap defined!
#endif

View file

@ -305,6 +305,13 @@ CONFIG_KEYPAD == MROBE500_PAD
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define QUIT BUTTON_POWER
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
#define FIRE BUTTON_SELECT
#else
#error INVADROX: Unsupported keypad
#endif

View file

@ -400,6 +400,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define HK_SELECT "A"
#define HK_CANCEL "START"
#elif CONFIG_KEYPAD == CTRU_PAD
#define JEWELS_UP BUTTON_UP
#define JEWELS_DOWN BUTTON_DOWN
#define JEWELS_LEFT BUTTON_LEFT
#define JEWELS_RIGHT BUTTON_RIGHT
#define JEWELS_SELECT BUTTON_SELECT
#define JEWELS_CANCEL BUTTON_BACK
#define HK_SELECT "A"
#define HK_CANCEL "B"
#else
#error No keymap defined!
#endif

View file

@ -280,15 +280,31 @@
#define BTN_FIRE BUTTON_A
#define BTN_PAUSE BUTTON_START
#elif CONFIG_KEYPAD == CTRU_PAD
#define BTN_UP BUTTON_UP
#define BTN_DOWN BUTTON_DOWN
#define BTN_LEFT BUTTON_LEFT
#define BTN_RIGHT BUTTON_RIGHT
#define BTN_FIRE BUTTON_USER
#define BTN_PAUSE BUTTON_MENU
#else
#error Unsupported keypad
#endif
#ifdef HAVE_TOUCHSCREEN
#define BTN_UP BUTTON_TOPMIDDLE
#define BTN_DOWN BUTTON_BOTTOMMIDDLE
#define BTN_LEFT BUTTON_LEFT
#define BTN_RIGHT BUTTON_RIGHT
#ifndef BTN_UP
#define BTN_UP BUTTON_TOPMIDDLE
#endif
#ifndef BTN_DOWN
#define BTN_DOWN BUTTON_BOTTOMMIDDLE
#endif
#ifndef BTN_LEFT
#define BTN_LEFT BUTTON_LEFT
#endif
#ifndef BTN_RIGHT
#define BTN_RIGHT BUTTON_RIGHT
#endif
#if (CONFIG_KEYPAD == MROBE500_PAD) || \
(CONFIG_KEYPAD == ONDAVX777_PAD)

View file

@ -286,6 +286,15 @@ const struct button_mapping pla_main_ctx[] =
{ PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
#elif (CONFIG_KEYPAD == CTRU_PAD)
{ PLA_UP, BUTTON_UP, BUTTON_NONE },
{ PLA_DOWN, BUTTON_DOWN, BUTTON_NONE },
{ PLA_LEFT, BUTTON_LEFT, BUTTON_NONE },
{ PLA_RIGHT, BUTTON_RIGHT, BUTTON_NONE },
{ PLA_UP_REPEAT, BUTTON_UP|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_DOWN_REPEAT, BUTTON_DOWN|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_LEFT_REPEAT, BUTTON_LEFT|BUTTON_REPEAT, BUTTON_NONE },
{ PLA_RIGHT_REPEAT, BUTTON_RIGHT|BUTTON_REPEAT, BUTTON_NONE },
#else
# ifndef HAVE_TOUCHSCREEN
# error pluginlib_actions: No directions defined
@ -531,6 +540,12 @@ const struct button_mapping pla_main_ctx[] =
{PLA_SELECT, BUTTON_A, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_A|BUTTON_REL, BUTTON_A},
{PLA_SELECT_REPEAT, BUTTON_A|BUTTON_REPEAT, BUTTON_NONE},
#elif (CONFIG_KEYPAD == CTRU_PAD)
{PLA_CANCEL, BUTTON_BACK, BUTTON_NONE},
{PLA_EXIT, BUTTON_MENU, BUTTON_NONE},
{PLA_SELECT, BUTTON_SELECT, BUTTON_NONE},
{PLA_SELECT_REL, BUTTON_SELECT|BUTTON_REL, BUTTON_SELECT},
{PLA_SELECT_REPEAT, BUTTON_SELECT|BUTTON_REPEAT, BUTTON_NONE},
#else
# ifndef HAVE_TOUCHSCREEN
# error pluginlib_actions: No actions defined

View file

@ -344,6 +344,14 @@
#define MIDI_VOL_DOWN BUTTON_DOWN
#define MIDI_PLAYPAUSE BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define MIDI_QUIT BUTTON_BACK
#define MIDI_FFWD BUTTON_RIGHT
#define MIDI_REWIND BUTTON_LEFT
#define MIDI_VOL_UP BUTTON_UP
#define MIDI_VOL_DOWN BUTTON_DOWN
#define MIDI_PLAYPAUSE BUTTON_USER
#else
#error No keymap defined!
#endif

View file

@ -6,7 +6,7 @@
#undef SYNC
#ifdef SIMULATOR
#if defined(SIMULATOR) || defined(CTRU)
#define SYNC
#else
#define USETHREADS

View file

@ -465,6 +465,16 @@ CONFIG_KEYPAD == MROBE500_PAD
# define MINESWP_DISCOVER BUTTON_A
# define MINESWP_INFO BUTTON_Y
#elif CONFIG_KEYPAD == CTRU_PAD
# define MINESWP_LEFT BUTTON_LEFT
# define MINESWP_RIGHT BUTTON_RIGHT
# define MINESWP_UP BUTTON_UP
# define MINESWP_DOWN BUTTON_DOWN
# define MINESWP_QUIT BUTTON_BACK
# define MINESWP_TOGGLE BUTTON_USER
# define MINESWP_DISCOVER BUTTON_SELECT
# define MINESWP_INFO BUTTON_MENU
#else
#error No keymap defined!
#endif

View file

@ -2598,6 +2598,12 @@ CONFIG_KEYPAD == MROBE500_PAD
#define MP3ENC_DONE BUTTON_START
#define MP3ENC_SELECT BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define MP3ENC_PREV BUTTON_UP
#define MP3ENC_NEXT BUTTON_DOWN
#define MP3ENC_DONE BUTTON_POWER
#define MP3ENC_SELECT BUTTON_SELECT
#else
#error No keymap defined!
#endif

View file

@ -375,6 +375,14 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_DOWN BUTTON_DOWN
#define MPEG_START_TIME_EXIT BUTTON_START
#elif CONFIG_KEYPAD == CTRU_PAD
#define MPEG_START_TIME_SELECT BUTTON_SELECT
#define MPEG_START_TIME_LEFT BUTTON_LEFT
#define MPEG_START_TIME_RIGHT BUTTON_RIGHT
#define MPEG_START_TIME_UP BUTTON_UP
#define MPEG_START_TIME_DOWN BUTTON_DOWN
#define MPEG_START_TIME_EXIT BUTTON_BACK
#else
#error No keymap defined!
#endif

View file

@ -507,6 +507,15 @@ CONFIG_KEYPAD == SANSA_M200_PAD
#define MPEG_RW BUTTON_LEFT
#define MPEG_FF BUTTON_RIGHT
#elif CONFIG_KEYPAD == CTRU_PAD
#define MPEG_MENU BUTTON_MENU
#define MPEG_PAUSE BUTTON_SELECT
#define MPEG_STOP BUTTON_POWER
#define MPEG_VOLDOWN BUTTON_DOWN
#define MPEG_VOLUP BUTTON_UP
#define MPEG_RW BUTTON_LEFT
#define MPEG_FF BUTTON_RIGHT
#else
#error No keymap defined!
#endif

View file

@ -579,6 +579,17 @@
#define OSCILLOSCOPE_VOL_UP BUTTON_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == CTRU_PAD
#define OSCILLOSCOPE_QUIT BUTTON_BACK
#define OSCILLOSCOPE_DRAWMODE BUTTON_USER
#define OSCILLOSCOPE_ADVMODE BUTTON_MENU
#define OSCILLOSCOPE_ORIENTATION BUTTON_POWER
#define OSCILLOSCOPE_PAUSE BUTTON_SELECT
#define OSCILLOSCOPE_SPEED_UP BUTTON_RIGHT
#define OSCILLOSCOPE_SPEED_DOWN BUTTON_LEFT
#define OSCILLOSCOPE_VOL_UP BUTTON_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_DOWN
#else
#error No keymap defined!
#endif

View file

@ -429,6 +429,17 @@
#define PACMAN_COIN BUTTON_A
#define PACMAN_MENU BUTTON_START
#elif CONFIG_KEYPAD == CTRU_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_2UP BUTTON_POWER
#define PACMAN_COIN BUTTON_USER
#define PACMAN_MENU BUTTON_MENU
#else
#error Keymap not defined!

View file

@ -312,6 +312,15 @@ enum pd_key_id
#define PDPOD_WHEELLEFT BUTTON_UP
#define PDPOD_WHEELRIGHT BUTTON_DOWN
#define PDPOD_ACTION BUTTON_SELECT
#elif (CONFIG_KEYPAD == CTRU_PAD)
#define PDPOD_QUIT BUTTON_BACK
#define PDPOD_PLAY BUTTON_USER
#define PDPOD_PREVIOUS BUTTON_LEFT
#define PDPOD_NEXT BUTTON_RIGHT
#define PDPOD_MENU BUTTON_MENU
#define PDPOD_WHEELLEFT BUTTON_UP
#define PDPOD_WHEELRIGHT BUTTON_DOWN
#define PDPOD_ACTION BUTTON_SELECT
#else
#warning "No keys defined for this architecture!"
#endif

View file

@ -748,6 +748,23 @@ CONFIG_KEYPAD == MROBE500_PAD
#define LVL_UP_TEXT "R"
#define LVL_DOWN_TEXT "L"
#elif CONFIG_KEYPAD == CTRU_PAD
#define PEGBOX_SELECT BUTTON_SELECT
#define PEGBOX_QUIT BUTTON_BACK
#define PEGBOX_RESTART BUTTON_MENU
#define PEGBOX_LVL_UP BUTTON_USER
#define PEGBOX_LVL_DOWN BUTTON_POWER
#define PEGBOX_UP BUTTON_UP
#define PEGBOX_DOWN BUTTON_DOWN
#define PEGBOX_RIGHT BUTTON_RIGHT
#define PEGBOX_LEFT BUTTON_LEFT
#define QUIT_TEXT "B"
#define RESTART_TEXT "X"
#define LVL_UP_TEXT "Y"
#define LVL_DOWN_TEXT "Start"
#define SELECT_TEXT "A"
#else
#error "Unsupported keymap!"
#endif

View file

@ -25,6 +25,12 @@
PLUGIN_HEADER
#ifdef CTRU
/* dummy undefined symbols to build plugins for ctru */
void __aeabi_unwind_cpp_pr0(void) {}
struct _reent * _EXFUN(__getreent, (void)) {}
#endif
/*
* EXIT_MAGIC magic, because 0 cannot be used due to setjmp()
* must be > 0

View file

@ -15,6 +15,11 @@ ifneq ($(APP_TYPE),sdl-sim)
endif
endif
# Let's enable all plugins for ctru target
ifeq ($(APP_TYPE),ctru-app)
is_app_build =
endif
ifdef is_app_build
PLUGINS_SRC = $(call preprocess, $(APPSDIR)/plugins/SOURCES.app_build)
else

View file

@ -344,6 +344,14 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PONG_RIGHT_UP BUTTON_X
#define PONG_RIGHT_DOWN BUTTON_Y
#elif CONFIG_KEYPAD == CTRU_PAD
#define PONG_QUIT BUTTON_BACK
#define PONG_PAUSE BUTTON_SELECT
#define PONG_LEFT_UP BUTTON_UP
#define PONG_LEFT_DOWN BUTTON_DOWN
#define PONG_RIGHT_UP BUTTON_MENU
#define PONG_RIGHT_DOWN BUTTON_POWER
#else
#error No keymap defined!
#endif

View file

@ -382,6 +382,15 @@
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_A
#define REVERSI_BUTTON_MENU BUTTON_B
#elif CONFIG_KEYPAD == CTRU_PAD
#define REVERSI_BUTTON_QUIT BUTTON_BACK
#define REVERSI_BUTTON_UP BUTTON_UP
#define REVERSI_BUTTON_DOWN BUTTON_DOWN
#define REVERSI_BUTTON_LEFT BUTTON_LEFT
#define REVERSI_BUTTON_RIGHT BUTTON_RIGHT
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_SELECT
#define REVERSI_BUTTON_MENU BUTTON_MENU
#else
#error No keymap defined!
#endif

View file

@ -493,6 +493,18 @@
#define ROCKBLOX_DROP BUTTON_A
#define ROCKBLOX_RESTART BUTTON_B
#elif CONFIG_KEYPAD == CTRU_PAD
#define ROCKBLOX_OFF BUTTON_BACK
#define ROCKBLOX_ROTATE_CCW BUTTON_POWER
#define ROCKBLOX_ROTATE_CW BUTTON_MENU
#define ROCKBLOX_ROTATE BUTTON_UP
#define ROCKBLOX_DOWN BUTTON_DOWN
#define ROCKBLOX_LEFT BUTTON_LEFT
#define ROCKBLOX_RIGHT BUTTON_RIGHT
#define ROCKBLOX_DROP BUTTON_SELECT
#define ROCKBLOX_RESTART BUTTON_USER
#else
#error No keymap defined!
#endif

View file

@ -493,11 +493,23 @@ static void setoptions (void)
options.SELECT = BUTTON_FN;
options.MENU = BUTTON_X;
#elif CONFIG_KEYPAD == CTRU_PAD
options.UP = BUTTON_UP;
options.DOWN = BUTTON_DOWN;
options.LEFT = BUTTON_LEFT;
options.RIGHT = BUTTON_RIGHT;
options.A = BUTTON_SELECT;
options.B = BUTTON_BACK;
options.START = BUTTON_POWER;
options.SELECT = BUTTON_USER;
options.MENU = BUTTON_MENU;
#else
#error No Keymap Defined!
#endif
#ifdef HAVE_TOUCHSCREEN
#if defined(HAVE_TOUCHSCREEN) && (CONFIG_KEYPAD != CTRU_PAD)
options.UP = BUTTON_TOPMIDDLE;
options.DOWN = BUTTON_BOTTOMMIDDLE;
options.START = BUTTON_TOPRIGHT;

View file

@ -38,3 +38,9 @@ $(ROCKBOY_OBJDIR)/rockboy.ovl: $(ROCKBOY_OBJ) $(ROCKBOY_OUTLDS)
$(filter %.a, $+) \
-lgcc $(ROCKBOY_OVLFLAGS)
$(call PRINTS,LD $(@F))$(call objcopy,$(basename $@).elf,$@)
# special rule to build with devkitarm gcc
ifeq ($(APP_TYPE),ctru-app)
$(ROCKBOY_OBJDIR)/rockboy.rock: PLUGINFLAGS += -O3
endif

View file

@ -440,6 +440,17 @@
#define ROCKPAINT_LEFT BUTTON_LEFT
#define ROCKPAINT_RIGHT BUTTON_RIGHT
#elif CONFIG_KEYPAD == CTRU_PAD
#define ROCKPAINT_QUIT BUTTON_BACK
#define ROCKPAINT_DRAW BUTTON_SELECT
#define ROCKPAINT_MENU BUTTON_MENU
#define ROCKPAINT_TOOLBAR BUTTON_USER
#define ROCKPAINT_TOOLBAR2 ( BUTTON_USER | BUTTON_REPEAT )
#define ROCKPAINT_UP BUTTON_UP
#define ROCKPAINT_DOWN BUTTON_DOWN
#define ROCKPAINT_LEFT BUTTON_LEFT
#define ROCKPAINT_RIGHT BUTTON_RIGHT
#else
#error "Please define keys for this keypad"
#endif

View file

@ -378,6 +378,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define PUZZLE_SHUFFLE BUTTON_B
#define PUZZLE_PICTURE BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define PUZZLE_QUIT BUTTON_BACK
#define PUZZLE_LEFT BUTTON_LEFT
#define PUZZLE_RIGHT BUTTON_RIGHT
#define PUZZLE_UP BUTTON_UP
#define PUZZLE_DOWN BUTTON_DOWN
#define PUZZLE_SHUFFLE BUTTON_SELECT
#define PUZZLE_PICTURE BUTTON_MENU
#else
#error No keymap defined!
#endif

View file

@ -332,6 +332,14 @@ dir is the current direction of the snake - 0=up, 1=right, 2=down, 3=left;
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define SNAKE_QUIT BUTTON_BACK
#define SNAKE_LEFT BUTTON_LEFT
#define SNAKE_RIGHT BUTTON_RIGHT
#define SNAKE_UP BUTTON_UP
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_SELECT
#else
#error No keymap defined!
#endif

View file

@ -479,6 +479,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define SNAKE2_PLAYPAUSE BUTTON_A
#define SNAKE2_PLAYPAUSE_TEXT "A"
#elif CONFIG_KEYPAD == CTRU_PAD
#define SNAKE2_LEFT BUTTON_LEFT
#define SNAKE2_RIGHT BUTTON_RIGHT
#define SNAKE2_UP BUTTON_UP
#define SNAKE2_DOWN BUTTON_DOWN
#define SNAKE2_QUIT BUTTON_BACK
#define SNAKE2_PLAYPAUSE BUTTON_SELECT
#define SNAKE2_PLAYPAUSE_TEXT "A"
#else
#error No keymap defined!
#endif

View file

@ -728,6 +728,27 @@
#define BUTTON_SAVE BUTTON_A
#define BUTTON_SAVE_NAME "A"
#elif CONFIG_KEYPAD == CTRU_PAD
#define SOKOBAN_LEFT BUTTON_LEFT
#define SOKOBAN_RIGHT BUTTON_RIGHT
#define SOKOBAN_UP BUTTON_UP
#define SOKOBAN_DOWN BUTTON_DOWN
#define SOKOBAN_MENU BUTTON_MENU
#define SOKOBAN_UNDO BUTTON_BACK
#define SOKOBAN_REDO BUTTON_USER
//#define SOKOBAN_LEVEL_DOWN (BUTTON_POWER|BUTTON_REL)
//#define SOKOBAN_LEVEL_REPEAT (BUTTON_CENTER|BUTTON_REPEAT)
//#define SOKOBAN_LEVEL_UP (BUTTON_MENU|BUTTON_REPEAT)
#define SOKOBAN_PAUSE BUTTON_SELECT
#define BUTTON_SAVE BUTTON_SELECT
#define SOKOBAN_MENU_NAME "X [TOPLEFT]"
#define SOKOBAN_UNDO_NAME "B [BOTTOMRIGHT]"
#define SOKOBAN_REDO_NAME "Y [BOTTOMLEFT]"
#define SOKOBAN_PAUSE_NAME "A [CENTER]"
#define SOKOBAN_LEVEL_REPEAT_NAME "[TOPRIGHT]"
#define BUTTON_SAVE_NAME "A [CENTER]"
#else
#error No keymap defined!
#endif

View file

@ -761,6 +761,24 @@ CONFIG_KEYPAD == MROBE500_PAD
# define HK_CUR2STACK "B"
# define HK_REM2STACK "R"
#elif (CONFIG_KEYPAD == CTRU_PAD)
# define SOL_QUIT BUTTON_BACK
# define SOL_UP BUTTON_UP
# define SOL_DOWN BUTTON_DOWN
# define SOL_LEFT BUTTON_LEFT
# define SOL_RIGHT BUTTON_RIGHT
# define SOL_MOVE_PRE BUTTON_SELECT
# define SOL_MOVE (BUTTON_SELECT | BUTTON_REL)
# define SOL_DRAW BUTTON_MENU
# define SOL_REM2CUR (BUTTON_USER | BUTTON_REPEAT)
# define SOL_CUR2STACK (BUTTON_SELECT | BUTTON_REPEAT)
# define SOL_REM2STACK BUTTON_POWER
# define HK_MOVE "A"
# define HK_DRAW "X"
# define HK_REM2CUR "Long Y"
# define HK_CUR2STACK "Long A.."
# define HK_REM2STACK "Start"
#elif CONFIG_KEYPAD == MA_PAD
# define SOL_QUIT (BUTTON_LEFT|BUTTON_REPEAT)
# define SOL_UP BUTTON_UP

View file

@ -393,6 +393,15 @@
#define AST_RIGHT BUTTON_RIGHT
#define AST_FIRE BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define AST_PAUSE BUTTON_MENU
#define AST_QUIT BUTTON_BACK
#define AST_THRUST BUTTON_UP
#define AST_HYPERSPACE BUTTON_DOWN
#define AST_LEFT BUTTON_LEFT
#define AST_RIGHT BUTTON_RIGHT
#define AST_FIRE BUTTON_SELECT
#else
#error No keymap defined!
#endif

View file

@ -705,6 +705,23 @@
#define STAR_LEVEL_DOWN_NAME "L"
#define STAR_LEVEL_REPEAT_NAME "B"
#elif CONFIG_KEYPAD == CTRU_PAD
#define STAR_QUIT BUTTON_BACK
#define STAR_LEFT BUTTON_LEFT
#define STAR_RIGHT BUTTON_RIGHT
#define STAR_UP BUTTON_UP
#define STAR_DOWN BUTTON_DOWN
#define STAR_TOGGLE_CONTROL BUTTON_SELECT
#define STAR_LEVEL_UP BUTTON_MENU
#define STAR_LEVEL_DOWN BUTTON_POWER
#define STAR_LEVEL_REPEAT BUTTON_USER
#define STAR_TOGGLE_CONTROL_NAME "Select"
#define STAR_QUIT_NAME "B"
#define STAR_LEVEL_UP_NAME "X"
#define STAR_LEVEL_DOWN_NAME "Start"
#define STAR_LEVEL_REPEAT_NAME "Y"
#else
#error No keymap defined!
#endif

View file

@ -314,6 +314,14 @@
#define STOPWATCH_SCROLL_UP BUTTON_UP
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == CTRU_PAD
#define STOPWATCH_QUIT BUTTON_BACK
#define STOPWATCH_START_STOP BUTTON_SELECT
#define STOPWATCH_RESET_TIMER BUTTON_MENU
#define STOPWATCH_LAP_TIMER BUTTON_USER
#define STOPWATCH_SCROLL_UP BUTTON_UP
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
#else
#error No keymap defined!
#endif

View file

@ -483,6 +483,16 @@
#define SUDOKU_BUTTON_MENU BUTTON_B
#define SUDOKU_BUTTON_POSSIBLE BUTTON_X
#elif CONFIG_KEYPAD == CTRU_PAD
#define SUDOKU_BUTTON_QUIT BUTTON_BACK
#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_MENU BUTTON_MENU
#define SUDOKU_BUTTON_TOGGLE BUTTON_SELECT
#define SUDOKU_BUTTON_POSSIBLE BUTTON_USER
#else
#error No keymap defined!
#endif

View file

@ -599,6 +599,16 @@
#define TV_LINE_DOWN BUTTON_L
#define TV_BOOKMARK BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define TV_QUIT BUTTON_BACK
#define TV_SCROLL_UP BUTTON_UP
#define TV_SCROLL_DOWN BUTTON_DOWN
#define TV_SCREEN_LEFT BUTTON_LEFT
#define TV_SCREEN_RIGHT BUTTON_RIGHT
#define TV_MENU BUTTON_MENU
#define TV_AUTOSCROLL BUTTON_USER
#define TV_BOOKMARK BUTTON_SELECT
#else
#error No keymap defined!
#endif

View file

@ -479,6 +479,17 @@
#define LABEL_MENU "B"
#define LABEL_VOLUME "UP/DOWN"
#elif CONFIG_KEYPAD == CTRU_PAD
#define VUMETER_QUIT BUTTON_BACK
#define VUMETER_HELP BUTTON_USER
#define VUMETER_MENU BUTTON_MENU
#define VUMETER_UP BUTTON_UP
#define VUMETER_DOWN BUTTON_DOWN
#define LABEL_HELP "Y"
#define LABEL_QUIT "B"
#define LABEL_MENU "X"
#define LABEL_VOLUME "Up/Down"
#else
#error No keymap defined!
#endif

View file

@ -429,6 +429,16 @@ CONFIG_KEYPAD == MROBE500_PAD
#define BTN_QUIT BUTTON_START
#define BTN_STOPRESET BUTTON_B
#elif CONFIG_KEYPAD == CTRU_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_SELECT
#define BTN_QUIT BUTTON_BACK
#define BTN_STOPRESET BUTTON_MENU
#else
#error No keymap defined!
#endif

View file

@ -372,6 +372,15 @@ CONFIG_KEYPAD == MROBE500_PAD
#define DOWN BUTTON_DOWN
#define PAUSE BUTTON_A
#elif CONFIG_KEYPAD == CTRU_PAD
#define QUIT BUTTON_BACK
#define LEFT BUTTON_LEFT
#define RIGHT BUTTON_RIGHT
#define UP BUTTON_UP
#define DOWN BUTTON_DOWN
#define PAUSE BUTTON_SELECT
#else
#error "No keymap defined!"
#endif

View file

@ -309,6 +309,15 @@
#define ZX_SELECT BUTTON_A
#define ZX_MENU BUTTON_START
#elif CONFIG_KEYPAD == CTRU_PAD
#define ZX_UP BUTTON_UP
#define ZX_DOWN BUTTON_DOWN
#define ZX_LEFT BUTTON_LEFT
#define ZX_RIGHT BUTTON_RIGHT
#define ZX_SELECT BUTTON_SELECT
#define ZX_MENU BUTTON_MENU
#else
#error Keymap not defined!

View file

@ -300,6 +300,15 @@
#define KBD_UP BUTTON_UP
#define KBD_DOWN BUTTON_DOWN
#elif CONFIG_KEYPAD == CTRU_PAD
#define KBD_SELECT BUTTON_SELECT
#define KBD_ABORT BUTTON_BACK
#define KBD_LEFT BUTTON_LEFT
#define KBD_RIGHT BUTTON_RIGHT
#define KBD_UP BUTTON_UP
#define KBD_DOWN BUTTON_DOWN
#endif
#ifdef HAVE_TOUCHSCREEN

2
tools/configure vendored
View file

@ -4387,7 +4387,7 @@ fi
output="rockbox"
bootoutput="rockbox"
appextra="recorder:gui"
plugins="no"
plugins="yes"
t_cpu="hosted"
t_manufacturer="ctru"
t_model="app"