summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Kukla <roolku@rockbox.org>2008-03-01 22:55:09 +0000
committerRobert Kukla <roolku@rockbox.org>2008-03-01 22:55:09 +0000
commitd6c8b57b507658ef2e45f73d1f00e9ea88ac8d34 (patch)
tree2c3e35f7d1f705c08d963a21ede3b42f1bee5019
parent9876d91e351f457bac7f5ea3459dc12ef021078a (diff)
downloadrockbox-d6c8b57b507658ef2e45f73d1f00e9ea88ac8d34.tar.gz
rockbox-d6c8b57b507658ef2e45f73d1f00e9ea88ac8d34.tar.bz2
rockbox-d6c8b57b507658ef2e45f73d1f00e9ea88ac8d34.zip
M:Robe 100: add button definition/bitmaps to plugins and enable compilation
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16469 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/SOURCES10
-rw-r--r--apps/plugins/SUBDIRS2
-rw-r--r--apps/plugins/battery_bench.c9
-rw-r--r--apps/plugins/bitmaps/mono/SOURCES2
-rw-r--r--apps/plugins/bitmaps/mono/rockblox_background.160x128x1.bmpbin0 -> 2622 bytes
-rw-r--r--apps/plugins/bitmaps/native/SOURCES4
-rw-r--r--apps/plugins/bitmaps/native/sudoku_inverse.160x128x1.bmpbin0 -> 542 bytes
-rw-r--r--apps/plugins/bitmaps/native/sudoku_normal.160x128x1.bmpbin0 -> 542 bytes
-rw-r--r--apps/plugins/bitmaps/native/sudoku_start.160x128x1.bmpbin0 -> 542 bytes
-rw-r--r--apps/plugins/blackjack.c18
-rw-r--r--apps/plugins/bounce.c9
-rw-r--r--apps/plugins/brickmania.c13
-rw-r--r--apps/plugins/calculator.c12
-rw-r--r--apps/plugins/chessbox/chessbox.c17
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.c17
-rw-r--r--apps/plugins/chessclock.c12
-rw-r--r--apps/plugins/chip8.c13
-rw-r--r--apps/plugins/chopper.c7
-rw-r--r--apps/plugins/cube.c14
-rw-r--r--apps/plugins/dict.c2
-rw-r--r--apps/plugins/disktidy.c5
-rw-r--r--apps/plugins/fireworks.c3
-rw-r--r--apps/plugins/flipit.c12
-rw-r--r--apps/plugins/invadrox.c2
-rw-r--r--apps/plugins/jewels.c13
-rw-r--r--apps/plugins/jpeg.c13
-rw-r--r--apps/plugins/logo.c7
-rw-r--r--apps/plugins/mandelbrot.c16
-rw-r--r--apps/plugins/mazezam.c14
-rw-r--r--apps/plugins/midi/midiplay.c11
-rw-r--r--apps/plugins/minesweeper.c10
-rw-r--r--apps/plugins/mosaique.c7
-rw-r--r--apps/plugins/mp3_encoder.c7
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c12
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c11
-rw-r--r--apps/plugins/oscilloscope.c12
-rw-r--r--apps/plugins/plasma.c4
-rw-r--r--apps/plugins/pong.c10
-rw-r--r--apps/plugins/reversi/reversi-gui.h11
-rw-r--r--apps/plugins/rockblox.c14
-rw-r--r--apps/plugins/sliding_puzzle.c9
-rw-r--r--apps/plugins/snake.c8
-rw-r--r--apps/plugins/snake2.c14
-rw-r--r--apps/plugins/snow.c2
-rw-r--r--apps/plugins/sokoban.c15
-rw-r--r--apps/plugins/solitaire.c20
-rw-r--r--apps/plugins/spacerocks.c15
-rw-r--r--apps/plugins/star.c13
-rw-r--r--apps/plugins/starfield.c7
-rw-r--r--apps/plugins/stats.c6
-rw-r--r--apps/plugins/stopwatch.c9
-rw-r--r--apps/plugins/sudoku/sudoku.h12
-rw-r--r--apps/plugins/viewer.c11
-rw-r--r--apps/plugins/vu_meter.c11
-rw-r--r--apps/plugins/wormlet.c15
-rw-r--r--apps/plugins/xobox.c11
56 files changed, 507 insertions, 26 deletions
diff --git a/apps/plugins/SOURCES b/apps/plugins/SOURCES
index 8ad7c3f605..b6eac56dfb 100644
--- a/apps/plugins/SOURCES
+++ b/apps/plugins/SOURCES
@@ -1,4 +1,4 @@
-#if !defined(OLYMPUS_MROBE_100) && !defined(COWON_D2)
+#if !defined(COWON_D2)
/* plugins common to all models */
battery_bench.c
@@ -63,7 +63,7 @@ blackjack.c
bounce.c
bubbles.c
-#if (LCD_WIDTH >= 160)
+#if (LCD_DEPTH > 1)
invadrox.c
#endif
@@ -148,9 +148,9 @@ iriver_flash.c
#endif
#endif /* iFP7xx */
-#if (LCD_WIDTH > 138)
-/* Built for bitmap targets except H10 5/6gb, Archoses, iPod mini and ifp */
+#if (LCD_WIDTH > 138) && (LCD_DEPTH > 1)
+/* Built for bitmap targets except H10 5/6gb, Archoses, iPod mini, mrobe100 and ifp*/
superdom.c
#endif
#endif /* m:robe 500 */
-#endif /* m:robe 100 */
+#endif /* COWON_D2 */
diff --git a/apps/plugins/SUBDIRS b/apps/plugins/SUBDIRS
index d664c12c96..4f9731f0ba 100644
--- a/apps/plugins/SUBDIRS
+++ b/apps/plugins/SUBDIRS
@@ -1,4 +1,4 @@
-#if !defined(IRIVER_IFP7XX_SERIES) && !defined(OLYMPUS_MROBE_100) && !defined(COWON_D2) && !defined(GIGABEAT_S)
+#if !defined(IRIVER_IFP7XX_SERIES) && !defined(COWON_D2) && !defined(GIGABEAT_S)
/* For all targets */
shortcuts
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 9135208984..658dfca0ec 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -128,6 +128,15 @@ PLUGIN_HEADER
#define BATTERY_ON_TXT "PLAY - start"
#define BATTERY_OFF_TXT "POWER - quit"
+#elif CONFIG_KEYPAD == MROBE100_PAD
+
+#define BATTERY_ON BUTTON_SELECT
+#define BATTERY_OFF BUTTON_POWER
+#define BATTERY_ON_TXT "SELECT - start"
+#define BATTERY_OFF_TXT "POWER - quit"
+
+#else
+#error No keymap defined!
#endif
diff --git a/apps/plugins/bitmaps/mono/SOURCES b/apps/plugins/bitmaps/mono/SOURCES
index 6c9dfcf03d..a7ce0b51f3 100644
--- a/apps/plugins/bitmaps/mono/SOURCES
+++ b/apps/plugins/bitmaps/mono/SOURCES
@@ -25,6 +25,8 @@ bubbles_bubble.320x240x1.bmp
rockblox_background.112x64x1.bmp
#elif (LCD_WIDTH == 128) && (LCD_HEIGHT == 64)
rockblox_background.128x64x1.bmp
+#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128)
+rockblox_background.160x128x1.bmp
#endif
/* Flip it */
diff --git a/apps/plugins/bitmaps/mono/rockblox_background.160x128x1.bmp b/apps/plugins/bitmaps/mono/rockblox_background.160x128x1.bmp
new file mode 100644
index 0000000000..77d606ae21
--- /dev/null
+++ b/apps/plugins/bitmaps/mono/rockblox_background.160x128x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/SOURCES b/apps/plugins/bitmaps/native/SOURCES
index 2f6c7d344f..316a3fdded 100644
--- a/apps/plugins/bitmaps/native/SOURCES
+++ b/apps/plugins/bitmaps/native/SOURCES
@@ -485,6 +485,10 @@ sudoku_inverse.160x128x16.bmp
sudoku_start.160x128x2.bmp
sudoku_normal.160x128x2.bmp
sudoku_inverse.160x128x2.bmp
+#elif (LCD_WIDTH == 160) && (LCD_HEIGHT == 128) && (LCD_DEPTH == 1)
+sudoku_start.160x128x1.bmp
+sudoku_normal.160x128x1.bmp
+sudoku_inverse.160x128x1.bmp
#elif (LCD_WIDTH == 220) && (LCD_HEIGHT == 176) && (LCD_DEPTH == 16)
sudoku_start.220x176x16.bmp
sudoku_normal.220x176x16.bmp
diff --git a/apps/plugins/bitmaps/native/sudoku_inverse.160x128x1.bmp b/apps/plugins/bitmaps/native/sudoku_inverse.160x128x1.bmp
new file mode 100644
index 0000000000..394530f7b4
--- /dev/null
+++ b/apps/plugins/bitmaps/native/sudoku_inverse.160x128x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/sudoku_normal.160x128x1.bmp b/apps/plugins/bitmaps/native/sudoku_normal.160x128x1.bmp
new file mode 100644
index 0000000000..7f718f3286
--- /dev/null
+++ b/apps/plugins/bitmaps/native/sudoku_normal.160x128x1.bmp
Binary files differ
diff --git a/apps/plugins/bitmaps/native/sudoku_start.160x128x1.bmp b/apps/plugins/bitmaps/native/sudoku_start.160x128x1.bmp
new file mode 100644
index 0000000000..5344e8cc04
--- /dev/null
+++ b/apps/plugins/bitmaps/native/sudoku_start.160x128x1.bmp
Binary files differ
diff --git a/apps/plugins/blackjack.c b/apps/plugins/blackjack.c
index 896a3ab8ad..b4f0da4b96 100644
--- a/apps/plugins/blackjack.c
+++ b/apps/plugins/blackjack.c
@@ -218,8 +218,24 @@ PLUGIN_HEADER
#define BJACK_RIGHT BUTTON_RIGHT
#define BJACK_LEFT BUTTON_LEFT
+#elif CONFIG_KEYPAD == MROBE100_PAD
+
+#define BJACK_START BUTTON_SELECT
+#define BJACK_QUIT BUTTON_POWER
+#define BJACK_MAX BUTTON_MENU
+#define BJACK_MIN BUTTON_DISPLAY
+#define BJACK_HIT BUTTON_MENU
+#define BJACK_STAY BUTTON_DISPLAY
+#define BJACK_DOUBLEDOWN BUTTON_SELECT
+#define BJACK_SCORES BUTTON_RIGHT
+#define BJACK_RESUME BUTTON_PLAY
+#define BJACK_UP BUTTON_UP
+#define BJACK_DOWN BUTTON_DOWN
+#define BJACK_RIGHT BUTTON_RIGHT
+#define BJACK_LEFT BUTTON_LEFT
+
#else
- #error BLACKJACK: Unsupported keypad
+#error No keymap defined!
#endif
#ifdef HAVE_LCD_COLOR
diff --git a/apps/plugins/bounce.c b/apps/plugins/bounce.c
index db9e7a49a5..f83d99306a 100644
--- a/apps/plugins/bounce.c
+++ b/apps/plugins/bounce.c
@@ -99,6 +99,15 @@ PLUGIN_HEADER
#define BOUNCE_DOWN BUTTON_DOWN
#define BOUNCE_QUIT BUTTON_BACK
#define BOUNCE_MODE BUTTON_MENU
+
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define BOUNCE_UP BUTTON_UP
+#define BOUNCE_DOWN BUTTON_DOWN
+#define BOUNCE_QUIT BUTTON_POWER
+#define BOUNCE_MODE BUTTON_DISPLAY
+
+#else
+#error No keymap defined!
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/brickmania.c b/apps/plugins/brickmania.c
index 5cefe1bc6d..b37dd97800 100644
--- a/apps/plugins/brickmania.c
+++ b/apps/plugins/brickmania.c
@@ -144,8 +144,17 @@ PLUGIN_HEADER
#define UP BUTTON_UP
#define DOWN BUTTON_DOWN
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+
+#define QUIT BUTTON_POWER
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define SELECT BUTTON_SELECT
+#define UP BUTTON_UP
+#define DOWN BUTTON_DOWN
+
#else
-#error Unsupported keypad
+#error No keymap defined!
#endif
#ifndef SCROLL_FWD /* targets without scroll wheel*/
@@ -836,7 +845,7 @@ int game_menu(int when)
int button,cur=0;
char str[10];
rb->lcd_clear_display();
-#if (LCD_WIDTH != 112) && (LCD_HEIGHT != 64)
+#if LCD_DEPTH > 1 /* currently no background bmp for mono screens */
rb->lcd_bitmap(brickmania_menu_bg, 0, 0, MENU_BGWIDTH, MENU_BGHEIGHT);
#endif
while (true) {
diff --git a/apps/plugins/calculator.c b/apps/plugins/calculator.c
index b16094203c..1819e983f7 100644
--- a/apps/plugins/calculator.c
+++ b/apps/plugins/calculator.c
@@ -206,6 +206,18 @@ PLUGIN_HEADER
#define CALCULATOR_CALC BUTTON_SELECT
#define CALCULATOR_CLEAR BUTTON_PLAY
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+
+#define CALCULATOR_UP BUTTON_UP
+#define CALCULATOR_DOWN BUTTON_DOWN
+#define CALCULATOR_QUIT BUTTON_POWER
+#define CALCULATOR_INPUT_CALC_PRE BUTTON_MENU
+#define CALCULATOR_INPUT (BUTTON_MENU | BUTTON_REL)
+#define CALCULATOR_CALC BUTTON_SELECT
+#define CALCULATOR_CLEAR BUTTON_DISPLAY
+
+#else
+#error No keymap defined!
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/chessbox/chessbox.c b/apps/plugins/chessbox/chessbox.c
index f38f761109..47c46bf3c9 100644
--- a/apps/plugins/chessbox/chessbox.c
+++ b/apps/plugins/chessbox/chessbox.c
@@ -226,8 +226,23 @@ PLUGIN_HEADER
#define CB_SCROLL_LEFT (BUTTON_RC_REW|BUTTON_REPEAT)
#define CB_SCROLL_RIGHT (BUTTON_RC_FF|BUTTON_REPEAT)
+#elif (CONFIG_KEYPAD == MROBE100_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_POWER
+#define CB_LEVEL BUTTON_MENU
+#define CB_MENU BUTTON_DISPLAY
+
+#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 CHESSBOX: Unsupported keypad
+#error No keymap defined!
#endif
/* Tile size defined by the assigned bitmap */
diff --git a/apps/plugins/chessbox/chessbox_pgn.c b/apps/plugins/chessbox/chessbox_pgn.c
index 14d93b059f..7ad43ad4b1 100644
--- a/apps/plugins/chessbox/chessbox_pgn.c
+++ b/apps/plugins/chessbox/chessbox_pgn.c
@@ -214,8 +214,23 @@
#define CB_SCROLL_LEFT (BUTTON_RC_REW|BUTTON_REPEAT)
#define CB_SCROLL_RIGHT (BUTTON_RC_FF|BUTTON_REPEAT)
+#elif (CONFIG_KEYPAD == MROBE100_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_POWER
+#define CB_LEVEL BUTTON_MENU
+#define CB_MENU BUTTON_DISPLAY
+
+#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 CHESSBOX: Unsupported keypad
+#error No keymap defined!
#endif
#define PGN_FILE PLUGIN_GAMES_DIR "/chessbox.pgn"
diff --git a/apps/plugins/chessclock.c b/apps/plugins/chessclock.c
index 3b8917496b..6523021b6d 100644
--- a/apps/plugins/chessclock.c
+++ b/apps/plugins/chessclock.c
@@ -160,6 +160,18 @@ PLUGIN_HEADER
#define CHC_SETTINGS_OK BUTTON_SELECT
#define CHC_SETTINGS_CANCEL BUTTON_BACK
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define CHC_QUIT BUTTON_POWER
+#define CHC_STARTSTOP BUTTON_SELECT
+#define CHC_RESET BUTTON_DISPLAY
+#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_POWER
+
+#else
+#error No keymap defined!
#endif
diff --git a/apps/plugins/chip8.c b/apps/plugins/chip8.c
index 752aa7b4c8..ab685e5288 100644
--- a/apps/plugins/chip8.c
+++ b/apps/plugins/chip8.c
@@ -1056,6 +1056,19 @@ STATIC void chip8 (void)
#define CHIP8_KEY8 BUTTON_DOWN
#define CHIP8_KEY9 BUTTON_PLAY
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define CHIP8_OFF BUTTON_POWER
+#define CHIP8_KEY1 BUTTON_MENU
+#define CHIP8_KEY2 BUTTON_UP
+#define CHIP8_KEY3 BUTTON_PLAY
+#define CHIP8_KEY4 BUTTON_LEFT
+#define CHIP8_KEY5 BUTTON_SELECT
+#define CHIP8_KEY6 BUTTON_RIGHT
+#define CHIP8_KEY7 BUTTON_DISPLAY
+#define CHIP8_KEY8 BUTTON_DOWN
+
+#else
+#error No keymap defined!
#endif
static byte chip8_virtual_keys[16];
diff --git a/apps/plugins/chopper.c b/apps/plugins/chopper.c
index d9e02142b0..92b01cd859 100644
--- a/apps/plugins/chopper.c
+++ b/apps/plugins/chopper.c
@@ -92,8 +92,13 @@ Still To do:
#define ACTION2 BUTTON_MENU
#define ACTIONTEXT "SELECT"
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define QUIT BUTTON_POWER
+#define ACTION BUTTON_SELECT
+#define ACTIONTEXT "SELECT"
+
#else
-#error Unsupported keypad
+#error No keymap defined!
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/cube.c b/apps/plugins/cube.c
index 164c139110..966111001a 100644
--- a/apps/plugins/cube.c
+++ b/apps/plugins/cube.c
@@ -217,6 +217,20 @@ PLUGIN_HEADER
#define CUBE_PAUSE (BUTTON_PLAY | BUTTON_REL)
#define CUBE_HIGHSPEED (BUTTON_NEXT | BUTTON_REL)
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define CUBE_QUIT BUTTON_POWER
+#define CUBE_X_INC BUTTON_LEFT
+#define CUBE_X_DEC BUTTON_RIGHT
+#define CUBE_Y_INC BUTTON_UP
+#define CUBE_Y_DEC BUTTON_DOWN
+#define CUBE_Z_INC (BUTTON_DISPLAY | BUTTON_UP)
+#define CUBE_Z_DEC (BUTTON_DISPLAY | BUTTON_DOWN)
+#define CUBE_MODE BUTTON_MENU
+#define CUBE_PAUSE BUTTON_PLAY
+#define CUBE_HIGHSPEED BUTTON_SELECT
+
+#else
+#error No keymap defined!
#endif
#ifdef HAVE_LCD_BITMAP
diff --git a/apps/plugins/dict.c b/apps/plugins/dict.c
index 73037e7527..e354097a2a 100644
--- a/apps/plugins/dict.c
+++ b/apps/plugins/dict.c
@@ -121,6 +121,8 @@ long reverse (long N) {
#define LP_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == MROBE500_PAD
#define LP_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define LP_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
#define LP_QUIT BUTTON_BACK
#else
diff --git a/apps/plugins/disktidy.c b/apps/plugins/disktidy.c
index e682f33b84..be3407e13e 100644
--- a/apps/plugins/disktidy.c
+++ b/apps/plugins/disktidy.c
@@ -76,8 +76,11 @@ enum tidy_system
#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
#define TIDY_STOP BUTTON_BACK
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define TIDY_STOP BUTTON_POWER
+
#else
- #error DISKTIDY: Unsupported keypad
+#error No keymap defined!
#endif
diff --git a/apps/plugins/fireworks.c b/apps/plugins/fireworks.c
index 50be236f14..e0d491aaf3 100644
--- a/apps/plugins/fireworks.c
+++ b/apps/plugins/fireworks.c
@@ -55,7 +55,8 @@ static struct plugin_api* rb;
#define BTN_MENU BUTTON_MODE
#define BTN_FIRE BUTTON_SELECT
#elif (CONFIG_KEYPAD == GIGABEAT_PAD) || \
-(CONFIG_KEYPAD == GIGABEAT_S_PAD)
+(CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
+(CONFIG_KEYPAD == MROBE100_PAD)
#define BTN_MENU BUTTON_MENU
#define BTN_FIRE BUTTON_SELECT
#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
diff --git a/apps/plugins/flipit.c b/apps/plugins/flipit.c
index 382e6619c3..4292ef8e4f 100644
--- a/apps/plugins/flipit.c
+++ b/apps/plugins/flipit.c
@@ -139,6 +139,18 @@ PLUGIN_HEADER
#define FLIPIT_STEP_BY_STEP BUTTON_VOL_DOWN
#define FLIPIT_TOGGLE BUTTON_SELECT
+#elif CONFIG_KEYPAD == MROBE100_PAD
+
+#define FLIPIT_UP BUTTON_UP
+#define FLIPIT_DOWN BUTTON_DOWN
+#define FLIPIT_QUIT BUTTON_POWER
+#define FLIPIT_SHUFFLE BUTTON_MENU
+#define FLIPIT_SOLVE BUTTON_PLAY
+#define FLIPIT_STEP_BY_STEP BUTTON_DISPLAY
+#define FLIPIT_TOGGLE BUTTON_SELECT
+
+#else
+#error No keymap defined!
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/invadrox.c b/apps/plugins/invadrox.c
index 2fab94a04c..8f5c0bf5a3 100644
--- a/apps/plugins/invadrox.c
+++ b/apps/plugins/invadrox.c
@@ -5,7 +5,7 @@
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
- * $Id: $
+ * $Id$
*
* Copyright (C) 2006 Albert Veli
*
diff --git a/apps/plugins/jewels.c b/apps/plugins/jewels.c
index 5285cf912a..76019f56f4 100644
--- a/apps/plugins/jewels.c
+++ b/apps/plugins/jewels.c
@@ -120,8 +120,16 @@ PLUGIN_HEADER
#define JEWELS_SELECT BUTTON_SELECT
#define JEWELS_CANCEL BUTTON_BACK
+#elif CONFIG_KEYPAD == MROBE100_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_POWER
+
#else
- #error JEWELS: Unsupported keypad
+#error No keymap defined!
#endif
/* use 30x30 tiles (iPod Video, Gigabeat) */
@@ -1486,7 +1494,8 @@ static int jewels_main(struct game_context* bj) {
rb->lcd_puts(0, 9, "SELECT to select");
rb->lcd_puts(0, 10, "Long SELECT to show menu");
rb->lcd_puts(0, 11, "PLAY to cancel");
-#elif CONFIG_KEYPAD == GIGABEAT_PAD
+#elif CONFIG_KEYPAD == GIGABEAT_PAD \
+ || CONFIG_KEYPAD == MROBE100_PAD
rb->lcd_puts(0, 2, "Swap pairs of jewels to");
rb->lcd_puts(0, 3, "form connected segments");
rb->lcd_puts(0, 4, "of three or more of the");
diff --git a/apps/plugins/jpeg.c b/apps/plugins/jpeg.c
index 27c7c215c8..156944d720 100644
--- a/apps/plugins/jpeg.c
+++ b/apps/plugins/jpeg.c
@@ -187,6 +187,19 @@ PLUGIN_HEADER
#define JPEG_NEXT BUTTON_NEXT
#define JPEG_PREVIOUS BUTTON_PREV
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define JPEG_ZOOM_IN BUTTON_SELECT
+#define JPEG_ZOOM_OUT BUTTON_PLAY
+#define JPEG_UP BUTTON_UP
+#define JPEG_DOWN BUTTON_DOWN
+#define JPEG_LEFT BUTTON_LEFT
+#define JPEG_RIGHT BUTTON_RIGHT
+#define JPEG_MENU BUTTON_MENU
+#define JPEG_NEXT (BUTTON_DISPLAY | BUTTON_RIGHT)
+#define JPEG_PREVIOUS (BUTTON_DISPLAY | BUTTON_LEFT)
+
+#else
+#error No keymap defined!
#endif
/* different graphics libraries */
diff --git a/apps/plugins/logo.c b/apps/plugins/logo.c
index 34e14da698..7ac004c053 100644
--- a/apps/plugins/logo.c
+++ b/apps/plugins/logo.c
@@ -118,6 +118,13 @@ const unsigned char rockbox16x7[] = {
#define LP_DEC_Y BUTTON_DOWN
#define LP_INC_Y BUTTON_UP
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define LP_QUIT BUTTON_POWER
+#define LP_DEC_X BUTTON_LEFT
+#define LP_INC_X BUTTON_RIGHT
+#define LP_DEC_Y BUTTON_DOWN
+#define LP_INC_Y BUTTON_UP
+
#else
#define LP_QUIT BUTTON_OFF
#define LP_DEC_X BUTTON_LEFT
diff --git a/apps/plugins/mandelbrot.c b/apps/plugins/mandelbrot.c
index b3ead229c3..5f3caa7bee 100644
--- a/apps/plugins/mandelbrot.c
+++ b/apps/plugins/mandelbrot.c
@@ -188,6 +188,22 @@ PLUGIN_HEADER
#define MANDELBROT_MAXITER_DEC BUTTON_NEXT
#define MANDELBROT_RESET BUTTON_MENU
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define MANDELBROT_QUIT BUTTON_POWER
+#define MANDELBROT_UP BUTTON_UP
+#define MANDELBROT_DOWN BUTTON_DOWN
+#define MANDELBROT_LEFT BUTTON_LEFT
+#define MANDELBROT_RIGHT BUTTON_RIGHT
+#define MANDELBROT_ZOOM_IN_PRE BUTTON_SELECT
+#define MANDELBROT_ZOOM_IN (BUTTON_SELECT | BUTTON_REL)
+#define MANDELBROT_ZOOM_OUT_PRE BUTTON_SELECT
+#define MANDELBROT_ZOOM_OUT (BUTTON_SELECT | BUTTON_REPEAT)
+#define MANDELBROT_MAXITER_INC BUTTON_MENU
+#define MANDELBROT_MAXITER_DEC BUTTON_PLAY
+#define MANDELBROT_RESET BUTTON_DISPLAY
+
+#else
+#error No keymap defined!
#endif
#if LCD_DEPTH < 8
diff --git a/apps/plugins/mazezam.c b/apps/plugins/mazezam.c
index 1105e4eebb..858d554a6d 100644
--- a/apps/plugins/mazezam.c
+++ b/apps/plugins/mazezam.c
@@ -153,6 +153,20 @@ MEM_FUNCTION_WRAPPERS(rb);
#define MAZEZAM_QUIT BUTTON_BACK
#define MAZEZAM_QUIT_KEYNAME "[BACK]"
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define MAZEZAM_UP BUTTON_UP
+#define MAZEZAM_DOWN BUTTON_DOWN
+#define MAZEZAM_LEFT BUTTON_LEFT
+#define MAZEZAM_RIGHT BUTTON_RIGHT
+#define MAZEZAM_SELECT BUTTON_SELECT
+
+#define MAZEZAM_RETRY BUTTON_DISPLAY
+#define MAZEZAM_RETRY_KEYNAME "[DISPLAY]"
+#define MAZEZAM_QUIT BUTTON_POWER
+#define MAZEZAM_QUIT_KEYNAME "[POWER]"
+
+#else
+#error No keymap defined!
#endif
/* The gap for the border around the heading in text pages. In fact, 2 is
diff --git a/apps/plugins/midi/midiplay.c b/apps/plugins/midi/midiplay.c
index e165460708..940fce3a19 100644
--- a/apps/plugins/midi/midiplay.c
+++ b/apps/plugins/midi/midiplay.c
@@ -117,6 +117,17 @@ PLUGIN_IRAM_DECLARE
#define BTN_PLAY BUTTON_RC_HEART
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define BTN_QUIT BUTTON_POWER
+#define BTN_RIGHT BUTTON_RIGHT
+#define BTN_LEFT BUTTON_LEFT
+#define BTN_UP BUTTON_UP
+#define BTN_DOWN BUTTON_DOWN
+#define BTN_PLAY BUTTON_DISPLAY
+
+
+#else
+#error No keymap defined!
#endif
#undef SYNC
diff --git a/apps/plugins/minesweeper.c b/apps/plugins/minesweeper.c
index f448b96fe2..8b9fe85da9 100644
--- a/apps/plugins/minesweeper.c
+++ b/apps/plugins/minesweeper.c
@@ -141,8 +141,16 @@ enum minesweeper_status {
# define MINESWP_DISCOVER BUTTON_SELECT
# define MINESWP_INFO BUTTON_MENU
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+# define MINESWP_UP BUTTON_UP
+# define MINESWP_DOWN BUTTON_DOWN
+# define MINESWP_QUIT BUTTON_POWER
+# define MINESWP_TOGGLE BUTTON_DISPLAY
+# define MINESWP_DISCOVER BUTTON_SELECT
+# define MINESWP_INFO BUTTON_MENU
+
#else
-# warning Missing key definitions for this keypad
+#error No keymap defined!
#endif
/* here is a global api struct pointer. while not strictly necessary,
diff --git a/apps/plugins/mosaique.c b/apps/plugins/mosaique.c
index 21adc7a07d..42037f80f5 100644
--- a/apps/plugins/mosaique.c
+++ b/apps/plugins/mosaique.c
@@ -112,6 +112,13 @@ PLUGIN_HEADER
#define MOSAIQUE_SPEED BUTTON_SELECT
#define MOSAIQUE_RESTART BUTTON_MENU
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define MOSAIQUE_QUIT BUTTON_POWER
+#define MOSAIQUE_SPEED BUTTON_DISPLAY
+#define MOSAIQUE_RESTART BUTTON_SELECT
+
+#else
+#error No keymap defined!
#endif
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
diff --git a/apps/plugins/mp3_encoder.c b/apps/plugins/mp3_encoder.c
index bd6c667873..458f124854 100644
--- a/apps/plugins/mp3_encoder.c
+++ b/apps/plugins/mp3_encoder.c
@@ -2322,6 +2322,13 @@ void get_mp3_filename(char *wav_name)
#define MP3ENC_NEXT BUTTON_DOWN
#define MP3ENC_DONE BUTTON_BACK
#define MP3ENC_SELECT BUTTON_SELECT
+#elif CONFIG_KEYPAD == MROBE100_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
enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index fc99460d74..8e4f16a484 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -92,8 +92,18 @@ struct mpeg_settings settings;
#define MPEG_START_TIME_DOWN BUTTON_RC_DOWN
#define MPEG_START_TIME_EXIT BUTTON_POWER
+#elif CONFIG_KEYPAD == MROBE100_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_SCROLL_DOWN BUTTON_MENU
+#define MPEG_START_TIME_SCROLL_UP BUTTON_PLAY
+#define MPEG_START_TIME_EXIT BUTTON_POWER
+
#else
-#error MPEGPLAYER: Unsupported keypad
+#error No keymap defined!
#endif
static struct configdata config[] =
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 80b43660a5..5a1f22392c 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -193,8 +193,17 @@ PLUGIN_IRAM_DECLARE
#define MPEG_RW BUTTON_RC_REW
#define MPEG_FF BUTTON_RC_FF
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define MPEG_MENU BUTTON_MENU
+#define MPEG_STOP BUTTON_POWER
+#define MPEG_PAUSE BUTTON_PLAY
+#define MPEG_VOLDOWN BUTTON_DOWN
+#define MPEG_VOLUP BUTTON_UP
+#define MPEG_RW BUTTON_LEFT
+#define MPEG_FF BUTTON_RIGHT
+
#else
-#error MPEGPLAYER: Unsupported keypad
+#error No keymap defined!
#endif
struct plugin_api* rb;
diff --git a/apps/plugins/oscilloscope.c b/apps/plugins/oscilloscope.c
index dbb01355bc..13a8c4e1a6 100644
--- a/apps/plugins/oscilloscope.c
+++ b/apps/plugins/oscilloscope.c
@@ -157,7 +157,19 @@ PLUGIN_HEADER
#define OSCILLOSCOPE_VOL_UP BUTTON_VOL_UP
#define OSCILLOSCOPE_VOL_DOWN BUTTON_VOL_DOWN
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define OSCILLOSCOPE_QUIT BUTTON_POWER
+#define OSCILLOSCOPE_DRAWMODE BUTTON_SELECT
+#define OSCILLOSCOPE_ADVMODE BUTTON_MENU
+#define OSCILLOSCOPE_ORIENTATION BUTTON_PLAY
+#define OSCILLOSCOPE_PAUSE BUTTON_DISPLAY
+#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
/* colours */
diff --git a/apps/plugins/plasma.c b/apps/plugins/plasma.c
index a67845f2da..ca6f0d43a4 100644
--- a/apps/plugins/plasma.c
+++ b/apps/plugins/plasma.c
@@ -82,6 +82,10 @@ static int plasma_frequency;
#define PLASMA_QUIT BUTTON_BACK
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define PLASMA_QUIT BUTTON_POWER
+#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
+#define PLASMA_DECREASE_FREQUENCY BUTTON_DOWN
#else
#define PLASMA_QUIT BUTTON_OFF
#define PLASMA_INCREASE_FREQUENCY BUTTON_UP
diff --git a/apps/plugins/pong.c b/apps/plugins/pong.c
index 7052c0be3e..303d6b1b75 100644
--- a/apps/plugins/pong.c
+++ b/apps/plugins/pong.c
@@ -130,6 +130,16 @@ PLUGIN_HEADER
#define PONG_RIGHT_UP BUTTON_VOL_UP
#define PONG_RIGHT_DOWN BUTTON_VOL_DOWN
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define PONG_QUIT BUTTON_POWER
+#define PONG_PAUSE BUTTON_SELECT
+#define PONG_LEFT_UP BUTTON_MENU
+#define PONG_LEFT_DOWN BUTTON_LEFT
+#define PONG_RIGHT_UP BUTTON_PLAY
+#define PONG_RIGHT_DOWN BUTTON_RIGHT
+
+#else
+#error No keymap defined!
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/reversi/reversi-gui.h b/apps/plugins/reversi/reversi-gui.h
index 0d34cab551..47ed3f52a8 100644
--- a/apps/plugins/reversi/reversi-gui.h
+++ b/apps/plugins/reversi/reversi-gui.h
@@ -114,8 +114,17 @@
#define REVERSI_BUTTON_MAKE_MOVE BUTTON_RC_MODE
#define REVERSI_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define REVERSI_BUTTON_QUIT BUTTON_DISPLAY
+#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 REVERSI: Unsupported keypad
+#error No keymap defined!
#endif
diff --git a/apps/plugins/rockblox.c b/apps/plugins/rockblox.c
index b3444d39da..d4d9048797 100644
--- a/apps/plugins/rockblox.c
+++ b/apps/plugins/rockblox.c
@@ -188,6 +188,20 @@ PLUGIN_HEADER
#define ROCKBLOX_DROP BUTTON_SELECT
#define ROCKBLOX_RESTART BUTTON_PLAY
+#elif CONFIG_KEYPAD == MROBE100_PAD
+
+#define ROCKBLOX_OFF BUTTON_POWER
+#define ROCKBLOX_ROTATE_RIGHT BUTTON_MENU
+#define ROCKBLOX_ROTATE_LEFT BUTTON_PLAY
+#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_DISPLAY
+
+#else
+#error No keymap defined!
#endif
#define BLOCKS_NUM 7
diff --git a/apps/plugins/sliding_puzzle.c b/apps/plugins/sliding_puzzle.c
index f8fb0ed6bf..6da6b8bef1 100644
--- a/apps/plugins/sliding_puzzle.c
+++ b/apps/plugins/sliding_puzzle.c
@@ -100,6 +100,15 @@ PLUGIN_HEADER
#define PUZZLE_SHUFFLE BUTTON_SELECT
#define PUZZLE_PICTURE BUTTON_MENU
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define PUZZLE_QUIT BUTTON_POWER
+#define PUZZLE_UP BUTTON_UP
+#define PUZZLE_DOWN BUTTON_DOWN
+#define PUZZLE_SHUFFLE BUTTON_SELECT
+#define PUZZLE_PICTURE BUTTON_DISPLAY
+
+#else
+#error No keymap defined!
#endif
diff --git a/apps/plugins/snake.c b/apps/plugins/snake.c
index 7d64c16bb3..c68b924da6 100644
--- a/apps/plugins/snake.c
+++ b/apps/plugins/snake.c
@@ -102,8 +102,14 @@ PLUGIN_HEADER
#define SNAKE_DOWN BUTTON_DOWN
#define SNAKE_PLAYPAUSE BUTTON_SELECT
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define SNAKE_QUIT BUTTON_POWER
+#define SNAKE_UP BUTTON_UP
+#define SNAKE_DOWN BUTTON_DOWN
+#define SNAKE_PLAYPAUSE BUTTON_SELECT
+
#else
-#error "lacks keymapping"
+#error No keymap defined!
#endif
#define BOARD_WIDTH (LCD_WIDTH/4)
diff --git a/apps/plugins/snake2.c b/apps/plugins/snake2.c
index d2eb89f2b4..bae520b9ac 100644
--- a/apps/plugins/snake2.c
+++ b/apps/plugins/snake2.c
@@ -269,8 +269,20 @@ PLUGIN_HEADER
#define SNAKE2_PLAYPAUSE BUTTON_SELECT
#define SNAKE2_PLAYPAUSE_TEXT "Select"
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define SNAKE2_UP BUTTON_UP
+#define SNAKE2_DOWN BUTTON_DOWN
+#define SNAKE2_QUIT BUTTON_POWER
+#define SNAKE2_LEVEL_UP BUTTON_UP
+#define SNAKE2_LEVEL_DOWN BUTTON_DOWN
+#define SNAKE2_MAZE_NEXT BUTTON_RIGHT
+#define SNAKE2_MAZE_LAST BUTTON_LEFT
+#define SNAKE2_SELECT_TYPE BUTTON_MENU
+#define SNAKE2_PLAYPAUSE BUTTON_SELECT
+#define SNAKE2_PLAYPAUSE_TEXT "Select"
+
#else
-#error "lacks keymapping"
+#error No keymap defined!
#endif
static int max_levels = 0;
diff --git a/apps/plugins/snow.c b/apps/plugins/snow.c
index f2e76b19f2..56ebb2eae4 100644
--- a/apps/plugins/snow.c
+++ b/apps/plugins/snow.c
@@ -53,6 +53,8 @@ PLUGIN_HEADER
#define SNOW_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == MROBE500_PAD
#define SNOW_QUIT BUTTON_POWER
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define SNOW_QUIT BUTTON_POWER
#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
#define SNOW_QUIT BUTTON_BACK
#else
diff --git a/apps/plugins/sokoban.c b/apps/plugins/sokoban.c
index aaf314a154..66492fd3d5 100644
--- a/apps/plugins/sokoban.c
+++ b/apps/plugins/sokoban.c
@@ -230,6 +230,21 @@ extern const fb_data sokoban_tiles[];
#define BUTTON_SAVE BUTTON_SELECT
#define BUTTON_SAVE_NAME "SELECT"
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define SOKOBAN_UP BUTTON_UP
+#define SOKOBAN_DOWN BUTTON_DOWN
+#define SOKOBAN_MENU BUTTON_POWER
+#define SOKOBAN_UNDO BUTTON_SELECT
+#define SOKOBAN_REDO BUTTON_MENU
+#define SOKOBAN_LEVEL_DOWN (BUTTON_DISPLAY | BUTTON_DOWN)
+#define SOKOBAN_LEVEL_REPEAT (BUTTON_DISPLAY | BUTTON_RIGHT)
+#define SOKOBAN_LEVEL_UP (BUTTON_DISPLAY | BUTTON_UP)
+#define SOKOBAN_PAUSE BUTTON_SELECT
+#define BUTTON_SAVE BUTTON_SELECT
+#define BUTTON_SAVE_NAME "SELECT"
+
+#else
+#error No keymap defined!
#endif
#define SOKOBAN_FONT FONT_SYSFIXED
diff --git a/apps/plugins/solitaire.c b/apps/plugins/solitaire.c
index b8cdde05eb..95d76f67de 100644
--- a/apps/plugins/solitaire.c
+++ b/apps/plugins/solitaire.c
@@ -257,8 +257,26 @@ static struct plugin_api* rb;
# define HK_CUR2STACK "SELECT.."
# define HK_REM2STACK "SELECT+RIGHT"
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+# define SOL_QUIT BUTTON_POWER
+# 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_LEFT | BUTTON_DISPLAY)
+# define SOL_CUR2STACK (BUTTON_SELECT | BUTTON_REPEAT)
+# define SOL_REM2STACK (BUTTON_RIGHT | BUTTON_DISPLAY)
+# define HK_MOVE "SELECT"
+# define HK_DRAW "MENU"
+# define HK_REM2CUR "DISPLAY+LEFT"
+# define HK_CUR2STACK "SELECT.."
+# define HK_REM2STACK "DISPLAY+RIGHT"
+
#else
-# error "Unknown keypad"
+#error No keymap defined!
#endif
#define HK_LR "LEFT/RIGHT"
diff --git a/apps/plugins/spacerocks.c b/apps/plugins/spacerocks.c
index 742a9700b2..5d5a1bac6b 100644
--- a/apps/plugins/spacerocks.c
+++ b/apps/plugins/spacerocks.c
@@ -174,6 +174,21 @@ static struct plugin_api* rb; /* global api struct pointer */
#define AST_FIRE BUTTON_SELECT
#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define AST_PAUSE BUTTON_DISPLAY
+#define AST_QUIT BUTTON_POWER
+#define AST_THRUST_REP BUTTON_UP | BUTTON_REPEAT
+#define AST_THRUST BUTTON_UP
+#define AST_HYPERSPACE BUTTON_DOWN
+#define AST_LEFT BUTTON_LEFT
+#define AST_LEFT_REP BUTTON_LEFT | BUTTON_REPEAT
+#define AST_RIGHT BUTTON_RIGHT
+#define AST_RIGHT_REP (BUTTON_RIGHT | BUTTON_REPEAT)
+#define AST_FIRE BUTTON_SELECT
+#define AST_FIRE_REP BUTTON_SELECT | BUTTON_REPEAT
+
+#else
+#error No keymap defined!
#endif
#define ABS(x) ((x)>0?(x):-(x))
diff --git a/apps/plugins/star.c b/apps/plugins/star.c
index 25dc058666..56fe89c4d3 100644
--- a/apps/plugins/star.c
+++ b/apps/plugins/star.c
@@ -179,6 +179,19 @@ PLUGIN_HEADER
#define STAR_LEVEL_REPEAT BUTTON_MENU
#define STAR_MENU_RUN BUTTON_SELECT
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+
+#define STAR_QUIT BUTTON_POWER
+#define STAR_UP BUTTON_UP
+#define STAR_DOWN BUTTON_DOWN
+#define STAR_TOGGLE_CONTROL BUTTON_SELECT
+#define STAR_LEVEL_UP BUTTON_PLAY
+#define STAR_LEVEL_DOWN BUTTON_MENU
+#define STAR_LEVEL_REPEAT BUTTON_DISPLAY
+#define STAR_MENU_RUN BUTTON_SELECT
+
+#else
+#error No keymap defined!
#endif
/* function returns because of USB? */
diff --git a/apps/plugins/starfield.c b/apps/plugins/starfield.c
index 2c39b05b0d..de994ab13e 100644
--- a/apps/plugins/starfield.c
+++ b/apps/plugins/starfield.c
@@ -72,6 +72,13 @@ static struct plugin_api* rb; /* global api struct pointer */
#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define STARFIELD_QUIT BUTTON_POWER
+#define STARFIELD_INCREASE_ZMOVE BUTTON_UP
+#define STARFIELD_DECREASE_ZMOVE BUTTON_DOWN
+#define STARFIELD_INCREASE_NB_STARS BUTTON_RIGHT
+#define STARFIELD_DECREASE_NB_STARS BUTTON_LEFT
+#define STARFIELD_TOGGLE_COLOR BUTTON_SELECT
#else
#define STARFIELD_QUIT BUTTON_OFF
diff --git a/apps/plugins/stats.c b/apps/plugins/stats.c
index 993943f977..12125a33e8 100644
--- a/apps/plugins/stats.c
+++ b/apps/plugins/stats.c
@@ -65,6 +65,12 @@ static bool abort;
#elif CONFIG_KEYPAD == GIGABEAT_S_PAD
#define STATS_STOP BUTTON_BACK
+
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define STATS_STOP BUTTON_POWER
+
+#else
+#error No keymap defined!
#endif
/* TODO: Better get the exts from the filetypes var in tree.c */
diff --git a/apps/plugins/stopwatch.c b/apps/plugins/stopwatch.c
index 331649a3b1..53f79ee6f7 100644
--- a/apps/plugins/stopwatch.c
+++ b/apps/plugins/stopwatch.c
@@ -129,6 +129,15 @@ PLUGIN_HEADER
#define STOPWATCH_LAP_TIMER BUTTON_SELECT
#define STOPWATCH_SCROLL_UP BUTTON_UP
#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define STOPWATCH_QUIT BUTTON_POWER
+#define STOPWATCH_START_STOP BUTTON_SELECT
+#define STOPWATCH_RESET_TIMER BUTTON_DISPLAY
+#define STOPWATCH_LAP_TIMER BUTTON_MENU
+#define STOPWATCH_SCROLL_UP BUTTON_UP
+#define STOPWATCH_SCROLL_DOWN BUTTON_DOWN
+#else
+#error No keymap defined!
#endif
static struct plugin_api* rb;
diff --git a/apps/plugins/sudoku/sudoku.h b/apps/plugins/sudoku/sudoku.h
index 87c0f692b5..78d1b73e63 100644
--- a/apps/plugins/sudoku/sudoku.h
+++ b/apps/plugins/sudoku/sudoku.h
@@ -150,8 +150,18 @@
#define SUDOKU_BUTTON_MENU (BUTTON_POWER | BUTTON_REL)
#define SUDOKU_BUTTON_POSSIBLE BUTTON_RC_HEART
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define SUDOKU_BUTTON_QUIT BUTTON_POWER
+#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_TOGGLE BUTTON_SELECT
+#define SUDOKU_BUTTON_MENU BUTTON_MENU
+#define SUDOKU_BUTTON_POSSIBLE BUTTON_DISPLAY
+
#else
- #error SUDOKU: Unsupported keypad
+#error No keymap defined!
#endif
struct sudoku_state_t {
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c
index da288f1d6f..ea33314c99 100644
--- a/apps/plugins/viewer.c
+++ b/apps/plugins/viewer.c
@@ -223,6 +223,17 @@ PLUGIN_HEADER
#define VIEWER_MENU BUTTON_MENU
#define VIEWER_AUTOSCROLL BUTTON_PLAY
+#elif CONFIG_KEYPAD == MROBE100_PAD
+#define VIEWER_QUIT BUTTON_POWER
+#define VIEWER_PAGE_UP BUTTON_UP
+#define VIEWER_PAGE_DOWN BUTTON_DOWN
+#define VIEWER_SCREEN_LEFT BUTTON_LEFT
+#define VIEWER_SCREEN_RIGHT BUTTON_RIGHT
+#define VIEWER_MENU BUTTON_MENU
+#define VIEWER_AUTOSCROLL BUTTON_DISPLAY
+
+#else
+#error No keymap defined!
#endif
/* stuff for the bookmarking */
diff --git a/apps/plugins/vu_meter.c b/apps/plugins/vu_meter.c
index a004cc7d98..4a02a58850 100644
--- a/apps/plugins/vu_meter.c
+++ b/apps/plugins/vu_meter.c
@@ -130,6 +130,17 @@ PLUGIN_HEADER
#define VUMETER_UP BUTTON_UP
#define VUMETER_DOWN BUTTON_DOWN
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+#define VUMETER_QUIT BUTTON_POWER
+#define VUMETER_HELP BUTTON_DISPLAY
+#define VUMETER_MENU BUTTON_MENU
+#define VUMETER_MENU_EXIT BUTTON_MENU
+#define VUMETER_MENU_EXIT2 BUTTON_POWER
+#define VUMETER_UP BUTTON_UP
+#define VUMETER_DOWN BUTTON_DOWN
+
+#else
+#error No keymap defined!
#endif
const struct plugin_api* rb;
diff --git a/apps/plugins/wormlet.c b/apps/plugins/wormlet.c
index 3681446b22..65e9d85ff4 100644
--- a/apps/plugins/wormlet.c
+++ b/apps/plugins/wormlet.c
@@ -189,6 +189,21 @@ PLUGIN_HEADER
#define PLAYERS_TEXT "Up/Down"
#define WORMS_TEXT "Left/Right"
+#elif (CONFIG_KEYPAD == MROBE100_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_POWER
+#define BTN_STOPRESET BUTTON_DISPLAY
+
+#define PLAYERS_TEXT "Up/Down"
+#define WORMS_TEXT "Left/Right"
+
+#else
+#error No keymap defined!
#endif
#if (LCD_WIDTH == 112) && (LCD_HEIGHT == 64)
diff --git a/apps/plugins/xobox.c b/apps/plugins/xobox.c
index db68e05265..dcffbdcef5 100644
--- a/apps/plugins/xobox.c
+++ b/apps/plugins/xobox.c
@@ -121,8 +121,17 @@ PLUGIN_HEADER
#define DOWN BUTTON_DOWN
#define PAUSE BUTTON_PLAY
+#elif (CONFIG_KEYPAD == MROBE100_PAD)
+
+#define QUIT BUTTON_POWER
+#define LEFT BUTTON_LEFT
+#define RIGHT BUTTON_RIGHT
+#define UP BUTTON_UP
+#define DOWN BUTTON_DOWN
+#define PAUSE BUTTON_DISPLAY
+
#else
-#error Unsupported keypad
+#error No keymap defined!
#endif
#define MOVE_NO 0 /* player movement */