Something wrong with button assignment with 8BitDo M30

Hi there, I really hope I am in the right sub forum, please forgive me if not as I very rarely post here.

I have been using Retroarch on Windows 11 for about 3 years now, and I use my M30 for every core where the real hardware doesn’t have a diamond button layout controller, and for those cores I use an Xbox One X controller. I exclusively use the M30 in Bluetooth X Input mode and I triple checked it was in X Input mode before making this topic. I checked in Steam controller settings and also the online controller tester, where every button pressed matched 8BitDo’s X input mapping from the factory as per the manual here (check the x input section):

Also, when I turn the controller on, Retroarch flashes an “x input controller in port 1” message.

The trouble shooting i have done is completely uninstall Retroarch and all associated folders and a registry cleaning with Revo Uninstaller, rebooted and done a fresh install in a new folder. I believe this happened with one of the recent RA updates and maybe it thinks the controller is something else?

The issue:

Well, I have NO idea what is going on. Retroarch has reversed the A and B buttons, and then the X and Y buttons.

My 8BitDo Pro 2 and Xbox One X controller work as normal in that regard.

The thing is, I have made custom layouts for all cores I use it in, and up until the latest release, A was A and B was B, X was X and Y was Y.

I just do not understand it, cause if I use this tool https://hardwaretester.com/gamepad

And I press A, it shows A, B, B, X, X, Y, Y, LB shows LT, RB shows LT as it’s supposed to. It’s just Retroarch.

I updated the firmware just in case.

I reset the controller by putting it into Switch mode, then turned it off and put it back into X input mode.

Lost on this one, and since Retroarch is like a portable install and a non invasive app, everything gets deleted on an uninstall anyway, so it’s not that, as I am writing this to you after a fresh install.

It also means I have to engage the “swap menu buttons” option so A goes forward and B goes back (and how my mind is tuned to work lol).

Ok it might not sound like a huge deal, but I have to swap that every time I use a diamond button layout controller, and I also have to change all these cores now and I don’t want to do that just yet if there’s some other idea I can try or if it’s a known issue. I really hope I have explained it correctly, thank you!

Cheers

Sorry I just wanted to also add that I checked 2 different games with steam controller input disabled about an hour ago, so I used games that natively support X input, and both A and B were A and B in the first 2 button platform game, and in the more complex game all 4 buttons matched their correct names in the game’s native input mapping tool.

Ok I have worked something out if that helps. When I use the other controllers the app comes up with “unrecognized x input device, going to fallback”. It’s been doing this all this time for years and I never noticed until it STOPPED doing it for the M30, So someone must have added a built in config for it and they simply put it in it wrong but only when via bluetooth. When wired, it comes up as an “Xbox 360 controller” and works correctly.

So my question is, is there any way to set ANY controller to be recognized as an “xbox 360” controller in retroarch, within RA itself? i.e. without extra apps.

Cheers

Have you tried manually remapping your gamepad to the way you want? Go into Settings > Input > RetroPad Binds and experiment with it. You can even save your configuration afterwards, which will take precedence over the autoconfiguration.

Hi, I finally worked out what is going on. I don’t know how to fix this at all, sorry, and I will explain why. BTW thanks for you suggestion md2mcb!

Now, remember, this never used to be this way, it’s only with the recent build.

I have now confirmed this with the 8BitDo Pro 2 in Bluetooth mode, the Gulikit KK Pro 2 in Bluetooth mode and the M30 in Bluetooth mode. All these controllers are in X input mode via Bluetooth. Triple checked and confirmed. The A&B and X&Y buttons are only reversed when connected via x input Bluetooth. The reason the 8bitdo ultimate doesn’t have the issue is that it’s not recognized and goes to the “fallback” setting.

If any of those three controllers are wired, they are fine again. So something is really up here, and I did try remapping the M30 myself and then the core overrides ruined everything so I have to start from scratch. One thing I noticed, if I re bind the buttons on the M30, A still goes back and B forward (with RA default settings otherwise), AND when I open a new core, it’s still seen as B and B as A. So I have absolutely no idea, and have to watch some tutorials.

But please believe me when I say that I have gamed around 90% over Bluetooth since about 2017, and only ever gamed wired when charging.

It seems Bluetooth x input on RA has swapped those 4 buttons but only RA, not any other x input app or game, and it’s a visual thing too cause the buttons are corresponding to the wrong inputs.

I promise you, for years I never once configured my controller in RA, all I did was assign mapping for cores that I didn’t like the default, like Saturn for example - but PS1/SNES etc I never touched as they were always perfect by default. They are wrong TOO now.

Isn’t it entirely possible that a bug crept in with the update and only X input when in Bluetooth mode? It has to be cause it’s NOT giving me the “controller not recognized” for any of the main three I just mentioned, and the buttons are reversed on all 3.

PS the reason I don’t know how to fix it is every time I plug the controller in, those 4 buttons will swap again, and all my individual core remaps will once again be wrong. However, I will see if I can somehow make it stick with a manual main remap of RA before I do any core remapping. I have reset everything to default again, all I can do is try.

Honestly, I noticed this when I went into the menu after update and the confirm and cancel had reversed, and then in multiple cores when I realized the X and Y were too. it’s saddened me a bit cause I am not an RA expert by any means, and I had to really learn just how to do core remapping, and it’s been flawless then suddenly everything just flipped.

Obviously, if ANY games in raw x input mode were seeing A as B and Y as X and vice versa, and Steam (I even tried closing steam entirely, and Playnite as well just to make sure they weren’t interfering), I would say it might be a bug in a Windows update. But it’s just RA.

1 Like

BTW cause the above post is long and some may decide to skip it (I understand), if anyone is using X input over bluetooth and it’s working correctly, please let me know which controller and RA version. That would be a big help. TIA!

I’ve always played wired, so I can’t test it for you. To double check, I’d download a previous build and make sure it’s working properly there; because, if it isn’t, then the issue is within your operational system or bluetooth drive/dongle. Regressions do occur, and if it’s really a regression, then it would be best to open an issue on RetroArch’s Github.

About remapping, it shouldn’t give you any issue, if you do things correctly. The theory is: RetroArch is commanded using a RetroPad, which is just an abstraction, a fictitious gamepad. Your real gamepad is mapped to a RetroPad once, then it will behave similarly throughout all interfaces and cores. Because of that, you shouldn’t use overrides for input; instead, use remaps, which can only be accessed within the quick menu, after a content is loaded.

Alas, if you already made a mess of configurations, it becomes hard to sort everything out. So, yes, your input mappings would be all over the place. Perhaps starting over would be more sensible; the correct way this time, to avoid future complications.

Feel free to ask if you need help.

as with all 8bitdo stuff, you’ll want to avoid generic xinput pairing modes, as this will cause the pad to lie about its vid/pid to report a generic one instead of its real one, which causes it to be misidentified, which in turn often leads to the sorts of incorrect mappings you’re describing.

If it has a dinput/android pairing mode, use that one instead.

2 Likes

I had this sort of problem with my Pro 2 (kind of the opposite problem as the OP, as my M30 was ok)… so it can happen with any 8bitdo, I guess. I finally sorted it with lots of random trial and error, but thanks, Hunter, for the specific info on these.

Hi thanks for trying to help, but as I said it worked for YEARS, perfectly, until the latest Retroarch.

I can’t work it out, cause I have assigned it, and A is supposed to be A now, yet ANY GBA core when I press A it does fast forward, when I check the mapping, it says fast forward is on left trigger. A button is definitely not assigned to left trigger.

I have never used with d input in my entire life, always X.

Please believe me, I am a lot of things but I wouldn’t lie and cause myself all this hassle. Something has changed in RA.

OK, let me rephrase it a different way.

I have 2 controllers I like to use in Retroarch. An Xbox Series X controller, and the M30 when I need turbo and/or really good d-pad control (maybe half the games).

Since I have never had to do this until now, I am not sure I am doing it correctly, so I will ask at least if it’s possible.

Is it possible to create a master profile for these controllers about which buttons does what, that cores will then follow? i.e. if the main mapping sees A as A, a core should see A as A? And then I can do any further needed core remapping from there?

BTW it works exactly as intended in Bizhawk, Duckstation (digital games), mGBA standalone, Kega Fusion standalone, PPSSPP, and Anstream Premium.

Something is just not making sense here, the fast forward threw me for a loop, so once again I deleted and reset all retro arch preferences, but NOPE, every single GBA core goes into fast forward when I press A. You don’t think I would have noticed it if it was doing this for 3 years prior?

I Have NOT updated the controller firmware.

OK, so CAN I create master profiles for two different controllers? After all I can’t use a digital only controller for all emulation.

And btw, I have been trying to understand RA’s turbo function for a year and I can’t grasp it, so it’s much easier to use the easy version on my controller.

I am old, and I have arthritic hands, so please don’t flame me or that, I only do it in arcade shmups.

If the program at least has the capability for me to route my way around this and override the factory settings, that’s fine, I will watch tutorials and work it out. If it can only do it for ONE controller, i.e. a master RA profile as to what button is what can only be done for one controller, I really don’t know what I am going to do, as everything just used to match. A=A, and B=B, and every button equaling exactly the x input mapping the manufacturer designed into it.

Would it prove it to anyone if I showed you a gamepad tester or something like joy2key showing you the buttons are correct and it’s RA that’s wrong here?

Isn’t it entirely possible someone set up a borked profile and RA assigns it to my controller?

I am a bit desperate as I have about 70 save files over the last 3.5 years, and not one game is playing normally. I know it sounds minor in the grand scheme but as an old single gamer guy, it really got to me. Stupid, huh? So many hours spent on it so far and I am completely confused.

I will even take another aspect as a second question. If you can recommend a controller that has TURBO where everything is mapped correctly from the get go, please let me know and I’ll buy THAT!

TIA Peace

Drybonz when you say trial and error, do you just mean to work out what buttons Retroarch saw as what and map cores from there? Or did you create a profile for it?

My pro 2 is borked as well, it was plugged in when I initially reported it was ok. All of those controllers wired are exactly as intended.

In fact I think even the series X might be borked over the microsoft usb adapter (the real one direct from microsoft, not a fake copy), maybe again only ok wired.

All I know is retroarch was dead straight forward to set up controls for, and now it’s the most complicated emulator I have ever used after one update.

Can I try older versions? Maybe that’s the key.

Look it’s also entirely possible microsoft borked something in bluetooth x input with a windows 11 update - BUT, the reason I keep saying “nah” to that one is that every other program sees the buttons as what they are.

I am so totally lost, so lost with this.

Honestly, if Bizhawk did arcade properly and have run ahead, I’d use it for all the 16 bit and under cores, but the latency is egregious in that one!

And there you go. How I didn’t think of this before… I uninstalled all retroarch, re booted, and download the latest portable ZIP installer and 2 versions back installer, I have them in C:/Emulators/Retroarch and C:/Emulators/Retroarch Latest.

Why I didn’t think of using the portable before I will never know, to prove my point.

Older version, “xbox controller detected”, everything perfect.

New version “bluetooth x input controller detected”, borked.

NOW will people believe me? I have used every major stable version of Retroarch since 2020. I thought it was only 3.5 years but just looked back to when I stopped using my Switch and moved to PC gaming exclusively, and it was May 2020 ( I guess I have Covid brain fog, just kidding lol).

5 and a half years and this all happened within the last couple months when the latest one was released.

Can someone please educate me what I will lose by not using the latest?

Ok, I have now tried every single X input Bluetooth controller I own, I have gone back from the start and tried all 8 controllers, and ALL are borked with the latest RA in BT mode. Yep, wrong buttons. A should equal A and B, B if the software is working right, and I am sorry but this is the reality. And so on with X and Y etc. It can’t be the only software on an entire computer that doesn’t see the buttons as labelled (I am talking about the full analog controller now where every label matches it’s x input destination) if there isn’t something wrong. I guess a lot of people play wired for latency and maybe haven’t come across it.

I WILL say one thing. There is definitely something wrong with 8bitdo’s recent controllers when using their 2.4g dongle. Even joy2key doesn’t see them by name, where as the previous Pro 2 over Bluetooth exposed its name and all the button names.

So I am returning the Ultimate 2, am not going to even think about it, and use the old Gulikit King Kong Pro 2 I have had on the shelf for years instead. The only thing it lacks are trigger locks but I’ll cope. And yes, the Gulikit is all wrong over BT in the latest RA also.

Every single controller is.

I have installed just one core for testing (Genesis Plus GX) but these are fresh portable RA installs, and I know immediately without loading a core anyway if the menu is reversed.

One thing I can say about 8BitDO is that their old Bluetooth controllers correctly appear as xbox controllers with all the same mappings in any software, but yes, something weird about the Ultimate 2 as it’s unknown and I have had to enable steam input multiple times for that whereas I never used it before.

So that’s out of the equation.

What we have confirmed is 2 Gulikit controllers, 2 older BT 8bitdo controllers, A Defender controller, A Battler GC, A Logitech G wireless, A Gamesir something, can’t remember model, T something. Cheap and thrown to dustbin as was awful (i know their new stuff is great these days)!

I bought a couple of these as collectors items but I opened them (the retro fighters stuff) just to prove this point. I don’t care, just want it to work!

So really,

I could go and create another 25 core profiles for the current RA as well as re do all the individual game overrides, then they fix it in the next release and everything is borked again. It makes no sense to use the latest right now IMO. Not for me at least.

At least we know it’s not Microsoft or the controllers, the only consistent issue here is the version jump in RetroArch,

Now I think this can start being submitted as a bug?

And there you go, the latest version that is A-OK is 1.20. So something happened in 1.20.1 that completely borked x-input bluetooth.

Simple as that. I spent so many hours on this but I hope this helps someone else.

I tried every version from 1.17 to see where it would stop working, and 1.20 was it.

This is why I said it felt like it changed with the last update.

You know what? I am an old man who is NOT insane. I can live with that LOL!

I hope you are all ok with my self deprecating humour.

Peace, and let’s talk about this!

PS I tested the “download latest controller profiles” with 1.20, and it indeed ruined it, so do NOT do this if you are using an older version of RA that recognizes your controller correctly!

I have done all the testing for you.

Now all I have to see is if there’s anything I particularly need 1.20.1 for, but have to be very careful to never download new controller configs.

Actually, this might be a stupid question, but what if I copied the default factory controller configs from version 1.20 to 1.20.1? Would that just solve it in one? Which file(s) would I need to copy?

TIA again!

Hmm, copying the entire autoconfig folder over and replacing the files from 1.2 to 1.2.1 didn’t do it, so I have no idea. There must be a way, cause I reinstalled 1.2.1 fresh and then turned internet off before I launched it, so it hasn’t downloaded anything (I know from the menu since both have “swap cancel and ok buttons” engaged and are opposite. I’ll keep trying!

Sadly it can not be done, it is baked into the latest .exe, cause I copied the entire 1.20 files and replaced everything in 1.2.1, except for the retroarch.exe file, and the controls are still reversed but still perfect in 1.2.0. Oh well. I was so excited to think I was going to find THE perfect solution. I guess someone who knows how to change a file in the .exe but I wouldn’t even know where to begin or even how to extract it and I ain’t gonna try. At least we know it can not be done, if you want the controls to be recognized over x-input bluetooth as they always were, i.e. an x-box layout, then you have to use 1.2.0, for now. Hopefully this is addressed before too many people change all their configs.

Cheers