How to key map mapping the keyboard for the I-PAC or other keyboard duplicator.

Welcome Page Forums RetroPie Project Everything else related to the RetroPie Project How to key map mapping the keyboard for the I-PAC or other keyboard duplicator.

This topic contains 13 replies, has 9 voices, and was last updated by  nosedeath 1 year, 8 months ago.

Viewing 14 posts - 1 through 14 (of 14 total)
  • Author
    Posts
  • #82576

    yippyyay
    Participant

    this took me allot of time to figure out i’m not a programmer But i get stuck looking at code at my job allot more then i should. there is no real way to go about this without digging into the guts of this. this is written for NOOB’S.
    remember to back up all your files before you start to change them. it will save your ass if you brake something.

    you have to navigate to the /opt/retropie/configs/all folder.

    You can do this by going back to the Command line by pressing F4

    I Know GUI’s so i will stick with that. please post of you have a command line fix

    type startx and using raspbians File Manager Bottem left to navigate to the folder you want. remember to hit View and show hidden

    at this pint you can type into the address bar /opt/retropie/configs/all

    open the file named retroarch.cfgwith a file edit program of your choice

    About half way down you will run into this.

    # Keyboard input. Will recognize letters ("a" to "z") and the following special keys (where "kp_"
    # is for keypad keys):
    #
    #   left, right, up, down, enter, kp_enter, tab, insert, del, end, home,
    #   rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus,
    #   f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
    #   num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown,
    #   keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9,
    #   period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock,
    #   tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
    #   backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
    #
    # Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely, 
    # rather than relying on a default.
    input_player1_a = x
    input_player1_b = z
    input_player1_y = a
    input_player1_x = s
    input_player1_start = enter
    input_player1_select = rshift
    input_player1_l = q
    input_player1_r = w
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =
    

    you can now edit the values after the “=” to whatever you need them to be. Example Old code input_player1_a = x New code input_player1_a = a

    look at these lines carefully you cannot just use the number “1” you must type “num1” watch out for caps

      NO CAPS

    it will kill your code. READ this code block it has well written examples of what you can put in like “rshift” or “shift” don’t use “lshift” it’s not in the example don’t use it.

    So my final fix looks like this. notice the difference between the two.

    # Keyboard input. Will recognize letters ("a" to "z") and the following special keys (where "kp_"
    # is for keypad keys):
    #
    #   left, right, up, down, enter, kp_enter, tab, insert, del, end, home,
    #   rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus,
    #   f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
    #   num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown,
    #   keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9,
    #   period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock,
    #   tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
    #   backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
    #
    # Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely, 
    # rather than relying on a default.
    input_player1_a = ctrl
    input_player1_b = alt
    input_player1_y = shift
    input_player1_x = space
    input_player1_start = num1
    input_player1_select = num5
    input_player1_l = z
    input_player1_r = x
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =

    Lucky You if you are using the Ultrimarc I-Pac you can copy the second example and get player 1 running.

    i haven’t tried to get get player 2 running yet and if i do i will update this post. if anyone can do a command line version of this please do i’m still sort of new to Linux command line. i’m learning fast :-).

    Alternative is to just pull the SD card and use the program “Notpad++” on your Windows computer to edit the file.

    #82595

    yippyyay
    Participant

    PLAYER 2 YAY

    i woke up this morning and tackled this project if only because of the pile of snow outside i don’t want to deal with.

    if you read my original post from the top you are going to see how to properly set up player 1. it also points out some syntax you are going to have to recognize to make this work.

    so the original code half way down the retroarch.cfg file looks like this.

    # Keyboard input. Will recognize letters ("a" to "z") and the following special keys (where "kp_"
    # is for keypad keys):
    #
    #   left, right, up, down, enter, kp_enter, tab, insert, del, end, home,
    #   rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus,
    #   f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
    #   num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown,
    #   keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9,
    #   period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock,
    #   tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
    #   backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
    #
    # Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely, 
    # rather than relying on a default.
    input_player1_a = x
    input_player1_b = z
    input_player1_y = a
    input_player1_x = s
    input_player1_start = enter
    input_player1_select = rshift
    input_player1_l = q
    input_player1_r = w
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =

    pay attention to the ” hash tags / pound sign / shift 3 / # ”
    i’m just going to use “#” for my sanity. yes i’m poking fun at pop culture
    you are going to notice that some of the lines don’t have the “#” beside them.
    these are the spots you are going to add lines to.

    i would suggest you just copy paste these line so you get something that looks like this.

    # rather than relying on a default.
    input_player1_a = x
    input_player1_b = z
    input_player1_y = a
    input_player1_x = s
    input_player1_start = enter
    input_player1_select = rshift
    input_player1_l = q
    input_player1_r = w
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    input_player1_a = x
    input_player1_b = z
    input_player1_y = a
    input_player1_x = s
    input_player1_start = enter
    input_player1_select = rshift
    input_player1_l = q
    input_player1_r = w
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =

    pay attention to the fact that all the lines that you can use are jammed together between the lines with the “#”

    Then turn half the lines from Example old input_player1_up = up into Example new input_player2_up = up

    so now half the lines should read player 1 and the other half the lines player 2 like this example.

    # rather than relying on a default.
    input_player1_a = x
    input_player1_b = z
    input_player1_y = a
    input_player1_x = s
    input_player1_start = enter
    input_player1_select = rshift
    input_player1_l = q
    input_player1_r = w
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    input_player2_a = x
    input_player2_b = z
    input_player2_y = a
    input_player2_x = s
    input_player2_start = enter
    input_player2_select = rshift
    input_player2_l = q
    input_player2_r = w
    input_player2_left = left
    input_player2_right = right
    input_player2_up = up
    input_player2_down = down
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =

    the last thing you need to do is change the key’s over to the whetever key’s you are going to use for your Keyboard Duplicator or I-Pac. like this example

    # Keyboard input. Will recognize letters ("a" to "z") and the following special keys (where "kp_"
    # is for keypad keys):
    #
    #   left, right, up, down, enter, kp_enter, tab, insert, del, end, home,
    #   rshift, shift, ctrl, alt, space, escape, add, subtract, kp_plus, kp_minus,
    #   f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12,
    #   num0, num1, num2, num3, num4, num5, num6, num7, num8, num9, pageup, pagedown,
    #   keypad0, keypad1, keypad2, keypad3, keypad4, keypad5, keypad6, keypad7, keypad8, keypad9,
    #   period, capslock, numlock, backspace, multiply, divide, print_screen, scroll_lock,
    #   tilde, backquote, pause, quote, comma, minus, slash, semicolon, equals, leftbracket,
    #   backslash, rightbracket, kp_period, kp_equals, rctrl, ralt
    #
    # Keyboard input, Joypad and Joyaxis will all obey the "nul" bind, which disables the bind completely, 
    # rather than relying on a default.
    input_player1_a = ctrl
    input_player1_b = alt
    input_player1_y = shift
    input_player1_x = space
    input_player1_start = num1
    input_player1_select = num5
    input_player1_l = z
    input_player1_r = x
    input_player1_left = left
    input_player1_right = right
    input_player1_up = up
    input_player1_down = down
    input_player2_a = a
    input_player2_b = s
    input_player2_y = q
    input_player2_x = w
    input_player2_start = num2
    input_player2_select = num6
    input_player2_l = i
    input_player2_r = k
    input_player2_left = d
    input_player2_right = g
    input_player2_up = r
    input_player2_down = f
    # input_player1_l2 =
    # input_player1_r2 =
    # input_player1_l3 =
    # input_player1_r3 =
    

    Lucky You if you are using the Ultrimarc I-Pac you can copy the last example and get player 1 and 2 running.

    NOW I’M GOING TO GO PLAY SOME VIDEO GAMES!!!

    #82598

    yippyyay
    Participant

    last thought is you are wondering what I-Pac i’m using here is the website

    http://www.ultimarc.com/ipacve.html

    and here is the key code sheet.

    http://www.ultimarc.com/ipac2.html

    i like it. if i hit both the start buttons for player 1 and 2 it will fake the Esc key. that was my saveing grace on my first MAME cabnet.

    #85496

    mcchigby
    Participant

    Hi yippyyay,

    Relieved to see someone else using the I-PAC2 as having trouble configing my controls.

    Really useful above however did you use all the button allocations of the IPAC2. For example I havent used Coin2/1a/1b/2a/2b etc.

    Would this mean I can’t use your above code?

    Thanks

    Ian

    #85539

    Roo
    Participant

    if anyone can do a command line version of this please do i’m still sort of new to Linux command line. i’m learning fast :-).

    excellent info yippyyay!

    don’t be afraid of the command line 🙂 sometimes it’s even easier than the gui

    here for example, you can edit that file with this command

    sudo nano /opt/retropie/configs/all/retroarch.cfg

    I have an iPac mini, I’ll be using your examples tonight when I get home – Thanks!

    #88228

    tdawg1982
    Participant

    So maybe you might be able to help on this? I am following the directions and the joysticks work outside in the retropie but as soon as I get into emulationstation, the joysticks stop working. I have a post but no one seems to be reading it fast enough.

    http://blog.petrockblock.com/forums/topic/minipac-and-retropie/

    Any help would be amazing!! Thanks!

    #88236

    craig-comrie
    Participant

    G’day Tdawg,

    I was at the same place you are now a couple of hours ago.

    I updated the firmware on my IPAC2 ( available from ultimarc website) and it came to life, no problems. In saying that its default MAME keymaps work, so emulation station and MAME games will work, I am now trying to solve the key mapping for SNES and Genesis.

    Hope this helps you out

    Cheers,

    #88244

    tdawg1982
    Participant

    Thank you Craig, that seemed to do the trick.. I still need to fix a couple button mappings in general but it is seeing it now. 🙂

    #88307

    tdawg1982
    Participant

    Well I have input the retroarch.cfg file but it appears that it is still not working correctly. If there an other config file I should know about?

    #88328

    tdawg1982
    Participant

    Ok, It is working now in the emulationstation but within the games the mappings are still wrong. Any ideas on how to fix this?

    #90180

    tomg
    Participant

    Hi

    Are these settings should work with Mini-Pac as well ?
    No defined keys in retroarch.cfg file seem NOT work for me, like for instance :
    input_player1_a = x
    input_player1_b = z

    Whatever the retroarch.cfg file seems contains the only keys that are working are those listed at the last page of manual : Ultimarc Mini-PAC Manual (PDF)

    Tom

    #91026

    cameronphillips09
    Participant

    Hi
    First time posting here, but I’m making a basic arcade cabinet and using the ipac 2 to run the controls. I’m only making a 1 player currently and thinking of making a bigger one later.
    My question is, is there a way to change which button accesses escape in the config file? Maybe add a hot key function? Or will i need to hook player 1 and 2 to use the original escape function?
    Thanks.
    PS I’m at work so i may not reply right away.

    #95140

    jloo
    Participant

    Hey. guys.. First time here posting something..

    Just wanted to say that its been really helpfull to follow everyone here and looking at each others problems and solutions. My question for everyone following this post is “Has anyone had any luck configuring their buttons, with the Ipac2, using SNES roms?”

    I’ve doing alot of reading and I have found that this is a typical issue with the Ipac2 board and/or the emulator dealing with SNES games and genesis games. I have follow yippyyaw instructions and got the correct codes for them… I was able to get player 2 working but everytime i hit a button on that side the game freezes (as if I hit the pause button?) I know this is not a wiring issue since i’m not using the pause slot in the ipac2 board..

    Any help would be greatly appreciated..

    jloo

    #118466

    nosedeath
    Participant

    I really with I could get my ulimarc trackball to work.

Viewing 14 posts - 1 through 14 (of 14 total)

Forums are currently read only - please visit the new RetroPie forums at https://retropie.org.uk/forums/