flyinghead / flycast

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

Multiple controllers not working #1702

Open jaoxford opened 3 days ago

jaoxford commented 3 days ago

Hey,

Love this project. Unfortunately got a weird edge case bug when using multiple controllers for playing Crazy Taxi among other NAOMI arcade titles.

We have a Simagic Wheel, Logitech pedals (using an adapter, this is the important bit, I'll come back to this later), and a shifter.

The wheel, and the shifter are picked up in the list of controllers in flycast, however the pedals (with a Leo Bodnar adapter: https://www.leobodnar.com/shop/index.php?main_page=product_info&cPath=97&products_id=187) are not picked up.

Just curious how flycast gets the list of controllers, is this something from SDL or the SDL_GameControllerDB? Would there be a way of updating Flycast to support these pedals, or somehow hack it to work?

It's a weird one, as all the other emulators support the pedals: MAME, Model 2, Supermodel, to name a few.

Any ideas or help would be appreciated

flyinghead commented 3 days ago

Flycast does use SDL to handle controllers. It uses the SDL GameController API for supported controllers but can handle other controllers with the Joystick API. So basically if SDL supports a controller or adapter, Flycast does too.

jaoxford commented 2 days ago

Great, still doesn't entirely explain how other emus get it right, and what's missing from Flycast.

I have found a similar issue regarding the pedal adapter we're using.

flyinghead commented 2 days ago

Other emus use other APIs beside SDL.

jaoxford commented 2 days ago

Aha!

I wonder if Flycast could benefit from using other APIs beside SDL? Do you think it'd be a lot of work?

If you have a list of those other APIs that would be great!

Or would it somehow be easier to get the pedal adapter to work with SDL?

Thanks