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

Proper Atari 2600 controller setup



  • Hello folks,

    I've setup my first Pi with RetroPie about a year ago and I'm still having lots of fun. Now, as a birthday present for my dad, I gave him a Pi as well, so he can play all his favourite Atari 2600 games from back in the day when he was young. Currently he's using a Logitech gamepad similar to a PlayStation controller, but I want to give him that "old school feel" of playing on the Atari with a joystick. So I bought some retro joystick with four buttons, a bit more than on an original Atari joystick, because of all those additional controls and switches that were on the original console itself rather than on the joystick.

    Well, the problem is, only four buttons are still not enough, so some mapping is simply missing. How can I setup the joystick to properly operate the games and the system itself? I thought of just having the actual game controls, like movement and the action button mapped out on the retro joystick, along with the "start" and "back" buttons to quit the game and get back to EmulationStation, and the console's switches on the Logitech gamepad, but while configuring one controller in ES, you can't assign buttons from a different controller.

    So how can I tackle this issue properly? My dad ain't no tech enthusiast or something, so I want to spare him any technical workarounds or using a keyboard on the Pi (since currently there's none). I want to set it all up for him so he can just enjoy playing without much hassle.



  • @Wolf64 there isn't really a way around this. It will work just fine for any system that uses 4 buttons or less (NES, master system, Atari 2600, TurboGrafx 16 etc.) But any system that uses more buttons simply needs controllers with more buttons.


  • Global Moderator

    Technically, it could be possible. Emulationstation only needs a D-Pad and A/B buttons to operate, the rest can be skipped during configuration.

    The Atari emulator would have to be configured separately, since Emulationstation input configuration would not be able to generate a proper mapping for the emulator in your case. Normally, a gamepad configuration would be auto-generated and ready to be used by RetroArch emulators with a file in the /opt/retropie/configs/all/retroarch-joypads folder. You'll have to manually modify the resulting .cfg file and map the gamepad as explained in the Docs - use jstest to get the button and joypad axis values, then modify the .cfg file and put the appropriate values - you'll need to map the joystick, a Start button, an Exit button and probably A and B (you have 4 buttons).
    The 2600 Atari system can be emulated with lr-stella or stella - see https://retropie.org.uk/docs/Atari-2600/. lr-stella would take advantage of the aforementioned .cfg file, for stella you'll probably need to use a keyboard and manually map the gamepad.



  • The OP was more interested in "controls and buttons that were on the original console itself".

    Left/Right Difficult switches
    Reset/Start button
    Select button
    Even the B&W/Color switch has some functions in some homebrew games.

    Are all these mappable to a controller in lr-stella?

    I've never use lr-stella, so this is why I'm asking. I don't think they are mappable to a controller in the standalone version of stella. But I've not specifically tried that.

    If using the standalone version of stella, then you can get a Bluetooth keyboard and use the standard keyboard defaults for these functions:

    F1 = Select Game
    F2 = Reset Game
    F3 = Color TV
    F4 = Black/White TV
    F5 = Left Player Difficulty A
    F6 = Left Player Difficulty B
    F7 = Right Player Difficulty A
    F8 = Right Player Difficulty B
    Esc = Quit Game and go back to EmulationStation



  • @mitu said in Proper Atari 2600 controller setup:

    [...] You'll have to manually modify the resulting .cfg file and map the gamepad as explained in the Docs - use jstest to get the button and joypad axis values, then modify the .cfg file and put the appropriate values - you'll need to map the joystick, a Start button, an Exit button and probably A and B (you have 4 buttons) [...]

    So you're saying that with manually modifying the config files I could set values specific to a different controller than the "main" retro joystick with what I get from jtest? So I could map out the missing switches/buttons with another controller, did I get that right? So like every controller registered gets some unique set of button values than can be used together in one config file? Because from what I know is that each controller gets its own .cfg which is then used according to what's plugged in.

    Otherwise @fdr4prez , what's that with the keyboard? In lr-stella all switches are mapped to a controller according to this page:
    https://retropie.org.uk/docs/Atari-2600/
    So with using standalone stella, having the basic controls mapped to the joystick (moving, action button) and using a keyboard for the additional switches would work? If so, I guess that'll be my last resort in case it's definitely not possible to use two controllers in lr-stella for that.


  • Global Moderator

    @Wolf64 said in Proper Atari 2600 controller setup:

    So you're saying that with manually modifying the config files I could set values specific to a different controller than the "main" retro joystick with what I get from jtest?

    Not a different controller, you just modify the auto-configuration file created by Emulationstation for your controller and make sure the mapping is to your liking - based on the values reported jstest values. You'll most likely want to eliminate the hotkey and map exit to one of the available buttons.
    You said you have a Joystick + 4 buttons - how do you want them mapped to the Atari 2600 system and which ones are missing ?

    So I could map out the missing switches/buttons with another controller, did I get that right?

    No, what 'other' controller ?

    So like every controller registered gets some unique set of button values than can be used together in one config file? Because from what I know is that each controller gets its own .cfg which is then used according to what's plugged in.

    Those statements are not mutually exclusive.



  • @mitu okay so I got a joystick + 4 buttons, like I said. Now the original Atari joystick had 1 action button + up to 6 switches on the console (minus the on/off switch). Three of those switches are mapped to a dedicated button for each switch state, so in total we have 8 additional buttons mapped to the switches on the console, which means I'm essentially missing 5 more buttons on the joystick.

    The idea was to just map the missing 5 buttons (or better yet all the switches from the console) to a "normal" Logitech gamepad. So we have a config like: standard controls (move + action button) on joystick; console switches on other gamepad.

    Tell me if anything is still unclear. I'm afraid I'm not quite getting what you're trying to say.


  • Global Moderator

    Sorry, it seems that's I that missed the distinction you made in your first post:

    I thought of just having the actual game controls, like movement and the action button mapped out on the retro joystick, along with the "start" and "back" buttons to quit the game and get back to EmulationStation, and the console's switches on the Logitech gamepad,

    and though you just want to replace the Logitech gamepad completely with the Joy + 4 buttons gamepad.

    For lr-stella, what you want it's not possible - right now you can't have 1 input (RetroPad) controlled with 2 (physical) gamepads. It might be possible for stella (the standalone emulator), but I don't have experience with it.

    What I said though for navigating the ES interface with the Joystick + 4 buttons still applies.



  • @Wolf64 As I mentioned in my previous post, I am not familiar with lr-stella. I've never used it. That is why I asked in my post, "are all these mappable to a controller in lr-stella?"

    I only use the standalone version.

    For sure the keyboard works in the standalone version because I do it all the time.

    I've never attempted to map these functions to a controller button in the standalone version. I've no reason to try this as I only use real Atari joysticks, paddles, driving controller, etc.

    I don't have a different controller to test the standalone version for you, sorry.

    Maybe the developers here that modded Stella for RetroPie can chime in and confirm for you.



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.