From 09a31fff91bfec552f59b1bfa97eaf462a9ae406 Mon Sep 17 00:00:00 2001 From: Mauricio Garrido Date: Tue, 30 Dec 2025 17:16:48 -0600 Subject: [PATCH] 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 --- apps/plugins/SUBDIRS | 2 +- apps/plugins/battery_bench.c | 6 +++++ apps/plugins/blackjack.c | 16 +++++++++++++ apps/plugins/brickmania.c | 8 +++++++ apps/plugins/calculator.c | 11 +++++++++ apps/plugins/calendar.c | 10 ++++++++ apps/plugins/chessbox/chessbox_pgn.h | 14 +++++++++++ apps/plugins/chessclock.c | 10 ++++++++ apps/plugins/chip8.c | 12 ++++++++++ apps/plugins/chopper.c | 6 +++++ apps/plugins/clix.c | 8 +++++++ apps/plugins/cube.c | 10 ++++++++ apps/plugins/doom/i_video.c | 11 +++++++++ apps/plugins/flipit.c | 12 ++++++++++ apps/plugins/fractals/fractal.h | 12 ++++++++++ apps/plugins/goban/goban.h | 10 ++++++++ apps/plugins/imageviewer/imageviewer_button.h | 12 ++++++++++ apps/plugins/invadrox.c | 7 ++++++ apps/plugins/jewels.c | 10 ++++++++ apps/plugins/lib/keymaps.h | 24 +++++++++++++++---- apps/plugins/lib/pluginlib_actions.c | 15 ++++++++++++ apps/plugins/midi/midiplay.c | 8 +++++++ apps/plugins/mikmod/mikmod.c | 2 +- apps/plugins/minesweeper.c | 10 ++++++++ apps/plugins/mp3_encoder.c | 6 +++++ apps/plugins/mpegplayer/mpeg_settings.c | 8 +++++++ apps/plugins/mpegplayer/mpegplayer.c | 9 +++++++ apps/plugins/oscilloscope.c | 11 +++++++++ apps/plugins/pacbox/pacbox.h | 11 +++++++++ apps/plugins/pdbox/pdbox.h | 9 +++++++ apps/plugins/pegbox.c | 17 +++++++++++++ apps/plugins/plugin_crt0.c | 6 +++++ apps/plugins/plugins.make | 5 ++++ apps/plugins/pong.c | 8 +++++++ apps/plugins/reversi/reversi-gui.h | 9 +++++++ apps/plugins/rockblox.c | 12 ++++++++++ apps/plugins/rockboy/rockboy.c | 14 ++++++++++- apps/plugins/rockboy/rockboy.make | 6 +++++ apps/plugins/rockpaint.c | 11 +++++++++ apps/plugins/sliding_puzzle.c | 9 +++++++ apps/plugins/snake.c | 8 +++++++ apps/plugins/snake2.c | 9 +++++++ apps/plugins/sokoban.c | 21 ++++++++++++++++ apps/plugins/solitaire.c | 18 ++++++++++++++ apps/plugins/spacerocks.c | 9 +++++++ apps/plugins/star.c | 17 +++++++++++++ apps/plugins/stopwatch.c | 8 +++++++ apps/plugins/sudoku/sudoku.h | 10 ++++++++ apps/plugins/text_viewer/tv_button.h | 10 ++++++++ apps/plugins/vu_meter.c | 11 +++++++++ apps/plugins/wormlet.c | 10 ++++++++ apps/plugins/xobox.c | 9 +++++++ apps/plugins/zxbox/keymaps.h | 9 +++++++ apps/plugins/zxbox/zxbox_keyb.c | 9 +++++++ tools/configure | 2 +- 55 files changed, 549 insertions(+), 8 deletions(-) diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS index b48cad5a26..215313dd74 100644 --- a/apps/plugins/SUBDIRS +++ b/apps/plugins/SUBDIRS @@ -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 diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c index 80b7f11ed3..cc242c169f 100644 --- a/apps/plugins/battery_bench.c +++ b/apps/plugins/battery_bench.c @@ -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 diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c index c7e877d3a3..b39aa4b2f4 100644 --- a/apps/plugins/blackjack.c +++ b/apps/plugins/blackjack.c @@ -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 diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c index df23bbb21d..121a96cdda 100644 --- a/apps/plugins/brickmania.c +++ b/apps/plugins/brickmania.c @@ -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 diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c index 56cd017b34..f4790a00cd 100644 --- a/apps/plugins/calculator.c +++ b/apps/plugins/calculator.c @@ -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 diff --git a/apps/plugins/calendar.c b/apps/plugins/calendar.c index 04f313ddf3..deb23f05e7 100644 --- a/apps/plugins/calendar.c +++ b/apps/plugins/calendar.c @@ -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 diff --git a/apps/plugins/chessbox/chessbox_pgn.h b/apps/plugins/chessbox/chessbox_pgn.h index d206a12f0f..342f2f2cce 100644 --- a/apps/plugins/chessbox/chessbox_pgn.h +++ b/apps/plugins/chessbox/chessbox_pgn.h @@ -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 diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c index 2c0832db1e..7b01ece12f 100644 --- a/apps/plugins/chessclock.c +++ b/apps/plugins/chessclock.c @@ -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 diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c index a484f6d615..acb23b38c3 100644 --- a/apps/plugins/chip8.c +++ b/apps/plugins/chip8.c @@ -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 */ diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c index b2a88fb217..864d087076 100644 --- a/apps/plugins/chopper.c +++ b/apps/plugins/chopper.c @@ -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 diff --git a/apps/plugins/clix.c b/apps/plugins/clix.c index d30bc4e04d..321e7129bd 100644 --- a/apps/plugins/clix.c +++ b/apps/plugins/clix.c @@ -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 diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c index 8ce4766793..929630a09f 100644 --- a/apps/plugins/cube.c +++ b/apps/plugins/cube.c @@ -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 diff --git a/apps/plugins/doom/i_video.c b/apps/plugins/doom/i_video.c index e1b090e792..31a646f988 100644 --- a/apps/plugins/doom/i_video.c +++ b/apps/plugins/doom/i_video.c @@ -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 diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c index 2b1dea0e46..79518bfa80 100644 --- a/apps/plugins/flipit.c +++ b/apps/plugins/flipit.c @@ -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 diff --git a/apps/plugins/fractals/fractal.h b/apps/plugins/fractals/fractal.h index 50ec795d6a..f3da8bc781 100644 --- a/apps/plugins/fractals/fractal.h +++ b/apps/plugins/fractals/fractal.h @@ -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 diff --git a/apps/plugins/goban/goban.h b/apps/plugins/goban/goban.h index d084a598f6..83c8a81221 100644 --- a/apps/plugins/goban/goban.h +++ b/apps/plugins/goban/goban.h @@ -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 diff --git a/apps/plugins/imageviewer/imageviewer_button.h b/apps/plugins/imageviewer/imageviewer_button.h index a99d976397..aea8904280 100644 --- a/apps/plugins/imageviewer/imageviewer_button.h +++ b/apps/plugins/imageviewer/imageviewer_button.h @@ -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 diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c index 601c6acfaa..0a4eae97f3 100644 --- a/apps/plugins/invadrox.c +++ b/apps/plugins/invadrox.c @@ -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 diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c index 8a0deb7bf4..e9c137b12f 100644 --- a/apps/plugins/jewels.c +++ b/apps/plugins/jewels.c @@ -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 diff --git a/apps/plugins/lib/keymaps.h b/apps/plugins/lib/keymaps.h index 94e5afb090..a8521af23e 100644 --- a/apps/plugins/lib/keymaps.h +++ b/apps/plugins/lib/keymaps.h @@ -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) diff --git a/apps/plugins/lib/pluginlib_actions.c b/apps/plugins/lib/pluginlib_actions.c index 5999578d96..4b759b2437 100644 --- a/apps/plugins/lib/pluginlib_actions.c +++ b/apps/plugins/lib/pluginlib_actions.c @@ -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 diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c index 01e0e063a6..f3e74d4ec0 100644 --- a/apps/plugins/midi/midiplay.c +++ b/apps/plugins/midi/midiplay.c @@ -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 diff --git a/apps/plugins/mikmod/mikmod.c b/apps/plugins/mikmod/mikmod.c index 3ab40f570c..fc12e38c29 100644 --- a/apps/plugins/mikmod/mikmod.c +++ b/apps/plugins/mikmod/mikmod.c @@ -6,7 +6,7 @@ #undef SYNC -#ifdef SIMULATOR +#if defined(SIMULATOR) || defined(CTRU) #define SYNC #else #define USETHREADS diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c index 3616b22b5b..bda2093b2a 100644 --- a/apps/plugins/minesweeper.c +++ b/apps/plugins/minesweeper.c @@ -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 diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c index ca398ef99d..89851de875 100644 --- a/apps/plugins/mp3_encoder.c +++ b/apps/plugins/mp3_encoder.c @@ -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 diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c index e7562ca7d7..8c4b6d4ee3 100644 --- a/apps/plugins/mpegplayer/mpeg_settings.c +++ b/apps/plugins/mpegplayer/mpeg_settings.c @@ -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 diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c index 3b816829a5..923dff0b40 100644 --- a/apps/plugins/mpegplayer/mpegplayer.c +++ b/apps/plugins/mpegplayer/mpegplayer.c @@ -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 diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c index ae6bcc1aa3..9943b78aba 100644 --- a/apps/plugins/oscilloscope.c +++ b/apps/plugins/oscilloscope.c @@ -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 diff --git a/apps/plugins/pacbox/pacbox.h b/apps/plugins/pacbox/pacbox.h index 79d191a32b..1102a01ab1 100644 --- a/apps/plugins/pacbox/pacbox.h +++ b/apps/plugins/pacbox/pacbox.h @@ -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! diff --git a/apps/plugins/pdbox/pdbox.h b/apps/plugins/pdbox/pdbox.h index 56abe7db7e..8dcb152479 100644 --- a/apps/plugins/pdbox/pdbox.h +++ b/apps/plugins/pdbox/pdbox.h @@ -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 diff --git a/apps/plugins/pegbox.c b/apps/plugins/pegbox.c index c4f2bfd9a0..8547df603b 100644 --- a/apps/plugins/pegbox.c +++ b/apps/plugins/pegbox.c @@ -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 diff --git a/apps/plugins/plugin_crt0.c b/apps/plugins/plugin_crt0.c index ee996aab5e..934f4e9338 100644 --- a/apps/plugins/plugin_crt0.c +++ b/apps/plugins/plugin_crt0.c @@ -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 diff --git a/apps/plugins/plugins.make b/apps/plugins/plugins.make index 88e2165c9a..2babb329a5 100644 --- a/apps/plugins/plugins.make +++ b/apps/plugins/plugins.make @@ -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 diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c index 03e50cd8c9..8f409712b6 100644 --- a/apps/plugins/pong.c +++ b/apps/plugins/pong.c @@ -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 diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h index 2f108e633a..8bf5475164 100644 --- a/apps/plugins/reversi/reversi-gui.h +++ b/apps/plugins/reversi/reversi-gui.h @@ -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 diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c index 9d18be0a6d..d2887af78f 100644 --- a/apps/plugins/rockblox.c +++ b/apps/plugins/rockblox.c @@ -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 diff --git a/apps/plugins/rockboy/rockboy.c b/apps/plugins/rockboy/rockboy.c index 41c7998841..7cca8d9130 100644 --- a/apps/plugins/rockboy/rockboy.c +++ b/apps/plugins/rockboy/rockboy.c @@ -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; diff --git a/apps/plugins/rockboy/rockboy.make b/apps/plugins/rockboy/rockboy.make index 625c40eca8..8be44ef9c5 100644 --- a/apps/plugins/rockboy/rockboy.make +++ b/apps/plugins/rockboy/rockboy.make @@ -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 + diff --git a/apps/plugins/rockpaint.c b/apps/plugins/rockpaint.c index cd8cbd3c23..c821cd234d 100644 --- a/apps/plugins/rockpaint.c +++ b/apps/plugins/rockpaint.c @@ -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 diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c index 4b3ef6aa20..273a178c2d 100644 --- a/apps/plugins/sliding_puzzle.c +++ b/apps/plugins/sliding_puzzle.c @@ -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 diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c index e1d4ebad6b..23842e443c 100644 --- a/apps/plugins/snake.c +++ b/apps/plugins/snake.c @@ -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 diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c index 7e899525b0..864cda688a 100644 --- a/apps/plugins/snake2.c +++ b/apps/plugins/snake2.c @@ -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 diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c index 75af9aac90..1d61ba1749 100644 --- a/apps/plugins/sokoban.c +++ b/apps/plugins/sokoban.c @@ -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 diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c index 5feaa4255a..07cebef043 100644 --- a/apps/plugins/solitaire.c +++ b/apps/plugins/solitaire.c @@ -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 diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c index a01f608ac4..f543065f27 100644 --- a/apps/plugins/spacerocks.c +++ b/apps/plugins/spacerocks.c @@ -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 diff --git a/apps/plugins/star.c b/apps/plugins/star.c index 0d355bbeb4..5a7cff70ef 100644 --- a/apps/plugins/star.c +++ b/apps/plugins/star.c @@ -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 diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c index 26d4aeb6ea..7a9737815f 100644 --- a/apps/plugins/stopwatch.c +++ b/apps/plugins/stopwatch.c @@ -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 diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h index 75eab99273..2ed792872a 100644 --- a/apps/plugins/sudoku/sudoku.h +++ b/apps/plugins/sudoku/sudoku.h @@ -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 diff --git a/apps/plugins/text_viewer/tv_button.h b/apps/plugins/text_viewer/tv_button.h index 1d7cb7655e..10a2b3ee3e 100644 --- a/apps/plugins/text_viewer/tv_button.h +++ b/apps/plugins/text_viewer/tv_button.h @@ -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 diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c index 27caba2839..f52ac140fe 100644 --- a/apps/plugins/vu_meter.c +++ b/apps/plugins/vu_meter.c @@ -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 diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c index f8c8d904ed..5002ca8790 100644 --- a/apps/plugins/wormlet.c +++ b/apps/plugins/wormlet.c @@ -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 diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c index 2cf6912de7..b8b883709f 100644 --- a/apps/plugins/xobox.c +++ b/apps/plugins/xobox.c @@ -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 diff --git a/apps/plugins/zxbox/keymaps.h b/apps/plugins/zxbox/keymaps.h index e3f712da60..94472d4e15 100644 --- a/apps/plugins/zxbox/keymaps.h +++ b/apps/plugins/zxbox/keymaps.h @@ -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! diff --git a/apps/plugins/zxbox/zxbox_keyb.c b/apps/plugins/zxbox/zxbox_keyb.c index 56e0025c60..2eb7feaa06 100644 --- a/apps/plugins/zxbox/zxbox_keyb.c +++ b/apps/plugins/zxbox/zxbox_keyb.c @@ -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 diff --git a/tools/configure b/tools/configure index 38ce6a38f2..0ebe174fa8 100755 --- a/tools/configure +++ b/tools/configure @@ -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"