flyinghead / flycast

Flycast is a multiplatform Sega Dreamcast, Naomi, Naomi 2 and Atomiswave emulator
GNU General Public License v2.0
1.39k stars 168 forks source link

Suggestion: combine Physical Devices & Dreamcast Devices menus #1282

Open smbhax opened 11 months ago

smbhax commented 11 months ago

Is your feature request related to a problem? Please describe. When I want to set up a second controller to simulate two-player or something, with alarming frequency I forget one of the steps: in the Flycast menus, on the Controls tab, I set one of my Physical Devices to "Port B"--then I usually click the Map button right next to it to make sure the buttons are set up like I want them. But in doing so I forget the mandatory "Dreamcast Devices" section several rows below the Physical Devices section in the Controls tab, where you then also have to select a named device from the Device B drop-down list--so I spend a confusing minute or so flailing around in the game and the Mappings screen trying to figure out why my newly configured player 2 controller isn't working.

Describe the solution you'd like Under the Controls menu tab, the Physical Devices and Dreamcast Devices sections already repeat some of the same text. Since they both have to be set to get a device to function, it seems like they could usefully be combined into one section.

A combined devices UI row might look something like:

SDL Keyboard [B] [Ascii Stick] [Map] [Sega VMU]

Also, it might be useful to have a warning color or some indicator there when a port but NOT a Dreamcast Device has been assigned.

Describe alternatives you've considered Setting an empty "Dreamcast Devices" slot to "Sega Controller" when the corresponding Port is assigned to a Physical Device would at least probably avoid most of the user confusion.

For instance, if I set my SDL Keyboard to port "B" under Physical Devices, if "Device B" under Dreamcast Devices farther down the menu was then automatically switched from "None" to "Sega Controller," I would at least probably be able to use most of the desired control functions even if I forgot to set that drop-down myself.

The user should of course be able to over-ride any auto-set drop-down setting--so I could still switch it to "Ascii Stick" if I wanted to, for instance.

Additional context Just a screenshot showing the second part of Port/Device set-up that I usually seem to manage to overlook:

Untitled-1 copy

flyinghead commented 10 months ago

Unfortunately this isn't realistic with a long list of devices. Here is what it looks like on a typical Android device: image

However, we could have a visual indication for each physical device to show whether it's assigned to an existing dreamcast controller.