mamedev / mame

MAME
https://www.mamedev.org/
Other
8.4k stars 2.04k forks source link

Store controller configs according to the UUID / "stable ID" instead of the OS controller order, and ignore configs for devices that aren't connected. #5835

Open rb6502 opened 5 years ago

rb6502 commented 5 years ago

The current system of erasing the cfg if the user disconnects a controller was reasonable in 2000 when the DB-15 joystick port was dominant, shaky in 2010 when USB was dominant, and is completely unworkable in 2020 with Bluetooth and proprietary wireless dominant.

We have a system for configuring controllers by their "stable ID", but it requires extra work by the user and it really needs to be just how things work internally without the user needing to care. Other emulators already do this.

In order to handle the old "disconnect the controller and there are no mappings for anything else" problem, we would not apply mappings for any stable ID controller that isn't present.

galibert commented 5 years ago

We can forcibly ensure that a mapping is available for the handful of buttons needed to configure inputs. That's, see, keyboard emulation, menu popup, directions, quit and select, right?

On Thu, Oct 31, 2019 at 7:01 PM R. Belmont notifications@github.com wrote:

The current system of erasing the cfg if the user disconnects a controller was reasonable in 2000 when the DB-15 joystick port was dominant, shaky in 2010 when USB was dominant, and is completely unworkable in 2020 with Bluetooth and proprietary wireless dominant.

We have a system for configuring controllers by their "stable ID", but it requires extra work by the user and it really needs to be just how things work internally without the user needing to care. Other emulators already do this.

In order to handle the old "disconnect the controller and there are no mappings for anything else" problem, we would not apply mappings for any stable ID controller that isn't present.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mamedev/mame/issues/5835?email_source=notifications&email_token=ACGSF4JFUNY5HFK6PUKV6QTQRMMN3A5CNFSM4JHPCA7KYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HV37RXQ, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACGSF4KPKV2VKKSNUT2RFMDQRMMN3ANCNFSM4JHPCA7A .

rb6502 commented 5 years ago

Right. The idea is that if the connected devices don't cover mappings for those functions then we'd force the keyboard defaults for them.

Firehawke commented 5 years ago

This one will require considerable docs reworking, so I'm replying so that I'll remember to re-assess this once it's implemented and rework things as needed.