Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Can anyone think of a way to have a hotkey swap joystick mapping for players 1&2 in real-time?



  • This is a pretty weird one.

    There are a handful of Mega Drive and Mega-CD games which can be controlled with the XE-1 AP, a Japan-only analog stick/slider controller (i.e. 3 analog axes). In addition to analog mode, the controller has a switch to toggle acting as a standard Mega Drive controller.

    Genesis Plus GX emulates this controller very well and can allow all of these games to be played. (Technically, there are also a couple of 32X games with analog support, but PicoDrive, the 32X emulator in RetroPie, doesn't support the analog pad, so *shrug*.)

    The games in question:

    Mega Drive

    • After Burner II (Japanese version only)
    • Ayrton Senna's Super Monaco GP II
    • Fastest 1
    • Galaxy Force II
    • M.U.S.H.A.

    Mega CD

    • After Burner III (Japanese version only)
    • Night Striker
    • StarBlade

    32:

    • After Burner Complete
    • Space Harrier

    Different games employ the pad in different ways; in some, you just plug in the XE-1 AP and go. For others, you have to start in digital mode, then swap to analog at the title screen. Since Genesis Plus GX doesn't support the "digital mode" of the XE 1-AP, this is mildly inconvenient, as you'll have to start with a 3/6-button controller in the settings, then go into RGUI (the RetroArch menu) and switch it for an XE-1 AP later. For the worst of them, though, you need a regular pad in slot 1, and an XE-1 AP in slot 2. This is where things become a bit dicier.

    Short of having two controllers hooked up simultaneously just to play a game by myself, which while historically accurate, suuuuuuuucks, does anybody have any ideas for a way to get the games started with a normal 3/6-button joystick for player 1, then toggle a setting on the fly somehow to switch to controlling the player 2 joystick, which would already be set up as an XE-1 AP in the settings? Heck, is there a way to swap players 1 and 2 via RGUI that could solve this?

    I love me some crazy 16-bit analog games, but getting them running can be a real hassle.

    EDIT: I figured out a way to play Night Striker, the only game I'm aware of that needs a digital pad in slot 1 and an XE-1 AP in slot 2, on a single controller. Remember to make sure lr-genplusgx is set as your default Mega Drive emulator for either this or all games in the runcommand. If your Pi model can handle it, I recommend for all games, as Genesis Plus GX is a much more accurate emulator than PicoDrive.

    1. Launch the game from EmulationStation
    2. Open the RetroArch menu (default: Select+Start)
    3. Select Settings
      • Select Input
        • Select Input User 2 Binds
          • Set User 2 Device Type to MD XE-1AP
          • Set User 2 Device Index to #0 or whatever your current controller is called (press left once, probably)
    4. Go back to the top level menu and open Quick Menu
      • Select Save Game Overrides

    Now, whenever you launch Night Striker (all the time, right everybody?) it will be configured so that the player 1 controller in RetroPie is actually controlling both player 1 and 2 at the same time. If you haven't messed with the button layouts, this means the digital "player 1" controller is on the RetroPie d-pad, Y/B/A buttons and Start. the analog "player 2" controller is on the RetroPie left analog, L1/L2/R1/R2 buttons, Select and Start.The fact that both controllers are sharing a physical Start button doesn't seem to affect anything in-game.

    Remember to toggle controls to Analog in the in-game Options menu, and you're good to go.



Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.