RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    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

    Hardcoded/Keyboard Only Controls

    Scheduled Pinned Locked Moved Help and Support
    8 Posts 2 Posters 3.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mediamogulM
      mediamogul Global Moderator
      last edited by mediamogul

      I've been at it for a while and I'm finally getting close to deriving a universal gamepad control system for RetroPie. This includes games that usually only use mouse or keyboard input. The goal is to never need to pick up a keyboard or mouse outside of system maintenance purposes, allowing a more complete console-like feel to RetroPie during gameplay sessions. Since I want this to ultimately result in a guide explaining the setup, I'd like to gather as much information as possible so that I can consider as many use case scenarios as possible.

      What I'm looking for here is an informal list of the emulators and ports that can only make use of keyboard input and also, which of them are non-configurable. I'm not asking anyone to do my homework for me, I'm just looking to see if I'm noticeably missing anything out of my own research. So far I have:

      Emulators:

      • Amiga - keyboard and mouse with hardcoded, keyboard only joystick controls
      • Amstrad CPC - keyboard only
      • Apple II - keyboard and mouse only
      • Atari 800 and 5200 - keyboard with hardcoded, keyboard only joystick controls
      • Coco - keyboard only
      • Colecovision - keyboard only joystick controls that seem to be configurable
      • Dragon 32 - keyboard only
      • Intellivision - hardcoded, keyboard only joystick controls
      • Macintosh - keyboard and mouse only
      • Oric-1/Atmos - keyboard only
      • SAM Coupé - keyboard only
      • TI-99/4A - keyboard only
      • TRS-80 - keyboard only
      • Zmachine - keyboard only (No possible joystick control here unless a virtual keypad can be invoked)

      Ports:

      • Haven't started investigating yet. (The ones I use personally all have native joystick support)

      Help in this would be appreciated, but it'll roll along regardless. I've been working on this since I started using RetroPie and after a ton of research, trial and error, I'm just glad to finally see some light at the end of the tunnel.

      RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

      1 Reply Last reply Reply Quote 0
      • Meneer JansenM
        Meneer Jansen
        last edited by

        Depending on the Colecovision emulator you use: it might not be as configurable as we'd like. I use AdamEm (an emu of the Coleco Adam homecomputer that was fully compatible w/ the CV). Dunno 'bout the other one.

        Avid Linux user.

        mediamogulM 1 Reply Last reply Reply Quote 1
        • mediamogulM
          mediamogul Global Moderator @Meneer Jansen
          last edited by

          @Meneer-Jansen said in Hardcoded/Keyboard Only Controls:

          Depending on the Colecovision emulator you use

          Good to know. I'll look at both moving forward.

          RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

          1 Reply Last reply Reply Quote 0
          • Meneer JansenM
            Meneer Jansen
            last edited by

            CoolCV can be installed easily in RetropPie if I'm not mistaken. AdamEm for Raspberry Pi, however, must be acquired from an AtariAge user named IntvDave. On a Pi 1B CoolCV runs too slow to be usable, AdemEm works fine though.

            For info 'bout both see: http://atariage.com/forums/topic/240800-coolcv-emulator-for-mac-os-x-linux-windows-and-raspberry/page-14

            Avid Linux user.

            mediamogulM 1 Reply Last reply Reply Quote 0
            • mediamogulM
              mediamogul Global Moderator @Meneer Jansen
              last edited by

              @Meneer-Jansen

              Better controller support for the ColecoVision was the main reason I started working on this, so this will be very helpful.

              RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

              1 Reply Last reply Reply Quote 0
              • Meneer JansenM
                Meneer Jansen
                last edited by

                My personal "help file" for AdamEm:

                Adam Em

                Contents

                A. Joysticks

                1. Adamem.joy file
                2. Example
                3. Tips

                B. Keyboard

                C. Save/load

                D. References

                A. Joysticks

                1. Adamem.joy file
                  In the 'adamem.joy' file are the mappings for the joystick. On the left are the numbers that your joystick has in Linux (i.e. 0 = A button, 1 = B button, etc.) and on the right are ColecoVision's buttons (comma separated). I's hard to determine what the CV buttons exactly are, but for sure is the following [3]:
                   ______________________________________________
                   Code    |  Coleco's button
                   in .joy |
                   ________|_____________________________________
                   p       | Pause
                   q       | Quit
                   r       | Reset 
                   1 ~ 10  | 1 to 10 on the CV controller
                   f       | Fire or left button
                   a       | Right button?
                   b       | ? Don't use, else AdemEm confused.
                   c       | Third button
                   d       | Fourth button
                   ________|_____________________________________ 
                

                Adamem looks for the 'adamem.joy' file and uses it. Because w/o it: no joystick support. However, if that file is empty then the joystick works too. Then axis 0 (the first analog or digital one) moves Mario and button "0" (usually a red button marked "A" on a controller) pauses the CV. There does not seem to be a way to make Mario jump w/ a controller then. These basic settings seem to be hard-coded. Trying to map button 0 to f (fire, jump) will NOT work. You MUST map another button to Fire on the CV!

                1. Example
                  Example for mapping the iBuffalo Classic Gamepad (looks like an SNES controller). Use the following 'adamem.joy' file:

                  1,f
                  4,q
                  5,r
                  7,1

                This will let you choose 1 player mode w/ the Start button (button 7), exit w/ L1 (button 4) and reset w/ R1. The yellow B button (button 1) lets Mario jump/fire. Notice that there is NO mapping for button 0 (i.e. the red A button on the SNES controller). It seems to be hard coded to 'Pause emulator'.

                1. Tips
                • There may not be unmapped buttons in the adamem.joy file. You may skip a few, but
                  no "1, " (i.e. button 1 on your controller unmapped to the CV) entries.

                • Determine your Linux controller codes w/:

                jstest /dev/input/js0

                (sudo apt-get install joystick)

                B. Keyboard

                The mappings for a keyboard are [3]:

                   _____________________________________________
                   Arrow keys      |  Move
                   ________________|_____________________________
                   Ctrl            | Jump
                   F5              | Sound on/off
                   F10             | Exit
                   Ctrl + F12      | Pause
                   Crtl            | Unpause
                   F7              | Save state (make snapshot)
                   -snap dkong.s00 | Load state 
                   -autosnap 1     | Auto load and save state
                   F8              | Screenshot
                   ________________|_____________________________
                

                C. Save/load

                Saving and loading is called making and loading a "snapshot". Make a snapshot w/ F7. Load a snapshot w/:

                adamem dkong.col -snap dkong.s00

                Another command line option:

                -autosnap 1

                Set snapshot mode to automatically load snapshot at start-up and write snapshot at shutdown [3].

                D. References

                [1] Atari age forum personal mail (PM):
                http://atariage.com/forums/XXXXXX

                [2] Old AdemEm site:
                www.komkon.org/~dekogel/adamem.html

                [3] Readme:
                www.komkon.org/~dekogel/files/coleco/adamem.txt

                Avid Linux user.

                1 Reply Last reply Reply Quote 0
                • mediamogulM
                  mediamogul Global Moderator
                  last edited by

                  Very handy, thank you. I've been somewhat unwilling to test ColecoVision's presence in RetroPie due to it's lack of viable joystick options, so I look forward to testing it now.

                  RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

                  Meneer JansenM 1 Reply Last reply Reply Quote 0
                  • Meneer JansenM
                    Meneer Jansen @mediamogul
                    last edited by

                    @mediamogul said in Hardcoded/Keyboard Only Controls:

                    Very handy, thank you. I've been somewhat unwilling to test ColecoVision's presence in RetroPie due to it's lack of viable joystick options, so I look forward to testing it now.

                    Realize that the AdamEm emulator that I use is different from CoolCV which is supported by RetroPie. If you own a Pi 1B and want to try AdamEm you should contact froum member IntvDave at the Atariage forum (I might be so bold as to send you the executable if he has stopped following the AtariAge forum...).

                    Good luck! :-)

                    Avid Linux user.

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    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.