DroidMote Client Quick Start Guide


DroidMote is an app that let you control Android, Linux, Windows and Chrome OS devices. With your phone you can control apps and games that support all kind of interactions: gamepad, mouse and keyboard or touch actions. With an hardware gamepad instead you can control multi touch games and games that requires mouse and keyboard. With the DroidMote KMredirect add-on you can control multi touch games and games with gamepad support with mouse and keyboard.

To control another device you must install on it the app DroidMote Server

You don't have a Rooted Android Box to play games ? Take a look here, an Android Pie 9 portable Emulator that can run X86 and ARM games on Windows.
Full Android PIE Emulator for PC

In alternative, to play Android games on your PC, you can use FydeOS or Android X86 on a fast USB 3 Key

For an awesome experience you need a good Client device with a sensitive touch screen and a good wifi connection on both Client and Server devices. In case the wifi network connection is poor, you can use the ethernet port of the Server device. By default DroidMote don't have noticeable lags, if you experience lags, check the network connections or try with another Client device. Also an old Galaxy S1 is good to have an experience like in those videos:
Apps and Games on TV with DroidMote.

To have all functionalities of DroidMote, make sure that DroidMote Server for Android, at first start, install the configurations files. You can see in the SERVER device if you have this files after you started DroidMote Server for the first time: ( valid only for the Android Server )

  • droidmote.kl in /data/system/devices/keylayout
  • droidmote.kcm in /data/system/devices/keychars
  • droidmotect.kl in /data/system/devices/keylayout
  • droidmotect.kcm in /data/system/devices/keychars
  • droidmote.idc in /data/system/devices/idc
  • droidmotemt.idc in /data/system/devices/idc
  • droidmotegt.idc in /data/system/devices/idc

If you don't have this files, reinstall DroidMote Server and grant root permissions at first start.



Connection:

Make sure you have the last Client and Server versions installed from Google Play.

To connect DroidMote Client to DroidMote Server, you can click Menu > Connect or a single tap on the touchpad and write the ip that you see in the DroidMote Server when it is started.

You can also automatically search the active servers in lan with the search button in the connection dialog box.

If you experience disconnections when the display turns off, this is not normal, check the Power Options of your device and do not allow the automatic killing of all background services when display turns off.


Touchpad:

One finger to move the mouse, two fingers for multi touch gestures. The multi touch gestures are relative to the last mouse position.

To drag you can long press on an item and move one finger, a single tap on touchpad to release.

Two fingers very close to scroll up / down and left / right.

You can scroll also with the dedicated scroll button that active the mouse wheel. press the button and move one finger up / down, a single tap on touchpad to release.

In the settings ( Menu > Settings ) you can also enable the "Fast Scroll" function that i use daily. When you enable this checkbox, to activate the mouse wheel, you can long press on touchpad and move one finger up / down ( when you active the fastscroll, the drag mode is activable with a second long press ).



You can write on the remote device, with your preferred Android keyboard installed on the Client device. If you have problems try with the Google Keyboard. To open the keyboard press the dedicated keyboard button on the touchpad. A long press on the keyboard button to switch between installed keyboards. You can also use gesture typing and voice dictation with the dedicated mic button of DroidMote Client.

You can customize the keyboard to support many languages with the server side configurations files droidmote.kl and droidmote.kcm ( as explained by Google for the Key Layout and Key Character Map files, and you can use also unicode characters ) The keyboard languages supported by default are languages with Latin characters, Russian, Arabic and Greek. You can select your preferred language in Droidmote Server settings. If you want write in Chinese, in the client device you can use the english keyboard and in the Server device you can install the Google Pinyin keyboard and from Android Settings > Language and Input select Pinyin IME as default IME.

Volume UP paste the Clipboard of the Client device on the Server device, and Volume DOWN act as CTRL key, in this way you can use also shortcut like CTRL + key

The Touch Mouse mode ( Setting > TouchMouse ) is an hybrid input device that instead of using the left mouse button, use a touch action. The Touch Mouse is the red pointer to not be confused with the normal mouse pointer. Can be used for some android games that not support an hardware mouse. Infact you can click on the buttons menu of the games only with the Touch Mouse. The Touch Mouse work only if you have selected a touch profile, because it need the remote screen resolution and the orientation that are fields stored inside the touch profile.

The TouchMouse is necessary and usable only in Android. In Windows and Linux not work.



Gamepad:

The DroidMote Gamepad, work in three modes.

The default mode is a standard gamepad simulation mode, the second is the Gamepad2Touch mode for games that don't support an external gamepad but only touch actions and the third is Gamepad to Mouse and keyboard for games that support only mouse and keyboard.

With the DroidMote soft Gamepad, you can play multi touch games, games that support an hardware gamepad and games that support mouse and keyboard.

The actions of the buttons and of the axes can be customized with the file droidmotect.kl, but the graphic position of buttons can't be changed because when you play with a phone or a tablet you can use only your thumbs, therefore the current graphic layout is always the best solution to have two sticks and many buttons.

Games with gamepad support:

In the default mode the soft gamepad of DroidMote simulate a real gamepad, so if a game supports a real gamepad you can already play without create a touch profile.

The accelerometer can be used only in games that support a real gamepad and can be customized with the Server side configuration file droidmotect.kl or with a dedicated menu inside the game for gamepad customization ( in this menu, after enabling the accelerometer in the Client Settings > Enable Accelerometer, you can map the accelerometer axes to some predefined game actions ).



If you want use the accelerometer, but your game don't have a dedicated menu for gamepad customization, look this post viewtopic.php?f=14&t=644

All the keyboard's keys, gamepad's buttons, the axes of the sticks and the axes of the accelerometer, can be customized with the Server configuration file droidmotect.kl and you can load your custom keylayout in DroidMote Server > Settings > Change keylayout.

You can copy the default droidmotect.kl file from the folder /data/system/devices/keylayout of the Server device and edit this to add your customizations.



In the Client settings, if you select "Square and Circle to Triggers", the buttons Square and Circle become an analog left trigger and an analog right trigger. The button 18 in the photo below, become also a supplementary analogic left trigger, useful when you want aim and fire at same time.

In the Gamepad Tab of DroidMote Client, the volume up / down are extra buttons for auto fire or other actions.



Games that support only multi touch actions:

To play with a multi touch game, you can create a touch profile with Touch Profile Creator for Android.



Touch Profile Mapping

Once you have created a touch profile, the resulting xml file can be copied on the device with DroidMote Client inside, in the internal sdcard folder, or in Download folder, or in a special folder called droidmote ( usefull if you want have all touch profiles in one place ).

To play with a multi touch game with a touch profile, you can select it in DroidMote Client settings. Open Settings click on Gamepad2Touch and Select Touch Profile.



When you are in the Gamepad Tab or in Touchpad Tab and you have an hardware gamepad connected to the phone ( bluetooth, wired or wireless, e.g. PS3 gamepad or XBOX gamepad ), the commands of the hardware gamepad are forwarded to DroidMote Server.

This function is useful if you can't connect the hardware gamepad directly to the other android device.

This feature works on Android, Windows and Linux. Is implied that the hardware gamepad must be already compatible with the client device, regardless from DroidMote Client.



Games that support only Mouse and Keyboard:

In the Client settings, if you select Gamepad to Mouse and Keyboard, the default gamepad will emulate a mouse and keyboard. By default you have 13 keyboard keys and 3 buttons dedicated to left and right mouse buttons. Left stick is WASD and the Right stick is the mouse. The main keys, In combination with the Volume +- button, will bring others 16 keys that you can map to secondary actions inside the game. In every games that support mouse and keyboard, you can set the mouse sensitivity and remap every key, so the important fact is that with the soft gamepad you can have 29 keys + mouse buttons. The image below show the current mapping that you can change inside the game.

Software Gamepad to Mouse and keyboard Mapping


Hardware Gamepad to Mouse and keyboard Mapping

droidmoteIME:

a.k.a. Conversion of Hardware input devices

Hardware Gamepad also without a Phone

From Android 4.3 in DroidMote Client you can have another usefull feature, the droidmoteIME.

One of the functionalities that you can do with the droidmoteIME is to run on the same android device both the Client and the Server and connect via the loopback address 127.0.0.1

In this way you can use the touch profiles of DroidMote to play multi touch games also with an hardware gamepad connected directly to the Android TV box.

When you use the droidmoteIME, you can control the Mouse or the Touch Mouse with the right stick of your hardware gamepad and click with the Left Trigger. You can control every app and game with your gamepad and write with your voice on any app.

To switch between mouse mode and normal mode, you can press the START / PLAY button of your hardware gamepad.

ATTENTION: You must disable mouse mode to use all mapped buttons in the game, otherwise, when you are in mouse mode, some buttons are used for the follow actions.

When you are in mouse mode:

R1: switch between Mouse and Touch Mouse

ThumbR: switch between Gamepad2Touch and normal gamepad mode

ThumbL: select differents Touch Profiles

X: open voice dictation to write with your voice on every app

Y: delete text

A: act as Enter key

To switch between input method editors ( IME ) you can long press on the keyboard icon of DroidMote Client or from the Android settings.





Multi Touch Games with a Keyboard:

When you have the Client and the Server on the same device, with droidmoteIME enabled, you can also play games with an hardware keyboard. To enable this functionality you can press the F12 button on the keyboard that will be converted in a Gamepad. In this mode you can play games that require a Gamepad and also Multi Touch games with your keyboard. The image below show the current mapping:

keyboard Mapping

KMredirect: DroidMote add-on to Play Games with Mouse and Keyboard:

When you want share the Mouse and Keyboard of a PC to an Android device, you can use the tool KMRedirect. With KMRedirect on PC, the Keyboard and Mouse can also be converted in an hardware gamepad on the remote device with the F2 key, in this way, when you have the droidmoteIME enabled on Android ( droidmote client and server on same device), you can play Multi Touch games and games that require a gamepad with the Mouse and Keyboard of the PC. You can connect KMRedirect to DroidMote Server via LAN or via adb port forward. adb forward tcp:2302 tcp:2302 and after you can connect to 127.0.0.1 In this way you will use tcp over usb cable, no wifi or ethernet. I made also a native Android version of KMredirect, in this way you can connect hardware Mouse and Keyboard directly to the Android device without going through a PC.

keyboard Mapping

The droidmoteIME opens useful scenarios also when you want play Windows games on your android device because you can run the client in background and utilize in foreground your preferred remote desktop app but the beauty is that you can use your preferred hardware gamepad connected to your android device and not to Windows. ( for nomal games and multi touch games )



To sum up:

DroidMote is not just a remote, but an emulator of input devices that can convert hardware input devices in different input devices. E.g. An hardware gamepad in mouse and keyboard or in touch screen or an hardware mouse and keyboard in gamepad or in touch screen.

DroidMote Server is available for Android, Linux, Windows and Chrome OS

With the app Touch Profile Creator you can create and edit the droidmote touch profiles with a screenshot of the game. The resulting xml file can be loaded in DroidMote Client