Few settings cause more quiet rage than this one: you press the button labelled A and the game does what B should, so you go to fix controller button mapping swapped ab xy layout behaviour and discover three different industries use the same four letters in two different arrangements. Untangling which layer swapped your buttons — the pad’s physical layout, Android’s key codes, or the app’s prompt logic — takes ten minutes once you can see the whole picture.
The two layouts that cause every fix controller button mapping swapped ab xy layout problem
| Position | Xbox layout | Nintendo layout |
|---|---|---|
| Bottom | A | B |
| Right | B | A |
| Left | X | Y |
| Top | Y | X |
| Typical confirm position | Bottom (A) | Right (A) |
PlayStation sidesteps the alphabet entirely with shapes, which is why DualSense users meet this issue as “the prompts show letters I don’t have” rather than swaps (see connect ps5 dualsense controller android). The crucial insight: game engines care about position, labels are regional dialects. Android’s standard mapping expects Xbox-position semantics — bottom = confirm-class input. Nintendo-layout pads (8BitDo in Switch mode, Joy-Cons, many retro pads) report their right-position A where Android expects a B-class report, and suddenly confirm lives on the right and cancel on the bottom, exactly backwards from your muscle memory.

Diagnose your specific swap before fixing
Open a gamepad tester that names inputs by Android key code. Press the physical bottom button: a healthy Xbox-semantics chain reports BUTTON_A; a Nintendo-ordered pad in Switch mode reports BUTTON_B from the bottom position (because that position wears the letter B on the pad, and the pad reports letters, not positions). That one observation decides your fix:
- Tester shows letters following the pad’s printing → the pad reports letter-identity; fix by changing pad mode or remapping per app.
- Tester shows correct positions but the game displays swapped prompts → the game is displaying prompts for a different layout family; the inputs are fine, only the pictures lie. Many games have a “controller type” prompt setting.
- Tester itself shows chaos (bottom = X) → rare; a wrong keylayout for an unrecognised pad — the mode-switch remedy in fix unresponsive dpad button binds android applies.
The fixes, ranked by permanence
- Change the pad’s mode (best fix). Multi-mode pads in X-input mode report Xbox semantics to Android, ending the swap system-wide. For an 8BitDo Pro 2 that means leaving S mode for X or A — with the prompt consequences mapped in 8bitdo pro 2 setup android guide. You lose Switch-mode gyro; that is the trade, stated plainly.
- Use the pad maker’s app. 8BitDo Ultimate Software and GameSir’s app can swap AB/XY interpretation on the device itself for several models, storing the change onboard — nearly as permanent as a mode change, and it survives across phones.
- Remap inside the emulator/app. RetroArch: Settings → Input → Port 1 Controls — bind by position (“press the bottom button”) and ignore the letters it names things; also check the “Menu Swap OK/Cancel” toggle, which exists precisely for this war. Dolphin and PPSSPP bind by position natively. Save as a per-device profile.
- Accept and adapt per game. For a single native game with fixed prompts, sometimes the adult answer is twenty minutes of retraining — but do this only after options 1–3 fail, not as a first resort.
All figures are estimates based on typical titles and stock settings; individual games vary widely.
The confirm/cancel sub-problem
Even with positions consistent, Android apps split on whether bottom or right means confirm — Japanese-developed titles historically confirm on the right (Nintendo/PlayStation-Japan convention) while Western titles confirm at the bottom. Emulators expose this as a dedicated toggle because core menus and games disagree with each other; RetroArch’s Menu Swap OK/Cancel and similar options in standalone emulators exist so you can align the menus with the games you play most. Set it once per emulator after your position fix, then stop noticing it — that is the sign the job is done. If a family member shares the pad, write the chosen convention on the profile name; future-you will not remember which way round you standardised.
Building a household standard
Pick one semantics (Xbox positions recommended on Android), apply it at the highest layer available for every pad you own — mode switch first, maker app second, per-emulator profiles third — and name saved profiles with the layout (“Pro2-Xbox”) so future pairing sessions don’t resurrect the swap. Every pad in the Controller Setup library is documented against that same standard, so cross-referencing layouts between guides stays sane.
Why this keeps happening: a thirty-second history
The swap is a fossil of regional design. Nintendo fixed its arrangement in Japan in the 1990s — A on the right as the primary action position, matching the reading direction and the Super Famicom pad. Microsoft’s Xbox, designed in the US two decades ago, mirrored it — A at the bottom as primary — and Xbox semantics became the PC and then the Android default. Sony’s shapes split the difference geographically: in Japan, Circle (right position) confirmed and Cross (bottom) cancelled for decades, while Western PlayStation software confirmed on Cross — a regional split Sony only unified worldwide with the PS5 generation, to the confusion of a generation of Japanese players whose muscle memory said otherwise. Your Android phone sits downstream of all of this: it standardised on Xbox positions, while a large share of the world’s controllers still print Nintendo’s arrangement. Neither is wrong; they are two surviving standards, like date formats. The fix strategies in this article are simply translation layers between them, and choosing your household standard (Xbox positions, on Android, almost always) is the same peace treaty every multi-platform player eventually signs.
One forward-looking note: newer pads increasingly offer hardware-level ABXY swap in their companion apps precisely because this friction is universal, and emulator frontends now ask your preferred confirm position during first-run setup. The problem is slowly being designed away — until then, the layer-by-layer fix above remains the reliable path.
Quick reference: which pads arrive swapped on Android
For the shopping-and-setup moments, the landscape in one breath: Xbox controllers and any pad in X-input mode arrive correct-by-Android-definition. Nintendo Switch Pro Controllers and Joy-Cons arrive letter-swapped by design. 8BitDo pads depend entirely on the mode switch — S is swapped, X is not, A/D follow the older PC convention that most Android games tolerate but some misread. DualSense arrives unswappable but unlabelled for Android’s purposes, its shapes immune to the whole dispute. Retro-styled pads from smaller brands are a coin toss documented nowhere; the tester diagnosis earlier in this article is the only reliable census. If a household owns several of these, the per-pad profile names suggested above stop the swap from being rediscovered every time someone borrows a controller — the fix is five minutes, the remembering is the hard part, and labels are cheaper than memory.
Frequently Asked Questions
Why are A and B swapped on my controller on Android?
Your pad uses the Nintendo letter arrangement (A on the right, B on the bottom) and reports letters, while Android expects Xbox positional semantics (A on the bottom). The pad’s X-input mode, its maker’s swap option, or per-app remapping aligns them.
Is there a system-wide ABXY swap setting in Android?
No stock Android toggle exists. Fixes live at the controller mode level, in the manufacturer’s app (stored on the device for some models), or inside each emulator/game.
What does RetroArch’s “Menu Swap OK/Cancel” do?
It exchanges which position confirms and which cancels inside RetroArch’s own menus, letting you match the convention your games use. It does not change in-game bindings, which are set separately under Port Controls.
My buttons work right but the on-screen prompts are wrong. Is that the same problem?
No — that’s a display mismatch only. Your inputs are correct; the game is drawing prompts for another layout family. Look for a controller-type/prompt-style option in the game’s settings.
Does using X-input mode on an 8BitDo pad fix the swap everywhere?
Yes for Android purposes: the pad then reports Xbox semantics system-wide. The trade-off is losing Switch-mode features such as gyro in that mode.


