Can't control OSD using Gamepad?

I have a Retro USB SNES gamepad I’m using on a Retropie. The controls in the games work perfectly. But when I bring up the on screen display (where I can change settings, save state, load state, exit, etc), I cannot move around using the gamepad. However I can select choices using B button on the gamepad. I have to use the keyboard up/down arrows to move around the OSD menu and then confirm or cancel using the gamepad. What am I doing wrong? I’m planning on putting this Retropie in a dedicated box with my TV, and there won’t be a keyboard hooked up. So this is essential to figure out what the problem is.

is your dpad mapped to analog axes? If so, you can enable analog dpad mode to make it work.

No I unbound the analog axis bindings. Which settings do I specifically need to set here? Do I just set input_player1_analog_dpad_mode = 1? Or do I also have to set the individual axis bindings too? Cause its just a SNES controller. No analog controls like a PS3 controller. Here is my current player 1 cfg

input_player1_a = “x” input_player1_a_axis = “nul” input_player1_analog_dpad_mode = “0” input_player1_b = “z” input_player1_b_axis = “nul” input_player1_a_btn = “5” input_player1_b_btn = “1” input_player1_down = “down” input_player1_down_axis = “+1” input_player1_down_btn = “nul” input_player1_joypad_index = “0” input_player1_l = “q” input_player1_l2 = “nul” input_player1_l2_axis = “nul” input_player1_l2_btn = “nul” input_player1_l3 = “nul” input_player1_l3_axis = “nul” input_player1_l3_btn = “nul” input_player1_l_axis = “nul” input_player1_l_btn = “6” input_player1_l_x_minus = “nul” input_player1_l_x_minus_axis = “nul” input_player1_l_x_minus_btn = “nul” input_player1_l_x_plus = “nul” input_player1_l_x_plus_axis = “nul” input_player1_l_x_plus_btn = “nul” input_player1_l_y_minus = “nul” input_player1_l_y_minus_axis = “nul” input_player1_l_y_minus_btn = “nul” input_player1_l_y_plus = “nul” input_player1_l_y_plus_axis = “nul” input_player1_l_y_plus_btn = “nul” input_player1_left = “left” input_player1_left_axis = “-0” input_player1_left_btn = “nul” input_player1_r = “w” input_player1_r2 = “nul” input_player1_r2_axis = “nul” input_player1_r2_btn = “nul” input_player1_r3 = “nul” input_player1_r3_axis = “nul” input_player1_r3_btn = “nul” input_player1_r_axis = “nul” input_player1_r_btn = “7” input_player1_r_x_minus = “nul” input_player1_r_x_minus_axis = “nul” input_player1_r_x_minus_btn = “nul” input_player1_r_x_plus = “nul” input_player1_r_x_plus_axis = “nul” input_player1_r_x_plus_btn = “nul” input_player1_r_y_minus = “nul” input_player1_r_y_minus_axis = “nul” input_player1_r_y_minus_btn = “nul” input_player1_r_y_plus = “nul” input_player1_r_y_plus_axis = “nul” input_player1_r_y_plus_btn = “nul” input_player1_right = “right” input_player1_right_axis = “+0” input_player1_right_btn = “nul” input_player1_select = “rshift” input_player1_select_axis = “nul” input_player1_select_btn = “2” input_player1_start = “enter” input_player1_start_axis = “nul” input_player1_start_btn = “3” input_player1_turbo = “nul” input_player1_turbo_axis = “nul” input_player1_turbo_btn = “nul” input_player1_up = “up” input_player1_up_axis = “-1” input_player1_up_btn = “nul” input_player1_x = “s” input_player1_x_axis = “nul” input_player1_x_btn = “4” input_player1_y = “a” input_player1_y_axis = “nul” input_player1_y_btn = “0”

I recommend mapping through the in-game menu rather than mucking around with cfg files.

Okay. so I used the OSD Input Options to set my joypad up. I chose the Configure All (RetroPad) option. I bound the following:

up,down,left,right b,y,a, x, select, start, L, R

I skipped

L2, R2, L3, R3, Left Analog left/right/up/down and Right analog left/right/up/down since this is a SNES controller.

No change. Still cannot move around the OSD using the SNES controller. I have to use the keyboard. What am I doing wrong? I have the following settings on this screen:

Player #1 Device RetroUSB.com RetroPad Device Type: Joypad Analog D-pad Mode None Input Axis Threshold: 0.5 Autodetect Enable ON Bind Mode Joypad

etc…

Any hints on how to make this work?

Hmmm setting Analog D-Pad Mode to Dual Analog fixed the issue. That is odd. How come the OSD isn’t made to work with just a normal D-pad and it has to use Analog? I would imagine a lot of people are using NES or SNES usb gamepads.

My guess is that the RetroUSB pad is presenting the dpad as an analog instead of a digital hatswitch, i.e. it’s a peculiarity of the pad. Analog dpad mode is designed specifically to handle this sort of thing.