Homepage Forums Search Search Results for 'ir gun'

Viewing 35 results - 1 through 35 (of 56 total)
  • Author
    Search Results
  • #122422
    dbdr
    Participant

    I’m making an arcade cabinet too, and I’d like so much to use a Wiimote (IR pointer) as a lightgun… or event 2 wiimotes !

    Please help !

    #121170
    caver01
    Participant

    Glad you asked! I have tried for weeks to get 1.4 to play vector games at my native resolution with no luck. Last year, after many late nights with PiPlay, I was able to get native resolution on Vector games using 1.2 and this config. So, with RetroPie I finally tried a test with the pre-compiled advmame 1.2 executable from my other SD card (running PiPlay) and simply replaced the advmame .94 binary as a test. This was a feeble attempt at leveraging at least some runcommand flexibility–use 1.4 for most stuff, but for vector games, I could select .94 and know that it was actually running the 1.2 advmame I copied over.

    My .94 swap is kludgy, and I don’t get much traction with other posts on this topic which is why I did the test. When it worked, I figured maybe I could just get 1.2 setup properly with runcommand support. I am still willing to try suggestions, but I have already tried this config (corrected the paths) to no avail in 1.4. Could there be a difference in the retropie-compiled versions of 1.4 that specifically prevents 1280×1024? On a previous post, you seemed to suggest thats the case. But, with the coming changes possibly to the default resolutions in RetroPie, I am definitely interested in making this work well. Once you have seen the crisp vector lines, it’s hard to go back to blurry 640×480 for vector classics.

    Here’s my 1.2 config (game-specific input mapping removed):

    display_mode auto
    display_adjust generate_yclock
    device_video_clock 60-150 / 30-80 / 60
    device_video_format 33630 0.814815 0 0.111111 0.0740741 0.914286 0.0196429 0.00357143 0.0625
    device_video_modeline FULLSCREEN 105.37 1280 1336 1512 1568 1024 1046 1050 1120 -hsync -vsync
    debug_crash no
    debug_rawsound no
    debug_speedmark no
    device_alsa_device default
    device_alsa_mixer channel
    device_color_bgr15 no
    device_color_bgr16 yes
    device_color_bgr24 no
    device_color_bgr32 no
    device_color_bgr8 no
    device_color_palette8 no
    device_color_yuy2 no
    device_joystick auto
    device_keyboard raw
    device_mouse raw
    device_raw_firstkeyhack no
    device_raw_mousedev[0] /dev/input/mouse0
    device_raw_mousedev[1] /dev/input/mouse1
    device_raw_mousedev[2] /dev/input/mouse2
    device_raw_mousedev[3] auto
    device_raw_mousetype[0] ps2
    device_raw_mousetype[1] ps2
    device_raw_mousetype[2] ps2
    device_raw_mousetype[3] ps2
    device_sdl_samples 512
    device_sound auto
    device_video auto
    device_video_cursor auto
    device_video_doublescan yes
    device_video_fastchange no
    device_video_interlace yes
    device_video_output auto
    device_video_singlescan yes
    dir_artwork /home/pi/RetroPie/roms/mame-advmame/artwork:/opt/retropie/configs/mame-advmame/artwork
    dir_diff /home/pi/.advance/diff
    dir_hi /home/pi/.advance/hi
    dir_image /home/pi/.advance/image:/opt/retropie/emulators/advmame/0.94.0/share/advance/image
    dir_inp /home/pi/.advance/inp
    dir_memcard /home/pi/.advance/memcard
    dir_nvram /home/pi/.advance/nvram
    dir_rom /home/pi/RetroPie/roms/mame-advmame
    dir_sample /home/pi/RetroPie/roms/mame-advmame/samples
    dir_snap /home/pi/.advance/snap
    dir_sta /home/pi/.advance/sta
    display_artwork_backdrop yes
    display_artwork_bezel no
    display_artwork_crop yes
    display_artwork_overlay yes
    display_aspectx 5
    display_aspecty 4
    display_brightness 1
    display_buffer yes
    display_color auto
    display_expand 1
    display_flipx no
    display_flipy no
    display_frameskip 0.5
    display_gamma 1.0
    display_interlaceeffect none
    display_magnify 4
    display_pausebrightness 0.6
    display_resize fractional
    display_resizeeffect filter
    display_restore yes
    display_rgbeffect triad6dot
    display_rol no
    display_ror no
    display_scanlines no
    display_skipcolumns auto
    display_skiplines auto
    display_vsync yes
    vector/display_mode FULLSCREEN
    vector/display_translucency yes
    vector/display_intensity 3.0
    vector/display_antialias yes
    vector/display_beam 1.2
    vector/display_flicker .1
    vector/display_adjust none
    vector/display_magnify 2
    vector/display_rgbeffect none
    vector/display_resizeeffect none
    vector/device_video_output fullscreen
    vector/display_resize fractional
    vertical/display_ror yes
    include 
    input_hotkey yes
    input_idleexit 0
    input_map[coin5] auto
    input_map[coin6] auto
    input_map[coin7] auto
    input_map[coin8] auto
    input_map[event10] auto
    input_map[event11] auto
    input_map[event12] auto
    input_map[event13] auto
    input_map[event14] auto
    input_map[event1] auto
    input_map[event2] auto
    input_map[event3] auto
    input_map[event4] auto
    input_map[event5] auto
    input_map[event6] auto
    input_map[event7] auto
    input_map[event8] auto
    input_map[event9] auto
    input_map[p1_dialx] mouse[0,x]
    input_map[p1_dialy] auto
    input_map[p1_lightgunx] auto
    input_map[p1_lightguny] auto
    input_map[p1_mousex] auto
    input_map[p1_mousey] auto
    input_map[p1_paddlex] auto
    input_map[p1_paddley] auto
    input_map[p1_pedalbrake] auto
    input_map[p1_pedalgas] auto
    input_map[p1_pedalother] auto
    input_map[p1_stickx] auto
    input_map[p1_sticky] auto
    input_map[p1_stickz] auto
    input_map[p1_trackballx] mouse[0,x] mouse[1,x] mouse[2,x]
    input_map[p1_trackbally] mouse[0,y] mouse[1,y] mouse[2,y]
    input_map[p2_dialx] -mouse[0,y]
    input_map[p2_dialy] auto
    input_map[p2_lightgunx] auto
    input_map[p2_lightguny] auto
    input_map[p2_mousex] auto
    input_map[p2_mousey] auto
    input_map[p2_paddlex] auto
    input_map[p2_paddley] auto
    input_map[p2_pedalbrake] auto
    input_map[p2_pedalgas] auto
    input_map[p2_pedalother] auto
    input_map[p2_stickx] auto
    input_map[p2_sticky] auto
    input_map[p2_stickz] auto
    input_map[p2_trackballx] mouse[0,x] mouse[1,x] mouse[2,x]
    input_map[p2_trackbally] mouse[0,y] mouse[1,y] mouse[2,y]
    input_map[p3_dialx] auto
    input_map[p3_dialy] auto
    input_map[p3_lightgunx] auto
    input_map[p3_lightguny] auto
    input_map[p3_mahjong_a] auto
    input_map[p3_mahjong_b] auto
    input_map[p3_mahjong_bet] auto
    input_map[p3_mahjong_c] auto
    input_map[p3_mahjong_chance] auto
    input_map[p3_mahjong_chi] auto
    input_map[p3_mahjong_d] auto
    input_map[p3_mahjong_double_up] auto
    input_map[p3_mahjong_e] auto
    input_map[p3_mahjong_f] auto
    input_map[p3_mahjong_flip_flop] auto
    input_map[p3_mahjong_g] auto
    input_map[p3_mahjong_h] auto
    input_map[p3_mahjong_i] auto
    input_map[p3_mahjong_j] auto
    input_map[p3_mahjong_k] auto
    input_map[p3_mahjong_kan] auto
    input_map[p3_mahjong_l] auto
    input_map[p3_mahjong_m] auto
    input_map[p3_mahjong_n] auto
    input_map[p3_mahjong_pon] auto
    input_map[p3_mahjong_reach] auto
    input_map[p3_mahjong_ron] auto
    input_map[p3_mahjong_score] auto
    input_map[p3_mousex] auto
    input_map[p3_mousey] auto
    input_map[p3_paddlex] auto
    input_map[p3_paddley] auto
    input_map[p3_pedalbrake] auto
    input_map[p3_pedalgas] auto
    input_map[p3_pedalother] auto
    input_map[p3_stickx] auto
    input_map[p3_sticky] auto
    input_map[p3_stickz] auto
    input_map[p3_trackballx] auto
    input_map[p3_trackbally] auto
    input_map[p4_dialx] auto
    input_map[p4_dialy] auto
    input_map[p4_lightgunx] auto
    input_map[p4_lightguny] auto
    input_map[p4_mahjong_a] auto
    input_map[p4_mahjong_b] auto
    input_map[p4_mahjong_bet] auto
    input_map[p4_mahjong_c] auto
    input_map[p4_mahjong_chance] auto
    input_map[p4_mahjong_chi] auto
    input_map[p4_mahjong_d] auto
    input_map[p4_mahjong_double_up] auto
    input_map[p4_mahjong_e] auto
    input_map[p4_mahjong_f] auto
    input_map[p4_mahjong_flip_flop] auto
    input_map[p4_mahjong_g] auto
    input_map[p4_mahjong_h] auto
    input_map[p4_mahjong_i] auto
    input_map[p4_mahjong_j] auto
    input_map[p4_mahjong_k] auto
    input_map[p4_mahjong_kan] auto
    input_map[p4_mahjong_l] auto
    input_map[p4_mahjong_m] auto
    input_map[p4_mahjong_n] auto
    input_map[p4_mahjong_pon] auto
    input_map[p4_mahjong_reach] auto
    input_map[p4_mahjong_ron] auto
    input_map[p4_mahjong_score] auto
    input_map[p4_mousex] auto
    input_map[p4_mousey] auto
    input_map[p4_paddlex] auto
    input_map[p4_paddley] auto
    input_map[p4_pedalbrake] auto
    input_map[p4_pedalgas] auto
    input_map[p4_pedalother] auto
    input_map[p4_stickx] auto
    input_map[p4_sticky] auto
    input_map[p4_stickz] auto
    input_map[p4_trackballx] auto
    input_map[p4_trackbally] auto
    input_map[safequit] auto
    input_map[service_coin5] auto
    input_map[service_coin6] auto
    input_map[service_coin7] auto
    input_map[service_coin8] auto
    input_map[ui_toggle_ui] auto
    input_steadykey no
    lcd_server none
    lcd_speed 4
    lcd_timeout 500
    misc_bios default
    misc_cheat no
    misc_cheatfile cheat.dat
    misc_difficulty none
    misc_eventdebug no
    misc_eventfile event.dat
    misc_freeplay no
    misc_hiscorefile hiscore.dat
    misc_lang none
    misc_languagefile english.lng
    misc_mutedemo no
    misc_quiet yes
    misc_safequit yes
    misc_smp no
    misc_timetorun 0
    record_sound no
    record_sound_time 15
    record_video no
    record_video_interleave 2
    record_video_time 15
    script_coin1 
    script_coin2 
    script_coin3 
    script_coin4 
    script_emulation 
    script_event1 
    script_event10 
    script_event11 
    script_event12 
    script_event13 
    script_event14 
    script_event2 
    script_event3 
    script_event4 
    script_event5 
    script_event6 
    script_event7 
    script_event8 
    script_event9 
    script_led1 on(kdb, 0b1); wait(!event()); off(kdb, 0b1);
    script_led2 on(kdb, 0b10); wait(!event()); off(kdb, 0b10);
    script_led3 
    script_play 
    script_safequit 
    script_start1 
    script_start2 
    script_start3 
    script_start4 
    script_turbo while (event()) { toggle(kdb, 0b100); delay(100); } off(kdb, 0b100);
    script_video wait(!event()); set(kdb, 0);
    sound_adjust auto
    sound_equalizer_highvolume 0
    sound_equalizer_lowvolume 0
    sound_equalizer_midvolume 0
    sound_latency 0.05
    sound_mode auto
    sound_normalize no
    sound_samplerate 44100
    sound_samples yes
    sound_volume 0
    sync_fps auto
    sync_resample auto
    sync_speed 1
    sync_startuptime auto
    sync_turbospeed 3
    ui_color[help_other] 000000 808080
    ui_color[help_p1] 000000 ffff00
    ui_color[help_p2] 000000 00ff00
    ui_color[help_p3] 000000 ff0000
    ui_color[help_p4] 000000 00ffff
    ui_color[interface] 000000 ffffff
    ui_color[select] 000000 afffff
    ui_color[tag] 247ef0 ffffff
    ui_font auto
    ui_fontsize auto
    ui_helpimage auto
    ui_translucency 0.8
    input_map[p1_up] keyboard[0,up]
    input_map[p1_down] keyboard[0,down]
    input_map[p1_right] keyboard[0,right]
    input_map[p1_left] keyboard[0,left]
    input_map[p1_button1] keyboard[0,lcontrol]
    input_map[p1_button2] keyboard[0,lalt]
    input_map[p1_button3] keyboard[0,space]
    input_map[p1_button4] keyboard[0,lshift]
    input_map[p1_button5] keyboard[0,z]
    input_map[p1_button6] keyboard[0,x]
    input_map[p1_button7] 
    input_map[p1_button8] 
    input_map[p2_up] keyboard[0,r]
    input_map[p2_down] keyboard[0,f]
    input_map[p2_right] keyboard[0,g]
    input_map[p2_left] keyboard[0,d]
    input_map[p2_button1] keyboard[0,a]
    input_map[p2_button2] keyboard[0,s]
    input_map[p2_button3] keyboard[0,q]
    input_map[p2_button4] keyboard[0,w]
    input_map[p2_button5] keyboard[0,i]
    input_map[p2_button6] keyboard[0,k]
    input_map[p2_button7] 
    input_map[p2_button8] 
    input_map[p1_doubleleft_up] keyboard[0,j]
    input_map[p1_doubleleft_down] keyboard[0,l]
    input_map[p1_doubleleft_right] keyboard[0,i]
    input_map[p1_doubleleft_left] keyboard[0,k]
    input_map[p1_doubleright_up] keyboard[0,up]
    input_map[p1_doubleright_down] keyboard[0,down]
    input_map[p1_doubleright_right] keyboard[0,right]
    input_map[p1_doubleright_left] keyboard[0,left]
    vertical/input_dipswitch[cabinet] cocktailinvaderl/input_dipswitch[cabinet] cocktail
    292x240/display_rgbeffect triadstrong6dot
    320x224/display_rgbeffect triadstrong6dot
    512x480/display_rgbeffect triadstrong6dot
    292x240x60/display_rgbeffect triadstrong6dot
    292x240x60/display_magnify 3
    292x240/display_magnify 3
    240x248/display_rgbeffect triadstrong6dot
    240x248/display_magnify 3
    224x288/display_rgbeffect triadstrong6dot
    224x288/display_magnify 3
    294x239/display_rgbeffect triadstrong6dot
    294x239/display_magnify 3
    336x240/display_rgbeffect triadstrong3dot
    336x240/display_magnify 3
    512x480x30/display_rgbeffect none
    512x480x30/display_resize integer
    512x480x30/display_magnify 1
    292x240/display_mode generate-quad
    292x240/display_resize mixed
    512x480x30/display_mode generate
    512x480x30/display_vsync no
    224x256/display_mode generate-quad
    224x256/display_rgbeffect triadstrong6dot
    224x256/display_magnify 3
    384x224x60/display_mode generate
    384x224x60/display_rgbeffect none
    400x254x53/display_mode generate
    400x254x53/display_rgbeffect none
    480x464x60/display_mode generate-double
    480x464x60/display_resizeeffect filter
    480x464x60/display_rgbeffect triadstrong3dot
    224x288x60/display_resize mixed
    224x288/display_resize mixed
    224x256x60/display_rgbeffect triad6dot
    input_map[p1_button9] 
    input_map[p1_button10] 
    input_map[p2_doubleright_up] keyboard[0,u]
    input_map[p2_doubleright_down] keyboard[0,v]
    input_map[p2_doubleright_left] keyboard[0,y]
    input_map[p2_doubleright_right] keyboard[0,n]
    input_map[p2_doubleleft_up] keyboard[0,r]
    input_map[p2_doubleleft_down] keyboard[0,f]
    input_map[p2_doubleleft_left] keyboard[0,d]
    input_map[p2_doubleleft_right] keyboard[0,g]
    input_map[p2_button9] 
    input_map[p2_button10] 
    input_map[p3_up] keyboard[1,scan0]
    input_map[p3_down] keyboard[0,k]
    input_map[p3_left] keyboard[0,j]
    input_map[p3_right] keyboard[0,l]
    input_map[p3_button1] keyboard[0,rcontrol]
    input_map[p3_button2] keyboard[0,rshift]
    input_map[p3_button3] keyboard[0,enter]
    input_map[p3_button4] keyboard[0,o]
    input_map[p3_button5] 
    input_map[p3_button6] 
    input_map[p3_button7] 
    input_map[p3_button8] 
    input_map[p3_button9] 
    input_map[p3_button10] 
    input_map[p4_up] keyboard[1,scan0]
    input_map[p4_down] keyboard[0,n]
    input_map[p4_left] keyboard[0,v]
    input_map[p4_right] keyboard[0,u]
    input_map[p4_button1] keyboard[0,b]
    input_map[p4_button2] keyboard[0,e]
    input_map[p4_button3] keyboard[0,h]
    input_map[p4_button4] keyboard[0,m]
    input_map[p4_button5] 
    input_map[p4_button6] 
    input_map[p4_button7] 
    input_map[p4_button8] 
    input_map[p4_button9] 
    input_map[p4_button10] keyboard[0,down]
    input_map[ui_up] keyboard[0,up] or keyboard[0,i] or keyboard[0,up]
    input_map[ui_down] keyboard[0,down] or keyboard[0,k] or keyboard[0,down]
    input_map[ui_left] keyboard[0,left] or keyboard[0,j] or keyboard[0,left]
    input_map[ui_right] keyboard[0,right] or keyboard[0,l] or keyboard[0,right]
    input_map[ui_select] keyboard[0,enter] or keyboard[0,1] or keyboard[0,3]
    vertical/input_map[p1_right] keyboard[0,l]
    vertical/input_map[p1_left] keyboard[0,j]
    vertical/input_map[p1_up] keyboard[0,i]
    vertical/input_map[p1_down] keyboard[0,k]
    vertical/input_map[p1_button1] keyboard[0,rcontrol]
    vertical/input_map[p1_button2] keyboard[0,rshift]
    vertical/input_map[p1_button3] keyboard[0,enter]
    vertical/input_map[p1_button4] keyboard[0,o]
    vertical/input_map[p2_right] keyboard[0,u]
    vertical/input_map[p2_left] keyboard[0,v]
    vertical/input_map[p2_up] keyboard[0,y]
    vertical/input_map[p2_down] keyboard[0,n]
    vertical/input_map[p2_button1] keyboard[0,b]
    vertical/input_map[p2_button2] keyboard[0,e]
    vertical/input_map[p2_button3] keyboard[0,h]
    vertical/input_map[p2_button4] keyboard[0,m]
    vertical/input_map[start1] keyboard[0,3]
    vertical/input_map[start2] keyboard[0,4]
    vertical/input_map[coin1] keyboard[0,7] or keyboard[0,8]
    deKay
    Participant

    Hello everyone,

    First, some info:

    Pi Model: 3
    RetroPie Version Used: 3.6
    Built From: SD image
    USB Devices connected: None
    Controller used: 8bitdo FC30 Pro
    Error messages received: None

    OK, I’ve been trying to play Midnight Resistance on MAME, and to do so it needs something configured as a dial controller. What I’d like to use, is one of my FC30 Pro’s sticks (ideally the right one!). Unfortunately, I can’t figure out how to do that.

    I can set either of the sticks as digital directions, but that just causes my character to flail his gun around as I run left and right :)

    Any ideas?

    #120501
    maughanorama
    Participant

    wonder if this could be made to work on linux

    http://forum.arcadecontrols.com/index.php/topic,89378.0.html

    theres also this
    http://blog.novaslp.net/post/97113634233/wiimotes-as-lightguns-in-mame-on-linux

    but requires X ….
    ill defo be trying to get this working. if i get any joy i will post a howto

    #119978
    senkun
    Participant

    Just went through the same issue of trying to get the DPAD on my generic usb ps3 controller to work with dreamcast/reicast. It may be different for your setup but if I remember correctly this is what I did to finally get mine working;

    Select the Dreamcast emulator from the frontend > start > menu > configure options input

    then go through the whole setting up of your controller again, this will write to configs/dreamcast/mappings/nameofyourcontroller.cfg

    This should by right map all your controller inputs to the .cfg file but somehow the DPAD and analog stick isn’t mapped and the entries are blank on mine.

    Within the configs/dreamcast/mappings/ folder there is a controller_generic.cfg from which I copied and saved these entries over to my .cgf file.

    btn_dpad1_left = 0x220
    btn_dpad1_right = 0x221
    btn_dpad1_up = 0x222
    btn_dpad1_down = 0x223
    axis_x = 0x00
    axis_y = 1×01

    The games I have tested working are:

    Gunbird 2
    Incoming
    Marvel vs Capcom 1 and 2
    MDK2
    Tech Romancer

    Only problem is the sound is choppy on my RPi2, just got my RPi3 today and will see how they run on that. Good luck with your controller setting. If you get your controller working let us know.

    #119938
    twitch0815
    Participant

    Not to take the unpopular position but I have had my Pi 3 for sometime now and with a slight overclock, and taking the time to configure the roms for the correct emulator (There are 4 options and certain ones suit certain games better)
    And downscaling the video to 640×480 The Nintendo 64 emulation is just absolutely amazing. I get that people have just put default settings in tested it and been unhappy but man is that unfair to what the Pi 3 can actually do.
    Don’t take my word for it https://www.youtube.com/watch?v=dsrxdCtNzLg this was a video I made a few hours of just messing with some N64 settings. I can play Super Mario 64 and Mario Kart at 1080 P in perfect condition. And most every other game at 640×480 and the right emulator is as good or better then the N64 version. 4 Player goldeneye playing like a dream.
    Look at the Pi3 tab of the compatibility sheet I have spearheaded and others have begun to work on https://docs.google.com/spreadsheets/d/1Sn3Ks3Xv8cIx3-LGCozVFF7wGLagpVG0csWybnwFHXk/edit?usp=sharing

    74/78 games I have tested have been playable assuming you get the right emulator/video mode overclock mix.

    And that is just the gains in N64 I have found numerous games that will play in mame that would not play on a 2 or were listed unplayable in the old compat lists.

    We have also had 1 and I mean 1 release that works on a pi3.
    The dev’s have not even begun to optimize code to take advantage of the emulators all they did was enable 3.6 to boot on a pi 3 and released it this is the most beta version of the 3.6 software we will ever have. We have had a few people spitball overclock settings and gpumem splits but far from the knowledge and tuning we will have in a few weeks. Just needs time but even just what I have seen out of mine in a few days I am amazed and excited.

    #119665
    Anonymous
    Inactive

    [quote=119607]

    sorry, yeah, true, daft as it is :)

    Yeah but that also means that the pi 2 doesn’t struggle for most emulators.

    I only had a few emulators/games that where able to make the pi 2 use 100% of one core.

    Here are some cases I checked:
    lr-snes-9x with super FX games (but easily solved with lr-pocketsnes…)
    mame4all with dodonpachi reached 100% but solved with lr-fba-next who never reaches more than 50% without fba overclocking setting* (around 95% with 200 for fba overclocking setting*)
    lr-pcsx-reamred doesn’t move from 50% except with few games like some specific magic spells in FF9 or specific parts of Broken Sword 2(but it is emulation glitches IMHO)

    For those we are interested in (N64, DC and PPSSPP) I didn’t check actually… would be interesting to verify later today.

    *It’s a setting that allows to emulate the original plateforme but overclocked (max 200 wich is 200%). It’s usefull to remove some slowdowns on games that where lagging on the original machine (like the metal slug serie on neogeo for exemple).

    my findings were different – I do understand how top works I was just miss typing. I doubt any emus run at 25% cpu.

    pcsx maxes the pi2 cpu at 2x resolution (it renders everything in software) and I’m sure it spikes to 100% at some games like tekken 3 that have brief hitches at regular resolution. I don’t use fba over mame for various reasons, so mame improvements are important to me.it also maxes with 32x games.

    mileage may vary …

    [/quote]

    Indeed, it’s true that you can find games on lr-mame-2003 that are lagging on pi 2.

    I remembered trying gunbird 2 on it and it was not good at all. I checked again on my Pi2 today and it was indeed struggling at 100% cpu load.

    Still I solved the problem with lr-fba…but I guess you can find some other games that are not compatible with fba and struggle on Pi2…

    maughanorama
    Participant

    im going to make a standup arcade cab with 2 sticks and 16 buttons
    is it worth me trying to get the wiimotes ir working as lightguns? if it is i will add the ir leds to the cab (AKA sensor bar).
    im not fussed about the accelerometer axis or the d pad just the ir and buttons.

    my questions are

    will retropie have the BT modules installed so the wiimote actually pairs with retropie and do we know if possible to get the IR working ?
    only my boy loves house of dead :)
    Cheers

    #116483
    hoofa
    Participant

    I’ll third that, also very keen to know if light gun games are playable (with the gun) in retropie

    #115822
    herbfargus
    Member

    this is taken directly from the default retroarch.cfg

    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 =

    l2 and r2 are the next/ previous weapon buttons for override syntax you may have to put the button in quotations like input_player1_l2 = "1"

    You can also check out floobs video for core input remapping options

    It looks like they only have controller hooks for next and previous weapon so I don’t think its possible to use the numbers as one gun per number selector.

    HoustoneD
    Participant

    I am slowly, but surely getting everything working in my RetroPie.

    Right now, my current hurdle to get over is getting my master system up and running.

    Genesis, SNES, NES, N64, and Atari all seem to be working using my PS3 Dual Shock Controller, over USB and also with bluetooth.

    Even playing some SMS ROMS through the Megadrive Emulator seems to work fine.

    I am running RetroPie 3.2.1 (fully updated, updated emulator binaries, setup script, etc.) on a RPi2.

    Hopefully these snippets will help provide some insight as to what my issue is. i am sure it is something easy. Please help!

    #### Input

    # Input driver. Depending on video driver, it might force a different input driver.
    # input_driver = sdl

    # Input device driver. (Valid: linuxraw, sdl, dinput)
    # input_joypad_driver =

    # Path to input remapping file.
    # input_remapping_path =

    # If enabled, overrides the input binds with the remapped binds set for the current core.
    # input_remap_binds_enable = true

    # Maximum amount of users supported by RetroArch.
    # input_max_users = 16

    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. “no”), or a layout and variant separated with colon (“no:nodeadkeys”).
    # input_keyboard_layout =

    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5

    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true

    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true

    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false

    # Directory for joypad autoconfigs.
    # 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 = /opt/retropie/configs/all/retroarch-joypads/

    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # 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 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 =

    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =

    # If desired, it is possible to override which joypads are being used for user 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

    # Input device 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =

    # Menu buttons.
    # menu_ok_btn =
    # menu_cancel_btn =
    # menu_search_btn =
    # menu_info_btn =
    # menu_default_btn =
    # menu_scroll_down_btn =
    # menu_scroll_up_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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =

    # 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 user 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 RetroArch cleanly.
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape

    # Applies next and previous 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 content is paused
    # input_frame_advance = k

    # Reset the content.
    # input_reset = h

    # 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 users.
    # 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_btn =

    # 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 content.
    # input_disk_eject_toggle =

    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =

    # Toggles menu.
    # input_menu_toggle = f1

    # RetroPad button combination to toggle menu
    # 0 = none, 1 = L + R + Y + D-Pad Down, 2 = L3 + R3
    # input_menu_toggle_gamepad_combo = 0

    # Toggles mouse grab. When mouse is grabbed, RetroArch hides the mouse,
    # and keeps the mouse pointer inside the window to allow relative mouse input
    # to work better.
    # input_grab_mouse_toggle = f11

    And my two PS3 configs-

    input_device = “PLAYSTATION(R)3 Controller”
    input_driver = “udev”
    input_b_btn = “14”
    input_y_btn = “12”
    input_select_btn = “0”
    input_start_btn = “3”
    input_up_btn = “4”
    input_down_btn = “6”
    input_left_btn = “7”
    input_right_btn = “5”
    input_a_btn = “13”
    input_x_btn = “15”
    input_l_btn = “10”
    input_r_btn = “11”
    input_l2_btn = “8”
    input_r2_btn = “9”
    input_l3_btn = “1”
    input_r3_btn = “2”
    input_l_x_plus_axis = “+0”
    input_l_x_minus_axis = “-0”
    input_l_y_plus_axis = “+1”
    input_l_y_minus_axis = “-1”
    input_r_x_plus_axis = “+2”
    input_r_x_minus_axis = “-2”
    input_r_y_plus_axis = “+3”
    input_r_y_minus_axis = “-3”
    input_enable_hotkey_btn = “0”
    input_exit_emulator_btn = “3”
    input_menu_toggle_btn = “15”
    input_load_state_btn = “10”
    input_save_state_btn = “11”
    input_reset_btn = “14”
    input_state_slot_increase_btn = “5”
    input_state_slot_decrease_btn = “7”

    input_device = “Sony PLAYSTATION(R)3 Controller”
    input_driver = “udev”
    input_r_y_plus_axis = “+3”
    input_l3_btn = “1”
    input_r_x_minus_axis = “-2”
    input_r_btn = “9”
    input_save_state_btn = “9”
    input_l2_btn = “10”
    input_start_btn = “3”
    input_exit_emulator_btn = “3”
    input_l_y_minus_axis = “-1”
    input_l_btn = “8”
    input_load_state_btn = “8”
    input_up_btn = “4”
    input_r_y_minus_axis = “-3”
    input_a_btn = “14”
    input_b_btn = “13”
    input_reset_btn = “13”
    input_down_btn = “6”
    input_r2_btn = “11”
    input_l_x_plus_axis = “+0”
    input_l_y_plus_axis = “+1”
    input_r3_btn = “2”
    input_right_btn = “5”
    input_state_slot_increase_btn = “5”
    input_x_btn = “15”
    input_menu_toggle_btn = “15”
    input_select_btn = “0”
    input_enable_hotkey_btn = “0”
    input_l_x_minus_axis = “-0”
    input_y_btn = “12”
    input_left_btn = “7”
    input_state_slot_decrease_btn = “7”
    input_r_x_plus_axis = “+2”

    Thanks in advance for the help.

    #108142
    grey
    Participant

    Hey all, thought I would share my first arcade build with you. This forum has been alot of help to me over the last 3 months, so really wanted to share the final result.

    I have built a standing 2 player full size arcade that obviously runs on RetroPie using a Raspberry Pi 2. It uses an Xin-Mo 2 player control board and for anyone having issues getting RetroPie to recognise it as 2 separate joypads has to check out this thread:

    Autofire on the axis

    It’s a life saver.

    As for the build itself, it currently stands at just over 2 metres tall. I know that sounds huge, and its definitely bigger than most standing arcades, but like everything I build it comes out like me: freaking tall. It has been custom wrapped in vinyl images of my choosing. I guess you could say it’s Metal Gear themed, but I has alot of my interests on it too like it’s Dragons Crown control panel.

    For video out, im using an old CRT tv I got for free. Since this is retro, I wanted to keep it as classic as I could. Old school games look better on a good CRT tv anyway.

    As for features:
    [list]
    [li]2 player set up[/li]
    [li]Additional 2 players using custom built arcade control board, and PS3 controller. Totaling 4 players.[/li]
    [li]300GB hard drive with about 100,000 roms (unsorted atm, clones, double ups etc.)[/li]
    [li]USB expansion dock, allowing for more players and wifi dongle setup[/li]
    [li]Arcade trackball (still to get working properly)[/li]
    [li]Hidden draw containing keyboard for easy RetroPie control[/li]
    [li]PS1 setup with up to 4 players[/li]
    [li]Light gun setup for PS1 with up to 2 players[/li]
    [li]Arcade is custom built so control board can be accessed from below at any time to fix buttons etc, and also has a door on the back to replace the TV should it ever die[/li]
    [/list]

    The project took me about 3.5 months in total as I could only really work on it during weekends. I estimate the time to build and complete it all up to this point was about 150-200 hours.

    You can read about the full build in detail here on my forum:
    http://thevideogameforum.com/showthread.php?tid=390

    Here are some pictures of the build in action, up till its completed point now:

    Frame:
    [img]http://i.imgur.com/o1HZRhI.jpg[/img]

    [img]http://i.imgur.com/B8zEAOn.jpg[/img]

    Housing:
    [img]http://i.imgur.com/YhZEihf.jpg?1[/img]

    [img]http://i.imgur.com/QWdOaNy.jpg[/img]

    [img]http://i.imgur.com/TGHSKqm.jpg[/img]

    [img]http://i.imgur.com/KgYueS0.jpg[/img]

    [img]http://i.imgur.com/txmRE2f.jpg[/img]

    [img]http://i.imgur.com/2tWAFnX.jpg[/img]

    [img]http://i.imgur.com/GUFo74N.jpg[/img]

    [img]http://i.imgur.com/r1v3eBs.jpg[/img]

    [img]http://i.imgur.com/47ACLgM.jpg[/img]

    Control board:

    [img]http://i.imgur.com/eB6vWXt.jpg[/img]

    [img]http://i.imgur.com/9ZXqAuN.jpg[/img]

    Paint job:

    [img]http://i.imgur.com/HVYEbpH.jpg[/img]

    Wrapping:
    [img]http://i.imgur.com/V6lznIl.jpg[/img]

    [img]http://i.imgur.com/dpJxm5U.jpg[/img]

    [img]http://i.imgur.com/tuJFMLn.jpg[/img]

    [img]http://i.imgur.com/zK78R8s.jpg[/img]

    [img]http://i.imgur.com/AX8CNHo.jpg[/img]

    [img]http://i.imgur.com/xo2qM41.jpg[/img]

    Control setup:

    [img]http://i.imgur.com/my8QWlr.jpg[/img]

    [img]http://i.imgur.com/iTS8wdA.jpg[/img]

    [img]http://i.imgur.com/nHkH1Ye.jpg[/img]

    Inside and gun setup:

    [img]http://i.imgur.com/lVBWGkC.jpg[/img]

    [img]http://i.imgur.com/IzDAKHt.jpg[/img]

    [img]http://i.imgur.com/jKbLKDR.jpg[/img]

    Complete:

    [img]http://i.imgur.com/EYRumiZ.jpg[/img]

    I’m pretty proud of it, and it was so fun to build. We definitely do it again, thinking about making a bartop next time.

    Any questions, just ask!

    #107805

    In reply to: MAME vs FBA

    dankcushions
    Participant

    i’ve done some excel experiments – here’s a list of the games that ARE in FBAnext but are NOT in mame2003 (parent roms ONLY):

    1945k III
    4 player input test [Demo, 4 player input test cartridge]
    7 Ordi (Korea)
    A.B. Cop (World, FD1094 317-0169b)
    A.D. 2083 [Incomplete Sound]
    Agress
    Air Assault (World)
    Air Attack (set 1)
    Alien Challenge (World) [Imperfect sound]
    Alien Invaders [preliminary sound]
    Alien Sector
    Arcadia (NMK)
    Asura Buster - Eternal Warriors (Japan) [Imperfect SND, freezes on first boss]
    Back Fire (Tecmo, bootleg)
    Backfire! (set 1)
    Bang Bang Busters (2010 NCI release) [Prototype]
    Battle Garegga (Europe / USA / Japan / Asia) (Sat Feb 3 1996)
    Bee Storm - DoDonPachi II (V102, World)
    Best Of Best
    Bestri (Korea)
    Bikkuri Card (Japan)
    Birdiy
    Bomb Kick (set 1)
    Bongo
    Boogie Wings (Euro v1.5, 92.12.07)
    Buccaneers (set 1)
    Bullet (FD1094 317-0041)
    Bygone [Imperfect sound]
    Cannon Ball (Pacman Hardware) [wrong colors]
    Catacomb [Bad Colours]
    Chain Reaction (World, Version 2.2, 1995.09.25)
    Chance Kun (Japan)
    Chaos (PGM Demo) [Demo, Demo Game]
    Chaos Demo (CPS-1) [Demo]
    Chaos Demo (Neo Geo) [Demo]
    Charlie Ninja
    Chip n Dale (Intro demo) [Demo, You must use the Universe BIOS and set region to Japan AES]
    Choko (010820 Japan)
    Choky! Choky!
    Choplifter (8751 315-5151)
    Choutetsu Brikin'ger - Iron clad (Prototype) [Prototype]
    Codename - Blut Engel (2006-01-19) [Homebrew]
    Columns (Neo Geo) [Homebrew]
    Combat Hawk
    Come Back Toto
    Cookie & Bibi (set 1)
    Cookie & Bibi 3
    Crazy Fight
    Crouching Poney Hidden Dragon (DEMO) [Homebrew]
    Crusher Makochan (Japan)
    Cyber Tank (v1.4)
    Dambusters (US, set 1)
    DarkWing Duck (Intro demo) [Demo, You must use the Universe BIOS and set region to Japan AES]
    Date Quiz Go Go (Korea)
    Deer Hunting USA V4.3
    Demon Front (V105)
    Desert Breaker (World, FD1094 317-0196)
    Diet Go Go (Euro v1.1 1992.09.26)
    Digger Man [Homebrew]
    DoDonPachi Dai-Ou-Jou (V101, Japan)
    Dolmen
    Double Point
    Dr. Tomy
    Dragon Bowl
    Dragon World 2001 (V100, Japan) [Bad sound?]
    Dragon World II (V110X, World)
    Dragon World Pretty Chance (V101, Japan) [Bad sound?]
    Duck Tales (Intro demo) [Demo, You must use the Universe BIOS and set region to Japan AES]
    Dynamite Dux (set 2, FD1094 317-0096)
    Dynasty Wars (US set 1)
    Egg Hunt
    Espgaluda (V100, Japan)
    Excelsior (set 1)
    Explosive Breaker
    Fantastic (Galaga conversion on Galaxian hardware)
    Fantasy Zone II - The Tears of Opa-Opa (System 16C)
    Fever SOS (International, ver. 98/09/25)
    Fighting Basketball
    Final Tetris
    Flying Tiger (set 1)
    Frog Feast (CPS-1) [Homebrew]
    Frog Feast (Neo Geo) [Homebrew]
    Frog Feast (PGM) [Homebrew]
    G-LOC Air Battle (US)
    Galaga Demo (set 1) [Homebrew]
    Galaxy Force 2
    Gals Panic S3 (Japan)
    Ganbare! Marine Kun (Marine 2K0411 JPN)
    Garogun Seroyang (Korea)
    Ghost Busters (Intro demo) [Demo, You must use the Universe BIOS and set region to Japan AES]
    Ghostlop (prototype) [Prototype]
    Gouketsuji Gaiden Legends (USA, ver. 95/06/20)
    GP Rider (World, FD1094 317-0163)
    Grasspin
    Guardian
    Gunbarich
    Hammer Away (prototype) [Prototype]
    Happy 6-in-1 (V102 - V101MK, China)
    Heuk Sun Baek Sa (Korea)
    Honey Dolls
    Hot Mind (Hard Times hardware)
    Hyper Crash (version D)
    Hyper Street Fighter II: The Anniversary Edition (040202 USA)
    Idol Mahjong - final romance 2 (Neo CD Conversion) [Hack]
    Jackie Chan in Fists of Fire
    Jockey Grand Prix (set 1)
    Joe & Mac Returns (World, Version 1.1, 1994.05.27)
    Joinem
    JoJo's Bizarre Adventure: Heritage for the Future / JoJo no Kimyou na Bouken: Mirai e no Isan (Japan 990927)
    JoJo's Venture / JoJo no Kimyou na Bouken (USA 990128)
    Jonas Indiana and the Lost Temple of RA (20050717) [Homebrew]
    Jumping Pop (Nics, Korean bootleg of Plump Pop) [Imperfect graphics]
    Jumping Pop (set 1)
    Jyangokushi -Haoh no Saihai- (990527 Japan)
    Kero Kero Keroppi's Let's Play Together (USA, Version 2.0)
    Ketsui Kizuna Jigoku Tachi (Revision 2?, Japan)
    Knights of Valour 2 (V107, 102, 100, Hong Kong)
    Knights of Valour 2 Plus - Nine Dragons (VM205XX, China)
    Knights of Valour Super Heroes Plus / Sangoku Senki Super Heroes Plus (ver. 101) [Imperfect Protection Emulation]
    Knights of Valour: Yi Tong Zhong Yuan / Sangoku Senki: Yi Tong Zhong Yuan (ver. 201, China) [Imperfect Protection Emulation]
    Knuckle Bash 2 (bootleg)
    Konami Test Board (GX800, Japan)
    Kong (Donkey Kong conversion on Galaxian hardware) [Bad Colours]
    Koro Koro Quest (Japan)
    Kozure Ookami (Japan) [Imperfect Graphics]
    Lady Master of Kung Fu
    Last Hope CD Beta (Neo CD conversion) [Hack, Imperfect graphics]
    Last Survivor (FD1094 317-0083)
    Lethal Enforcers (ver UAE, 11/19/92 15:04)
    Live Quiz Show
    Lord of Gun (USA) [Imperfect graphics and sound]
    Lover Boy
    Lucky Today [Bad colours]
    Mahjong G-Taste
    Mahjong Hot Gimmick Integral (Japan)
    Mang-Chi
    Martial Masters (V104, 102, 102, USA)
    Match It II
    Matrimelee / Shin Gouketsuji Ichizoku Toukon (NGM-2660) (NGH-2660)
    Mega Blast (World)
    Meijinsen
    Metal Saver
    Metal Slug 4 (NGM-2630)
    Metal Slug 5 (JAMMA PCB)
    Metal Slug 5 (NGM-2680)
    Michael Jackson's Moonwalker (set 3, World, FD1094/8751 317-0159)
    Mighty Warriors
    Mighty! Pang (001010 Euro)
    Miss Bingo
    Miss Puzzle
    Monster Maulers (ver EAA)
    Monsters World (bootleg of Super Pang)
    More More
    MTV Rock-N-Roll Trivia (Part 2)
    MuHanSeungBu (SemiCom Baseball) (Korea)
    Multi 5 / New Multi Game 5 (set 1)
    Multi Champ Deluxe (ver. 0106, 06/01/2000)
    Nandemo Seal Iinkai
    Neo 2500 Demo [Demo]
    Neo CastleVania Demo [Homebrew]
    Neo Geo CDZ system [System - media selected seperately]
    Neo No Panepon (beta) [Homebrew]
    Neo Pong (ver 1.1) [Homebrew]
    Neo System Check (ver 1.0b) [Demo]
    Neo Thunder [Homebrew, sebastianmihai.com]
    NeoGeo 2-Player Tetris [Homebrew]
    NeoGeo 3D! Demo [Homebrew]
    NGEM2K (beta 2006-01-18) [Homebrew]
    NGF Transparency Demo [Homebrew, redarmor.net]
    Ninja Kazan (World)
    Noboranka (Japan)
    Orbs (10/7/94 prototype?)
    Oriental Legend Special Plus / Xi You Shi E Zhuan Super Plus (ver. 205) [Incomplete Dump]
    Oriental Legend Super (V101, Korea) [Imperfect Protection Emulation]
    Osman (World)
    P-GeMeni (060123) [Homebrew]
    Pairs Love
    Pang Pang
    Paparazzi
    Party Time: Gonta the Diver II / Ganbare! Gonta!! 2 (World Release)
    Planet Probe (prototype?)
    Pochi and Nyaa
    Pocket Gal Deluxe (Euro v3.00)
    Pocket Gals V.I.P (set 1)
    Poker Night [Homebrew]
    Pop Bingo
    Pop's Pop's
    Power Drift (World, Rev A)
    Primo Demo [Homebrew]
    Progear (010117 USA)
    Puzz Loop 2 (010302 Euro)
    Puzzle Break
    Puzzle Club (Yun Sung, set 1)
    Puzzle Star (V100MG) [Incomplete dump]
    Puzzli 2 (V100) [Incomplete dump]
    PuzzLove
    Quiz Olympic
    Quiz Tonosama no Yabou 2 Zenkoku-ban (tonosama 2 950123 Japan)
    Racing Beat (World)
    Racing Hero (FD1094 317-0144)
    Rack + Roll
    Rage of the Dragons (NGM-264?)
    Raiden DX (UK) [Coin inputs require holding down]
    Rail Chase (World)
    Rainbow Islands (new version)
    Red Earth / War-Zard (Euro 961121)
    Riot
    Robocop (Intro demo) [Demo, You must use the Universe BIOS and set region to Japan AES]
    Rock Duck (prototype?) [incorrect colors]
    Rock'n 3 (Japan)
    Rock'n 4 (Japan, prototype)
    Rock'n Tread 2 (Japan)
    S.V.G. - Spectral vs Generation (V200, China)
    Samurai Shodown V / Samurai Spirits Zero (NGM-2700)
    Samurai Shodown V Special / Samurai Spirits Zero Special (NGM-2720)
    Saturn
    Schmeiser Robo (Japan)
    Scooter Shooter
    Scorpion (set 1) [Incomplete Sound]
    SD Fighters (Korea)
    Search Eye (English / Korean / Japanese / Italian)
    Search Eye Plus V2.0
    Sengoku 3 / Sengoku Densho 2001
    Shadow of the Beast (Neo Geo demo) [Demo]
    Shinobi / FZ-2006 (Korean System 16 bootleg) (ISG Selection Master Type 2006)
    Silver Millennium
    Snapper (Korea)
    SNK vs. Capcom - SVC Chaos (JAMMA PCB, set 1)
    SNK vs. Capcom - SVC Chaos (NGM-2690)(NGH-2690)
    Snow Brothers 3 - Magical Adventure [Bootleg]
    Soldam
    Sonic Boom (FD1094 317-0053)
    Space Bomber (ver. B)
    Space Raider
    Spectrum 2000 (vertical)
    Spiderman (Intro demo) [Demo, You must use the Universe BIOS and set region to Japan AES]
    Squash (Ver. 1.0)
    Street Fighter (US set 1)
    Street Fighter II' - Hyper Fighting (street fighter 2' T 921209 ETC)
    Street Fighter III 2nd Impact: Giant Attack (USA 970930)
    Street Fighter III 3rd Strike: Fight for the Future (Euro 990608)
    Street Fighter III: New Generation (Euro 970204)
    Street Fighter Zero (CPS Changer, 951020 Japan)
    Street Fighter Zero 2 Alpha (960826 Asia)
    Strike Fighter (World)
    Success Joe (World) [Incomplete sound]
    Sukeban Jansi Ryuko (set 2, System 16B, FD1089B 317-5021)
    SunA Quiz 6000 Academy (940620-6)
    Super Bishi Bashi Championship (ver JAA, 2 Players) [Imperfect gfx (bad priorities)]
    Super Model
    Super Monaco GP (World, Rev B, FD1094 317-0126a)
    Super Trio
    Super Triv [No sound]
    Surprise Attack (World ver. K)
    SWAT Police
    Taisen Hot Gimmick 4 Ever (Japan)
    Tang Tang (ver. 0526, 26/05/2000)
    Teenage Mutant Ninja Turtles (Intro demo) [Demo, You must use the Universe BIOS and set region to Japan AES]
    Tenchi wo Kurau II - Sekiheki no Tatakai (CPS Changer, 921031 Japan)
    Tetris (D.R. Korea) [Wrong colors]
    Tetris / Bloxeed (Korean System 16 bootleg) (ISG Selection Master Type 2006)
    Tetris the Absolute The Grand Master 2
    The Gladiator - Road Of The Sword / Shen Jian (V101) [Incomplete Dump]
    The Killing Blade (V109, China)
    The Killing Blade Plus (V300)
    The King of Fighters 2001 (NGM-262?)
    The King of Fighters 2002 (NGM-2650)(NGH-2650)
    The King of Fighters 2003 (Japan, JAMMA PCB)
    The King of Fighters 2003 (NGM-2710)
    The Lost Castle In Darkmist
    Thunder Heroes
    Thunder Hoop (Ver. 1)
    Time Fighter (Time Pilot conversion on Galaxian hardware) [Bad Colours]
    Time Scanner (set 2, System 16B)
    Time's Up Demo [Homebrew]
    Toppy & Rappy
    Treasure of the Carribean [Prototype]
    Triple Draw Poker [Bootleg]
    Trophy Hunting - Bear & Moose V1.0
    Turkey Hunting USA V1.0
    Twin Action
    Twin Adventure (World)
    Twin Falcons
    Twinkle
    Uncle Poo
    unknown Pac-Man gambling game
    V-Liner (set 1)
    Varia Metal [Imperfect graphics]
    Wally wo Sagase! (rev B, Japan, FD1094 317-0197B)
    Water Balls
    Wiggie Waggie
    Wild West C.O.W.-Boys of Moo Mesa (ver EAB)
    Wing Shooting Championship V2.00
    Wonder League '96 (Korea)
    Wonder League Star - Sok-Magicball Fighting (Korea)
    Wonder Stick
    Woodpecker (set 1)
    WOW New Fantasia
    WW2 Demo - Arcade Development Project [Homebrew]
    Wyvern F-0
    Zero Team USA (set 1, US, Fabtek license) [Coin inputs require holding down]
    Zintrick / Oshidashi Zentrix (hack / bootleg) [Bootleg]
    Zip & Zap [Imperfect GFXs, No Sound]
    Zupapa!

    (the same list for parents that ARE in mame2003 but not in FBAnext is over 1600, so i figure i want to just use FBAnext for its exclusive games)

    of that list, I think it can be further narrowed to get rid of all the neo-geo, stuff that doesn’t work, and duff categories, so I’ll do that now and see if I can’t get a small list of the stuff that’s worth keeping in FBA.

    calathia
    Participant

    Hello!

    I understand that I should only edit controller configurations. But like I said, editing those does absolutely nothing. I think program does not use autodetect? I could be the issue. Could you post your retroarch.cfg so I can compare mine.

    Here is mine, please inform if you see odd stuff there.

    
    ## 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 =
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =
    
    # Save all input remapping files to this directory.
    # input_remapping_directory =
    
    # Save all playlist files to this directory.
    # playlist_directory =
    
    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =
    
    # 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.
    
    # Path to a libretro implementation.
    # libretro_path = /path/to/libretro.so
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # A directory for where to search for libretro core information.
    # libretro_info_path =
    
    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0
    
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    
    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true
    
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    
    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg
    
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/BIOS
    
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    assets_directory = /opt/retropie/emulators/retroarch/assets
    
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    
    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    
    # Load up a specific config file based on the core being used.
    # core_specific_config = 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_context_driver =
    
    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 3.0
    
    # Fullscreen resolution. Resolution of 0 uses the resolution of the desktop.
    video_fullscreen_x = 1280
    video_fullscreen_y = 720
    
    # 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
    
    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false
    
    # 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
    
    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 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 = true
    
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = true
    
    # Forces rendering area to stay equal to content aspect ratio or as defined in video_aspect_ratio.
    video_force_aspect = false
    
    # 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.77
    #1.333333 (4:3) Traditional SDTV
    #1.56 (14:9) 4:3/16:9 Compromise aspect ratio
    #1.6667 (5:3 Super 16mm)
    #1.77 (16:9) HDTV US standard 
    #1.78 (16:9) HDTV US standard alternate
    #1.6 (16:10) Common computer screen ratio
    #1.6667 (5:3) Common European widescreen standard
    #1.85 Common US widescreen cinema
    #2.39 Current widescreen cinema alternate
    #2.40 Current widescreen cinema alternate
    
    # 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 = true
    
    # 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 GLSL, GLSLP (GLSL preset)
    #video_shader = /opt/retropie/emulators/retroarch/shader/crt/crt-hyllian-glow/crt-hyllian.glsl
    
    # Load video_shader on startup.
    # Other shaders can still be loaded later in runtime.
    #video_shader_enable = true
    
    # Defines a directory where shaders (Cg, CGP, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/retroarch/shader/
    
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    
    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =
    
    # Path to a 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 font rendered.
    video_font_size = 12
    
    # 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 content 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
    
    # Mutes audio.
    # audio_mute_enable = false
    
    # Audio output samplerate.
    audio_out_rate = 44100
    
    # Audio resampler backend. Which audio resampler to use.
    # Default will use sinc.
    # audio_resampler =
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver = sdl
    
    # 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 =
    
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =
    
    # Directory where DSP plugins are kept.
    # audio_filter_dir =
    
    # 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 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
    
    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05
    
    # 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
    
    #### Overlay
    
    # Defines a directory where overlays are kept for easy access.
    overlay_directory = /opt/retropie/emulators/retroarch/overlays
    
    # Enable or disable the current overlay.
    # input_overlay_enable = true
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.0
    
    #### OSK (Onscreen Keyboard) Overlay
    
    # Defines a directory where overlays are kept for easy access.
    # osk_overlay_directory =
    
    # Enable OSK overlay.
    # input_osk_overlay_enable = true
    
    # Path to OSK overlay
    # input_osk_overlay =
    
    # OSK Overlay opacity
    # input_osk_overlay_opacity = 1.0
    
    # OSK Overlay scale
    # input_osk_overlay_scale = 1.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 =
    input_joypad_driver = udev
    
    # Path to input remapping file.
    # input_remapping_path =
    
    # If enabled, overrides the input binds with the remapped binds set for the current core.
    # input_remap_binds_enable = true
    
    # Maximum amount of users supported by RetroArch.
    # input_max_users = 16
    
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. no), or a layout and variant separated with colon (no:nodeadkeys).
    # input_keyboard_layout =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true
    
    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true
    
    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false
    
    # Directory for joypad autoconfigs.
    # 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 = /opt/retropie/emulators/retroarch/configs/all/
    
    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # 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
    
    #joypad hotkeys
    
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    
    input_save_state_btn = 4
    input_load_state_btn = 5
    
    input_player1_a_btn = 2
    input_player1_b_btn = 3
    input_player1_y_btn = 1
    input_player1_x_btn = 0
    input_player1_start_btn = 9
    input_player1_select_btn = 8
    input_player1_l_btn = 4
    input_player1_r_btn = 5
    input_player1_up_axis = -1
    input_player1_down_axis = +1
    input_player1_left_axis = -0
    input_player1_right_axis = +0
    input_player1_enable_hotkey_btn = 8
    input_player1_exit_emulator_btn = 9
    input_player1_menu_toggle_btn = 0
    input_player1_load_state_btn = 4
    input_player1_save_state_btn = 5
    input_player1_reset_btn = 2
    input_player1_state_slot_increase_axis = +0
    input_player1_state_slot_decrease_axis = -0
    
    # 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 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_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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    
    # If desired, it is possible to override which joypads are being used for user 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =
    
    # 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 user 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 RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    
    # Applies next and previous 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 content is paused
    # input_frame_advance = k
    
    # Reset the content.
    # input_reset = h
    
    # 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 users.
    # 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_btn = 8
    #input_enable_hotkey_btn = 12
    
    # 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 content.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Menu
    
    # Menu driver to use. rgui, lakka, etc. 
    # menu_driver = rgui
    
    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false
    
    # Enable mouse input inside the menu.
    # menu_mouse_enable = false
    
    # Enable touch input inside the menu.
    # menu_pointer_enable = false
    
    # Shows current date and/or time inside menu.
    # menu_timedate_enable = true
    
    # Shows current core inside menu.
    # menu_core_enable = true
    
    # Path to a .png image to set as menu wallpaper.
    # menu_wallpaper =
    
    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false
    
    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false
    
    # Filter files being show in 'Load Content' by supported extensions
    # menu_navigation_browser_filter_supported_extensions_enable = true
    
    # Collapse subgroup settings into main group to create one big listing of settings
    # per category.
    # menu_collapse_subgroups_enable = false
    
    #### UI
    
    # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
    # by video driver.
    # suspend_screensaver_enable  = true
    
    #### Camera
    
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    
    # Override the default privacy permission for cores that want to access camera services. Is false by default.
    # camera_allow = false
    
    #### Location
    
    # Override the default privacy permission for cores that want to access location services. Is false by default.
    # location_allow = false
    
    #### Core Updater
    
    # URL to core update directory on buildbot.
    # core_updater_buildbot_url = http://buildbot.libretro.com
    
    # URL to assets update directory on buildbot.
    # core_updater_buildbot_assets_url = http://buildbot.libretro.com/assets/
    
    # Automatically extract archives that the cores are contained in to the libretro cores directory.
    # core_updater_auto_extract_archive = true
    
    #### Network
    
    # When being client over netplay, use keybinds for user 1.
    # netplay_client_swap_input = false
    
    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname = 
    
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    
    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false
    
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    
    # 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 =
    
    # Path to content database directory.
    # content_database_path =
    
    # Path to cheat database directory.
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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.
    # fastforward_ratio = 1.0
    
    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false
    
    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false
    
    input_enable_hotkey = nul
    
    #105716
    deepdivered
    Participant

    looks like before i get to soldering i will need to get a new iron. mine is not getting hot enough to do some good soldering.

    i picket up my dermal (i had lent it out) and borrowed a hot glue gun.

    #105702
    jarkokoo
    Participant

    I don’t mean to troll or anything, but if you REALLY are after a genuine CRT-look and extra bells and whistles, you have to invest some more money to your project.

    For MAME + HLSL most of the small form factor PC’s around 300e/$/250£ will do, especially, if you’re willing to drop the desktop resolution to 900p – it really doesn’t show on MAME’s picture quality, but shows on performance, when the shaders are run. For example my ASUS VM42 runs MAME with HLSL enabled at full 100% speed, when I dropped the resolution to 900p, and it looks beautiful. But a good thing to remember is, that this kind of system is only suitable for 2d-stuff in MAME, so no Rival Schools or Radiant Silvergun.

    For 3d stuff, in MAME or, if you want to emulate Wii or similar or RetroArch with shaders you’ll need a “real” computer, with a dedicated decent GPU. In most cases the 3d-era systems’ emulation and the shaders in RA are just so demanding. So, if you want to have it all: you have to buy a real rig, that runs your emulation project.

    For other individual emulators with shaders: you just have to try. But the bottom line is: with a cheap system, like RPi or even a small form factor PC/HTPC, you just have to let some features go. In RPi environment it mostly means: no shaders at all, at least not at this particular moment.

    #105033
    Anonymous
    Inactive

    I get this:

    total 352K
    drwxr-xr-x 2 pi pi 4.0K Aug 28 15:08 .
    drwxr-xr-x 3 pi pi 4.0K Aug 27 12:04 ..
    -rw-r–r– 1 pi pi 546 Aug 27 12:14 2Axes11KeysGamePad.cfg
    -rw-r–r– 1 pi pi 1.4K Aug 27 12:14 8Bitdo-FC30-GamePad-Bluetooth-Mode(START)-Mode(START+R).cfg
    -rw-r–r– 1 pi pi 2.3K Aug 27 12:14 8Bitdo-FC30-Pro-GamePad-Bluetooth-Mode(POWER)-Mode(POWER+R1).cfg
    -rw-r–r– 1 pi pi 2.3K Aug 27 12:14 8Bitdo-FC30-Pro-GamePad-USB.cfg
    -rw-r–r– 1 pi pi 944 Aug 27 12:14 8Bitdo-NES30-GamePad-Bluetooth-Mode(START).cfg
    -rw-r–r– 1 pi pi 1.1K Aug 27 12:14 8Bitdo-NES30-GamePad-Bluetooth-Mode(START+R).cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 8Bitdo-NES30-Pro-GamePad-Bluetooth-Mode(POWER).cfg
    -rw-r–r– 1 pi pi 1.9K Aug 27 12:14 8Bitdo-NES30-Pro-GamePad-Bluetooth-Mode(POWER+R1).cfg
    -rw-r–r– 1 pi pi 2.3K Aug 27 12:14 8Bitdo-NES30-Pro-GamePad-USB.cfg
    -rw-r–r– 1 pi pi 944 Aug 27 12:14 8Bitdo-SFC30-GamePad-Bluetooth-Mode(START).cfg
    -rw-r–r– 1 pi pi 1.1K Aug 27 12:14 8Bitdo-SFC30-GamePad-Bluetooth-Mode(START+R).cfg
    -rw-r–r– 1 pi pi 962 Aug 27 12:14 8Bitdo-(S)FC30-GamePad-USB.cfg
    -rw-r–r– 1 pi pi 945 Aug 27 12:14 8Bitdo-SNES30-GamePad-Bluetooth-Mode(START).cfg
    -rw-r–r– 1 pi pi 1.1K Aug 27 12:14 8Bitdo-SNES30-GamePad-Bluetooth-Mode(START+R).cfg
    -rw-r–r– 1 pi pi 962 Aug 27 12:14 8Bitdo-(S)NES30-GamePad-USB.cfg
    -rw-r–r– 1 pi pi 631 Aug 27 12:14 ControlBlockArcadeGamepad.cfg
    -rw-r–r– 1 pi pi 549 Aug 27 12:14 ControlBlockSNESGamepad.cfg
    -rw-r–r– 1 pi pi 889 Aug 27 12:14 Defender_Game_Master_Gamepad.cfg
    -rw-r–r– 1 pi pi 457 Aug 27 12:14 DragonRise_Inc._Gamepad.cfg
    -rw-r–r– 1 pi pi 926 Aug 27 12:14 DragonRise_Inc.___Generic___USB__Joystick__.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 EA_SPORTS_PS3_Football_Club_Wired_Controller_PL-6416.cfg
    -rw-r–r– 1 pi pi 955 Aug 27 12:14 G27_Racing_Wheel.cfg
    -rw-r–r– 1 pi pi 928 Aug 27 12:14 Gamtec.,Ltd_SmartJoy_PLUS_Adapter.cfg
    -rw-r–r– 1 pi pi 860 Aug 27 12:14 Generic_X-Box_pad.cfg
    -rw-r–r– 1 pi pi 876 Aug 27 12:14 Gravis_Destroyer_Tiltpad.cfg
    -rw-r–r– 1 pi pi 919 Aug 27 12:14 GreenAsia_Inc.______USB__Joystick__.cfg
    -rw-r–r– 1 pi pi 857 Aug 27 12:14 GreenAsia_Inc.____USB_Joystick_____.cfg
    -rw-r–r– 1 pi pi 904 Aug 27 12:14 HORI_CO.,LTD__PAD_A.cfg
    -rw-r–r– 1 pi pi 648 Aug 27 12:14 Hori_Fighting_Stick_Ex2.cfg
    -rw-r–r– 1 pi pi 948 Aug 27 12:14 HuiJia__USB_GamePad.cfg
    -rw-r–r– 1 pi pi 955 Aug 27 12:14 iBuffalo_Classic_Usb_Gamepad.cfg
    -rw-r–r– 1 pi pi 478 Aug 27 12:34 INNEXSNESControllerUSB.cfg
    -rw-r–r– 1 pi pi 918 Aug 27 12:14 JessTechColourRumblePad.cfg
    -rw-r–r– 1 pi pi 918 Aug 27 12:14 Jess_Tech_Dual_Analog_Rumble_Pad.cfg
    -rw-r–r– 1 pi pi 932 Aug 27 12:14 kadevice.com_KADE_-_Kick_Ass_Dynamic_Encoder.cfg
    -rw-r–r– 1 pi pi 912 Aug 27 12:14 Logitech_Gamepad_F310.cfg
    -rw-r–r– 1 pi pi 864 Aug 27 12:14 LogitechGamepadF710.cfg
    -rw-r–r– 1 pi pi 878 Aug 27 12:14 LogitechLogitechCordlessRumblePad2.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Logitech_Logitech_Dual_Action.cfg
    -rw-r–r– 1 pi pi 910 Aug 27 12:14 Logitech_Logitech(R)_Precision(TM)_Gamepad.cfg
    -rw-r–r– 1 pi pi 1.7K Aug 27 12:14 Logitech_Logitech_RumblePad_2_USB.cfg
    -rw-r–r– 1 pi pi 1.6K Aug 27 12:14 Mayflash-GC-to-USB-Adapter_Nintendo-GameCube-Controller.cfg
    -rw-r–r– 1 pi pi 929 Aug 27 12:14 Mega_World_Thrustmaster_dual_analog_3.2.cfg
    -rw-r–r– 1 pi pi 859 Aug 27 12:14 Microntek______________USB_Joystick__________.cfg
    -rw-r–r– 1 pi pi 1.1K Aug 27 12:14 Microsoft(R)Sidewinder(R)_Game_Pad_USB.cfg
    -rw-r–r– 1 pi pi 1020 Aug 27 12:14 Microsoft_Sidewinder_Dual_Strike_USB_version_1.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Microsoft_X-Box_360_pad.cfg
    -rw-r–r– 1 pi pi 915 Aug 27 12:14 Microsoft_Xbox_Controller_S.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Microsoft_X-Box_One_pad.cfg
    -rw-r–r– 1 pi pi 627 Aug 27 12:14 MOSIC______USB_2A8K__GamePad__________.cfg
    -rw-r–r– 1 pi pi 1.7K Aug 27 12:14 MP-8800_Quad_USB_Joypad.cfg
    -rw-r–r– 1 pi pi 1.7K Aug 27 12:14 MP-8866_Dual_USB_Joypad.cfg
    -rw-r–r– 1 pi pi 919 Aug 27 12:14 MY-POWER_CO__LTD__2In1_USB_Joystick.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Nintendo_Wii_Pro_Controller.cfg
    -rw-r–r– 1 pi pi 832 Aug 27 12:14 Play_SEGA_USB_HL-F2412.cfg
    -rw-r–r– 1 pi pi 833 Aug 27 12:14 Qnix_SNES_Replica.cfg
    -rw-r–r– 1 pi pi 438 Aug 27 12:14 raphnet.net_4nes4snes.cfg
    -rw-r–r– 1 pi pi 732 Aug 27 12:14 Retrolink_Nintendo_64_Classic_USB.cfg
    -rw-r–r– 1 pi pi 565 Aug 27 12:14 Retrolink_USB_SEGA_Saturn_Classic_Controller.cfg
    -rw-r–r– 1 pi pi 793 Aug 27 12:14 Saitek_P880.cfg
    -rw-r–r– 1 pi pi 860 Aug 27 12:14 Saitek_P990.cfg
    -rw-r–r– 1 pi pi 888 Aug 27 12:14 Saitek_PLC_P2600_Rumble_Force_Pad.cfg
    -rw-r–r– 1 pi pi 921 Aug 27 12:14 Saitek_X52_Flight_Control_System.cfg
    -rw-r–r– 1 pi pi 947 Aug 27 12:14 SLS-Sega-Saturn-USB-Gamepad.cfg
    -rw-r–r– 1 pi pi 546 Aug 27 12:14 SNES-to-GamepadDevice.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Sony-PlayStation3-DualShock3-Controller-Bluetooth.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Sony-PlayStation3-DualShock3-Controller-USB.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Sony-PlayStation4-DualShock4-Controller.cfg
    -rw-r–r– 1 pi pi 920 Aug 27 12:14 Thrustmaster_Dual_Trigger_3-in-1.cfg
    -rw-r–r– 1 pi pi 874 Aug 27 12:14 THRUSTMASTER_FireStorm_Dual_Analog_2.cfg
    -rw-r–r– 1 pi pi 841 Aug 28 15:08 ThrustmasterThrustmasterdualanalog3.2.cfg
    -rw-r–r– 1 pi pi 907 Aug 27 12:14 Thrustmaster_T_Mini_2.cfg
    -rw-r–r– 1 pi pi 868 Aug 27 12:14 Thrustmaster_T_Mini_Wireless.cfg
    -rw-r–r– 1 pi pi 711 Aug 27 12:14 THRUSTMASTER_Top_Gun_Fox_2_Pro.cfg
    -rw-r–r– 1 pi pi 686 Aug 27 12:14 TOMEE_N64_USB_CONTROLLER.cfg
    -rw-r–r– 1 pi pi 883 Aug 27 12:14 Twin_USB_Joystick.cfg
    -rw-r–r– 1 pi pi 553 Aug 27 12:14 USB_2-axis_8-button_gamepad.cfg
    -rw-r–r– 1 pi pi 594 Aug 27 12:14 USBgamepad.cfg
    -rw-r–r– 1 pi pi 1.1K Aug 27 12:14 USB_Gamepad_.cfg
    -rw-r–r– 1 pi pi 886 Aug 27 12:14 USB_Vibration_Joystick.cfg
    -rw-r–r– 1 pi pi 634 Aug 27 12:14 Xarcade-to-Gamepad-Device.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Xbox_360_Wireless_Receiver.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Xbox_360_Wireless_Receiver_Chinese01.cfg
    -rw-r–r– 1 pi pi 853 Aug 27 12:14 XboxGamepad(userspacedriver).cfg
    -rw-r–r– 1 pi pi 867 Aug 27 12:14 Zeemote_SteelSeries_FREE.cfg
    -rw-r–r– 1 pi pi 1.8K Aug 27 12:14 Zeroplus_PS_Vibration_Feedback_Converter_.cfg

    machtroid
    Participant

    That’s good news! That means we can bring Panzer Dragoon Saga and Radiant Silvergun to the Pi! I haven’t tried the experimental Yabause up to now because I heard it wasn’t in a very good state, but this seems like the improvement needed to get Saturn emulation moving in the right direction.

    #102066
    Anonymous
    Inactive

    The cabinet’s an original Superman that someone painted black. New switches with enough buttons for SNES all wired to the Pi. 24″ monitor. cheapo 3 piece speakers but the sub thumps the cabinet.

    I’ve got some gloss black acrylic and a heat gun to cut it with but I’m sure as hell not doing that until I get the damn thing working!

    cbprod
    Participant

    hello im new to all this, im trying to configure my xbox wired controller to exit, load, and save. right now im only using nes. i have edited the retroarch.cfg in the all configs/all folder. below is the cfg file

    ## 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 =

    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =

    # Save all input remapping files to this directory.
    # input_remapping_directory =

    # Save all playlist files to this directory.
    # playlist_directory =

    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =

    # 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.

    # Path to a libretro implementation.
    # libretro_path = “/path/to/libretro.so”

    # A directory for where to search for libretro core implementations.
    # libretro_directory =

    # A directory for where to search for libretro core information.
    # libretro_info_path =

    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0

    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (–verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0

    # Enable or disable verbosity level of frontend.
    # log_verbosity = false

    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true

    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false

    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg

    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/BIOS

    # Sets start directory for menu content browser.
    # rgui_browser_directory =

    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =

    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    assets_directory = /opt/retropie/emulators/retroarch/assets

    # Sets start directory for menu config browser.
    # rgui_config_directory =

    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include’s and comments are not preserved.
    config_save_on_exit = false

    # Load up a specific config file based on the core being used.
    # core_specific_config = 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_context_driver =

    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 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

    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false

    # 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

    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 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 = true

    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false

    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false

    # Forces rendering area to stay equal to content 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 =

    # 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 = true

    # 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 GLSL, GLSLP (GLSL preset)
    # video_shader = “/path/to/shader.{cg,cgp,glsl,glslp}”

    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/retroarch/shader/

    # CPU-based video filter. Path to a dynamic library.
    # video_filter =

    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =

    # Path to a 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 font rendered.
    video_font_size = 12

    # 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 content 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

    # Mutes audio.
    # audio_mute_enable = false

    # Audio output samplerate.
    # audio_out_rate = 48000

    # Audio resampler backend. Which audio resampler to use.
    # Default will use “sinc”.
    # audio_resampler =

    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =

    # 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 =

    # Audio DSP plugin that processes audio before it’s sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =

    # Directory where DSP plugins are kept.
    # audio_filter_dir =

    # 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 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

    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05

    # 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

    #### Overlay

    # Defines a directory where overlays are kept for easy access.
    overlay_directory = /opt/retropie/emulators/retroarch/overlays

    # Enable or disable the current overlay.
    # input_overlay_enable = true

    # Path to input overlay
    # input_overlay =

    # Overlay opacity
    # input_overlay_opacity = 1.0

    # Overlay scale
    # input_overlay_scale = 1.0

    #### OSK (Onscreen Keyboard) Overlay

    # Defines a directory where overlays are kept for easy access.
    # osk_overlay_directory =

    # Enable OSK overlay.
    # input_osk_overlay_enable = true

    # Path to OSK overlay
    # input_osk_overlay =

    # OSK Overlay opacity
    # input_osk_overlay_opacity = 1.0

    # OSK Overlay scale
    # input_osk_overlay_scale = 1.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 =

    # Path to input remapping file.
    # input_remapping_path =

    # If enabled, overrides the input binds with the remapped binds set for the current core.
    # input_remap_binds_enable = true

    # Maximum amount of users supported by RetroArch.
    # input_max_users = 16

    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. “no”), or a layout and variant separated with colon (“no:nodeadkeys”).
    # input_keyboard_layout =

    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5

    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true

    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true

    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false

    # Directory for joypad autoconfigs.
    # 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 = /opt/retropie/emulators/retroarch/configs/

    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # 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 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 =

    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =

    # If desired, it is possible to override which joypads are being used for user 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =

    # 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 user 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 RetroArch cleanly.
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape

    # Applies next and previous 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 content is paused
    # input_frame_advance = k

    # Reset the content.
    # input_reset = h

    # 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 users.
    # 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_btn =

    # 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 content.
    # input_disk_eject_toggle =

    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =

    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11

    #### Menu

    # Menu driver to use. “rgui”, “lakka”, etc.
    # menu_driver = “rgui”

    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false

    # Enable mouse input inside the menu.
    # menu_mouse_enable = false

    # Enable touch input inside the menu.
    # menu_pointer_enable = false

    # Shows current date and/or time inside menu.
    # menu_timedate_enable = true

    # Shows current core inside menu.
    # menu_core_enable = true

    # Path to a .png image to set as menu wallpaper.
    # menu_wallpaper =

    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false

    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false

    # Filter files being show in ‘Load Content’ by supported extensions
    # menu_navigation_browser_filter_supported_extensions_enable = true

    # Collapse subgroup settings into main group to create one big listing of settings
    # per category.
    # menu_collapse_subgroups_enable = false

    #### UI

    # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
    # by video driver.
    # suspend_screensaver_enable = true

    #### Camera

    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =

    # Override the default privacy permission for cores that want to access camera services. Is “false” by default.
    # camera_allow = false

    #### Location

    # Override the default privacy permission for cores that want to access location services. Is “false” by default.
    # location_allow = false

    #### Core Updater

    # URL to core update directory on buildbot.
    # core_updater_buildbot_url = “http://buildbot.libretro.com&#8221;

    # URL to assets update directory on buildbot.
    # core_updater_buildbot_assets_url = “http://buildbot.libretro.com/assets/&#8221;

    # Automatically extract archives that the cores are contained in to the libretro cores directory.
    # core_updater_auto_extract_archive = true

    #### Network

    # When being client over netplay, use keybinds for user 1.
    # netplay_client_swap_input = false

    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname =

    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0

    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false

    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false

    # The IP Address of the host to connect to.
    # netplay_ip_address =

    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435

    #### Misc

    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false

    # 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 =

    # Path to content database directory.
    # content_database_path =

    # Path to cheat database directory.
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0

    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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.
    # fastforward_ratio = 1.0

    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false

    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false

    input_enable_hotkey = “0”
    input_exit_emulator_btn = “7”
    input_save_state_btn = “3”
    input_load_state_btn = “4”
    input_player1_joypad_index = “0”
    input_player1_b_btn = “1”
    input_player1_y_btn = “3”
    input_player1_select_btn = “0”
    input_player1_start_btn = “7”
    input_player1_up_btn = “h0up”
    input_player1_down_btn = “h0down”
    input_player1_left_btn = “h0left”
    input_player1_right_btn = “h0right”
    input_player1_a_btn = “2”
    input_player1_x_btn = “4”
    input_player1_l_btn = “5”
    input_player1_r_btn = “6”
    input_player1_l2_axis = “+2”
    input_player1_r2_axis = “+5”
    input_player1_l3_btn = “9”
    input_player1_r3_btn = “10”
    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 = “+3”
    input_player1_r_x_minus_axis = “-3”
    input_player1_r_y_plus_axis = “+4”
    input_player1_r_y_minus_axis = “-4”

    ragnaer
    Participant

    Hi All,

    I’m new to RetroPie and have just build & setup my system (retropie 3.0).

    I’ve got a bunch of games working, but have hit a brick wall with trying to get hotkeys working so I can save my game state, and exit a game easily.

    I’ve built an arcade cabinet, so am using sanwa joysticks and buttons via an ipac-2 (therefore using keyboard controls).

    I’ve tried Floob’s suggestions and deleted all supplementary configs, but no luck. I’ve updated the Retroarch config file to what I think the hotkeys should be, but still no luck. (all the buttons/joysticks are working, but not the hotkeys).

    I used to be able to exit a game easily by holding start1 (num1) and pressing start2 (num2) buttons, but after I tried changing the hotkey setup script to “2” it changed to ALT, and now I have no idea how to change it back.

    Any help would be MOST appreciated~! Thanks in advance !

    Here is my /opt/retropie/configs/all/retroarch.cfg file:

    ## 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 = /home/pi/RetroPie/savestate

    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    savestate_directory = /home/pi/RetroPie/savestate

    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =

    # Save all input remapping files to this directory.
    # input_remapping_directory =

    # Save all playlist files to this directory.
    # playlist_directory =

    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =

    # 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.

    # Path to a libretro implementation.
    # libretro_path = “/path/to/libretro.so”

    # A directory for where to search for libretro core implementations.
    # libretro_directory =

    # A directory for where to search for libretro core information.
    # libretro_info_path =

    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0

    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (–verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0

    # Enable or disable verbosity level of frontend.
    # log_verbosity = false

    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true

    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false

    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg

    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/BIOS

    # Sets start directory for menu content browser.
    # rgui_browser_directory =

    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =

    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    assets_directory = /opt/retropie/emulators/retroarch/assets

    # Sets start directory for menu config browser.
    # rgui_config_directory =

    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include’s and comments are not preserved.
    config_save_on_exit = false

    # Load up a specific config file based on the core being used.
    # core_specific_config = 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_context_driver =

    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 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

    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false

    # 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

    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 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 = true

    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false

    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false

    # Forces rendering area to stay equal to content 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 =

    # 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 = true

    # 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 GLSL, GLSLP (GLSL preset)
    # video_shader = “/path/to/shader.{cg,cgp,glsl,glslp}”

    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/retroarch/shader/

    # CPU-based video filter. Path to a dynamic library.
    # video_filter =

    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =

    # Path to a 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 font rendered.
    video_font_size = 12

    # 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 content 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

    # Mutes audio.
    # audio_mute_enable = false

    # Audio output samplerate.
    # audio_out_rate = 48000

    # Audio resampler backend. Which audio resampler to use.
    # Default will use “sinc”.
    # audio_resampler =

    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =

    # 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 =

    # Audio DSP plugin that processes audio before it’s sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =

    # Directory where DSP plugins are kept.
    # audio_filter_dir =

    # 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 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

    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05

    # 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

    #### Overlay

    # Defines a directory where overlays are kept for easy access.
    overlay_directory = /opt/retropie/emulators/retroarch/overlays

    # Enable or disable the current overlay.
    # input_overlay_enable = true

    # Path to input overlay
    # input_overlay =

    # Overlay opacity
    # input_overlay_opacity = 1.0

    # Overlay scale
    # input_overlay_scale = 1.0

    #### OSK (Onscreen Keyboard) Overlay

    # Defines a directory where overlays are kept for easy access.
    # osk_overlay_directory =

    # Enable OSK overlay.
    # input_osk_overlay_enable = true

    # Path to OSK overlay
    # input_osk_overlay =

    # OSK Overlay opacity
    # input_osk_overlay_opacity = 1.0

    # OSK Overlay scale
    # input_osk_overlay_scale = 1.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 =

    # Path to input remapping file.
    # input_remapping_path =

    # If enabled, overrides the input binds with the remapped binds set for the current core.
    # input_remap_binds_enable = true

    # Maximum amount of users supported by RetroArch.
    # input_max_users = 16

    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. “no”), or a layout and variant separated with colon (“no:nodeadkeys”).
    # input_keyboard_layout =

    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5

    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true

    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true

    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false

    # Directory for joypad autoconfigs.
    # 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 = /opt/retropie/emulators/retroarch/configs/

    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # 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 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_coin1 = 5
    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_player2_coin2 = 6
    input_enable_hotkey_btn = num1
    input_exit_emulator_btn = num2
    input_save_state_btn = 5
    input_load_state_btn = 6
    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =

    # If desired, it is possible to override which joypads are being used for user 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =

    # 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 user 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_btn = 5
    # Loads state.
    input_load_state_btn = 6

    # 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 RetroArch cleanly.
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape

    # Applies next and previous 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 content is paused
    # input_frame_advance = k

    # Reset the content.
    # input_reset = h

    # 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 users.
    # 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_btn = num1

    # 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 content.
    # input_disk_eject_toggle =

    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =

    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11

    #### Menu

    # Menu driver to use. “rgui”, “lakka”, etc.
    # menu_driver = “rgui”

    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false

    # Enable mouse input inside the menu.
    # menu_mouse_enable = false

    # Enable touch input inside the menu.
    # menu_pointer_enable = false

    # Shows current date and/or time inside menu.
    # menu_timedate_enable = true

    # Shows current core inside menu.
    # menu_core_enable = true

    # Path to a .png image to set as menu wallpaper.
    # menu_wallpaper =

    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false

    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false

    # Filter files being show in ‘Load Content’ by supported extensions
    # menu_navigation_browser_filter_supported_extensions_enable = true

    # Collapse subgroup settings into main group to create one big listing of settings
    # per category.
    # menu_collapse_subgroups_enable = false

    #### UI

    # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
    # by video driver.
    # suspend_screensaver_enable = true

    #### Camera

    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =

    # Override the default privacy permission for cores that want to access camera services. Is “false” by default.
    # camera_allow = false

    #### Location

    # Override the default privacy permission for cores that want to access location services. Is “false” by default.
    # location_allow = false

    #### Core Updater

    # URL to core update directory on buildbot.
    # core_updater_buildbot_url = “http://buildbot.libretro.com&#8221;

    # URL to assets update directory on buildbot.
    # core_updater_buildbot_assets_url = “http://buildbot.libretro.com/assets/&#8221;

    # Automatically extract archives that the cores are contained in to the libretro cores directory.
    # core_updater_auto_extract_archive = true

    #### Network

    # When being client over netplay, use keybinds for user 1.
    # netplay_client_swap_input = false

    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname =

    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0

    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false

    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false

    # The IP Address of the host to connect to.
    # netplay_ip_address =

    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435

    #### Misc

    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false

    # 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 = 5

    # Path to content database directory.
    # content_database_path =

    # Path to cheat database directory.
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0

    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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.
    # fastforward_ratio = 1.0

    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false

    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false

    #96641
    kendamachamp
    Participant

    Hey guys, I’ve been lurking on this forum for a while and got my arcade cabinets almost 100% exactly as I want them. I just can’t get the mame roms working. I have the same missing files error as this thread, but I’ve confirmed everything points to the right place. I confirmed that the roms work on my pc when I open them with the mame32 emulator, so I know they are valid. I’ve tried dropping them in all the various locations for the mame emulators, but I can’t get past that error. I’m ready for help. I even tried unzipping them to see if that helped.

    It’s retropie 2.6 on RPi2. Both ES config and MAME config point to ~/RetroPie/roms/mame.

    Is there a way to capture more info about the missing file? Like where is it looking for them exactly? Then I could search the config files to see what variables are pointing to that location.

    Or maybe the internal utility is having trouble unzipping the mame rom, and that’s why it can’t find the required files? I noticed that I have to use “unzip” instead of “gunzip” if I want to extract the files. So that got me wondering if ES is also using gunzip in the background to unpack the files to a temp location? Can I force ES to use “unzip” when it unpacks the roms for play?

    #96394
    mavic19
    Participant

    It’s all paint. I used an oil based enamel (Rust-Oleum, gloss).
    I rubbed wood glue into all the cut edges of the MDF to seal them up (took about 3 coats of wood glue) and sanded it smooth. Then I mixed a 50/50 solution of wood glue and water and coated the entire cab with a foam brush ( also 3 coats followed by sanding with 220 grit). Then I used KILZ oil-based primer and shot 2 coats with my HVLP gun (followed by sanding with 220 grit). I then shot the black (5 coats) of gloss black with HVLP (thinned with VM&P Napthala). Sanded in between coats. Once the gloss black had completely dried and cured, I taped it off and used a 4″ wide smooth foam roller to roll on the paint for the stripes.

    PeriodicLogic
    Participant

    I have had significant problems configuring emulator-specific input controls in Retropie 3.0 beta. Specifically, I have been unable to make input configurations in my emulator-specific retroarch.cfg’s override input configurations in my configs/all/retroarch.cfg.

    Other emulater-specific settings (such as shader-related configurations) were working, so I don’t think it was an emulation-station setup issue, or anything wrong with either my configs/all/retroarch.cfg or my emulator-specific retroarch.cfg (in this case, configs/atari2600/retroarch.cfg).

    However, when I deleted all of the input configurations in configs/all/retroarch.cfg, and put them exclusively in the emulator-specific retroarch.cfg, it worked.

    While this is great (and not too hard to replicate from emulator to emulator), I don’t believe this is consistent with either the Wiki or the intent. I believe emulator specific input controls are supposed to override those contained in configs/all/retroarch.cfg.

    For those experiencing similar problems (and I’ve seen what could be similar issues in this and other forums), I offer this approach as a possible solution/work-around.

    My configuration is for 2 wireless Xbox360 controllers.

    Any and all suggested improvements are also welcome.

    Here is my current configs/atari2600/retroarch.cfg:

    #include "/opt/retropie/configs/all/retroarch.cfg"
    input_remapping_directory = "/opt/retropie/configs/atari2600/"
    
    video_shader = "/opt/retropie/emulators/retroarch/shader/scanline.glsl"
    video_shader_enable = "true"
    
    input_player1_joypad_index = "0"
    input_player1_b_btn = "0"
    input_player1_y_btn = "3"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    #input_player1_up_btn = "h0up"
    #input_player1_down_btn = "h0down"
    #input_player1_left_btn = "h0left"
    #input_player1_right_btn = "h0right"
    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 = "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_player2_joypad_index = "1"
    input_player2_b_btn = "0"
    input_player2_y_btn = "3"
    input_player2_select_btn = "8"
    input_player2_start_btn = "9"
    #input_player2_up_btn = "h0up"
    #input_player2_down_btn = "h0down"
    #input_player2_left_btn = "h0left"
    #input_player2_right_btn = "h0right"
    input_player2_up_axis = "-1"
    input_player2_down_axis = "+1"
    input_player2_left_axis = "-0"
    input_player2_right_axis = "+0"
    input_player2_a_btn = "1"
    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 = "11"
    input_player2_r3_btn = "12"

    And here is my current configs/all/retroarch.cfg:

    
    ## 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 =
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =
    
    # Save all input remapping files to this directory.
    # input_remapping_directory =
    
    # Save all playlist files to this directory.
    # playlist_directory =
    
    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =
    
    # 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.
    
    # Path to a libretro implementation.
    # libretro_path = "/path/to/libretro.so"
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # A directory for where to search for libretro core information.
    # libretro_info_path =
    
    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0
    
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    
    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true
    
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    
    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg
    
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/BIOS
    
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    assets_directory = /opt/retropie/emulators/retroarch/assets
    
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    
    # Show startup screen in menu.
    # 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 = false
    
    # Flushes config to disk on exit. Useful for menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    
    # Load up a specific config file based on the core being used.
    core_specific_config = true
    
    #### 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_context_driver =
    
    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 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
    
    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false
    
    # 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
    
    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 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 = true
    
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to content 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 = 
    
    # 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 = true
    
    # 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 GLSL, GLSLP (GLSL preset)
    # video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/retroarch/shader/
    
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    
    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =
    
    # Path to a 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 font rendered.
    video_font_size = 12
    
    # 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 content 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
    
    # Mutes audio.
    # audio_mute_enable = false
    
    # Audio output samplerate.
    # audio_out_rate = 48000
    
    # Audio resampler backend. Which audio resampler to use.
    # Default will use "sinc".
    # audio_resampler =
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =
    
    # 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 =
    
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =
    
    # Directory where DSP plugins are kept.
    # audio_filter_dir =
    
    # 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 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
    
    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05
    
    # 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
    
    #### Overlay
    
    # Defines a directory where overlays are kept for easy access.
    overlay_directory = /opt/retropie/emulators/retroarch/overlays
    
    # Enable or disable the current overlay.
    # input_overlay_enable = true
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.0
    
    #### OSK (Onscreen Keyboard) Overlay
    
    # Defines a directory where overlays are kept for easy access.
    # osk_overlay_directory =
    
    # Enable OSK overlay.
    # input_osk_overlay_enable = true
    
    # Path to OSK overlay
    # input_osk_overlay =
    
    # OSK Overlay opacity
    # input_osk_overlay_opacity = 1.0
    
    # OSK Overlay scale
    # input_osk_overlay_scale = 1.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 =
    
    # Path to input remapping file.
    # input_remapping_path =
    
    # If enabled, overrides the input binds with the remapped binds set for the current core.
    input_remap_binds_enable = true
    
    # Maximum amount of users supported by RetroArch.
    input_max_users = 4
    
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys").
    # input_keyboard_layout =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = false
    
    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true
    
    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false
    
    # Directory for joypad autoconfigs.
    # 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 = /opt/retropie/emulators/retroarch/configs/
    
    #Set Hotkeys
    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "9"
    input_menu_toggle_btn = "7"
    input_save_state_btn = "4"
    input_load_state_btn = "5"
    
    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # 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 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 =
    
    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    
    # If desired, it is possible to override which joypads are being used for user 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =
    
    # 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 user 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 RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    
    # Applies next and previous 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 content is paused
    # input_frame_advance = k
    
    # Reset the content.
    # input_reset = h
    
    # 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 users.
    # 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_btn =
    
    # 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 content.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Menu
    
    # Menu driver to use. "rgui", "lakka", etc. 
    # menu_driver = "rgui"
    
    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false
    
    # Enable mouse input inside the menu.
    # menu_mouse_enable = false
    
    # Enable touch input inside the menu.
    # menu_pointer_enable = false
    # Shows current date and/or time inside menu.
    # menu_timedate_enable = true
    
    # Shows current core inside menu.
    # menu_core_enable = true
    
    # Path to a .png image to set as menu wallpaper.
    # menu_wallpaper =
    
    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false
    
    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false
    
    # Filter files being show in 'Load Content' by supported extensions
    # menu_navigation_browser_filter_supported_extensions_enable = true
    
    # Collapse subgroup settings into main group to create one big listing of settings
    # per category.
    # menu_collapse_subgroups_enable = false
    
    #### UI
    
    # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
    # by video driver.
    # suspend_screensaver_enable  = true
    
    #### Camera
    
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    
    # Override the default privacy permission for cores that want to access camera services. Is "false" by default.
    # camera_allow = false
    
    #### Location
    
    # Override the default privacy permission for cores that want to access location services. Is "false" by default.
    # location_allow = false
    
    #### Core Updater
    
    # URL to core update directory on buildbot.
    # core_updater_buildbot_url = "http://buildbot.libretro.com"
    
    # URL to assets update directory on buildbot.
    # core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/"
    
    # Automatically extract archives that the cores are contained in to the libretro cores directory.
    # core_updater_auto_extract_archive = true
    
    #### Network
    
    # When being client over netplay, use keybinds for user 1.
    # netplay_client_swap_input = false
    
    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname = 
    
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    
    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false
    
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    
    # 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 =
    
    # Path to content database directory.
    # content_database_path =
    
    # Path to cheat database directory.
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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.
    # fastforward_ratio = 1.0
    
    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false
    
    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false
    
    
    moddinu
    Participant

    Hi people , I am a noob that just both a raspberry pie 2 and got started with this project. I currently installed Retro Pie 2.6 and put some gba game on it. My issue although I mapped my ps3 control keys the gba games are mapped differently. Can any run me to the process of setting them up. Any information would be helpfull

    ## 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 =

    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =

    # Save all input remapping files to this directory.
    # input_remapping_directory =

    # Save all playlist files to this directory.
    # playlist_directory =

    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =

    # 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.

    # Path to a libretro implementation.
    # libretro_path = “/path/to/libretro.so”

    # A directory for where to search for libretro core implementations.
    # libretro_directory =

    # A directory for where to search for libretro core information.
    # libretro_info_path =

    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0

    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (–verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0

    # Enable or disable verbosity level of frontend.
    # log_verbosity = false

    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true

    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false

    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg

    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/BIOS

    # Sets start directory for menu content browser.
    # rgui_browser_directory =

    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =

    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    # assets_directory =

    # Sets start directory for menu config browser.
    # rgui_config_directory =

    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include’s and comments are not preserved.
    config_save_on_exit = false

    # Load up a specific config file based on the core being used.
    # core_specific_config = 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_context_driver =

    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 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

    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false

    # 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

    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 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 = true

    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false

    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false

    # Forces rendering area to stay equal to content 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 =

    # 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 = true

    # 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 GLSL, GLSLP (GLSL preset)
    # video_shader = “/path/to/shader.{cg,cgp,glsl,glslp}”

    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/retroarch/shader/

    # CPU-based video filter. Path to a dynamic library.
    # video_filter =

    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =

    # Path to a 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 font rendered.
    # video_font_size = 32

    # 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 content 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

    # Mutes audio.
    # audio_mute_enable = false

    # Audio output samplerate.
    # audio_out_rate = 48000

    # Audio resampler backend. Which audio resampler to use.
    # Default will use “sinc”.
    # audio_resampler =

    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =

    # 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 =

    # Audio DSP plugin that processes audio before it’s sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =

    # Directory where DSP plugins are kept.
    # audio_filter_dir =

    # 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 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

    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05

    # 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

    #### Overlay

    # Defines a directory where overlays are kept for easy access.
    # overlay_directory =

    # Enable or disable the current overlay.
    # input_overlay_enable = true

    # Path to input overlay
    # input_overlay =

    # Overlay opacity
    # input_overlay_opacity = 1.0

    # Overlay scale
    # input_overlay_scale = 1.0

    #### OSK (Onscreen Keyboard) Overlay

    # Defines a directory where overlays are kept for easy access.
    # osk_overlay_directory =

    # Enable OSK overlay.
    # input_osk_overlay_enable = true

    # Path to OSK overlay
    # input_osk_overlay =

    # OSK Overlay opacity
    # input_osk_overlay_opacity = 1.0

    # OSK Overlay scale
    # input_osk_overlay_scale = 1.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 =

    # Path to input remapping file.
    # input_remapping_path =

    # If enabled, overrides the input binds with the remapped binds set for the current core.
    # input_remap_binds_enable = true

    # Maximum amount of users supported by RetroArch.
    # input_max_users = 16

    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. “no”), or a layout and variant separated with colon (“no:nodeadkeys”).
    # input_keyboard_layout =

    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5

    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true

    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true

    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false

    # Directory for joypad autoconfigs.
    # 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 = /opt/retropie/emulators/retroarch/configs/

    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # 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 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 =

    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =

    # If desired, it is possible to override which joypads are being used for user 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =

    # 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 user 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 RetroArch cleanly.
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape

    # Applies next and previous 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 content is paused
    # input_frame_advance = k

    # Reset the content.
    # input_reset = h

    # 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 users.
    # 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_btn =

    # 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 content.
    # input_disk_eject_toggle =

    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =

    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11

    #### Menu

    # Menu driver to use. “rgui”, “lakka”, etc.
    # menu_driver = “rgui”

    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false

    # Enable mouse input inside the menu.
    # menu_mouse_enable = false

    # Shows current date and/or time inside menu.
    # menu_timedate_enable = true

    # Shows current core inside menu.
    # menu_core_enable = true

    # Throttle the menu to ~60 FPS instead of using v-sync. Useful for 120+Hz monitors.
    # menu_throttle = false

    # Path to a .png image to set as menu wallpaper.
    # menu_wallpaper =

    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false

    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false

    # Filter files being show in ‘Load Content’ by supported extensions
    # menu_navigation_browser_filter_supported_extensions_enable = true

    # Collapse subgroup settings into main group to create one big listing of settings
    # per category.
    # menu_collapse_subgroups_enable = false

    #### UI

    # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
    # by video driver.
    # suspend_screensaver_enable = true

    #### Camera

    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =

    # Override the default privacy permission for cores that want to access camera services. Is “false” by default.
    # camera_allow = false

    #### Location

    # Override the default privacy permission for cores that want to access location services. Is “false” by default.
    # location_allow = false

    #### Core Updater

    # URL to core update directory on buildbot.
    # core_updater_buildbot_url = “http://buildbot.libretro.com&#8221;

    # URL to assets update directory on buildbot.
    # core_updater_buildbot_assets_url = “http://buildbot.libretro.com/assets/&#8221;

    # Automatically extract archives that the cores are contained in to the libretro cores directory.
    # core_updater_auto_extract_archive = true

    #### Network

    # When being client over netplay, use keybinds for user 1.
    # netplay_client_swap_input = false

    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname =

    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0

    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false

    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false

    # The IP Address of the host to connect to.
    # netplay_ip_address =

    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435

    #### Misc

    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false

    # 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 =

    # Path to content database directory.
    # content_database_path =

    # Path to cheat database directory.
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0

    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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.
    # fastforward_ratio = 1.0

    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false

    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false

    input_player1_b_btn = “14”
    input_player1_y_btn = “15”
    input_player1_select_btn = “0”
    input_player1_start_btn = “3”
    input_player1_up_btn = “4”
    input_player1_down_btn = “6”
    input_player1_left_btn = “7”
    input_player1_right_btn = “5”
    input_player1_a_btn = “13”
    input_player1_x_btn = “12”
    input_player1_l_btn = “10”
    input_player1_r_btn = “11”
    input_player1_l2_btn = “8”
    input_player1_r2_btn = “9”
    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 = “0”
    input_exit_emulator_btn = “3”
    input_menu_toggle_btn = “12”
    input_load_state_btn = “10”
    input_save_state_btn = “11”
    input_state_slot_increase_btn = “5”
    input_state_slot_decrease_btn = “7”
    input_disk_eject_toggle_btn = “15”
    input_disk_next_btn = “13”
    input_reset_btn = “14”
    input_analog_dpad_mode = “1”

    #91268

    In reply to: Retroarch and Hotkeys

    spy64
    Participant

    Here we go again, I must apologies as well for waking this thread from the dead, but I to am experiencing the same symptoms, with a few added bonus issues.

    Everything was working pretty good until.. I powered off my pi, walked away for a few hours, came back and the first thing I notice is I have no sound. luckily I was able to find a solution posted elsewhere for that, but I am still stuck on wonky hotkey bindings etc.

    the symptoms are this:
    select is not toggling hotkey functions.
    start exits the emulator regardless of a hotkey.
    select is acting like a turbo or fast forward button or something…
    I have tried with and without quotations.
    I did go through the autoconfig on first boot.
    I did go though the command line autoconfig as well as per another post on this site.
    I ended up with multiple lines for the same thing in the config file, so I cleaned them out so only one instance of a controller shows up.
    I manually assigned controller 2 by copy/paste controller 1 and modifying the appropriate lines/values (I think) as per another post on this site.

    things about me:
    yes I am completely inexperienced with Linux, like step by step, hold my hand, don’t assume I know anything kind of new.
    yes I am new to Raspberry Pi – just got the new pi 2 in the mail this week.
    no I actually am very experienced with computers, just not Linux.
    yes I know how to use Teh Google’s, this is the best source of information I have found on the topic. (c;

    Please Help! – the code box below has a copy of my config file (the only one I know of) and it is also available as an attachment to this post!

    **EDIT** Browse button to attach a file does not seem to be responding…. so there is no attachment…

    **ANOTHER EDIT** FYI the controller is a Gravis GamePad Pro – nearly identical to a PS1 controller without analog sticks… aaannndd I got the attachment browse button to work….

    …BTW Scraping seems to only go for about 10 files or so then freezes…. anyone know what’s up with that? at this rate it’ll take years of starting and stopping the process…

    
    ## 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 =
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =
    
    # Save all input remapping files to this directory.
    # input_remapping_directory =
    
    # Save all playlist files to this directory.
    # playlist_directory =
    
    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =
    
    # 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.
    
    # Path to a libretro implementation.
    # libretro_path = "/path/to/libretro.so"
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # A directory for where to search for libretro core information.
    # libretro_info_path =
    
    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0
    
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    
    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true
    
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    
    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg
    
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/BIOS
    
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    # assets_directory =
    
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    
    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    
    # Load up a specific config file based on the core being used.
    # core_specific_config = 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_context_driver =
    
    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 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
    
    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false
    
    # 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
    
    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 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 = true
    
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to content 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 =
    
    # 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 = true
    
    # 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 GLSL, GLSLP (GLSL preset)
    # video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/retroarch/shader/
    
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    
    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =
    
    # Path to a 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 font rendered.
    # video_font_size = 32
    
    # 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 content 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
    
    # Mutes audio.
    # audio_mute_enable = false
    
    # Audio output samplerate.
    # audio_out_rate = 48000
    
    # Audio resampler backend. Which audio resampler to use.
    # Default will use "sinc".
    # audio_resampler =
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =
    
    # 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 =
    
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =
    
    # Directory where DSP plugins are kept.
    # audio_filter_dir =
    
    # 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 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
    
    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05
    
    # 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
    
    #### Overlay
    
    # Defines a directory where overlays are kept for easy access.
    # overlay_directory =
    
    # Enable or disable the current overlay.
    # input_overlay_enable = true
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.0
    
    #### OSK (Onscreen Keyboard) Overlay
    
    # Defines a directory where overlays are kept for easy access.
    # osk_overlay_directory =
    
    # Enable OSK overlay.
    # input_osk_overlay_enable = true
    
    # Path to OSK overlay
    # input_osk_overlay =
    
    # OSK Overlay opacity
    # input_osk_overlay_opacity = 1.0
    
    # OSK Overlay scale
    # input_osk_overlay_scale = 1.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 =
    
    # Path to input remapping file.
    # input_remapping_path =
    
    # If enabled, overrides the input binds with the remapped binds set for the current core.
    # input_remap_binds_enable = true
    
    # Maximum amount of users supported by RetroArch.
    # input_max_users = 16
    
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys").
    # input_keyboard_layout =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true
    
    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true
    
    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false
    
    # Directory for joypad autoconfigs.
    # 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 = /opt/retropie/emulators/retroarch/configs/
    
    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # 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 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 =
    
    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    
    # If desired, it is possible to override which joypads are being used for user 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =
    
    # 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 user 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 RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    
    # Applies next and previous 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 content is paused
    # input_frame_advance = k
    
    # Reset the content.
    # input_reset = h
    
    # 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 users.
    # 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_btn =
    
    # 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 content.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Menu
    
    # Menu driver to use. "rgui", "lakka", etc. 
    # menu_driver = "rgui"
    
    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false
    
    # Enable mouse input inside the menu.
    # menu_mouse_enable = false
    
    # Shows current date and/or time inside menu.
    # menu_timedate_enable = true
    
    # Shows current core inside menu.
    # menu_core_enable = true
    
    # Throttle the menu to ~60 FPS instead of using v-sync. Useful for 120+Hz monitors.
    # menu_throttle = false
    
    # Path to a .png image to set as menu wallpaper.
    # menu_wallpaper =
    
    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false
    
    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false
    
    # Filter files being show in 'Load Content' by supported extensions
    # menu_navigation_browser_filter_supported_extensions_enable = true
    
    # Collapse subgroup settings into main group to create one big listing of settings
    # per category.
    # menu_collapse_subgroups_enable = false
    
    #### UI
    
    # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
    # by video driver.
    # suspend_screensaver_enable  = true
    
    #### Camera
    
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    
    # Override the default privacy permission for cores that want to access camera services. Is "false" by default.
    # camera_allow = false
    
    #### Location
    
    # Override the default privacy permission for cores that want to access location services. Is "false" by default.
    # location_allow = false
    
    #### Core Updater
    
    # URL to core update directory on buildbot.
    # core_updater_buildbot_url = "http://buildbot.libretro.com"
    
    # URL to assets update directory on buildbot.
    # core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/"
    
    # Automatically extract archives that the cores are contained in to the libretro cores directory.
    # core_updater_auto_extract_archive = true
    
    #### Network
    
    # When being client over netplay, use keybinds for user 1.
    # netplay_client_swap_input = false
    
    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname = 
    
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    
    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false
    
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    
    # 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 =
    
    # Path to content database directory.
    # content_database_path =
    
    # Path to cheat database directory.
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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.
    # fastforward_ratio = 1.0
    
    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false
    
    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false
    
    # input_enable_hotkey = nul
    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 = -1
    input_player1_down_axis = +1
    input_player1_left_axis = -0
    input_player1_right_axis = +0
    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 = nul
    input_player1_r3_btn = nul
    input_player1_l_x_plus_btn = nul
    input_player1_l_x_minus_btn = nul
    input_player1_l_y_plus_btn = nul
    input_player1_l_y_minus_btn = nul
    input_player1_r_x_plus_btn = nul
    input_player1_r_x_minus_btn = nul
    input_player1_r_y_plus_btn = nul
    input_player1_r_y_minus_btn = nul
    
    # input_enable_hotkey = nul
    input_player2_joypad_index = 1
    input_player2_b_btn = 1
    input_player2_y_btn = 0
    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 = 2
    input_player2_x_btn = 3
    input_player2_l_btn = 4
    input_player2_r_btn = 5
    input_player2_l2_btn = 6
    input_player2_r2_btn = 7
    input_player2_l3_btn = nul
    input_player2_r3_btn = nul
    input_player2_l_x_plus_btn = nul
    input_player2_l_x_minus_btn = nul
    input_player2_l_y_plus_btn = nul
    input_player2_l_y_minus_btn = nul
    input_player2_r_x_plus_btn = nul
    input_player2_r_x_minus_btn = nul
    input_player2_r_y_plus_btn = nul
    input_player2_r_y_minus_btn = nul
    
    input_enable_hotkey_btn = 8
    input_exit_emulator_btn = 9
    
    input_save_state_btn = 6
    input_load_state_btn = 7
    
    input_volume_up_axis = -1
    input_volume_down_axis = +1
    
    #90595
    cafarellidigital
    Participant

    Took the Mushberry logo from here (courtesy of user ShrikeDaddy) for an idea I had. I couldn’t make up my mind on which color/text combo I liked the most, so there’s a bunch.

    4 Background Color versions (Abstract/Purple, Burgundy, Forest, and Navy)
    3 Text versions per Color (None, “RetroPie Emulation System”, and “RetroPie Gaming Console”).

    If you wanted to, you could use the Splashscreen Randomizer from here (courtesy of user sur0x) with all 12 versions.

    I can’t attach all of the screens here, so here’s an imgur album with all of them: http://imgur.com/a/8C3qf

    Since imgur compresses images uploaded to it, here’s some higher quality links without further compression…
    JPG: https://mega.co.nz/#F!UsFCTKQL!5qDRAdSUBZxYJzFdpbrPtg
    PNG: https://mega.co.nz/#F!10tWEaDb!wzW-0Pc9_BbjdkSYiGHDuA
    PSD: https://mega.co.nz/#F!B0NhQIRY!RvBrOsJfxfVjUj7MbCx6og

    I’ve included a link to the PSD’s. These were made with Photoshop CS6. The font used is “Small Fonts”. There are also 3 other fonts used in the PSD, “Fortheenas Bold”, “Fortheenas Thin”, and “Courier”. I haven’t included the fonts in the zip files, so you’ll have to find them on your own.

    So there you go. Mix, remix, modify, do whatever you please. Enjoy!

    pattaboy
    Participant

    Hey Guys,

    Just bought a raspberry pi2 and installed retropie on it.
    installed a few roms and it works perfectly.
    then I bought two snes usb controllers and installed them via this video: https://www.youtube.com/watch?v=Z0FT4i2CQVI

    the controllers work but whenever I press X on the controller
    it will go left.
    it just looks like my x button is mapped on to the left d-pad however I can’t find the problem in any of the config files. not the USBgamepad.cfg and not the retroarch.cfg in the /all folder.

    I have exactly the same controller as in the video so I thought I needed the same settings as expained. both controllers work and both register is player1 and player2.

    Can somebody please help me?

    EDIT: just noticed when pressing A on the controller it will respond like A+dpad down

    this is the config file from: /opt/retropie/configs/all

    ## 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 =
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =
    
    # Save all input remapping files to this directory.
    # input_remapping_directory =
    
    # Save all playlist files to this directory.
    # playlist_directory =
    
    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =
    
    # 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.
    
    # Path to a libretro implementation.
    # libretro_path = "/path/to/libretro.so"
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # A directory for where to search for libretro core information.
    # libretro_info_path =
    
    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0
    
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    
    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true
    
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    
    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg
    
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/BIOS
    
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    # assets_directory =
    
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    
    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    
    # Load up a specific config file based on the core being used.
    # core_specific_config = 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_context_driver =
    
    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 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
    
    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false
    
    # 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
    
    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 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 = true
    
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to content 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 =
    
    # 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 = true
    
    # 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 GLSL, GLSLP (GLSL preset)
    # video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/retroarch/shader/
    
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    
    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =
    
    # Path to a 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 font rendered.
    # video_font_size = 32
    
    # 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 content 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
    
    # Mutes audio.
    # audio_mute_enable = false
    
    # Audio output samplerate.
    # audio_out_rate = 48000
    
    # Audio resampler backend. Which audio resampler to use.
    # Default will use "sinc".
    # audio_resampler =
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =
    
    # 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 =
    
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =
    
    # Directory where DSP plugins are kept.
    # audio_filter_dir =
    
    # 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 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
    
    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05
    
    # 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 = 8
    
    #### Overlay
    
    # Defines a directory where overlays are kept for easy access.
    # overlay_directory =
    
    # Enable or disable the current overlay.
    # input_overlay_enable = true
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.0
    
    #### OSK (Onscreen Keyboard) Overlay
    
    # Defines a directory where overlays are kept for easy access.
    # osk_overlay_directory =
    
    # Enable OSK overlay.
    # input_osk_overlay_enable = true
    
    # Path to OSK overlay
    # input_osk_overlay =
    
    # OSK Overlay opacity
    # input_osk_overlay_opacity = 1.0
    
    # OSK Overlay scale
    # input_osk_overlay_scale = 1.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 =
    
    # Path to input remapping file.
    # input_remapping_path =
    
    # If enabled, overrides the input binds with the remapped binds set for the current core.
    # input_remap_binds_enable = true
    
    # Maximum amount of users supported by RetroArch.
    # input_max_users = 16
    
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys").
    # input_keyboard_layout =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = false
    
    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true
    
    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false
    
    # Directory for joypad autoconfigs.
    # 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 = /opt/retropie/emulators/retroarch/configs/
    
    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # 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 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 =
    
    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    
    # If desired, it is possible to override which joypads are being used for user 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_joypad_index = "0"
    input_player1_a_btn = "1"
    input_player1_b_btn = "2"
    input_player1_y_btn = "3"
    input_player1_x_btn = "0"
    input_player1_start_btn = "9"
    input_player1_select_btn = "8"
    input_player1_l_btn = "4"
    input_player1_r_btn = "5"
    input_player1_left_btn = "-0"
    input_player1_right_btn = "+0"
    input_player1_up_btn = "-1"
    input_player1_down_btn = "+1"
    input_enable_hotkey_btn = "8"
    input_exit_emulator_btn = "9"
    # input_player1_l2_btn =
    # input_player1_r2_btn =
    # input_player1_l3_btn =
    # input_player1_r3_btn =
    
    input_player2_joypad_index = "1"
    input_player2_a_btn = "1"
    input_player2_b_btn = "2"
    input_player2_y_btn = "3"
    input_player2_x_btn = "0"
    input_player2_start_btn = "9"
    input_player2_select_btn = "8"
    input_player2_l_btn = "4"
    input_player2_r_btn = "5"
    input_player2_left_btn = "-0"
    input_player2_right_btn = "+0"
    input_player2_up_btn = "-1"
    input_player2_down_btn = "+1"
    
    # 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"
    
    input_player2_left_axis = "-0"
    input_player2_right_axis = "+0"
    input_player2_up_axis = "-1"
    input_player2_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 user 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 RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    
    # Applies next and previous 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 content is paused
    # input_frame_advance = k
    
    # Reset the content.
    # input_reset = h
    
    # 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 users.
    # 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_btn =
    
    # 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 content.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Menu
    
    # Menu driver to use. "rgui", "lakka", etc. 
    # menu_driver = "rgui"
    
    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false
    
    # Enable mouse input inside the menu.
    # menu_mouse_enable = false
    
    # Shows current date and/or time inside menu.
    # menu_timedate_enable = true
    
    # Shows current core inside menu.
    # menu_core_enable = true
    
    # Throttle the menu to ~60 FPS instead of using v-sync. Useful for 120+Hz monitors.
    # menu_throttle = false
    
    # Path to a .png image to set as menu wallpaper.
    # menu_wallpaper =
    
    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false
    
    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false
    
    # Filter files being show in 'Load Content' by supported extensions
    # menu_navigation_browser_filter_supported_extensions_enable = true
    
    # Collapse subgroup settings into main group to create one big listing of settings
    # per category.
    # menu_collapse_subgroups_enable = false
    
    #### UI
    
    # Suspends the screensaver if set to true. Is a hint that does not necessarily have to be honored
    # by video driver.
    # suspend_screensaver_enable  = true
    
    #### Camera
    
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    
    # Override the default privacy permission for cores that want to access camera services. Is "false" by default.
    # camera_allow = false
    
    #### Location
    
    # Override the default privacy permission for cores that want to access location services. Is "false" by default.
    # location_allow = false
    
    #### Core Updater
    
    # URL to core update directory on buildbot.
    # core_updater_buildbot_url = "http://buildbot.libretro.com"
    
    # URL to assets update directory on buildbot.
    # core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/"
    
    # Automatically extract archives that the cores are contained in to the libretro cores directory.
    # core_updater_auto_extract_archive = true
    
    #### Network
    
    # When being client over netplay, use keybinds for user 1.
    # netplay_client_swap_input = false
    
    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname = 
    
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    
    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false
    
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    
    # 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 =
    
    # Path to content database directory.
    # content_database_path =
    
    # Path to cheat database directory.
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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.
    # fastforward_ratio = 1.0
    
    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false
    
    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false
    
    input_enable_hotkey = nul
    

    This is the cfg file for the gamepad named: USBgamepad.cfg

    input_device = “USB gamepad ”
    input_driver = “udev”
    input_b_btn = “2”
    input_y_btn = “3”
    input_select_btn = “8”
    input_start_btn = “9”
    input_up_axis = “-1”
    input_down_axis = “+1”
    input_left_axis = “-0”
    input_right_axis = “+0”
    input_a_btn = “1”
    input_x_btn = “0”
    input_l_btn = “4”
    input_r_btn = “5”
    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”
    input_menu_toggle_btn = “0”
    input_load_state_btn = “4”
    input_save_state_btn = “5”
    input_reset_btn = “2”
    input_state_slot_increase_axis = “+0”
    input_state_slot_decrease_axis = “-0”

    #89145
    InsecureSpike
    Participant

    i just ran and got an error too..
    this is my log..

    /home/pi/RetroPie-Setup/tmp/build/nestopia /home/pi/RetroPie-Setup
    
    = = = = = = = = = = = = = = = = = = = = =
    Getting sources for NES LibretroCore nestopia
    = = = = = = = = = = = = = = = = = = = = =
    
    git clone --depth 1 "https://github.com/libretro/nestopia.git" "/home/pi/RetroPie-Setup/tmp/build/nestopia"
    Cloning into '/home/pi/RetroPie-Setup/tmp/build/nestopia'...
    /home/pi/RetroPie-Setup
    /home/pi/RetroPie-Setup/tmp/build/nestopia /home/pi/RetroPie-Setup
    
    = = = = = = = = = = = = = = = = = = = = =
    Building NES LibretroCore nestopia
    = = = = = = = = = = = = = = = = = = = = =
    
    rm -f ../source/core/NstZlib.o ../source/core/NstApu.o ../source/core/NstFds.o ../source/core/NstPpu.o ../source/core/NstVector.o ../source/core/NstAssert.o ../source/core/NstFile.o ../source/core/NstProperties.o ../source/core/NstVideoFilter2xSaI.o ../source/core/NstCartridge.o ../source/core/NstImage.o ../source/core/NstRam.o ../source/core/NstVideoFilterHqX.o ../source/core/NstCartridgeInes.o ../source/core/NstImageDatabase.o ../source/core/NstSha1.o ../source/core/NstVideoFilterNone.o ../source/core/NstCartridgeRomset.o ../source/core/NstLog.o ../source/core/NstSoundPcm.o ../source/core/NstCartridgeUnif.o ../source/core/NstMachine.o ../source/core/NstSoundPlayer.o ../source/core/NstVideoFilterScaleX.o ../source/core/NstCheats.o ../source/core/NstMemory.o ../source/core/NstSoundRenderer.o ../source/core/NstVideoRenderer.o ../source/core/NstChecksum.o ../source/core/NstNsf.o ../source/core/NstState.o ../source/core/NstVideoScreen.o ../source/core/NstChips.o ../source/core/NstPatcher.o ../source/core/NstStream.o ../source/core/NstXml.o ../source/core/NstCore.o ../source/core/NstPatcherIps.o ../source/core/NstTracker.o ../source/core/NstCpu.o ../source/core/NstPatcherUps.o ../source/core/NstTrackerMovie.o ../source/core/NstCrc32.o ../source/core/NstPins.o ../source/core/NstTrackerRewinder.o ../source/core/NstVideoFilterNtscCfg.o ../source/core/NstVideoFilterNtsc.o ../source/core/api/NstApiBarcodeReader.o ../source/core/api/NstApiEmulator.o ../source/core/api/NstApiMovie.o ../source/core/api/NstApiTapeRecorder.o ../source/core/api/NstApiCartridge.o ../source/core/api/NstApiFds.o ../source/core/api/NstApiNsf.o ../source/core/api/NstApiUser.o ../source/core/api/NstApiCheats.o ../source/core/api/NstApiInput.o ../source/core/api/NstApiRewinder.o ../source/core/api/NstApiVideo.o ../source/core/api/NstApiDipSwitches.o ../source/core/api/NstApiMachine.o ../source/core/api/NstApiSound.o ../source/core/board/NstBoardAcclaimMcAcc.o ../source/core/board/NstBoardAe.o ../source/core/board/NstBoardBtlPikachuY2k.o ../source/core/board/NstBoardNihon.o ../source/core/board/NstBoardAgci.o ../source/core/board/NstBoardBtlShuiGuanPipe.o ../source/core/board/NstBoardNitra.o ../source/core/board/NstBoardAveD1012.o ../source/core/board/NstBoardBtlSmb2a.o ../source/core/board/NstBoardNtdec.o ../source/core/board/NstBoardAveNina.o ../source/core/board/NstBoardBtlSmb2b.o ../source/core/board/NstBoardOpenCorp.o ../source/core/board/NstBoardAxRom.o ../source/core/board/NstBoardBtlSmb2c.o ../source/core/board/NstBoardQj.o ../source/core/board/NstBoardBandai24c0x.o ../source/core/board/NstBoardBtlSmb3.o ../source/core/board/NstBoardRcm.o ../source/core/board/NstBoardBandaiAerobicsStudio.o ../source/core/board/NstBoardBtlSuperBros11.o ../source/core/board/NstBoardRexSoftDb5z.o ../source/core/board/NstBoardBandaiDatach.o ../source/core/board/NstBoardBtlT230.o ../source/core/board/NstBoardRexSoftSl1632.o ../source/core/board/NstBoardBandaiKaraokeStudio.o ../source/core/board/NstBoardBtlTobidaseDaisakusen.o ../source/core/board/NstBoardRumbleStation.o ../source/core/board/NstBoardBandaiLz93d50.o ../source/core/board/NstBoardBxRom.o ../source/core/board/NstBoardSachen74x374.o ../source/core/board/NstBoardBandaiLz93d50ex.o ../source/core/board/NstBoardCaltron.o ../source/core/board/NstBoardSachenS8259.o ../source/core/board/NstBoardBandaiOekaKids.o ../source/core/board/NstBoardCamerica.o ../source/core/board/NstBoardSachenSa0036.o ../source/core/board/NstBoardBenshengBs5.o ../source/core/board/NstBoardCneDecathlon.o ../source/core/board/NstBoardSachenSa0037.o ../source/core/board/NstBoardBmc110in1.o ../source/core/board/NstBoardCnePsb.o ../source/core/board/NstBoardSachenSa72007.o ../source/core/board/NstBoardBmc1200in1.o ../source/core/board/NstBoardCneShlz.o ../source/core/board/NstBoardSachenSa72008.o ../source/core/board/NstBoardBmc150in1.o ../source/core/board/NstBoardCony.o ../source/core/board/NstBoardSachenStreetHeroes.o ../source/core/board/NstBoardBmc15in1.o ../source/core/board/NstBoard.o ../source/core/board/NstBoardSachenTca01.o ../source/core/board/NstBoardBmc20in1.o ../source/core/board/NstBoardCxRom.o ../source/core/board/NstBoardSachenTcu.o ../source/core/board/NstBoardBmc21in1.o ../source/core/board/NstBoardDiscrete.o ../source/core/board/NstBoardSomeriTeamSl12.o ../source/core/board/NstBoardBmc22Games.o ../source/core/board/NstBoardDreamtech.o ../source/core/board/NstBoardSubor.o ../source/core/board/NstBoardBmc31in1.o ../source/core/board/NstBoardEvent.o ../source/core/board/NstBoardSunsoft1.o ../source/core/board/NstBoardBmc35in1.o ../source/core/board/NstBoardFb.o ../source/core/board/NstBoardSunsoft2.o ../source/core/board/NstBoardBmc36in1.o ../source/core/board/NstBoardFfe.o ../source/core/board/NstBoardSunsoft3.o ../source/core/board/NstBoardBmc64in1.o ../source/core/board/NstBoardFujiya.o ../source/core/board/NstBoardSunsoft4.o ../source/core/board/NstBoardBmc72in1.o ../source/core/board/NstBoardFukutake.o ../source/core/board/NstBoardSunsoft5b.o ../source/core/board/NstBoardBmc76in1.o ../source/core/board/NstBoardFutureMedia.o ../source/core/board/NstBoardSunsoftDcs.o ../source/core/board/NstBoardBmc800in1.o ../source/core/board/NstBoardGouder.o ../source/core/board/NstBoardSunsoftFme7.o ../source/core/board/NstBoardBmc8157.o ../source/core/board/NstBoardGxRom.o ../source/core/board/NstBoardSuperGameBoogerman.o ../source/core/board/NstBoardBmc9999999in1.o ../source/core/board/NstBoardHenggedianzi.o ../source/core/board/NstBoardSuperGameLionKing.o ../source/core/board/NstBoardBmcA65as.o ../source/core/board/NstBoardHes.o ../source/core/board/NstBoardSuperGamePocahontas2.o ../source/core/board/NstBoardBmcBallgames11in1.o ../source/core/board/NstBoardHosenkan.o ../source/core/board/NstBoardTaitoTc0190fmc.o ../source/core/board/NstBoardBmcCh001.o ../source/core/board/NstBoardIremG101.o ../source/core/board/NstBoardTaitoTc0190fmcPal16r4.o ../source/core/board/NstBoardBmcCtc65.o ../source/core/board/NstBoardIremH3001.o ../source/core/board/NstBoardTaitoX1005.o ../source/core/board/NstBoardBmcFamily4646B.o ../source/core/board/NstBoardIremHolyDiver.o ../source/core/board/NstBoardTaitoX1017.o ../source/core/board/NstBoardBmcFk23c.o ../source/core/board/NstBoardIremKaiketsu.o ../source/core/board/NstBoardTengen.o ../source/core/board/NstBoardBmcGamestarA.o ../source/core/board/NstBoardIremLrog017.o ../source/core/board/NstBoardTengenRambo1.o ../source/core/board/NstBoardBmcGamestarB.o ../source/core/board/NstBoardJalecoJf11.o ../source/core/board/NstBoardTxc.o ../source/core/board/NstBoardBmcGolden190in1.o ../source/core/board/NstBoardJalecoJf13.o ../source/core/board/NstBoardTxcMxmdhtwo.o ../source/core/board/NstBoardBmcGoldenCard6in1.o ../source/core/board/NstBoardJalecoJf16.o ../source/core/board/NstBoardTxcPoliceman.o ../source/core/board/NstBoardBmcGoldenGame260in1.o ../source/core/board/NstBoardJalecoJf17.o ../source/core/board/NstBoardTxcTw.o ../source/core/board/NstBoardBmcHero.o ../source/core/board/NstBoardJalecoJf19.o ../source/core/board/NstBoardTxRom.o ../source/core/board/NstBoardBmcMarioParty7in1.o ../source/core/board/NstBoardJalecoSs88006.o ../source/core/board/NstBoardUnlA9746.o ../source/core/board/NstBoardBmcNovelDiamond.o ../source/core/board/NstBoardJyCompany.o ../source/core/board/NstBoardUnlCc21.o ../source/core/board/NstBoardBmcPowerjoy84in1.o ../source/core/board/NstBoardKaiser.o ../source/core/board/NstBoardUnlEdu2000.o ../source/core/board/NstBoardBmcResetBased4in1.o ../source/core/board/NstBoardKasing.o ../source/core/board/NstBoardUnlKingOfFighters96.o ../source/core/board/NstBoardBmcSuper22Games.o ../source/core/board/NstBoardKayH2288.o ../source/core/board/NstBoardUnlKingOfFighters97.o ../source/core/board/NstBoardBmcSuper24in1.o ../source/core/board/NstBoardKayPandaPrince.o ../source/core/board/NstBoardUnlMortalKombat2.o ../source/core/board/NstBoardBmcSuper40in1.o ../source/core/board/NstBoardKonamiVrc1.o ../source/core/board/NstBoardUnlN625092.o ../source/core/board/NstBoardBmcSuper700in1.o ../source/core/board/NstBoardKonamiVrc2.o ../source/core/board/NstBoardUnlSuperFighter3.o ../source/core/board/NstBoardBmcSuperBig7in1.o ../source/core/board/NstBoardKonamiVrc3.o ../source/core/board/NstBoardUnlTf1201.o ../source/core/board/NstBoardBmcSuperGun20in1.o ../source/core/board/NstBoardKonamiVrc4.o ../source/core/board/NstBoardUnlWorldHero.o ../source/core/board/NstBoardBmcSuperHiK300in1.o ../source/core/board/NstBoardKonamiVrc6.o ../source/core/board/NstBoardUnlXzy.o ../source/core/board/NstBoardBmcSuperHiK4in1.o ../source/core/board/NstBoardKonamiVrc7.o ../source/core/board/NstBoardUxRom.o ../source/core/board/NstBoardBmcSuperVision16in1.o ../source/core/board/NstBoardKonamiVsSystem.o ../source/core/board/NstBoardVsSystem.o ../source/core/board/NstBoardBmcT262.o ../source/core/board/NstBoardMagicSeries.o ../source/core/board/NstBoardWaixing.o ../source/core/board/NstBoardBmcVrc4.o ../source/core/board/NstBoardMmc1.o ../source/core/board/NstBoardWaixingFfv.o ../source/core/board/NstBoardBmcVt5201.o ../source/core/board/NstBoardMmc2.o ../source/core/board/NstBoardWaixingPs2.o ../source/core/board/NstBoardBmcY2k64in1.o ../source/core/board/NstBoardMmc3.o ../source/core/board/NstBoardWaixingSecurity.o ../source/core/board/NstBoardBtl2708.o ../source/core/board/NstBoardMmc4.o ../source/core/board/NstBoardWaixingSgz.o ../source/core/board/NstBoardBtl6035052.o ../source/core/board/NstBoardMmc5.o ../source/core/board/NstBoardWaixingSgzlz.o ../source/core/board/NstBoardBtlAx5705.o ../source/core/board/NstBoardMmc6.o ../source/core/board/NstBoardWaixingSh2.o ../source/core/board/NstBoardBtlDragonNinja.o ../source/core/board/NstBoardNamcot163.o ../source/core/board/NstBoardWaixingZs.o ../source/core/board/NstBoardNamcot175.o ../source/core/board/NstBoardBtlGeniusMerioBros.o ../source/core/board/NstBoardNamcot34xx.o ../source/core/board/NstBoardWhirlwind.o ../source/core/board/NstBoardBtlMarioBaby.o ../source/core/board/NstBoardNanjing.o ../source/core/board/NstBoardZz.o ../source/core/input/NstInpAdapter.o ../source/core/input/NstInpKonamiHyperShot.o ../source/core/input/NstInpPowerGlove.o ../source/core/input/NstInpBandaiHyperShot.o ../source/core/input/NstInpMahjong.o ../source/core/input/NstInpPowerPad.o ../source/core/input/NstInpBarcodeWorld.o ../source/core/input/NstInpMouse.o ../source/core/input/NstInpRob.o ../source/core/input/NstInpCrazyClimber.o ../source/core/input/NstInpOekaKidsTablet.o ../source/core/input/NstInpSuborKeyboard.o ../source/core/input/NstInpDoremikkoKeyboard.o ../source/core/input/NstInpPachinko.o ../source/core/input/NstInpTopRider.o ../source/core/input/NstInpExcitingBoxing.o ../source/core/input/NstInpPad.o ../source/core/input/NstInpTurboFile.o ../source/core/input/NstInpFamilyKeyboard.o ../source/core/input/NstInpPaddle.o ../source/core/input/NstInpZapper.o ../source/core/input/NstInpFamilyTrainer.o ../source/core/input/NstInpPartyTap.o ../source/core/input/NstInpHoriTrack.o ../source/core/input/NstInpPokkunMoguraa.o ../source/core/vssystem/NstVsRbiBaseball.o ../source/core/vssystem/NstVsSuperXevious.o ../source/core/vssystem/NstVsSystem.o ../source/core/vssystem/NstVsTkoBoxing.o ../libretro/libretro.o
    rm -f nestopia_libretro.so
    g++ -c -o ../source/core/NstZlib.o ../source/core/NstZlib.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstApu.o ../source/core/NstApu.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstFds.o ../source/core/NstFds.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstPpu.o ../source/core/NstPpu.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstVector.o ../source/core/NstVector.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstAssert.o ../source/core/NstAssert.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstFile.o ../source/core/NstFile.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstProperties.o ../source/core/NstProperties.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstVideoFilter2xSaI.o ../source/core/NstVideoFilter2xSaI.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstCartridge.o ../source/core/NstCartridge.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstImage.o ../source/core/NstImage.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstRam.o ../source/core/NstRam.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++ -c -o ../source/core/NstVideoFilterHqX.o ../source/core/NstVideoFilterHqX.cpp -O2 -mfpu=vfp -march=armv6j -mfloat-abi=hard -O3 -fPIC -D__LIBRETRO__  -Wno-deprecated -Wno-write-strings  -DNST_NO_ZLIB -fno-rtti -I.. -I../source
    g++: internal compiler error: Killed (program cc1plus)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions.
    Makefile:240: recipe for target '../source/core/NstVideoFilterHqX.o' failed
    make: *** [../source/core/NstVideoFilterHqX.o] Error 4
    /home/pi/RetroPie-Setup
    Could not successfully build_nestopia NES LibretroCore nestopia (/home/pi/RetroPie-Setup/tmp/build/nestopia/libretro/nestopia_libretro.so not found).

    any help or pointers would be awesome,
    thanks

    #85585
    Roo
    Participant

    RetroPie is relatively new, but there’s a community out there that have been doing this for many years – using HyperSpin or GameEx or many other front ends. I’m just leading up to the idea that here’s a lot of us that have been down this road :)

    If you want to go further down this rabbit hole, you can remove all the games you can’t play with the controller setup you have. For example Centipede uses a trackball and Operation Wolf uses a light gun. You may want to play with this tool, which can build a list for you just based on the controls you have.

    http://www.waste.org/~winkles/ROMLister/

    I’ve used all the tools, but in the end I just have a subset of ROMs I manually maintain. It took me a while to put together, but that’s just a one time deal. It’s all the best classics, my favorites, favorites of my friends that come over, and some good party games thrown in for fun. Once I took out the ones I can’t play on my RasPi (trackball, spinner and lightgun), my list is 263. Which to me is much more pleasant than trying to scroll through thousands of games no one has heard of.

    I do the same for my NES, SNES, N64, GBA, GameCube, PS1, etc. This hobby can take up your free time if you let it :)

    I know a lot of other guys just put every possible game in and boast that they have 10,000 games or whatever. I don’t get it – to me that’s just a giant mess but to each their own.

    #84011
    sludwig
    Participant

    I removed the commented out savestate directory and removed this line from the bottom:

    savefile_directory = /home/pi/RetroPie/
    savestate_directory = /home/pi/RetroPie/

    So if you look back at my original config, on top, it looks like this:

    ## 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 = /home/pi/RetroPie/savestate
    
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    savestate_directory = /home/pi/RetroPie/savestate
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_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 = false

    Also, I checked my directory for my saved state files. It saves in this folder:

    /home/pi/RetroPie/savestate

    All my games have .state files of their saves in there. However, I can’t load them at all. Even if I try f2 or f4. I keep getting:

    “Failed to load state from “/home/pi/RetroPie/savestate/Doom (U) [!].state 1″

    Again, it will change the name depending on the name of the game.

    I’m just lost as I’ve never taken a coding class or understand comp sci that much, and am literally just following google guides. To make it easier to understand I’m just going to show my entire config again so everyone knows where I am at.

    ## 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 = /home/pi/RetroPie/savestate
    
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    savestate_directory = /home/pi/RetroPie/savestate
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_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 = false
    
    # Load libretro from a dynamic location for dynamically built RetroArch.
    # This option is mandatory.
    
    # Path to a libretro implementation.
    # libretro_path = "/path/to/libretro.so"
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    
    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg
    
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/roms/../BIOS
    
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    # assets_directory =
    
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    
    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    
    # Load up a specific config file based on the core being used.
    # core_specific_config = 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 = true
    
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume GL state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to content 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 GLSL, GLSLP (GLSL preset)
    # video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/RetroArch/shader/
    
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    
    # Path to a 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 font rendered.
    video_font_size = 16
    
    # 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 content 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 resampler backend. Which audio resampler to use.
    # Default will use "sinc".
    # audio_resampler =
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =
    
    # 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 =
    
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # 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 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
    
    #### Overlay
    
    # Enable overlay.
    # input_overlay_enable = false
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.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 =
    
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys").
    # input_keyboard_layout =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # 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 = /opt/retropie/emulators/RetroArch/configs/
    
    # 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 the menu.
    # 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 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 =
    
    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    
    # 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =
    
    # 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 RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    
    # Applies next and previous 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 content is paused
    # input_frame_advance = k
    
    # Reset the content.
    # input_reset = h
    
    # 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 = escape
    
    # 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 content.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Menu
    
    # Menu driver to use. "rgui", "lakka", etc. 
    # menu_driver = "rgui"
    
    #### Camera
    
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    
    # Override the default privacy permission for cores that want to access camera services. Is "false" by default.
    # camera_allow = false
    
    #### Location
    
    # Override the default privacy permission for cores that want to access location services. Is "false" by default.
    # location_allow = false
    
    #### Netplay
    
    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false
    
    # The nickname being used for playing online.
    # netplay_nickname = 
    
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    
    # Enable or disable spectator mode for the player during netplay.
    # netplay_spectator_mode_enable = false
    
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    
    # 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 =
    
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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_player1_joypad_index = "0"
    input_player1_b_btn = "13"
    input_player1_y_btn = "12"
    input_player1_select_btn = "0"
    input_player1_start_btn = "3"
    input_player1_up_btn = "4"
    input_player1_down_btn = "6"
    input_player1_left_btn = "7"
    input_player1_right_btn = "5"
    input_player1_a_btn = "14"
    input_player1_x_btn = "15"
    input_player1_l_btn = "10"
    input_player1_r_btn = "11"
    input_player1_l2_btn = "8"
    input_player1_r2_btn = "9"
    input_player1_l3_btn = "1"
    input_player1_r3_btn = "2"
    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 = "0"
    input_exit_emulator_btn = "3"
    
    input_enable_hotkey_btn = "0"
    input_save_state_btn = "16"
    
    input_enable_hotkey_btn = "0"
    input_load_state_btn = "5"
    
    #83878
    matsmith
    Participant

    I thought I made some good progess today, but same issue still.

    I finally found the retropie-joyconfig file and managed to run it which generated this .cfg file:

    input_player1_joypad_index = "0"
    input_player1_b_btn = "2"
    input_player1_y_btn = "3"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    input_player1_up_btn = "h0up"
    input_player1_down_btn = "h0down"
    input_player1_left_btn = "h0left"
    input_player1_right_btn = "h0right"
    input_player1_a_btn = "1"
    input_player1_x_btn = "0"
    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 = "-3"
    input_player1_l_x_minus_btn = "1"
    input_player1_l_y_plus_btn = "1"
    input_player1_l_y_minus_btn = "1"
    input_player1_r_x_plus_btn = "1"
    input_player1_r_x_minus_btn = "1"
    input_player1_r_y_plus_btn = "1"
    input_player1_r_y_minus_btn = "1"
    input_player1_joypad_index = "0"
    input_player1_b_btn = "2"
    input_player1_y_btn = "3"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    input_player1_up_btn = "h0up"
    input_player1_down_btn = "h0down"
    input_player1_left_btn = "h0left"
    input_player1_right_btn = "h0right"
    input_player1_a_btn = "1"
    input_player1_x_btn = "0"
    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_axis = "-0"
    input_player1_l_x_plus_btn = "2"
    input_player1_l_x_minus_btn = "2"
    input_player1_l_y_plus_btn = "2"
    input_player1_l_y_minus_btn = "2"
    input_player1_r_x_plus_btn = "2"
    input_player1_r_x_minus_btn = "2"
    input_player1_r_y_plus_btn = "2"
    input_player1_r_y_minus_btn = "2"
    input_player1_joypad_index = "0"
    input_player1_b_btn = "2"
    input_player1_y_btn = "3"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    input_player1_up_btn = "h0up"
    input_player1_down_btn = "h0down"
    input_player1_left_btn = "h0left"
    input_player1_right_btn = "h0right"
    input_player1_a_btn = "1"
    input_player1_x_btn = "0"
    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 = "-3"

    And here is my retroarch.cfg file. There’s a few differences between yours and mine, but nothing I can see about the actual controller mapping:

    ## 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 =
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_directory =
    
    # Save all playlist files to this directory.
    # playlist_directory =
    
    # If set to a directory, the content history playlist will be saved
    # to this directory.
    # content_history_dir =
    
    # 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.
    
    # Path to a libretro implementation.
    # libretro_path = "/path/to/libretro.so"
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # A directory for where to search for libretro core information.
    # libretro_info_path =
    
    # Sets mode for archived files in file browser.
    # 0 = Ask, 1 = Load Archive, 2 = Open Archive
    # archive_mode = 0
    
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    
    # If this option is enabled, every content file loaded in RetroArch will be
    # automatically added to a history list.
    # history_list_enable = true
    
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    
    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg
    
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/roms/../BIOS
    
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    # assets_directory =
    
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    
    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    
    # Load up a specific config file based on the core being used.
    # core_specific_config = 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_context_driver =
    
    # Windowed x resolution scale and y resolution scale
    # (Real x res: base_size * xscale * aspect_ratio, real y res: base_size * yscale)
    # video_scale = 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
    
    # Forcibly disable sRGB FBO support. Some Intel OpenGL drivers on Windows
    # have video problems with sRGB FBO support enabled.
    # video_force_srgb_disable = false
    
    # 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
    
    # Sets how many milliseconds to delay after VSync before running the core.
    # Can reduce latency at cost of higher risk of stuttering.
    # Maximum is 15.
    # video_frame_delay = 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 = true
    
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume HW state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to content 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 GLSL, GLSLP (GLSL preset)
    # video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/RetroArch/shader/
    
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    
    # Defines a directory where CPU-based video filters are kept.
    # video_filter_dir =
    
    # Path to a 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 font rendered.
    # video_font_size = 32
    
    # 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 content 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 resampler backend. Which audio resampler to use.
    # Default will use "sinc".
    # audio_resampler =
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =
    
    # 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 =
    
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # audio_dsp_plugin =
    
    # Directory where DSP plugins are kept.
    # audio_filter_dir =
    
    # 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 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
    
    # Controls maximum audio timing skew. Defines the maximum change in input rate.
    # Input rate = in_rate * (1.0 +/- max_timing_skew)
    # audio_max_timing_skew = 0.05
    
    # 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
    
    #### Overlay
    
    # Defines a directory where overlays are kept for easy access.
    # overlay_directory =
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.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 =
    
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys").
    # input_keyboard_layout =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # Enable input auto-detection. Will attempt to autoconfigure
    # joypads, Plug-and-Play style.
    input_autodetect_enable = true
    
    # Show the input descriptors set by the core instead of the
    # default ones.
    # input_descriptor_label_show = true
    
    # Hide input descriptors that were not set by the core.
    # input_descriptor_hide_unbound = false
    
    # Directory for joypad autoconfigs.
    # 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 = /opt/retropie/emulators/RetroArch/configs/
    
    # Sets which libretro device is used for a user.
    # Devices are indentified with a number.
    # This is normally saved by the menu.
    # 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 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 =
    
    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    
    # If desired, it is possible to override which joypads are being used for user 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =
    
    # 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 user 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 RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    
    # Applies next and previous 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 content is paused
    # input_frame_advance = k
    
    # Reset the content.
    # input_reset = h
    
    # 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 users.
    # 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_btn =
    
    # 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 content.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Menu
    
    # Menu driver to use. "rgui", "lakka", etc. 
    # menu_driver = "rgui"
    
    # If enabled, the libretro core will keep running in the background when we
    # are in the menu.
    # menu_pause_libretro = false
    
    # Enable mouse input inside the menu.
    # menu_mouse_enable = false
    
    # Wrap-around toe beginning and/or end if boundary of list reached horizontally
    # menu_navigation_wraparound_horizontal_enable = false
    
    # Wrap-around to beginning and/or end if boundary of list reached vertically
    # menu_navigation_wraparound_vertical_enable = false
    
    #### Camera
    
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    
    # Override the default privacy permission for cores that want to access camera services. Is "false" by default.
    # camera_allow = false
    
    #### Location
    
    # Override the default privacy permission for cores that want to access location services. Is "false" by default.
    # location_allow = false
    
    #### Netplay
    
    # When being client over netplay, use keybinds for user 1.
    # netplay_client_swap_input = false
    
    # The username of the person running RetroArch. This will be used for playing online, for instance.
    # netplay_nickname = 
    
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    
    # Enable or disable spectator mode for the user during netplay.
    # netplay_spectator_mode_enable = false
    
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    
    # 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 =
    
    # Path to cheat database directory.
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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.
    # fastforward_ratio = 1.0
    
    # Setting this to false equals no FPS cap and will override the fastforward_ratio value.
    # fastforward_ratio_throttle_enable = false
    
    # Enable stdin/network command interface.
    # network_cmd_enable = false
    # network_cmd_port = 55355
    # stdin_cmd_enable = false
    
    input_enable_hotkey = nul
    
    input_player1_joypad_index = 0
    input_player1_b_btn = 2
    input_player1_y_btn = 3
    input_player1_select_btn = 8
    input_player1_start_btn = 9
    input_player1_up_btn = h0up
    input_player1_down_btn = h0down
    input_player1_left_btn = h0left
    input_player1_right_btn = h0right
    input_player1_a_btn = 1
    input_player1_x_btn = 0
    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 = -3

    Hope this helps.

    sludwig
    Participant

    New to Retropie here. I setup my first Retropie a weekend ago, and I got it to where everything worked fine and I had no issues with it. My problems came in when I decided to get a Bluetooth dongle and setup my PS3 sixaxis controller.

    I originally was able to save all my games and load them with hotkeys by tweaking this into my retroarch.cfg file under the /opt/retropie/configs/all/ location:

    input_enable_hotkey_btn = "0"
    input_exit_emulator_btn = "3"
    input_save_state_btn = "16"
    input_load_state_btn = "5"

    I wanted a wireless controller since I hate sitting close to the TV. So I followed this guide to get my ps3 controller to work:

    After my ps3 controller was recognized by retropie, I realized that my old configurations for my xbox360 usb controller were making it difficult to navigate around. So I ended up deleting the various “input_player” lines in the bottom of the retroarch.cfg file in WINSCP, alt F4ed, and then ran this, which ran me through the process of setting up my ps3 controller mappings:

    sudo chown pi /opt/retropie/configs/all/retroarch.cfg
    cd /opt/retropie/emulators/RetroArch/installdir/bin
    sudo ./retroarch-joyconfig -j 0 >> /opt/retropie/configs/all/retroarch.cfg

    The controller works fines for games and in emulation station. I have no problems with it in terms of functioning as a controller and playing games. My only problem is saving and loading my saved games. When I save a game I seem to get the correct message of “Saved state to slot #0”. But, every time I try load a game I get this message on the bottom of the screen:

    “Failed to load state from “/home/pi/RetroPie/(XYZgame/whatever game I’m playing here, and it cuts off screen so i’m not sure if there’s anything else after that)”

    I also notice that if I attempt to load the game, then proceed to try to save again, the save slot # moves up.

    Also, I don’t see any .srm files being created in my rom folder like I use to. I don’t know what’s going on there. I’m thinking maybe this issue has something to do with permissions but I’m not sure.

    Here is my retroarch.cfg:

    ## 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 = /home/pi/RetroPie/savestate
    
    # Save all save states (*.state) to this directory.
    # This will be overridden by explicit command line options.
    # savestate_directory = /home/pi/RetroPie/savestate
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_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 = false
    
    # Load libretro from a dynamic location for dynamically built RetroArch.
    # This option is mandatory.
    
    # Path to a libretro implementation.
    # libretro_path = "/path/to/libretro.so"
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    
    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg
    
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/roms/../BIOS
    
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    # assets_directory =
    
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    
    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    
    # Load up a specific config file based on the core being used.
    # core_specific_config = 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 = true
    
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume GL state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to content 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 GLSL, GLSLP (GLSL preset)
    # video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/RetroArch/shader/
    
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    
    # Path to a 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 font rendered.
    # video_font_size = 32
    
    # 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 content 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 resampler backend. Which audio resampler to use.
    # Default will use "sinc".
    # audio_resampler =
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =
    
    # 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 =
    
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # 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 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
    
    #### Overlay
    
    # Enable overlay.
    # input_overlay_enable = false
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.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 =
    
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys").
    # input_keyboard_layout =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # 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 = /opt/retropie/emulators/RetroArch/configs/
    
    # 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 the menu.
    # 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 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 =
    
    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    
    # 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =
    
    # 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 RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    
    # Applies next and previous 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 content is paused
    # input_frame_advance = k
    
    # Reset the content.
    # input_reset = h
    
    # 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 = escape
    
    # 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 content.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Menu
    
    # Menu driver to use. "rgui", "lakka", etc. 
    # menu_driver = "rgui"
    
    #### Camera
    
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    
    # Override the default privacy permission for cores that want to access camera services. Is "false" by default.
    # camera_allow = false
    
    #### Location
    
    # Override the default privacy permission for cores that want to access location services. Is "false" by default.
    # location_allow = false
    
    #### Netplay
    
    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false
    
    # The nickname being used for playing online.
    # netplay_nickname = 
    
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    
    # Enable or disable spectator mode for the player during netplay.
    # netplay_spectator_mode_enable = false
    
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    
    # 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 =
    
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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_player1_joypad_index = "0"
    input_player1_b_btn = "13"
    input_player1_y_btn = "12"
    input_player1_select_btn = "0"
    input_player1_start_btn = "3"
    input_player1_up_btn = "4"
    input_player1_down_btn = "6"
    input_player1_left_btn = "7"
    input_player1_right_btn = "5"
    input_player1_a_btn = "14"
    input_player1_x_btn = "15"
    input_player1_l_btn = "10"
    input_player1_r_btn = "11"
    input_player1_l2_btn = "8"
    input_player1_r2_btn = "9"
    input_player1_l3_btn = "1"
    input_player1_r3_btn = "2"
    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"
    
    savefile_directory = /home/pi/RetroPie/
    savestate_directory = /home/pi/RetroPie/
    
    input_enable_hotkey_btn = "0"
    input_exit_emulator_btn = "3"
    
    input_enable_hotkey_btn = "0"
    input_save_state_btn = "16"
    
    input_enable_hotkey_btn = "0"
    input_load_state_btn = "5"
    silvervolkano
    Participant

    I cant make the second player work.

    I’m using two 360 xbox controller both linked with the wireless reciever. When i’m playing a game just 1 controller works and this controller is controlling both players.

    this is my retroarch.cfg

    thanks in advance.

    PS: Also, i cant exit a game or save states using only the 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 =

    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_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.

    # Path to a libretro implementation.
    # libretro_path = “/path/to/libretro.so”

    # A directory for where to search for libretro core implementations.
    # libretro_directory =

    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (–verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0

    # Enable or disable verbosity level of frontend.
    # log_verbosity = false

    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false

    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg

    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/roms/../BIOS

    # Sets start directory for menu content browser.
    # rgui_browser_directory =

    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =

    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    # assets_directory =

    # Sets start directory for menu config browser.
    # rgui_config_directory =

    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include’s and comments are not preserved.
    config_save_on_exit = false

    # Load up a specific config file based on the core being used.
    # core_specific_config = 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 = true

    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume GL state changes inbetween frames.
    # video_shared_context = false

    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false

    # Forces rendering area to stay equal to content 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 GLSL, GLSLP (GLSL preset)
    # video_shader = “/path/to/shader.{cg,cgp,glsl,glslp}”

    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/RetroArch/shader/

    # CPU-based video filter. Path to a dynamic library.
    # video_filter =

    # Path to a 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 font rendered.
    # video_font_size = 32

    # 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 content 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 resampler backend. Which audio resampler to use.
    # Default will use “sinc”.
    # audio_resampler =

    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =

    # 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 =

    # Audio DSP plugin that processes audio before it’s sent to the driver. Path to a dynamic library.
    # 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 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

    #### Overlay

    # Enable overlay.
    # input_overlay_enable = false

    # Path to input overlay
    # input_overlay =

    # Overlay opacity
    # input_overlay_opacity = 1.0

    # Overlay scale
    # input_overlay_scale = 1.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 =

    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. “no”), or a layout and variant separated with colon (“no:nodeadkeys”).
    # input_keyboard_layout =

    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5

    # 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 = /opt/retropie/emulators/RetroArch/configs/

    # 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 the menu.
    # 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 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 =

    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =

    # 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 =
    # input_player1_b_btn =
    # input_player1_y_btn =
    # input_player1_x_btn =
    # input_player1_start_btn =
    # input_player1_select_btn =
    # input_player1_l_btn =
    # input_player1_r_btn =
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =

    # 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 RetroArch cleanly.
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape

    # Applies next and previous 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 content is paused
    # input_frame_advance = k

    # Reset the content.
    # input_reset = h

    # 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 = escape

    # 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 content.
    # input_disk_eject_toggle =

    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =

    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11

    #### Menu

    # Menu driver to use. “rgui”, “lakka”, etc.
    # menu_driver = “rgui”

    #### Camera

    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =

    # Override the default privacy permission for cores that want to access camera services. Is “false” by default.
    # camera_allow = false

    #### Location

    # Override the default privacy permission for cores that want to access location services. Is “false” by default.
    # location_allow = false

    #### Netplay

    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false

    # The nickname being used for playing online.
    # netplay_nickname =

    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0

    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false

    # Enable or disable spectator mode for the player during netplay.
    # netplay_spectator_mode_enable = false

    # The IP Address of the host to connect to.
    # netplay_ip_address =

    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435

    #### Misc

    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false

    # 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 =

    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0

    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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_player1_joypad_index = “0”
    input_player1_b_btn = “1”
    input_player1_y_btn = “3”
    input_player1_select_btn = “6”
    input_player1_start_btn = “7”
    input_player1_up_btn = “13”
    input_player1_down_btn = “14”
    input_player1_left_btn = “11”
    input_player1_right_btn = “12”
    input_player1_a_btn = “0”
    input_player1_x_btn = “2”
    input_player1_l_btn = “4”
    input_player1_r_btn = “5”
    input_player1_l2_axis = “+2”
    input_player1_r2_axis = “+5”
    input_player1_l3_btn = “9”
    input_player1_r3_btn = “10”
    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 = “+3”
    input_player1_r_x_minus_axis = “-3”
    input_player1_r_y_plus_axis = “+4”
    input_player1_r_y_minus_axis = “-4”

    input_player2_joypad_index = “1”
    input_player2_b_btn = “1”
    input_player2_y_btn = “3”
    input_player2_select_btn = “6”
    input_player2_start_btn = “7”
    input_player2_up_btn = “13”
    input_player2_down_btn = “14”
    input_player2_left_btn = “11”
    input_player2_right_btn = “12”
    input_player2_a_btn = “0”
    input_player2_x_btn = “2”
    input_player2_l_btn = “4”
    input_player2_r_btn = “5”
    input_player2_l2_axis = “+2”
    input_player2_r2_axis = “+5”
    input_player2_l3_btn = “9”
    input_player2_r3_btn = “10”
    input_player2_l_x_plus_axis = “+0”
    input_player2_l_x_minus_axis = “-0”
    input_player2_l_y_plus_axis = “+1”
    input_player2_l_y_minus_axis = “-1”
    input_player2_r_x_plus_axis = “+3”
    input_player2_r_x_minus_axis = “-3”
    input_player2_r_y_plus_axis = “+4”
    input_player2_r_y_minus_axis = “-4”

    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    swandog
    Participant

    Connected to the pi using winscp and edited the retropie.cfg but its still not working.

    my retropie.cfg file is as follows. Am I doing something wrong?

    ## 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 =
    
    # If set to a directory, Content which is temporarily extracted
    # will be extracted to this directory.
    # extraction_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.
    
    # Path to a libretro implementation.
    # libretro_path = "/path/to/libretro.so"
    
    # A directory for where to search for libretro core implementations.
    # libretro_directory =
    
    # Sets log level for libretro cores (GET_LOG_INTERFACE).
    # If a log level issued by a libretro core is below libretro_log_level, it is ignored.
    # DEBUG logs are always ignored unless verbose mode is activated (--verbose).
    # DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3.
    # libretro_log_level = 0
    
    # Enable or disable verbosity level of frontend.
    # log_verbosity = false
    
    # Enable or disable RetroArch performance counters
    # perfcnt_enable = false
    
    # 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 = /opt/retropie/configs/all/retroarch-core-options.cfg
    
    # Path to content load history file.
    # RetroArch keeps track of all content loaded in the menu 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 content 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/roms/../BIOS
    
    # Sets start directory for menu content browser.
    # rgui_browser_directory =
    
    # Content directory. Interacts with RETRO_ENVIRONMENT_GET_CONTENT_DIRECTORY.
    # Usually set by developers who bundle libretro/RetroArch apps to point to assets.
    # content_directory =
    
    # Assets directory. This location is queried by default when menu interfaces try to look for
    # loadable assets, etc.
    # assets_directory =
    
    # Sets start directory for menu config browser.
    # rgui_config_directory =
    
    # Show startup screen in menu.
    # 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 menu as settings can be modified.
    # Overwrites the config. #include's and comments are not preserved.
    config_save_on_exit = false
    
    # Load up a specific config file based on the core being used.
    # core_specific_config = 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 = true
    
    # Use a shared context for HW rendered libretro cores.
    # Avoids having to assume GL state changes inbetween frames.
    # video_shared_context = false
    
    # Smoothens picture with bilinear filtering. Should be disabled if using pixel shaders.
    video_smooth = false
    
    # Forces rendering area to stay equal to content 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 GLSL, GLSLP (GLSL preset)
    # video_shader = "/path/to/shader.{cg,cgp,glsl,glslp}"
    
    # 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, GLSL) are kept for easy access.
    video_shader_dir = /opt/retropie/emulators/RetroArch/shader/
    
    # CPU-based video filter. Path to a dynamic library.
    # video_filter =
    
    # Path to a 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 font rendered.
    # video_font_size = 32
    
    # 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 content 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 resampler backend. Which audio resampler to use.
    # Default will use "sinc".
    # audio_resampler =
    
    # Audio driver backend. Depending on configuration possible candidates are: alsa, pulse, oss, jack, rsound, roar, openal, sdl, xaudio.
    # audio_driver =
    
    # 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 =
    
    # Audio DSP plugin that processes audio before it's sent to the driver. Path to a dynamic library.
    # 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 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
    
    #### Overlay
    
    # Enable overlay.
    # input_overlay_enable = false
    
    # Path to input overlay
    # input_overlay =
    
    # Overlay opacity
    # input_overlay_opacity = 1.0
    
    # Overlay scale
    # input_overlay_scale = 1.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 =
    
    # Keyboard layout for input driver if applicable (udev/evdev for now).
    # Syntax is either just layout (e.g. "no"), or a layout and variant separated with colon ("no:nodeadkeys").
    # input_keyboard_layout =
    
    # Defines axis threshold. Possible values are [0.0, 1.0]
    # input_axis_threshold = 0.5
    
    # 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 = /opt/retropie/emulators/RetroArch/configs/
    
    # 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 the menu.
    # 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 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 =
    
    # 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_l_x_plus =
    # input_player1_l_x_minus =
    # input_player1_l_y_plus =
    # input_player1_l_y_minus =
    # input_player1_r_x_plus =
    # input_player1_r_x_minus =
    # input_player1_r_y_plus =
    # input_player1_r_y_minus =
    
    # 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_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 = "10" 
    
    # 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 =
    # input_player1_right_axis =
    # input_player1_up_axis =
    # input_player1_down_axis =
    
    # 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 RetroArch cleanly. 
    # Killing it in any hard way (SIGKILL, etc) will terminate RetroArch without saving RAM, etc.
    # On Unix-likes, SIGINT/SIGTERM allows a clean deinitialization.
    input_exit_emulator = escape
    
    # Applies next and previous 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 content is paused
    # input_frame_advance = k
    
    # Reset the content.
    # input_reset = h
    
    # 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 = escape
    
    # 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 content.
    # input_disk_eject_toggle =
    
    # Cycles through disk images. Use after ejecting.
    # Complete by toggling eject again.
    # input_disk_next =
    
    # Toggles 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 input
    # to work better.
    # input_grab_mouse_toggle = f11
    
    #### Menu
    
    # Menu driver to use. "rgui", "lakka", etc. 
    # menu_driver = "rgui"
    
    #### Camera
    
    # Override the default camera device the camera driver uses. This is driver dependant.
    # camera_device =
    
    # Override the default privacy permission for cores that want to access camera services. Is "false" by default.
    # camera_allow = false
    
    #### Location
    
    # Override the default privacy permission for cores that want to access location services. Is "false" by default.
    # location_allow = false
    
    #### Netplay
    
    # When being client over netplay, use keybinds for player 1.
    # netplay_client_swap_input = false
    
    # The nickname being used for playing online.
    # netplay_nickname = 
    
    # The amount of delay frames to use for netplay. Increasing this value will increase
    # performance, but introduce more latency.
    # netplay_delay_frames = 0
    
    # Netplay mode for the current user.
    # false is Server, true is Client.
    # netplay_mode = false
    
    # Enable or disable spectator mode for the player during netplay.
    # netplay_spectator_mode_enable = false
    
    # The IP Address of the host to connect to.
    # netplay_ip_address = 
    
    # The port of the host IP Address. Can be either a TCP or an UDP port.
    # netplay_ip_port = 55435
    
    #### Misc
    
    # Enable rewinding. This will take a performance hit when playing, so it is disabled by default.
    rewind_enable = false
    
    # 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 =
    
    # 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 content, 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, content will slow down by factor.
    # slowmotion_ratio = 3.0
    
    # The maximum rate at which content will be run when using fast forward. (E.g. 5.0 for 60 fps content => 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
Viewing 35 results - 1 through 35 (of 56 total)