Homepage Forums Search Search Results for 'hotkey'

Viewing 35 results - 1,016 through 1,050 (of 1,077 total)
  • Author
    Search Results
  • #4374
    trimmtrabb
    Participant

    Are you using a gamepad? Here is my retroarch.cfg, located in /home/pi/RetroPie/configs/all/ This file contains your gamepad configuration for all the Retroarch emulators, NES included.

    input_player1_joypad_index = "0"
    input_player1_b_btn = "1"
    input_player1_y_btn = "3"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    input_player1_up_axis = "-5"
    input_player1_down_axis = "+5"
    input_player1_left_axis = "-4"
    input_player1_right_axis = "+4"
    input_player1_a_btn = "0"
    input_player1_x_btn = "2"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_player1_l2_btn = "6"
    input_player1_r2_btn = "7"
    input_player1_l3_btn = "11"
    input_player1_r3_btn = "12"
    input_player1_l_x_plus_axis = "+0"
    input_player1_l_x_minus_axis = "-0"
    input_player1_l_y_plus_axis = "+1"
    input_player1_l_y_minus_axis = "-1"
    input_player1_r_x_plus_axis = "+2"
    input_player1_r_x_minus_axis = "-2"
    input_player1_r_y_plus_axis = "+3"
    input_player1_r_y_minus_axis = "-3"
    
    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "9"
    
    input_enable_hotkey_btn = "8"
    input_save_state_btn = "5"
    
    input_enable_hotkey_btn = "8"
    input_load_state_btn = "4"
    
    input_enable_hotkey_btn = "8"
    input_state_slot_increase_btn = "7"
    
    input_enable_hotkey_btn = "8"
    input_state_slot_decrease_btn ="6"
    
    input_enable_hotkey_btn = "8" 
    input_menu_toggle_btn = "3" 
    

    I have assigned the save/load function to the shoulder buttons of my Xbox gamepad, enabled with a hotkey button (the back button). You can assign your own buttons but you need to determine how the buttons are recognised by the OS. You can install the jtest utility:
    sudo apt-get install joystick
    and then run:
    jstest /dev/input/js0 (assuming you only have one gamepad plugged in)
    This will tell you which buttons are being pressed so you can edit the retroarch.cfg accordingly.

    #4229

    In reply to: Retroarch and Hotkeys

    somail
    Participant

    Mystery solved. I put the hotkey lines in my main retroarch.cfg and it worked like a charm. I now have a SNES pad and wired xbox 360 setup on auto.

    The Select and Start buttons on the SNES correspond to the XBOX 2nd L & R triggers which none of the emulators use, so it works out well.

    Only issue is that retroarch freezes when I swap controllers. Not a big deal b/c who the heck swaps controllers mid game anyways. :-) I think the autoconfig still has some bugs to work out.

    Thanks for helping me troubleshoot.

    #4228

    In reply to: Retroarch and Hotkeys

    RetroMarine
    Participant

    I absolutely think that…I started my project just before they came out with the new autoconfig…and I’m glad I did because I love using hotkeys. There must be a way to revert back to no auto config…then all you would have to do is copy and paste your code.

    #4227

    In reply to: Retroarch and Hotkeys

    somail
    Participant

    Second guessing always allowed.

    Spacing appears fine. I tried it with quotes (everything), without quotes (everything), and a mixture of quotes (everything has quotes but hotkey buttons).

    Every line works with the exception of the Hotkey line. Start still exits the emulator.

    Do you think it is because I am using an Autoconfig controller setup? Maybe hotkeys are only allowed in the main Retroarch.cfg.

    #4222

    In reply to: Retroarch and Hotkeys

    RetroMarine
    Participant

    Not to second guess you, but when you tried it without quotes, are you sure you had the proper spacing? This is exactly how my snes controller is and it’s working fine…no quotes, hold select, press start. Try it again and let me know

    input_enable_hotkey_btn = 6
    input_exit_emulator_btn = 7

    somail
    Participant

    My setup is 99.99% working but I am having problems getting hotkeys to work. My config file is pasted below. It is pretty much a copy and paste of the one that comes in the RetroPie-Setup directory. I have tried with and without quotes.
    I would like Select + Start to exit the emulator.

    Right now if I press start it automatically exits the emulator. The emulator is ignoring my input_enable_hotkey_btn = “6” line.

      Do I have to enable hotkeys with a “true” someplace in the config.

    Also I have cleared out the retroarch.cfg file of all lines except needed paths and enabling joystick auto detect (which is working)….so nothing is doubling up on the control settings.

    Thanks for the help

    input_device = “USB,2-axis 8-button gamepad ”
    input_driver = “linuxraw”
    input_b_btn = “1”
    input_y_btn = “3”
    input_select_btn = “6”
    input_start_btn = “7”
    input_up_axis = “-1”
    input_down_axis = “+1”
    input_left_axis = “-0”
    input_right_axis = “+0”
    input_a_btn = “0”
    input_x_btn = “2”
    input_l_btn = “4”
    input_r_btn = “5”

    input_enable_hotkey_btn = “6”
    input_exit_emulator_btn = “7”
    input_save_state_btn = “4”
    input_load_state_btn = “5”

    #4203

    In reply to: Controller issues

    RetroMarine
    Participant

    This is my retroarch.cfg for a snes usb…change the values to fit your controller and this should work fine:

    Just open:
    /home/pi/RetroPie/configs/all
    and edit retroarch.cfg to this code:
    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_a_btn = 1
    input_player1_y_btn = 3
    input_player1_x_btn = 0
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_y_plus = -1
    input_player1_up_axis = -1
    input_player1_l_y_minus = +1
    input_player1_down_axis = +1
    input_player1_l_x_minus = -0
    input_player1_left_axis = -0
    input_player1_l_x_plus = +0
    input_player1_right_axis = +0
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    input_enable_hotkey_btn = 8
    input_save_state_btn = 4
    input_enable_hotkey_btn = 8
    input_load_state_btn = 5
    input_player2_joypad_index = 1
    input_player2_b_btn = 2
    input_player2_a_btn = 1
    input_player2_y_btn = 3
    input_player2_x_btn = 0
    input_player2_l_btn = 4
    input_player2_r_btn = 5
    input_player2_start_btn = 9
    input_player2_select_btn = 8
    input_player2_l_y_plus = -1
    input_player2_up_axis = -1
    input_player2_l_y_minus = +1
    input_player2_down_axis = +1
    input_player2_l_x_minus = -0
    input_player2_left_axis = -0
    input_player2_l_x_plus = +0
    input_player2_right_axis = +0
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    input_enable_hotkey_btn = 8
    input_save_state_btn = 4
    input_enable_hotkey_btn = 8
    input_load_state_btn = 5
    (This will work on most the emulators, and I also added exit emulator by pressing select + start, as well as save state= select + L and load state= select + R)

    cadur
    Participant

    Thanks for your reply. I did as you suggested, and loaded Street Fighter 2. It seemed to work, but I noticed I was player 2. None of the hotkey functions worked. (I know you have them correct because they match everything else I’ve seen online.)

    Also, I only have 1 controller, so I figured the Player 2 thing could pose a problem in other games. I deleted ONLY the commands that were related to player 2, and I have no controller function in the games anymore.

    The keyboard wouldn’t work either, which I know is the point, but I thought it might be defaulting back to the keyboard.

    I’m able to get my gamepad working in the games on my own. I just haven’t been able to get the hotkeys to function, or get it to remain gamepad controlled on reboot. The latter is my biggest priority.

    RetroMarine
    Participant

    Just open: /home/pi/RetroPie/configs/alland edit retroarch.cfg to this code:input_player1_joypad_index = 0input_player1_b_btn = 2input_player1_a_btn = 1input_player1_y_btn = 3input_player1_x_btn = 0input_player1_l_btn = 4input_player1_r_btn = 5input_player1_start_btn = 9input_player1_select_btn = 8input_player1_l_y_plus = -1input_player1_up_axis = -1input_player1_l_y_minus = +1input_player1_down_axis = +1input_player1_l_x_minus = -0input_player1_left_axis = -0input_player1_l_x_plus = +0input_player1_right_axis = +0input_enable_hotkey_btn = 8input_exit_emulator_btn = 9input_enable_hotkey_btn = 8input_save_state_btn = 4input_enable_hotkey_btn = 8input_load_state_btn = 5input_player2_joypad_index = 1input_player2_b_btn = 2input_player2_a_btn = 1input_player2_y_btn = 3input_player2_x_btn = 0input_player2_l_btn = 4input_player2_r_btn = 5input_player2_start_btn = 9input_player2_select_btn = 8input_player2_l_y_plus = -1input_player2_up_axis = -1input_player2_l_y_minus = +1input_player2_down_axis = +1input_player2_l_x_minus = -0input_player2_left_axis = -0input_player2_l_x_plus = +0input_player2_right_axis = +0input_enable_hotkey_btn = 8input_exit_emulator_btn = 9input_enable_hotkey_btn = 8input_save_state_btn = 4input_enable_hotkey_btn = 8input_load_state_btn = 5(This will work on most the emulators, and I also added exit emulator by pressing select + start, as well as save state= select + L and load state= select + R) This reply was modified 15 hours, 18 minutes ago by
    RetroMarine.

    Sent from my C5155 using Tapatalk

    #4178
    RetroMarine
    Participant

    Just open:

    /home/pi/RetroPie/configs/all

    and edit retroarch.cfg to this code:

    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_a_btn = 1
    input_player1_y_btn = 3
    input_player1_x_btn = 0
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_y_plus = -1
    input_player1_up_axis = -1
    input_player1_l_y_minus = +1
    input_player1_down_axis = +1
    input_player1_l_x_minus = -0
    input_player1_left_axis = -0
    input_player1_l_x_plus = +0
    input_player1_right_axis = +0

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    input_enable_hotkey_btn = 8
    input_save_state_btn = 4

    input_enable_hotkey_btn = 8
    input_load_state_btn = 5

    input_player2_joypad_index = 1
    input_player2_b_btn = 2
    input_player2_a_btn = 1
    input_player2_y_btn = 3
    input_player2_x_btn = 0
    input_player2_l_btn = 4
    input_player2_r_btn = 5
    input_player2_start_btn = 9
    input_player2_select_btn = 8
    input_player2_l_y_plus = -1
    input_player2_up_axis = -1
    input_player2_l_y_minus = +1
    input_player2_down_axis = +1
    input_player2_l_x_minus = -0
    input_player2_left_axis = -0
    input_player2_l_x_plus = +0
    input_player2_right_axis = +0

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    input_enable_hotkey_btn = 8
    input_save_state_btn = 4

    input_enable_hotkey_btn = 8
    input_load_state_btn = 5

    (This will work on most the emulators, and I also added exit emulator by pressing select + start, as well as save state= select + L and load state= select + R)

    Just open:

    /home/pi/RetroPie/configs/all

    and edit retroarch.cfg to this code:

    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_a_btn = 1
    input_player1_y_btn = 3
    input_player1_x_btn = 0
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_y_plus = -1
    input_player1_up_axis = -1
    input_player1_l_y_minus = +1
    input_player1_down_axis = +1
    input_player1_l_x_minus = -0
    input_player1_left_axis = -0
    input_player1_l_x_plus = +0
    input_player1_right_axis = +0

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    input_enable_hotkey_btn = 8
    input_save_state_btn = 4

    input_enable_hotkey_btn = 8
    input_load_state_btn = 5

    input_player2_joypad_index = 1
    input_player2_b_btn = 2
    input_player2_a_btn = 1
    input_player2_y_btn = 3
    input_player2_x_btn = 0
    input_player2_l_btn = 4
    input_player2_r_btn = 5
    input_player2_start_btn = 9
    input_player2_select_btn = 8
    input_player2_l_y_plus = -1
    input_player2_up_axis = -1
    input_player2_l_y_minus = +1
    input_player2_down_axis = +1
    input_player2_l_x_minus = -0
    input_player2_left_axis = -0
    input_player2_l_x_plus = +0
    input_player2_right_axis = +0

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    input_enable_hotkey_btn = 8
    input_save_state_btn = 4

    input_enable_hotkey_btn = 8
    input_load_state_btn = 5

    (This will work on most the emulators, and I also added exit emulator by pressing select + start, as well as save state= select + L and load state= select + R)

    Sent from my C5155 using Tapatalk

    #4157
    RetroMarine
    Participant

    Just open:

    /home/pi/RetroPie/configs/all

    and edit retroarch.cfg to this code:

    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_a_btn = 1
    input_player1_y_btn = 3
    input_player1_x_btn = 0
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_y_plus = -1
    input_player1_up_axis = -1
    input_player1_l_y_minus = +1
    input_player1_down_axis = +1
    input_player1_l_x_minus = -0
    input_player1_left_axis = -0
    input_player1_l_x_plus = +0
    input_player1_right_axis = +0

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    input_enable_hotkey_btn = 8
    input_save_state_btn = 4

    input_enable_hotkey_btn = 8
    input_load_state_btn = 5

    input_player2_joypad_index = 1
    input_player2_b_btn = 2
    input_player2_a_btn = 1
    input_player2_y_btn = 3
    input_player2_x_btn = 0
    input_player2_l_btn = 4
    input_player2_r_btn = 5
    input_player2_start_btn = 9
    input_player2_select_btn = 8
    input_player2_l_y_plus = -1
    input_player2_up_axis = -1
    input_player2_l_y_minus = +1
    input_player2_down_axis = +1
    input_player2_l_x_minus = -0
    input_player2_left_axis = -0
    input_player2_l_x_plus = +0
    input_player2_right_axis = +0

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9

    input_enable_hotkey_btn = 8
    input_save_state_btn = 4

    input_enable_hotkey_btn = 8
    input_load_state_btn = 5

    (This will work on most the emulators, and I also added exit emulator by pressing select + start, as well as save state= select + L and load state= select + R)

    #4099
    supersirlink
    Participant

    Do you have input_enable_hotkey = set in any of the cfg files?

    #4048
    moorens
    Participant

    In case anyone needs it here is the config file for a USB NES controller with exit emulator and save load state.

    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_a_btn = 1
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_y_plus = -1
    input_player1_up_axis = -1
    input_player1_l_y_minus = +1
    input_player1_down_axis = +1
    input_player1_l_x_minus = -0
    input_player1_left_axis = -0
    input_player1_l_x_plus = +0
    input_player1_right_axis = +0

    input_enable_hotkey_btn = “9″
    input_exit_emulator_btn = “8″

    input_enable_hotkey_btn = 9
    input_save_state_btn = 1

    input_enable_hotkey_btn = 9
    input_load_state_btn = 2

    #4017

    In reply to: Emulators not saving?

    moorens
    Participant

    hey thanks I will take a look at it and see.

    This is my config mappings:

    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_a_btn = 1
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_y_plus = -1
    input_player1_up_axis = -1
    input_player1_l_y_minus = +1
    input_player1_down_axis = +1
    input_player1_l_x_minus = -0
    input_player1_left_axis = -0
    input_player1_l_x_plus = +0
    input_player1_right_axis = +0

    input_enable_hotkey_btn = “9”
    input_exit_emulator_btn = “8”

    ___________________________________

    Save = Select + A
    input_enable_hotkey_btn = 8
    input_save_state_btn = 1

    Load = Select + B
    input_enable_hotkey_btn = 8
    input_load_state_btn = 2

    Test and worked. Thanks for the idea guys..

    #4015

    In reply to: Emulators not saving?

    jplaj
    Participant

    moorens –

    Not sure what the NES button mapping is, but you can change the numbers from mine:

    input_enable_hotkey_btn = 8
    input_save_state_btn = 5

    input_enable_hotkey_btn = 8
    input_load_state_btn = 4

    I have it set up so I can hold “select,” and then press “R” for saving (R for Remember) and “L” to load. If you want to use the directional pad instead, just change the “btn” extension to “axis.”

    roquen-

    I don’t know of any way to sync game saves with emulator save file updates. If you set the autosave interval to a short enough time, though, you won’t notice any difference. I have it set to update the save file every 3 seconds.

    #3627
    supersirlink
    Participant

    Ok, think I know what the cause is now… Been playing more with the retroarch configs.

    In the configs/all/retroarch.cfg I have the common inputs, hotkey, exit. In the configs/nes/retroarch.cfg I had this:

    input_player1_joypad_index = 0
    input_player1_b_btn = 3
    input_player1_a_btn = 1
    input_player1_start_btn = 7
    input_player1_select_btn = 6
    input_player1_up_axis = -1
    input_player1_down_axis = +1
    input_player1_left_axis = -0
    input_player1_right_axis = +0
    
    input_player2_joypad_index = 1
    input_player2_b_btn = 3
    input_player2_a_btn = 1
    input_player2_start_btn = 7
    input_player2_select_btn = 6
    input_player2_up_axis = -1
    input_player2_down_axis = +1
    input_player2_left_axis = -0
    input_player2_right_axis = +0
    

    In the configs/snes/retroarch.cfg I had this:

    input_player1_joypad_index = 0
    input_player1_b_btn = 1
    input_player1_a_btn = 0
    input_player1_y_btn = 3
    input_player1_x_btn = 2
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_start_btn = 7
    input_player1_select_btn = 6
    input_player1_up_axis = -1
    input_player1_down_axis = +1
    input_player1_left_axis = -0
    input_player1_right_axis = +0
    
    input_player2_joypad_index = 1
    input_player2_b_btn = 1
    input_player2_a_btn = 0
    input_player2_y_btn = 3
    input_player2_x_btn = 2
    input_player2_l_btn = 4
    input_player2_r_btn = 5
    input_player2_start_btn = 7
    input_player2_select_btn = 6
    input_player2_up_axis = -1
    input_player2_down_axis = +1
    input_player2_left_axis = -0
    input_player2_right_axis = +0
    

    First I remarked out all the entries in the nes/retroarch.cfg and put the inputs back in all/retroarch.cfg, and Super Mario Bros worked again! So I did the same for the snes/retroarch.cfg and Super Mario World worked! Then I put it back the way I had it, but remarked out the player2 entires and both still work… So I am thinking that it is the player2 inputs. It is odd that it only effected these two ROMs…

    I think getting control back with SNESDev disabled was an indirect effect… Since they use different entires for keyboard input…

    So the question now, did I format something wrong for player2?

    #3613
    supersirlink
    Participant

    Sorry, I should have explained better. I do have controllers connected to the GPIO board, NES in this case that work with Emulation Station and RetroArch. If I launch a ROM (Zelda), it works great! Now if I try to launch another (Mario Bros), I have no controls once the ROM loads.

    I thought it was odd that I also lost the keyboard too. If I stop the service I still don’t have controller input (of course), but I get keyboard control again.

    It seems as if ROMs like Mario Bros are not working with SNESDev. This is the only one I have found so far, going go through all the others and see if there are others.

    Edit: I should also add, with SNESDev running I can use the controller to trigger the hotkey exit RetroArch combo to take me back to Emulation Station…

    Is it possible that a ROM is not using the retroarch.cfg in the folder for that system? The hotkey and exit are in configs/all, the controls for the NES and SNES are in their respective folders…

    Been going through testing and so far Super Mario Bros is the only NES ROM not working…

    Odder still, on the SNES side Super Mario World buttons don’t work on the menu, game select, or map screen. You have to hold another button down (one of the shoulder buttons or start) then you can move/press start. BUT all the controls work fine within the level… The odd part is if I connect the NES controller, I don’t have that issue… I can push start and begin playing…

    Anonymous
    Inactive

    I’m in a similar boat as prusr. I copied your config Zoot, and everything was working fine in my other emulators, except my start button wasn’t working in MAME. So I ran the Input Configuration again, and then went into the config and added:

    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    

    And now my dpad doesn’t work. I’m going to try removing them and see what happens when I get home from work.

    #3543
    supersirlink
    Participant

    [quote=3528]I tried Petrockblog’s most recent idea of entering two commands for key pressed to be able to use hotkeys and confirmed it does not work. I can get the GPIO button to function while holding down my function key on the gamepad but mapping two button commands to one command did not provide any results. Let me know if anyone else has any ideas so we can get this all figured out![/quote]

    There was an extra space after the comma after leftalt, be sure you only have one space… Also you will need to put the correct key in for the hot key assignment you made… Thats where I put two hot keys in my retroarch.cfg

    I have one hot key defined for my controller and one for the keyboard. That way I can input commands from the controller OR keyboard without having to grab both…

    input_enable_hotkey = alt
    input_enable_hotkey_btn = 6
    case BTN_STATE_PRESSED:
                                    if (button.pressedCtr == 1 && button.duration >= 1) {
    										uinput_kbd_write(&uinp_kbd, KEY_LEFTALT, 1, EV_KEY);
                                            uinput_kbd_write(&uinp_kbd, KEY_R, 1, EV_KEY);
                                    }
                                    break;
                            case BTN_STATE_RELEASED:
                                            if (button.pressedCtr == 1 && button.duration >= 1) {
    												uinput_kbd_write(&uinp_kbd, KEY_LEFTALT, 0, EV_KEY);
                                                    uinput_kbd_write(&uinp_kbd, KEY_R, 0, EV_KEY);
    

    And just to confirm this worked for me… I push the momentary switch and with the assignments above, the rom resets (without having to touch the controller or keyboard)…

    Thanks Florian!

    #3528
    bradj074
    Participant

    I tried Petrockblog’s most recent idea of entering two commands for key pressed to be able to use hotkeys and confirmed it does not work. I can get the GPIO button to function while holding down my function key on the gamepad but mapping two button commands to one command did not provide any results. Let me know if anyone else has any ideas so we can get this all figured out!

    #3500
    supersirlink
    Participant

    Yeah, the SNES controller worked fine with the adapter I made to connect to NES ports.

    It is a great little board you designed!

    Ohh and it seems the script assigned to the momentary switch is also affected by the enable hotkey setting in the retroarch.cfg. But I posted about that in another thread.

    #3491
    supersirlink
    Participant

    Do you have this line defined in one of your retroarch.cfg files:
    input_enable_hotkey_btn = 6

    I found when I set that, I have to use the hotkey to send ANY commands, even from the keyboard. My momentary switch works when I hold down the hotkey button then press the switch…

    supersirlink
    Participant

    This might be common knowledge, but I thought I’d share… I discovered after enabling the hotkey to be able to exit via the controller, none of the keyboard commands would work…

    I had to add as second hotkey binding entry, but point it to a key on the keyboard. Once you enable the hotkey, you need to use it for every command…

    Here are my input settings in my retroarch.cfg file

    
    input_player1_joypad_index = 0
    input_player1_b_btn = 1
    input_player1_a_btn = 0
    input_player1_start_btn = 3
    input_player1_select_btn = 2
    input_player1_up_axis = -1
    input_player1_down_axis = +1
    input_player1_left_axis = -0
    input_player1_right_axis = +0
    
    input_player2_joypad_index = 1
    input_player2_b_btn = 1
    input_player2_a_btn = 0
    input_player2_start_btn = 3
    input_player2_select_btn = 2
    input_player2_up_axis = -1
    input_player2_down_axis = +1
    input_player2_left_axis = -0
    input_player2_right_axis = +0
    
    input_enable_hotkey_btn = 2
    input_exit_emulator_btn = 3
    input_save_state_btn = 0
    input_load_state_btn = 1
    
    input_enable_hotkey = alt
    
    rkiesler
    Participant

    I have the RetroPie SD Image installed and did an update (binary images). Even though I looked and looked, I cannot make the RetroArch Master System emulator quit a game with pressing start and select at the same time.

    The interesting thing: I can quit games with start+select, as long as I’m using the Atari 2600, MAME, Genesis, NES, Turbografx 16 or SNES emulator. Just for the Sega Master System, it does not seem to work.

    this is the interesting part of ~/RetroPie/configs/all/retroarch.cfg :

    input_enable_hotkey_btn = "2"
    input_exit_emulator_btn = "3"
    penningmic
    Participant

    I am finally back to this problem, have been caught up at work and unable to get at this again. I am familiar with the hotkey functionality and am currently using it for the exit, load, and save states.

    I tried your response and still not working (tried multiple indices to check if there was an issue with some combination with and without it being hotkeyed). I plugged in my keyboard and tried setting keys for that to and still nothing. Is there anyone who actually has this working on their retropie project?

    Have I missed enabling something other than the rewind_enable = true?

    Thanks,
    Mike

    zoot
    Participant

    I just resolved some very frustrating issues that I was having with my retroarch.cfg joystick config file. Default behavior was strange in some of the emulators, and I couldn’t quite get input_enable_hotkey_btn and input_exit_emulator_btn to work correctly. NeoGeo emulation using FBA did work for some crazy reason, but the other emulators did not. When I removed the input_enable_hotkey_btn line from the config, it would exit whenever I pressed button 0 instead of the button that I tried to configure to the cfg file. I ended up restarting from scratch, and seeing the difference between my old config files and the new config files to find out the difference.

    My first error was piping instead of appending when I used the retroarch-joyconfig program found in RetroPie/emulators/RetroArch/tools.

    What I typed was:
    ./retroarch-joyconfig | ~/RetroPie/configs/all/retroarch.cfg

    I should have typed:
    ./retroarch-joyconfig >> ~/RetroPie/configs/all/retroarch.cfg

    I then compounded my problem by manually copying and pasting the following lines into my config file (using vim over ssh, if I remember correctly):

    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = “9″

    I had not realized two things:
    My config doesn’t need the quotes.
    I had accidentally pasted two different types of quotes (“ and ″) into a config file, which likely caused the program to freak out and not read the configuration properly.

    After loading RetroPie 1.9.1 onto the card from scratch, I noticed the error of my ways, updated the configuration file correctly, and I am now able to exit emulators effectively and continue to play games.

    Learn from my lesson, RetroPie users! Beware the quotes!

    Quoted below is my working config file for a Logitech Dual Action USB controller:

    ## Skeleton config file for RetroArch
    
    # Save all save files (*.srm) to this directory. This includes related files like .bsv, .rtc, .psrm, etc ...
    # This will be overridden by explicit command line options.
    # savefile_directory =
    
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    # savestate_directory =
    
    # Automatically saves a savestate at the end of RetroArch's lifetime.
    # The path is $SRAM_PATH.auto.
    # RetroArch will automatically load any savestate with this path on startup if savestate_auto_load is set.
    # savestate_auto_save = false
    # savestate_auto_load = true
    
    # Load libretro from a dynamic location for dynamically built RetroArch.
    # This option is mandatory.
    
    # If a directory, RetroArch will look through the directory until it finds an implementation
    # that appears to support the extension of the ROM loaded.
    # This could fail if ROM extensions overlap.
    # libretro_path = "/path/to/libretro.so"
    
    # Path to core options config file.
    # This config file is used to expose core-specific options.
    # It will be written to by RetroArch.
    # A default path will be assigned if not set.
    # core_options_path =
    
    # Path to ROM load history file.
    # RetroArch keeps track of all ROMs loaded in RGUI and from CLI directly for convenient quick loading.
    # A default path will be assigned if not set.
    # game_history_path =
    
    # Number of entries that will be kept in ROM history file.
    # game_history_size = 100
    
    # Sets the "system" directory.
    # Implementations can query for this directory to load BIOSes, system-specific configs, etc.
    system_directory = /home/pi/RetroPie/emulatorcores/
    
    # Sets start directory for RGUI ROM browser.
    # rgui_browser_directory =
    
    # Sets start directory for RGUI config browser.
    # rgui_config_directory =
    
    # Show startup screen in RGUI.
    # Is automatically set to false when seen for the first time.
    # This is only updated in config if config_save_on_exit is set to true, however.
    # rgui_show_start_screen = true
    
    # Flushes config to disk on exit. Useful for RGUI as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    # config_save_on_exit = false
    
    #### Video
    
    # Video driver to use. "gl", "xvideo", "sdl"
    # video_driver = "gl"
    
    # Which OpenGL context implementation to use.
    # Possible ones for desktop are: glx, x-egl, kms-egl, sdl-gl, wgl.
    # By default, tries to use first suitable driver.
    # video_gl_context =
    
    # Windowed xscale and yscale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_xscale = 3.0
    # video_yscale = 3.0
    
    # Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
    # video_fullscreen_x = 0
    # video_fullscreen_y = 0
    
    # Start in fullscreen. Can be changed at runtime.
    # video_fullscreen = false
    
    # If fullscreen, prefer using a windowed fullscreen mode.
    # video_windowed_fullscreen = true
    
    # Which monitor to prefer. 0 (default) means no particular monitor is preferred, 1 and up (1 being first monitor),
    # suggests RetroArch to use that particular monitor.
    # video_monitor_index = 0
    
    # Forcibly disable composition. Only works in Windows Vista/7 for now.
    # video_disable_composition = false
    
    # Video vsync.
    # video_vsync = true
    
    # Attempts to hard-synchronize CPU and GPU. Can reduce latency at cost of performance.
    # video_hard_sync = false
    
    # Sets how many frames CPU can run ahead of GPU when using video_hard_sync.
    # Maximum is 3.
    # video_hard_sync_frames = 0
    
    # Inserts a black frame inbetween frames.
    # Useful for 120 Hz monitors who want to play 60 Hz material with eliminated ghosting.
    # video_refresh_rate should still be configured as if it is a 60 Hz monitor (divide refresh rate by 2).
    # video_black_frame_insertion = false
    
    # Use threaded video driver. Using this might improve performance at possible cost of latency and more video stuttering.
    # video_threaded = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to game aspect ratio or as defined in video_aspect_ratio.
    # video_force_aspect = true
    
    # Only scales video in integer steps.
    # The base size depends on system-reported geometry and aspect ratio.
    # If video_force_aspect is not set, X/Y will be integer scaled independently.
    # video_scale_integer = false
    
    # A floating point value for video aspect ratio (width / height).
    # If this is not set, aspect ratio is assumed to be automatic.
    # Behavior then is defined by video_aspect_ratio_auto.
    video_aspect_ratio = 1.33
    
    # If this is true and video_aspect_ratio is not set,
    # aspect ratio is decided by libretro implementation.
    # If this is false, 1:1 PAR will always be assumed if video_aspect_ratio is not set.
    # video_aspect_ratio_auto = false
    
    # Forces cropping of overscanned frames.
    # Exact behavior of this option is implementation specific.
    # video_crop_overscan = true 
    
    # Path to shader. Shader can be either Cg, CGP (Cg preset) or XML/GLSL format if support is enabled.
    # video_shader = "/path/to/shader.{cg,cgp,shader}"
    
    # Load video_shader on startup.
    # Other shaders can still be loaded later in runtime.
    # video_shader_enable = false
    
    # Defines a directory where shaders (Cg, CGP, XML) are kept for easy access.
    # video_shader_dir =
    
    # CPU-based filter. Path to a bSNES CPU filter (*.filter)
    # video_filter =
    
    # Path to a TTF font used for rendering messages. This path must be defined to enable fonts.
    # Do note that the _full_ path of the font is necessary!
    # video_font_path = 
    
    # Size of the TTF font rendered.
    # video_font_size = 48
    
    # Attempt to scale the font to fit better for multiple window sizes.
    # video_font_scale = true
    
    # Enable usage of OSD messages.
    # video_font_enable = true
    
    # Offset for where messages will be placed on screen. Values are in range 0.0 to 1.0 for both x and y values. 
    # [0.0, 0.0] maps to the lower left corner of the screen.
    # video_message_pos_x = 0.05
    # video_message_pos_y = 0.05
    
    # Color for message. The value is treated as a hexadecimal value.
    # It is a regular RGB hex number, i.e. red is "ff0000".
    # video_message_color = ffffff
    
    # Video refresh rate of your monitor.
    # Used to calculate a suitable audio input rate.
    # video_refresh_rate = 59.95
    
    # Allows libretro cores to set rotation modes.
    # Setting this to false will honor, but ignore this request.
    # This is useful for vertically oriented games where one manually rotates the monitor.
    # video_allow_rotate = true
    
    # Forces a certain rotation of the screen.
    # The rotation is added to rotations which the libretro core sets (see video_allow_rotate).
    # The angle is <value> * 90 degrees counter-clockwise.
    # video_rotation = 0
    
    #### Audio
    
    # Enable audio.
    # audio_enable = true
    
    # Audio output samplerate.
    audio_out_rate = 48000
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    audio_driver = alsathread
    
    # Override the default audio device the audio_driver uses. This is driver dependant. E.g. ALSA wants a PCM device, OSS wants a path (e.g. /dev/dsp), Jack wants portnames (e.g. system:playback1,system:playback_2), and so on ...
    # audio_device =
    
    # External DSP plugin that processes audio before it's sent to the driver.
    # audio_dsp_plugin =
    
    # Will sync (block) on audio. Recommended.
    # audio_sync = true
    
    # Desired audio latency in milliseconds. Might not be honored if driver can't provide given latency.
    # audio_latency = 64
    
    # Enable experimental audio rate control.
    # audio_rate_control = true
    
    # Controls audio rate control delta. Defines how much input rate can be adjusted dynamically.
    # Input rate = in_rate * (1.0 +/- audio_rate_control_delta)
    # audio_rate_control_delta = 0.005
    
    # Audio volume. Volume is expressed in dB.
    # 0 dB is normal volume. No gain will be applied.
    # Gain can be controlled in runtime with input_volume_up/input_volume_down.
    # audio_volume = 0.0
    
    #### Input
    
    # Input driver. Depending on video driver, it might force a different input driver.
    # input_driver = sdl
    
    # Joypad driver. (Valid: linuxraw, sdl, dinput)
    # input_joypad_driver =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.0
    
    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    # input_autodetect_enable = true
    
    # Directory for joypad autoconfigs (PC).
    # If a joypad is plugged in, that joypad will be autoconfigured if a config file
    # corresponding to that joypad is present in joypad_autoconfig_dir.
    # Input binds which are made explicit (input_playerN_*_btn/axis) will take priority over autoconfigs.
    # Autoconfigs can be created with retroarch-joyconfig, manually, or with a frontend.
    # Requires input_autodetect_enable to be enabled.
    # joypad_autoconfig_dir =
    
    # Enable debug input key reporting on-screen.
    # input_debug_enable = false
    
    # Sets which libretro device is used for a player.
    # Devices are indentified with a number.
    # This is normally saved by RGUI.
    # Device IDs are found in libretro.h.
    # These settings are overridden by explicit command-line arguments which refer to input devices.
    # None: 0
    # Joypad (RetroPad): 1
    # Mouse: 2
    # Keyboard: 3
    # Generic Lightgun: 4
    # Joypad w/ Analog (RetroPad + Analog sticks): 5
    # Multitap (SNES specific): 257
    # Super Scope (SNES specific): 260
    # Justifier (SNES specific): 516
    # Justifiers (SNES specific): 772
    
    # input_libretro_device_p1 =
    # input_libretro_device_p2 =
    # input_libretro_device_p3 =
    # input_libretro_device_p4 =
    # input_libretro_device_p5 =
    # input_libretro_device_p6 =
    # input_libretro_device_p7 =
    # input_libretro_device_p8 =
    
    # Keyboard input. Will recognize normal keypresses and special keys like "left", "right", and so on.
    # 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 =
    
    # Two analog sticks (DualShock-esque).
    # Bound as usual, however, if a real analog axis is bound,
    # it can be read as a true analog.
    # Positive X axis is right, Positive Y axis is down.
    input_player1_joypad_index = 0
    input_player1_b_btn = 1
    input_player1_y_btn = 0
    input_player1_select_btn = 8
    input_player1_start_btn = 9
    input_player1_up_axis = -5
    input_player1_down_axis = +5
    input_player1_left_axis = -4
    input_player1_right_axis = +4
    input_player1_a_btn = 2
    input_player1_x_btn = 3
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_l2_btn = 6
    input_player1_r2_btn = 7
    input_player1_l3_btn = 10
    input_player1_r3_btn = 11
    input_player1_l_x_plus_axis = +0
    input_player1_l_x_minus_axis = -0
    input_player1_l_y_plus_axis = +1
    input_player1_l_y_minus_axis = -1
    input_player1_r_x_plus_axis = +2
    input_player1_r_x_minus_axis = -2
    input_player1_r_y_plus_axis = +3
    input_player1_r_y_minus_axis = -2
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    
    # If desired, it is possible to override which joypads are being used for player 1 through 8.
    # First joypad available is 0.
    input_player1_joypad_index = 0
    # input_player2_joypad_index = 1
    # input_player3_joypad_index = 2
    # input_player4_joypad_index = 3
    # input_player5_joypad_index = 4
    # input_player6_joypad_index = 5
    # input_player7_joypad_index = 6
    # input_player8_joypad_index = 7
    
    # Joypad buttons.
    # Figure these out by using RetroArch-Phoenix or retroarch-joyconfig.
    # You can use joypad hats with hnxx, where n is the hat, and xx is a string representing direction. 
    # E.g. "h0up"
    # input_player1_a_btn = 0
    # input_player1_b_btn = 1
    # input_player1_y_btn = 3
    # input_player1_x_btn = 2
    # input_player1_start_btn = 7
    # input_player1_select_btn = 6
    # input_player1_l_btn = 4
    # input_player1_r_btn = 5
    # input_player1_left_btn =
    # input_player1_right_btn =
    # input_player1_up_btn =
    # input_player1_down_btn =
    # input_player1_l2_btn =
    # input_player1_r2_btn =
    # input_player1_l3_btn =
    # input_player1_r3_btn =
    
    # Axis for RetroArch D-Pad. 
    # Needs to be either '+' or '-' in the first character signaling either positive or negative direction of the axis, then the axis number. 
    # Do note that every other input option has the corresponding _btn and _axis binds as well; they are omitted here for clarity.
    # input_player1_left_axis = -0
    # input_player1_right_axis = +0
    # input_player1_up_axis = -1
    # input_player1_down_axis = +1
    
    # Holding the turbo while pressing another button will let the button enter a turbo mode
    # where the button state is modulated with a periodic signal.
    # The modulation stops when the button itself (not turbo button) is released.
    # input_player1_turbo =
    
    # Describes the period and how long of that period a turbo-enabled button should behave.
    # Numbers are described in frames.
    # input_turbo_period = 6
    # input_turbo_duty_cycle = 3
    
    # This goes all the way to player 8 (*_player2_*, *_player3_*, etc), but omitted for clarity.
    # All input binds have corresponding binds for keyboard (none), joykeys (_btn) and joyaxes (_axis) as well.
    
    # Toggles fullscreen.
    # input_toggle_fullscreen = f
    
    # Saves state.
    # input_save_state = f2
    # Loads state.
    # input_load_state = f4
    
    # State slots. With slot set to 0, save state name is *.state (or whatever defined on commandline).
    # When slot is != 0, path will be $path%d, where %d is slot number.
    # input_state_slot_increase = f7
    # input_state_slot_decrease = f6
    
    # Toggles between fast-forwarding and normal speed.
    # input_toggle_fast_forward = space
    
    # Hold for fast-forward. Releasing button disables fast-forward.
    # input_hold_fast_forward = l
    
    # Key to exit emulator cleanly. 
    # Killing it in any hard way (SIGTERM, SIGKILL, etc, will terminate emulator without saving RAM, etc.)
    input_exit_emulator = escape
    
    # Applies next and previous XML/Cg shader in directory.
    # input_shader_next = m
    # input_shader_prev = n
    
    # Hold button down to rewind. Rewinding must be enabled.
    input_rewind = r
    
    # Toggle between recording and not.
    # input_movie_record_toggle = o
    
    # Toggle between paused and non-paused state
    # input_pause_toggle = p
    
    # Frame advance when game is paused
    # input_frame_advance = k
    
    # Reset the game.
    # input_reset = h
    
    # Configures DSP plugin
    # input_dsp_config = c
    
    # Cheats.
    # input_cheat_index_plus = y
    # input_cheat_index_minus = t
    # input_cheat_toggle = u
    
    # Mute/unmute audio
    # input_audio_mute = f9
    
    # Take screenshot
    # input_screenshot = f8
    
    # Netplay flip players.
    # input_netplay_flip_players = i
    
    # Hold for slowmotion.
    # input_slowmotion = e
    
    # Enable other hotkeys.
    # If this hotkey is bound to either keyboard, joybutton or joyaxis,
    # all other hotkeys will be disabled unless this hotkey is also held at the same time.
    # This is useful for RETRO_KEYBOARD centric implementations
    # which query a large area of the keyboard, where it is not desirable
    # that hotkeys get in the way.
    
    # Alternatively, all hotkeys for keyboard could be disabled by the user.
    # input_enable_hotkey =
    
    # Increases audio volume.
    # input_volume_up = kp_plus
    # Decreases audio volume.
    # input_volume_down = kp_minus
    
    # Toggles to next overlay. Wraps around.
    # input_overlay_next =
    
    # Toggles eject for disks. Used for multiple-disk games.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles RGUI menu.
    # input_menu_toggle = f1
    
    # Toggles mouse grab. When mouse is grabbed, RetroArch hides the mouse,
    # and keeps the mouse pointer inside the window to allow relative mouse games
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = true
    
    # Rewinding buffer size in megabytes. Bigger rewinding buffer means you can rewind longer.
    # The buffer should be approx. 20MB per minute of buffer time.
    rewind_buffer_size = 10
    
    # Rewind granularity. When rewinding defined number of frames, you can rewind several frames at a time, increasing the rewinding speed.
    rewind_granularity = 2
    
    # Pause gameplay when window focus is lost.
    # pause_nonactive = true
    
    # Autosaves the non-volatile SRAM at a regular interval. This is disabled by default unless set otherwise.
    # The interval is measured in seconds. A value of 0 disables autosave.
    # autosave_interval =
    
    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false
    
    # Path to XML cheat database (as used by bSNES).
    # cheat_database_path =
    
    # Path to XML cheat config, a file which keeps track of which
    # cheat settings are used for individual games.
    # If the file does not exist, it will be created.
    # cheat_settings_path =
    
    # Directory to dump screenshots to.
    # screenshot_directory =
    
    # Records video after CPU video filter.
    # video_post_filter_record = false
    
    # Records output of GPU shaded material if available.
    # video_gpu_record = false
    
    # Screenshots output of GPU shaded material if available.
    # video_gpu_screenshot = true
    
    # Block SRAM from being overwritten when loading save states.
    # Might potentially lead to buggy games.
    # block_sram_overwrite = false
    
    # When saving a savestate, save state index is automatically increased before
    # it is saved.
    # Also, when loading a ROM, the index will be set to the highest existing index.
    # There is no upper bound on the index.
    # savestate_auto_index = false
    
    # Slowmotion ratio. When slowmotion, game will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which games will be run when using fast forward. (E.g. 5.0 for 60 fps game => 300 fps cap).
    # RetroArch will go to sleep to ensure that the maximum rate will not be exceeded.
    # Do not rely on this cap to be perfectly accurate.
    # A negative ratio equals no FPS cap.
    # fastforward_ratio = -1.0
    
    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false
    
    # input_enable_hotkey_btn = 6
    # input_exit_emulator_btn = 7
    # input_rewind_btn = 3
    # input_save_state_btn = 4
    # input_load_state_btn = 5
    # input_player2_a_btn = 0
    # input_player2_b_btn = 1
    # input_player2_x_btn = 2
    # input_player2_y_btn = 3
    # input_player2_l_btn = 4
    # input_player2_r_btn = 5
    # input_player2_start_btn = 7
    # input_player2_select_btn = 6
    # input_player2_left_axis = -0
    # input_player2_right_axis = +0
    # input_player2_up_axis = -1
    # input_player2_down_axis = +1
    rolsch
    Participant

    This tutorial shows how to get one to four wiimotes (the controller of Nintendo Wii) running with RetroPi with or without a classic controller (attached to the wiimote).

    Prerequisites

    1. For the following I assume that RetroPi was installed and is running with other controls (like keyboard, joystick etc.). I followed the excellent tutorial http://supernintendopi.wordpress.com/2013/01/23/an-a-to-z-beginners-guide-to-installing-retropie-on-a-raspberry-pi/ for this (using the “RetroPie Project SD Card Image”).

    2. You have a blue-tooth dongle (sometimes called blue-tooth adapter). For a list of dongles known to work with Raspberry Pi see http://elinux.org/RPi_USB_Bluetooth_adapters#Working_Bluetooth_adapters ).

    Note: Put the dongle in one of the USB ports of the Raspberry Pi directly, don’t put it into a USB hub (I read somewhere that it doesn’t work even with an active USB hub).

    Installation

    Now install the needed parts:

    sudo apt-get install bluetooth 
    sudo apt-get install python-cwiid 
    sudo apt-get install wminput

    Getting the wiimotes to work

    . uinput device needs to work with non-root users. To do so, create a file called /etc/udev/rules.d/wiimote.rules with the following line:
    KERNEL==“uinput“, MODE:=“0666“

    Reboot the Raspberry Pi to make this change active.

    . Check that the blue-tooth dongle works: Command
    /etc/init.d/bluetooth status
    should return that bluetooth is working

    . Scan for the wiimotes. Start
    hcitool scan
    and press 1+2 on your wiimote(s). After a short while, the output should be something like

    Scanning ...
            00:19:1D:87:90:38		Nintendo RVL-CNT-01
    	00:19:1D:88:EF:12		Nintendo RVL-CNT-01

    Take a note of the addresses of your wiimotes (the 00:19:1D:87:90:38 in the output above), we need that later.
    Note: If the scan is not successful try it again. Sometimes you need to try it several times (I read that somewhere, but it always worked for me the first time).

    . Correct usage of wminput
    For every wiimote, we need one wminput command to map the wiimote (and the classic controller) buttons to something emulationstation and the emulators can work with. wminput comes with configuration files (in directory /etc/cwiid/wminput). I created my own configuration file, which works if you use a wiimote with or without a classic controller. Create the file /home/pi/mywminput with the following content:

    Classic.Dpad.X = ABS_X
    Classic.Dpad.Y = ABS_Y
    Classic.LStick.X = ABS_HAT0X
    Classic.LStick.Y = ABS_HAT0Y
    Classic.RStick.X = ABS_HAT1X
    Classic.RStick.Y = ABS_HAT1Y
    Classic.A = BTN_A
    Classic.B = BTN_B
    Classic.X = BTN_X
    Classic.Y = BTN_Y
    Classic.Minus = BTN_SELECT
    Classic.Plus  = BTN_START
    Classic.Home  = BTN_MODE
    Classic.L  = BTN_TL
    Classic.R  = BTN_TR
    Classic.ZL = BTN_TL2
    Classic.ZR = BTN_TR2
    Wiimote.A		= BTN_A
    Wiimote.B		= BTN_B
    Wiimote.Dpad.X		= -ABS_Y
    Wiimote.Dpad.Y		= ABS_X
    Wiimote.Minus	= BTN_SELECT
    Wiimote.Plus	= BTN_START
    Wiimote.Home	= BTN_MODE
    Wiimote.1		= BTN_X
    Wiimote.2		= BTN_Y

    If the Raspberry Pi is started and emulationstation starts, we want to register the wiimotes so they can be used with emulationstation and the emulators.
    I did it the following way:
    mkdir /home/pi/bin
    create file /home/pi/bin/attachwii.sh with the following content:

    #!/bin/bash
    hcitool dev | grep hci >/dev/null
    if test $? -eq 0 ; then
    	wminput -d -c  /home/pi/mywminput 00:19:1D:92:90:38 &
    	wminput -d -c  /home/pi/mywminput 00:19:1D:84:EF:33 &
    else
    	echo "Blue-tooth adapter not present!"
    fi

    Note: You need one wminput line for every wiimote you want to use (i.e. the above is for two wiimotes)
    Note 2: You need to replace the addresses of the wiimotes above by the addresses of your wiimotes (shown by command „hcitool scan“ as shown above).
    make the script executable with
    chmod 775 /home/pi/bin/attachwii.sh
    have the script be started just before emulationstation starts. To do so, edit the file /etc/profile
    The last line should be
    [ -n "${SSH_CONNECTION}" ] || emulationstation
    right before this line, add the line
    /home/pi/bin/attachwii.sh
    and save the file.

    If you now do a reboot, wait until emulationstation has been started. When it did, press 1+2 on all of your wiimotes to register the wiimotes. Now you can „tell“ emulationstation and the emulators to use the wiimotes (and the classic controllers). Here are my configuration files.
    For emulationstation:
    Content of /home/pi/.emulationstation/es_input.cfg for two wiimotes:

    <?xml version="1.0"?>
    <inputList>
    	<inputConfig type="joystick" deviceName="Nintendo Wiimote">
    		<input name="a" type="button" id="0" value="1" />
    		<input name="b" type="button" id="1" value="1" />
    		<input name="down" type="axis" id="1" value="-1" />
    		<input name="left" type="axis" id="0" value="-1" />
    		<input name="menu" type="button" id="2" value="1" />
    		<input name="pagedown" type="button" id="4" value="1" />
    		<input name="pageup" type="button" id="5" value="1" />
    		<input name="right" type="axis" id="0" value="1" />
    		<input name="select" type="button" id="3" value="1" />
    		<input name="up" type="axis" id="1" value="1" />
    	</inputConfig>
    	<inputConfig type="joystick" deviceName="Nintendo Wiimote">
    		<input name="a" type="button" id="0" value="1" />
    		<input name="b" type="button" id="1" value="1" />
    		<input name="down" type="axis" id="1" value="-1" />
    		<input name="left" type="axis" id="0" value="-1" />
    		<input name="menu" type="button" id="2" value="1" />
    		<input name="pagedown" type="button" id="4" value="1" />
    		<input name="pageup" type="button" id="5" value="1" />
    		<input name="right" type="axis" id="0" value="1" />
    		<input name="select" type="button" id="3" value="1" />
    		<input name="up" type="axis" id="1" value="1" />
    	</inputConfig>
    	<inputConfig type="keyboard">
    		<input name="a" type="key" id="13" value="1" />
    		<input name="b" type="key" id="8" value="1" />
    		<input name="down" type="key" id="274" value="1" />
    		<input name="left" type="key" id="276" value="1" />
    		<input name="menu" type="key" id="32" value="1" />
    		<input name="right" type="key" id="275" value="1" />
    		<input name="up" type="key" id="273" value="1" />
    	</inputConfig>
    </inputList>

    For retroarch:
    End of file /home/pi/RetroPi/configs/all/retroarch.cfg (for two wiimotes):

    input_player1_joypad_index = "0"
    input_player1_b_btn = "0"
    input_player1_y_btn = "2"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    input_player1_up_axis = "+1"
    input_player1_down_axis = "-1"
    input_player1_left_axis = "-0"
    input_player1_right_axis = "+0"
    input_player1_a_btn = "1"
    input_player1_x_btn = "3"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_player1_l2_btn = "6"
    input_player1_r2_btn = "7"
    input_player1_l3_btn = "10"
    input_player1_r3_btn = "10"
    input_player1_l_x_plus_axis = "+2"
    input_player1_l_x_minus_axis = "-2"
    input_player1_l_y_plus_axis = "-3"
    input_player1_l_y_minus_axis = "+3"
    input_player1_r_x_plus_axis = "+4"
    input_player1_r_x_minus_axis = "-4"
    input_player1_r_y_plus_axis = "-5"
    input_player1_r_y_minus_axis = "+5"
    input_player2_joypad_index = "1"
    input_player2_b_btn = "1"
    input_player2_y_btn = "3"
    input_player2_select_btn = "8"
    input_player2_start_btn = "9"
    input_player2_up_axis = "+1"
    input_player2_down_axis = "-1"
    input_player2_left_axis = "-0"
    input_player2_right_axis = "+0"
    input_player2_a_btn = "0"
    input_player2_x_btn = "2"
    input_player2_l_btn = "4"
    input_player2_r_btn = "5"
    input_player2_l2_btn = "6"
    input_player2_r2_btn = "7"
    input_player2_l3_btn = "10"
    input_player2_r3_btn = "10"
    input_player2_l_x_plus_axis = "+2"
    input_player2_l_x_minus_axis = "-2"
    input_player2_l_y_plus_axis = "-3"
    input_player2_l_y_minus_axis = "+3"
    input_player2_r_x_plus_axis = "+4"
    input_player2_r_x_minus_axis = "-4"
    input_player2_r_y_plus_axis = "-5"
    input_player2_r_y_minus_axis = "+5"

    Make sure that the settings are only one time in retroarch.cfg file (i.e. if you have a line
    input_player1_b_btn = "0"
    in the retroarch.cfg file before adding my lines, remove (or out-comment) the whole section. If you want to use more than two wiimotes, search for the line
    input_player1_joypad_index = 0
    in retroarch.cfg and add the a corresponding line for the other wiimotes. For example you should have the following lines in retroarch.cfg for four wiimotes:

    input_player1_joypad_index = 0
    input_player2_joypad_index = 1
    input_player3_joypad_index = 2
    input_player4_joypad_index = 3

    Finally, add the following two lines at the end of /home/pi/RetroPi/configs/all/retroarch.cfg:

    input_enable_hotkey_btn = "0"
    input_exit_emulator_btn = "1"

    This will exit the emulator when you press A+B simultaneously on the wiimote (or the classic controller).

    Note: the config files above work for wiimotes with or without classic controller.
    Note 2: If you want to use the wiimote (i.e. not only the classic controller) and you are using my config files, you need to hold the wiimote horizontally (with the power button on the right).

    Hope that helps.

    #3056
    Anonymous
    Inactive

    Well it’s better than it was before but the buttons do different things in each emulator and the enable_hotkey button (select) seems to be on whatever happens :/ off to bed now but will try again tommorow…mite give ES Config a try…

    creamygoodness
    Participant

    Hey all I was wondering if somone could help me

    I installed my xbox360 controller to my Pi today and went through the input program on Emulation station but afterwards I decided to follow the guide on http://supernintendopi.wordpress.com/ to set up my controller properly so I had a hot key for exiting the emullators.

    Everything works fine on the SNES and Megadrive emulator but the GB,GBA and Mastersystem emulators are still using the old controllers and thus unless I press escape on a keyboard I have no way of exiting them. I cant see what I have missed to make them work differently, my config looks like this at the bottom

    # input_enable_hotkey_btn = 6
    # input_exit_emulator_btn = 7
    # input_rewind_btn = 3
    # input_save_state_btn = 4
    # input_load_state_btn = 5
    # input_player2_a_btn = 0
    # input_player2_b_btn = 1
    # input_player2_x_btn = 2
    # input_player2_y_btn = 3
    # input_player2_l_btn = 4
    # input_player2_r_btn = 5
    # input_player2_start_btn = 7
    # input_player2_select_btn = 6
    # input_player2_left_axis = -0
    # input_player2_right_axis = +0
    # input_player2_up_axis = -1
    # input_player2_down_axis = +1
    input_player1_joypad_index = “0”
    input_player1_b_btn = “0”
    input_player1_y_btn = “2”
    input_player1_select_btn = “8”
    input_player1_start_btn = “9”
    input_player1_up_axis = “-5”
    input_player1_down_axis = “+5”
    input_player1_left_axis = “-4”
    input_player1_right_axis = “+4”
    input_player1_a_btn = “1”
    input_player1_x_btn = “3”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    input_player1_l2_btn = “6”
    input_player1_r2_btn = “7”
    input_player1_l3_btn = “11”
    input_player1_r3_btn = “12”
    input_player1_l_x_plus_axis = “+0”
    input_player1_l_x_minus_axis = “-0”
    input_player1_l_y_plus_axis = “+1”
    input_player1_l_y_minus_axis = “-1”
    input_player1_r_x_plus_axis = “+2”
    input_player1_r_x_minus_axis = “-2”
    input_player1_r_y_plus_axis = “+3”
    input_player1_r_y_minus_axis = “-3”
    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    Is this all correct or do I need to edit a different file.

    Also a couple of quick questions.
    -Is there a guide to get mame to work, every time I click on a rom it just goes straight back to the rom screen again
    -can you add different hot keys? I have it so that If I click start and back it exits the emulator but I also wanted and hot key to toggle fast speed?

    Cheers

    petrockblog
    Keymaster

    Ian not at home right now.

    The hotkey functionality is also mentioned at https://github.com/retropie/RetroPie-Setup/wiki/Does-anybody-know-if-there’s-a-way-to-edit-the-retroarch.cfg-to-give-me-the-ability-to-exit-an-emulator-by-using-the-controller%3F

    I would guess that for rewind the configuration would look like

    input_rewind_btn = 1 (or some other button index)

    penningmic
    Participant

    Thank you for the response. Could you give an example of what the key binding would be for the rewind? Is input_rewind_btn the correct syntax? I imagine that I could be missing some tag it requires to be active. I will search through the .cfg and get back to you tonight.

    Currently I have the hotkey working for the exit to emulator, load/save state and it works great. It is these extra features that I am unable to get working. But I would be happy to try your suggestion tonight and let you know.

    petrockblog
    Keymaster

    It might be that you also need to configure the hotkey button for your controller to bind the rewind function successfully to the controller. This is just a guess, though.

    #2748

    In reply to: Can't Open RGUI

    trimmtrabb
    Participant

    What I meant was you need the quotation marks either side of the numbers like this:
    input_menu_toggle_btn = "3"
    instead of this:
    input_menu_toggle_btn = 3

    I just tried this on my RetroPie and the menu/disk hotkeys work fine. The GUI is pretty handy, thanks for mentioning it!

    #2740

    In reply to: Can't Open RGUI

    jplaj
    Participant

    I tried it, but still no effect. My other hotkey commands are coded over two lines each and they work fine, so I don’t think the problem is in the hotkey coding.

    Someone on another website suggested it may have something to do with the video driver not supporting RGUI, but I’m using the driver he suggested.

    Is it possible that for some reason RGUI didn’t get installed in my setup or updates? Is there a way to check to see if it’s even on my SD card?

    Thanks.

    #2734

    In reply to: Can't Open RGUI

    trimmtrabb
    Participant

    [quote=2728]I need to switch disks on PSX, but I couldn’t figure out how to do it. From what I gather, I need to open RGUI. However, I can’t seem to do that.

    None of the buttons on my keyboard opens it up.

    Binding keys in my config files (both Retroarch and PSX configs):

    input_enable_hotkey_btn = 8
    input_menu_toggle_btn = 3
    
    input_enable_hotkey_btn = 8
    input_disk_eject_toggle_btn = 4
    
    input_enable_hotkey_btn = 8
    input_disk_next_btn = 5

    –doesn’t work either. (Also, if it helps–and I could be wrong–I’m not sure those three commands were in my original config file when I first set up the system)

    I know other people can open the menu and switch disks, so does anyone know what might be wrong with my system that I can’t do that?

    Thanks for your help.
    [/quote]

    hi, try this instead:
    input_enable_hotkey_btn = "8" input_menu_toggle_btn = "3" input_enable_hotkey_btn = "8" input_disk_eject_toggle_btn = "4" input_enable_hotkey_btn = "8" input_disk_next_btn = "5"

Viewing 35 results - 1,016 through 1,050 (of 1,077 total)