Well, after two days of playing with the 8bitdo nes30 pro, It is my go-to controller for all things NES Classic. It's a great controller and the analog sticks work great for N64 games. It feels like holding an old SNES controller, although it is a little thinner.
[...]
Follow
@Kobe46's steps here to get the directional pad to work properly with Retroarch:
Easy steps after patching:
1. Plug receiver in player 1 port.
2. Plug wired controller in player 2 port.
3. Turn on NES Classic
4. For the 1st 8bitdo device, hold start to begin pairing mode. The receiver should also be blinking blue LED.
5. When paired should be solid blue on each.
6. Go to a game that uses RetroArch, once game is loaded hit (default Start+Select to get into RetroArch menu) on the 8bitdo controller.
7. On wired controller in player 2 port, navigate the menu: Settings > Input > Input User 1 Binds.
8. Go down to the user bind for directional, tap A on controller 2 to allow you to enter new binding, then on 8bitdo controller tap the corresponding direction.
9. Follow steps until all directionals are set on controller 1.
10. Confirm now with 8Bitdo device that you can move up and down through the menu.
*Steps below are only needed if you have 2 receivers like myself
11. Unplug 2nd controller and plug in 2nd receiver and pair that with 2nd controller.
12. Once paired, this time use Controller 1 to go back 1 menu to Input Menu, this time select Input User 2 Binds.
13. Follow steps from 8 to 10.
14. Presto, both controllers are now functional, enjoy your gaming
*PS I am not 100% sure if you need to do these steps if you re-flash due to the Retroarch configs get wiped. (If I am wrong that could be only if you re-flash RetroArch itself, if you just add games it should not affect it.)