LINKOUT ?= -o
 endif
 
-ifeq ("$(PLATFORM)",$(filter "$(PLATFORM)","gp2x" "opendingux" "rpi1"))
+ifeq ("$(PLATFORM)",$(filter "$(PLATFORM)","gp2x" "opendingux" "miyoo" "rpi1"))
 # very small caches, avoid optimization options making the binary much bigger
 CFLAGS += -finline-limit=42 -fno-unroll-loops -fno-ipa-cp -ffast-math
 # this gets you about 20% better execution speed on 32bit arm/mips
 # OpenDingux is a generic platform, really.
 PLATFORM := generic
 endif
+ifeq "$(PLATFORM)" "miyoo"
+OBJS += platform/opendingux/inputmap.o
+use_inputmap ?= 1
+PLATFORM := generic
+endif
 ifeq ("$(PLATFORM)",$(filter "$(PLATFORM)","rpi1" "rpi2"))
 CFLAGS += -DHAVE_GLES -DRASPBERRY
 CFLAGS += -I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads/ -I/opt/vc/include/interface/vmcs_host/linux/
 
 retrofw|retrofw|CROSS_COMPILE=mipsel-linux- CFLAGS="-I $TC/include -I $TC/include/SDL -Wno-unused-result" LDFLAGS="--sysroot $TC/mipsel-buildroot-linux-uclibc/sysroot" ./configure --platform=retrofw
 gcw0|gcw0|CROSS_COMPILE=mipsel-gcw0-linux-uclibc- CFLAGS="-I$TC/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include -I$TC/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include/SDL" LDFLAGS="--sysroot $TC/usr/mipsel-gcw0-linux-uclibc/sysroot" ./configure --platform=gcw0
 rg350|rg350|CROSS_COMPILE=mipsel-linux- CFLAGS="-I$TC/usr/include -I$TC/usr/include/SDL" LDFLAGS="--sysroot $TC -L$TC/lib" ./configure --platform=rg350
+miyoo|miyoo|CROSS_COMPILE=arm-miyoo-linux-uclibcgnueabi- CFLAGS="-I$TC/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/include -I$TC/arm-miyoo-linux-uclibcgnueabi/sysroot/usr/include/SDL" LDFLAGS="--sysroot $TC/arm-miyoo-linux-uclibcgnueabi/sysroot" ./configure --platform=miyoo
 
 For gp2x, wiz, and caanoo you may need to compile libpng first.
 
 
 # "" means "autodetect".
 
 # TODO this is annoyingly messy. should have platform and device
-platform_list="generic pandora gp2x wiz caanoo dingux retrofw gcw0 rg350 opendingux rpi1 rpi2 psp"
+platform_list="generic pandora gp2x wiz caanoo dingux retrofw gcw0 rg350 opendingux miyoo rpi1 rpi2 psp"
 platform="generic"
 sound_driver_list="oss alsa sdl"
 sound_drivers=""
     MFLAGS="-march=mips32r2"
     platform="opendingux"
     ;;
+  miyoo)
+    # Miyoo BittBoy, PocketGO 1, PowKiddy V90/Q90 with Allwinner F1C100s
+    sound_drivers="sdl"
+    CFLAGS="$CFLAGS -D__MIYOO__"
+    MFLAGS="-mcpu=arm926ej-s -marm"
+    platform="miyoo"
+    ;;
   pandora)
     sound_drivers="oss alsa"
     have_libavcodec="yes"
 esac
 
 case "$platform" in
-rpi1 | rpi2 | generic | opendingux)
+rpi1 | rpi2 | generic | opendingux | miyoo)
   need_sdl="yes"
   ;;
 esac
 
        { SDLK_DOWN,    PBTN_DOWN },
        { SDLK_LEFT,    PBTN_LEFT },
        { SDLK_RIGHT,   PBTN_RIGHT },
+#if defined(__MIYOO__)
+       { SDLK_LALT,    PBTN_MOK },
+       { SDLK_LCTRL,   PBTN_MBACK },
+#else
        { SDLK_LCTRL,   PBTN_MOK },
        { SDLK_LALT,    PBTN_MBACK },
+#endif
        { SDLK_SPACE,   PBTN_MA2 },
        { SDLK_LSHIFT,  PBTN_MA3 },
        { SDLK_TAB,     PBTN_L },
        [SDLK_DOWN] = "DOWN",
        [SDLK_LEFT] = "LEFT",
        [SDLK_RIGHT] = "RIGHT",
+#if defined(__MIYOO__)
+       [SDLK_LALT] = "A",
+       [SDLK_LCTRL] = "B",
+#else
        [SDLK_LCTRL] = "A",
        [SDLK_LALT] = "B",
-#if defined(__GCW0__)
+#endif
+#if defined(__GCW0__) || defined(__MIYOO__)
        [SDLK_LSHIFT] = "X",
        [SDLK_SPACE] = "Y",
 #else
        [SDLK_PAGEDOWN] = "R2",
        [SDLK_KP_DIVIDE] = "L3",
        [SDLK_KP_PERIOD] = "R3",
+#elif defined(__MIYOO__)
+       [SDLK_TAB] = "L1",
+       [SDLK_BACKSPACE] = "R1",
+       [SDLK_RALT] = "L2",
+       [SDLK_RSHIFT] = "R2",
+       [SDLK_RCTRL] = "R",
 #else
        [SDLK_TAB] = "L",
        [SDLK_BACKSPACE] = "R",