There has been quite a few requests for this functionality on Android but apparently it’s quite a task to implement.
I actually found the Dualshock 3 buttons to be mapped completely wrong in all cores (as in, the Sixaxis Controller software borked them). I went into Street Fighter 2 on a Playstation 1 core, went into the button config (for button mapping test) and realized they didn’t correspond correctly. I actually remapped the buttons in the sixaxis controller software. Turned out I had to change the mappings in the sixaxis gamepad to the following (after which, when using SF2 to test again, the buttons properly corresponded).
In Sixaxis Gamepad Mappings:
Cross=X
Circle=Y
Square=A
Triangle=B
So now that the buttons are mapped CORRECTLY, they actually also correspond correctly to that of SNES (another 4 thumb button controller).
The first thing I will do if custom mapping per core gets implemented is fix the mapping for all 2 button cores (NES, GB etc…) because as it stands the CORRECT way is backwards from how anyone would use them. It should be Square=B and Cross=A (using a Dualshock 3 controller in a NES or GB game).
I’m aware of the change nintendo did from their 2 button layout (NES, GB) to their 4 button (SNES) layout where they put the B and A buttons as the bottom and right. They realized that when playing classic “Mario” style games that people would have to hold their hand in an awkward position to have the run and jump (B and A respectively on the SNES) work the same. Which is why they allowed you to select controller layout that made Y=Run and B=Jump (SNES controller), which everyone used.
But I’ve brought this up before and it didn’t gain any traction so I’ll just be patient. There are many more important issues for the devs to resolve than this.