[Shield Android TV General] shivsey:
Here's my config working with version 5.0-349 on Shield SW 3.2. To be honest I have only used this to play Animal Crossing but it puts out 60fps on that particular game.

Dolphin.ini

[Analytics]
PermissionAsked = False
Enabled = False
[FifoPlayer]
LoopReplay = True
[DSP]
DumpUCode = False
DumpAudio = False
CaptureLog = False
Volume = 100
EnableJIT = True
Backend = OpenSLES
[Input]
BackgroundInput = False
[Interface]
MainWindowHeight = 600
AutoHideCursor = False
ExtendedFPSInfo = False
Language = 0
PauseOnFocusLost = False
ShowLogWindow = False
ShowToolbar = True
OnScreenDisplayMessages = True
ThemeName40 = Clean
ShowLogConfigWindow = False
ShowStatusbar = True
HideCursor = False
MainWindowWidth = 800
MainWindowPosY = 100
UsePanicHandlers = True
ConfirmStop = True
MainWindowPosX = 100
[GameList]
ColorCompressed = True
ListSortSecondary = 0
ListSpain = True
ListWad = True
ListUnknown = True
ListGermany = True
ColumnFileName = False
ListGC = True
ColumnBanner = True
ListUsa = True
ColumnNotes = True
ColumnID = False
ListRussia = True
ColumnSize = True
ListItaly = True
ListJap = True
ListWii = True
ListDrives = False
ListWorld = True
ColumnRegion = True
ListElfDol = True
ListSort = 3
ListNetherlands = True
ColumnState = True
ColumnPlatform = True
ListFrance = True
ListAustralia = True
ListTaiwan = True
ListKorea = True
ListPal = True
[Core]
SerialPort1 = 255
WiiKeyboard = False
CustomRTCValue = 0x386d4380
AdapterRumble1 = False
SelectedLanguage = 0
SlotA = 1
SlotB = 1
EnableCheats = False
SimulateKonga0 = False
DSPHLE = True
EmulationSpeed = 1.00000000
AgpCartBPath =
SyncGPU = False
RunCompareClient = False
DPL2Decoder = False
GPUDeterminismMode = auto
AdapterRumble3 = True
OverrideGCLang = False
Overclock = 1.00000000
FPRF = False
Fastmem = True
CPUThread = True
SIDevice3 = 0
EnableCustomRTC = False
AgpCartAPath =
Apploader =
WiimoteContinuousScanning = False
MemcardAPath = //sdcard/dolphin-emu/GC/MemoryCardA.USA.raw
SimulateKonga2 = False
SyncOnSkipIdle = True
HLE_BS2 = True
Latency = 2
SIDevice0 = 6
OverclockEnable = False
DefaultISO =
GFXBackend = OGL
TimingVariance = 40
AdapterRumble2 = True
SimulateKonga1 = False
PerfMapDir =
BBA_MAC =
AccurateNaNs = False
SyncGpuMinDistance = -200000
FrameSkip = 0x00000000
RunCompareServer = False
SkipIdle = True
SIDevice2 = 0
CPUCore = 4
DVDRoot =
MemcardBPath = //sdcard/dolphin-emu/GC/MemoryCardB.USA.raw
WiiSDCard = False
SimulateKonga3 = False
WiimoteEnableSpeaker = False
AdapterRumble0 = True
SyncGpuMaxDistance = 200000
SyncGpuOverclock = 1.00000000
SIDevice1 = 0
[Display]
ForceNTSCJ = False
KeepWindowOnTop = False
Fullscreen = False
DisableScreenSaver = True
PAL60 = True
ProgressiveScan = False
RenderWindowAutoSize = False
RenderWindowXPos = -1
FullscreenResolution = Auto
RenderWindowWidth = 640
RenderToMain = False
RenderWindowYPos = -1
RenderWindowHeight = 480
[Movie]
ShowInputDisplay = False
Author =
DumpFramesSilent = False
DumpFrames = False
PauseMovie = False
[Android]
MainDown_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Button 97
DPadDown_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 16+
InputA_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Button 96
InputX_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Button 99
InputL_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 102
CStickLeft_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 11-
InputStart_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Button 108
MainRight_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 0+
CStickDown_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 14+
DPadUp_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 16-
InputZ_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Button 104
CStickUp_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 14-
DPadLeft_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 15-
DPadRight_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 15+
InputY_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Button 100
ScreenControls = True
InputR_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 103
InputB_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Button 97
MainUp_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 1-
CStickRight_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 11+
MainLeft_0 = Device 'a691ea53a0f5aabd5e2dd0674f6ce7c0c6aca61f'-Axis 0-
[General]
ShowFrameCount = False
LastFilename = /storage/01D19D9B320A90E0/Roms/gc/Animal Crossing (USA).iso
RecursiveISOPaths = False
NANDRootPath =
ISOPaths = 0
ShowLag = False
DumpPath =
WirelessMac =

I've also had luck with a PS3 controller using Sixaxis Controller. I downloaded Dolphin V4.0-8727 (which has a working controller configuration menu) and manually mapped the PS3 keys, then copied the [Android] config into my original dolphin.ini and reinstalled the newest Dolphin version.

[Android]
InputA_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 96
InputB_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 97
InputX_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 99
InputY_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 100
InputStart_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 108
DPadUp_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 19
DPadDown_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 20
DPadLeft_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 21
DPadRight_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 97
MainUp_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Axis 1-
MainDown_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Axis 1+
MainLeft_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Axis 0-
MainRight_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Axis 0+
CStickUp_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Axis 14-
CStickDown_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Axis 14+
CStickLeft_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Axis 11-
CStickRight_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Axis 11+
InputL_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 104
InputR_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 105
InputZ_0 = Device 'a604f897f8e4cc8e80cbc672b77a7a5b4e7c6b6d'-Button 103
ScreenControls = True

If anyone knows if there's a way to get vibration going let me know. It works on Dolphin PC with a wired PS3 controller, but I can't seem to get any game/app on Android TV to work. Tried setting "AdapterRumble0 = True" with no luck.