trying to get a second controller to work without breaking the first

Hi. If I want to follow up on inclusion of the autoconfig, where may i find the commit on Github? (I’m new to navigating larger projects on the site.)

Edit: never-mind, I found it. https://github.com/libretro/retroarch-joypad-autoconfig, correct?

1 Like

Is this the commit I was waiting for? If so I shall break the modded controllers out of their box again.

those are from someone else, but yeah, give 'em a shot :slight_smile:

So, I saw that the modkit cfg files were already in my system, but the PID and VID still don’t match. Mine are 5104 and 2DC8, respectively (cross checked with Retroarch verbose log). Checking the configs, the default modkit numbers are: 736 and 1118. I commented those out and replaced them with 5104 and 11720. Retroarch still chose the RB8-64 device which has IDs of 14384 and 11720. So I assume I got the vendor ID correct, but why did Retroarch choose 14384 over 5104?

RetroArch uses a scoring method where each thing that matches is worth some number of “points” and then the highest score gets used. I know vid and pid are in that system, along with reported name and maybe a few others…? So, maybe something else matched (like name or something equally unimportant) and that caused one of the others to have a higher score /shrug

Where may I find the scoring inputs? I could probably make adjustments and test if I know the system a bit better.

I think it’s in tasks/task_autodetect.c:

Cool, I’ll look for that.

I’m an idiot. I never changed 5104 to decimal because thinking is hard. Changing the VID and PID now works correctly.

I think what I’ll do now is test my second N30 modkit and make sure the vendor ID is the same. If it is, shall I submit a change to the repository or is there a possible secondary conflict where I have a weirdly unique PID?

I think I’m in the right because other config files use the 8bitdo VID of 11720 vs. the submitted 1118, but I still don’t know enough about these systems to really understand the context fully.

Yeah, I think 11720 is the correct VID.

A PR fixing it would be very much appreciated :slight_smile:

What I’ll do:

  • Test the layout
  • Crosscheck my second board ID
  • Install the SN30 modkit and adjust IDs if necessary
  • Test the SN30 layout
  • Crosscheck the second board ID
  • Submit changes

Sound good?

1 Like

yeah, sounds great. btw, someone just submitted (and I merged) some more autoconfigs (mostly for Android, IIRC). You might check them out as well while you’re at it

Ok, before we were so rudely interrupted by that brain of mine forgetting how shaders worked, the layout is wrong too. I think I have it straight for the n30 now.

I would like to ask if it’s possible to keep separate hotkey bindings per controller. For example, on the XB1 I have hotkey-enable bound to the right-stick click and use d-pad inputs to manage save states. Retropie uses the select button similarly and I think that’s a good setup, but I don’t want to lose the XB1 settings. For the XB1, hotkey-enable will be button 9 and for the modkit, hotkey-enable will be button 10.

No, we have no way of setting per-controller hotkeys. However, you can add them yourself to your local autoconfig profiles. We just don’t want them in the repo, since it’s a personal/subjective preference

Yeah, I was about to ask whether autoconfig supported that. I shall give it a try and attempt to remember to delete it from the repo copy. I assume the hotkey input commands follow the same syntax as the other assignments?

Ok, I think I’ve almost solved everything. I have the hotkey buttons mapped to the autoconfig files to my taste. The only problem I have left is that the core remap happens across all controllers. This means if I have the buttons adjusted on my XB1 controller, they are incorrect on the 8bitdo controller and vice versa.

What I need is for NES “B” to be assigned to X on the XB1 and NES “A” to be assigned to A. On the 8bitdo, I need to keep B with B and A with A. And this needs to happen for all NES games (Nestopia), leaving the other cores alone.

Is there a way I can do that?

As a reference I found this discussion: Controller Override Per Core, Swap Buttons

Z3R0B4NG wanted the changes to happen across all cores, so , yes. The autoconfig file is best for that. However, in my case I just want per-controller remaps to happen only in Nestopia.

edit: Gah. I just can’t stop trying to think about making it work. Ultimately I think I’m at a roadblock. unless the remap file has the equivalent of an #ifdef, I’m stuck. Only one or the other controller will work. Not both in turn because the remap always has priority and overrides all controller settings. I was so close to figuring it out and having a truly automated couch experience.

I still want to see if I can get this working at some point, but without looking deeply into the repo, it’s not clear what I can/can’t do. I’ll clone the repo as soon as I get a chance to crosscheck, test, and submit the corrected modkit autoconfigs (busy for a bit).

After that, I’ll try to investigate the remap code and see whether there are any opportunities. My malloc-fu is very very (very) weak right now, but I could see if there’s a natural place to get controller-specific remapping to work. It would be a new idea/feature, however, and if it conflicts with how you guys want the retropad to work I won’t pursue it. I’d still, however, lobby for some kind of solution as this seems to be one weakness of the system.

I’m reporting back in on testing. I may have goofed again. It turns out that VID 045E and PID 02E0 is actually correct if you start the controller in Windows mode. The VID/PID I’ve been reporting has been the 8bitdo in Android mode.

So question. Both the N30 and SN30 share the same PID (02E0). Retroarch loads the N30 incorrectly as an SN30, probably due to loading order. Should I just go ahead and submit the files with the Android values and make a note about the Windows mode conflicting?

Hi.

I’m back after a hiatus. I apologize for not getting a pull request in. Life and travel took over in the interim. It looks like the repository has the numbers corrected for the Android values right now so everything’s good.

1 Like

I’m actually having this problem ATM. My Retroarch just can’t recognize my N30 Modkit controller right now (based on NES Classic Controller), and due that I can’t bind any configurations on my FCEUMM-core. Any help for this?