I have a Zenfone 2 with android 6 and a Razer Serval Bluetooth joystick. *I did not try OTG so don't ask*.
1. Root your phone, period. No root, no deal.
2. Use SELinuxModeChanger or a terminal emulator o set SELinux permissive otherwise your controller may not be recognized. For terminal instructions, type the following commands:
2.1. su
- provides superuser access
2.2. setenforce 0
- sets SELinux to permissive mode
2.3. getenforce
- with this command, check that Permissive shows up.
3. Now install Tincore. Don't run it yet.
4. Go into Android's settings, accebility, and turn on Tincore.
5. Turn your phone's Bluetooth on and pair your controller.
6. Run Tincore. As soon as you are asked for root authorization, grant it.
7. Tincore will automatically detect several devices. Look for your controller. If it still can't find it, sorry but I can't help you any further.
8. Among the detected devices you should also see one starting with IN: and with an icon at the right representing something like a monitor screen. Mine is IN:FTXXXX_TS. Take note of yours. You'll need it, believe me.
9. Open Tincore settings.
10. DEVICES:SYSTEM
- keep only the first two enabled, unchecked the others.
11. DEVICES:TOUCHSCREEN
11.1. Check Enable multitouch device
11.2. Check Create virtual multitouch.
11.3. In Touch output device, *select the one you took note on step 8*. That's the part I struggled the most and solves that situation in which you are able to setup your controller but only sees a white circle or white ring when in game.
11.4. Leave the rest of this section.
12. Close the settings and restart you app. (exit and reopen).
13. Try to setup your keymappings and save a new profile for it.
14. Try it on with your game.
Hope it helps.