Skip to content

NES on Android TV

This content is not available in your language yet.

WhatPickWhy
EmulatorRetroArch (Play Store)FOSS, GPL v3, no ads, no tracking
NES CoreFCEUmmLightweight — runs smooth on TV hardware
Alternate CoreMesenMost accurate, but heavier — try if FCEUmm works fine
Frontend (optional)DaijishouFOSS game launcher with box art scraping

Set before launching any game. Switch back to Standard/Vivid for movies — it’s 2 presses (⚙️ → Picture Mode).

SettingValueWhy
Picture ModeGameDrops input lag from ~100ms to ~15ms. No visual loss for pixel art
MotionFlowOFFAdds soap opera effect on pixel art
A/V SyncOFFSettings → Display & Sound → Audio Output
Power SavingOFFPrevents random dimming

Game Mode disables MotionFlow, Noise Reduction, Reality Creation — none of which help NES pixel art. RetroArch’s CRT shaders look better than any TV processing.


No physical mode switch. Modes are set via button combos at power-on (saved for next use):

ComboModeUse For
B + HomeD-inputAndroid / Raspberry Pi
X + HomeX-inputWindows PC

Each controller has a dedicated USB dongle (pre-paired, no setup). Plug dongle → power on controller → LED goes solid.

Two identical 2.4G dongles report the same USB device ID. Android merges them into one input. Fix:

ControllerPower-On ComboMode
Controller 1B + HomeD-input
Controller 2X + HomeX-input

Different modes = different device IDs = Android sees two separate controllers.

Order matters: plug Dongle 1 → power on Controller 1 → wait 3 sec → plug Dongle 2 → power on Controller 2.


Main Menu → Online Updater:

  1. Core Downloader → download Nintendo - NES / Famicom (FCEUmm)
  2. Update Controller Profiles
  3. Update Assets

Navigate: Settings (gear icon) → each section below.

SettingValue
Max Users2
Android Disconnect WorkaroundOFF
Menu Toggle Gamepad ComboL1 + R1 (or your preference)

“Android Disconnect Workaround → OFF” is critical for 2-player with identical controllers.

SettingValue
Threaded VideoON
Hard GPU SyncOFF
Max Swapchain Images3
VSyncON

Hard GPU Sync and Threaded Video OFF are PC settings. They cause stuttering on TV hardware.

SettingValue
Audio Latency (ms)128

Lower to 96 or 64 only if no crackling at 128.

SettingValue
Run-AheadOFF

Run-Ahead runs the emulator twice per frame. Too heavy for TV CPUs. Enable only if performance is solid.

Main Menu → Configuration File → Save Current Configuration


  1. Load a 2-player game: Main Menu → Load Content → pick ROM
  2. Press L1 + R1 (or your menu combo) → Quick Menu
  3. Controls → Port 1 Controls → Device Index → select Controller 1 (they’ll have different names since they’re in different modes)
  4. Controls → Port 2 Controls → Device Index → select Controller 2
  5. If X-input controller buttons are wrong: Port 2 Controls → Bind All → remap
  6. Controls → Save Core Remap File

Both USB ports are occupied by controller dongles. Options:

MethodHow
Send Files to TVFree app on Play Store. Install on both TV and phone/laptop. Same WiFi → Send/Receive
USB pre-transferUnplug one dongle temporarily → copy from USB stick to Internal Storage/Download/NES/ → replug dongle
Google DriveUpload from PC → download on TV via Drive app

Organize as: Internal Storage/Download/NES/*.nes


  1. Power on controllers (Home button — mode is remembered)
  2. Open RetroArch → Main Menu → Load Content → Download → NES → pick game
NES8BitDo
D-PadD-Pad
AB (east)
BA (south)
StartStart
SelectSelect

A/B feel swapped? Remap: Quick Menu → Controls → Port 1 → swap A ↔ B → Save Core Remap.

Press L1 + R1 during gameplay:

  • Save State / Load State — save/resume anytime
  • Close Content — exit game back to RetroArch menu

Main Menu → Quit RetroArch or press Home on Bravia remote.


Makes pixel art look gorgeous with scanlines and glow. Zero input lag (runs on GPU).

  1. Online Updater → Update Slang Shaders
  2. Load a game → Quick Menu → Shaders → Video Shaders → ON
  3. Load Shader Preset → shaders_slang → crt:
ShaderNotes
zfast-crtUltra-light — guaranteed smooth on TV hardware
crt-easymodeGood scanlines, slightly heavier
crt-royaleBest looking, heaviest — test first
  1. Save Preset → Save Core Preset (applies to all NES games)

If it stutters, turn shaders off. Use zfast-crt as the safe default.


ProblemFix
Both controllers control same playerUse mixed modes: Controller 1 = B+Home (D-input), Controller 2 = X+Home (X-input). Disconnect Workaround → OFF
Audio choppy / video stutteringThreaded Video → ON, Hard GPU Sync → OFF, Run-Ahead → OFF, Audio Latency → 128ms. Switch core from Mesen to FCEUmm
Controller works in menu but not in-gameEnsure D-input mode (B+Home). Power-cycle: off → unplug dongle → replug → on
RetroArch not on home screenSettings → Apps → find in list. Or install “Sideload Launcher” from Play Store
Can’t open Quick MenuSet Menu Toggle Gamepad Combo in Settings → Input → Hotkeys (e.g., L1+R1)

GameType
ContraCo-op run & gun
Ice ClimberCo-op platformer
Bubble BobbleCo-op platformer (100 levels)
Double Dragon IICo-op beat ‘em up
River City RansomCo-op brawler/RPG
JackalCo-op top-down shooter
Super Spike V’BallSports
Balloon FightCo-op/competitive
Life ForceCo-op shmup