Different Input Mappings for two Controllers

What I want to achieve is to play North&South (P-UAE) in 2 human player mode on my NVIDIA shield using two shield controllers only, no keyboard. Everything works well with defaults, except changing units in battle screen. In the original game, the left and right shift keys are used to achieve unit switch for player 1 and 2 respectively.

If I map a RetroPad Button (e.g. X) to RETROK_LSHIFT, both players/controllers will change the unit of player 1. (Options - Show Mapping Options - RetroPad X - RETROK_LSHIFT)

How can I map X of the first controller to LSHIFT, and X of the second controller to RSHIFT such that it is not possible for player 1 to interfere with player 2 and vice versa?

I don’t know of any way to do it without changing the game’s internal mapping.

Ok. I don’t think that I can change the game mapping. Or does anybody know how?

I did further reading about binding (physical controller to RetroPad abstraction) and mapping (RetroPad to Core Input). Since binding is individual for each controller but mapping isn’t, my next approach would be:

  • bind the physical X button of controller 1 to one RetroPad Event, let’s say “X” as well
  • bind the physical X button of controller 2 to a different RetroPad Event, let’s say “Y”
  • unbind both physical Y’s of controller 1 and controller 2 such that no player can change the other player’s unit
  • map RetroPad X to RETROK_LSHIFT and RetroPad Y to RETROK_RSHIFT

Let’s see…

Hmm, this approach did not work.

Figured out that the second player can’t use a second joystick on amiga, he needs to play on the keyboard (cursor up/down/left/right, space, rshift). SOLVED: So I was able to configure physical controller 2 as keyboard, using the desired bindings :crazy_face:

Only drawback is that player 1 (RetroPad) is able to move and fire at the same time, whereas player 2 (Keyboard) movement is stopped with fire and needs to be repressed to move again. Somebody happen to know a solution to this?