Homepage Forums RetroPie Project Everything else related to the RetroPie Project Updated for 2.2: Step-by-Step Guide

Viewing 35 posts - 1 through 35 (of 81 total)
  • Author
    Posts
  • #12147
    zSprawl
    Guest

    Well I see it asked a lot, and I keep notes for myself, so I figured I would share. I’ve updated my build document for version 2.2 and am having a blast playing with the new interface.

    —-

    1) Download the latest version of RetroPie’s SD image. This document is based off version 2.2.

    https://www.petrockblock.com/download/retropie-project-image/

    2) Download and use Win32 Disk Imager to apply the above SD image to a 4 GB or larger SD card. 8 GB is really recommended.

    http://sourceforge.net/projects/win32diskimager/

    3) Boot the SD Image on your Raspberry Pi.

    4) The first time the system boots up into Emulation Station, you will need to setup your joystick.

    5) If this is a new Pi, you’ll probably want to update to the latest firmware and reboot. You may need to use a wired cable even if you plan on using wifi.

    sudo rpi-update
    sudo reboot
    sudo apt-get update && sudo apt-get upgrade -y

    6) I purchased a EW-7811Un USB wifi, which is supported by the Raspberry Pi out of the box. I also have a TL-WN725N, which can be setup as follows:

    http://www.raspberrypi.org/forums/viewtopic.php?p=462982#p462982

    tar -zxvf 8188eu-201xyyzz.tar.gz
    sudo install -p -m 644 8188eu.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless
    sudo insmod /lib/modules/$(uname -r)/kernel/drivers/net/wireless/8188eu.ko
    sudo depmod -a

    7) Now we need to setup wifi. Edit /etc/network/interfaces to configure wlan0.

    allow-hotplug wlan0
    auto wlan0
    iface wlan0 inet dhcp
    wpa-ssid zInternet
    wpa-psk *******

    8) Before we can move to configuring everything via SSH, we need to configure our joystick for the emulators themselves.

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

    9) Grab the IP address and SSH into the device to continue configuration. The default user/password that comes with Raspbian is used: The username is “pi”, the password is “raspberry”.

    10) Let’s setup the player 2 controller for our emulators before we forget.

    cd /opt/retropie/configs/all/
    vi retroarch.cfg

    Copy and paste the entire section that begins with “input_player1_” and change it to “input_player2_”. Don’t forget to change the “input_player_joypad_index” to 1 or 2 as well.

    Note: If you have a keyboard connected, things can be a little odd. You may need to change the joypad index to 0 and 1 if you remove the keyboard, which I’m going to do.

    At the end of the retroarch.cfg file, it is a good idea to add the following to allow you to press select+start to exit the game.

    input_enable_hotkey_btn = “8”
    input_exit_emulator_btn = “9”

    I also like to take advantage of the save and load states in emulation, which some people consider cheating. Add the following lines to enable these buttons on your joypad.

    input_save_state_btn = “4”
    input_load_state_btn = “5”

    After this has been done, you can hold select and press the L and R paddles to save and load states respectively.

    11) Run configuration.

    sudo raspi-config

    12) Change password.

    13) Change Memory-split to 384.

    14) Expand root file system to fill entire SD card.

    15) Force audio out of audio jack (instead of HDMI).

    16) Exit from tool and reboot.

    17) SSH back in (if you are using DHCP, the resizing of the file system can cause an IP change).

    18) Now we need to ensure that pisnes is the active emulator in Emulation station. Pisnes has problems playing some of the later games, like Yoshi’s Island, but performs way better than the RetroArch version. It is up to you whether you can handle the lag and broken sound in RetroArch.

    cd /etc/emulationstation
    sudo vi es_systems.cfg

    Change the section for SNES by uncommenting out the line for pisnes, and commenting out the current line. It should look like this when you’re done.

    <system>
    <fullname>Super Nintendo</fullname>
    <name>snes</name>
    <path>~/RetroPie/roms/snes</path>
    <extension>.smc .sfc .fig .swc .SMC .SFC .FIG .SWC</extension>
    <command>/opt/retropie/emulators/pisnes/snes9x %ROM%</command>
    <platform>snes</platform>
    <theme>snes</theme>
    </system>

    You can also edit this file to remove other emulators. I deleted the Apple, Ports, and DOS emulators by commenting out their respective sections.

    19) Now we need to configure the controller for pisnes.

    cd /opt/retropie/emulators/pisnes
    sudo vi snes9x.cfg

    Edit this file to match your controller. Here is my config file:

    [Keyboard]
    # Get codes from /usr/include/SDL/SDL_keysym.h
    A_1=100
    B_1=99
    X_1=115
    Y_1=120
    L_1=97
    R_1=102
    START_1=13
    SELECT_1=9
    LEFT_1=276
    RIGHT_1=275
    UP_1=273
    DOWN_1=274
    QUIT=27
    ACCEL=8

    [Joystick]
    # Get codes from “jstest /dev/input/js0”
    # from package “joystick”
    A_1=1
    B_1=2
    X_1=0
    Y_1=3
    L_1=4
    R_1=5
    START_1=9
    SELECT_1=8
    A_2=1
    B_2=2
    X_2=0
    Y_2=3
    L_2=4
    R_2=5
    START_2=9
    SELECT_2=8
    QUIT=99
    ACCEL=7
    QLOAD=99
    QSAVE=99
    #Joystick axis
    JA_LR=0
    JA_UD=1
    JA_LR_2=0
    JA_UD_2=1

    [Graphics]
    DisplaySmoothStretch=1
    # Display Effect: 0 none, 1 scanlines, 2 phospher
    # NOTE Phospher does not run at full speed
    DisplayEffect=0
    MaintainAspectRatio=1
    DisplayBorder=0
    AutoFrameskip=1
    Frameskip=200
    Transparency=1
    CPUCycles=100

    [Sound]
    APUEnabled=1
    # Sound rates below as index, i.e. 7=44100 (some of these produce static)
    # 0, 8192, 11025, 16000, 22050, 29300, 32000, 44100
    SoundPlaybackRate=7
    InterpolatedSound=0

    20) Now copy your Roms to the SMB shares (ex. \\RaspberryPi\snes is where the Super Nintendo ROMs go).

    21) All done? Reboot and game on.

    sudo reboot

    22) And once you are happy for a few days, go back into “raspi-config” and overclock your pi, if you are feeling daring. It will iron out some of the annoying blips in audio. I purchased a few heat sinks just in case.

    #12171
    smatticus
    Participant

    great work! a couple of points/questions

    1) i added
    input_reset_btn = “3” to reset the rom
    and
    input_menu_toggle_btn = “0” to bring up the retroarch menu but i can’t save the configs

    2)how are you getting the memory split to be 384? my pi freezes the minute the emulationstation starts to appear

    3)also how does one “copy and paste” inside the ssh window? i’ using puTTY on windows to ssh into the pi. was this more of a linux-based guide?

    4)it looks like that chown command worked for cyberduck and winSCP, i can now log in as pi and edit the retroarch.cfg, which is super handy

    5)you can apparently have both snes emulators in the emulationstation menu by adding the commands into es_systems.cfg, i haven’t quite figured out how to make them LOOK different, i just know that the first one to the left is the retroarch snes and the one o the left of THAT is pisnes. so people don’t have to choose, although the save states and save games don’t follow even though its the same rom path… weird

    #12177
    zSprawl
    Guest

    1) What do you mean you can’t save the config?

    2) I have the latest model with 512 onboard. Perhaps you have an earlier model? Either way, 256 works fine. I have heard 128 does too, and some have said it is the optimal setting, but I can’t tell the difference tbh.

    3) I use a Windows desktop as well and SSH into my Pi using Putty. Pasting in a Putty window is a simple right-click of the mouse. Just make sure your enter insert mode in vi before you paste! If you don’t know vi well, use nano. It makes more sense to most.

    5) Oh cool. I’ll have to check that out. I’ve noticed that pisnes saves games at ~/.snessavegames (or something like that in the home folder). I copied that to my new build when I went from 1.x to 2.2 and my games restored fine.

    #12179
    zSprawl
    Guest

    For point 1, I bet you need to do a chown on the es_system.cfg file in /etc.

    sudo chown pi /etc/emulationstation/es_system.cfg

    I haven’t tested it yet, since I’m no longer at home, but let me know how it works out.

    #12188
    smatticus
    Participant

    1-if I use the retroarch menu to edit settings within a rom and I go to “save new retroarch” or whatever it says, I get the error “cannot save to retropie/configs/a…” but it cuts off so I never see the end.

    2-The cooy and pasting wasn’t working so well for me. I’m a major noob in linux so I’m still getting my bearings. I’ll try nano next time since I’ve used it before.

    3- I bought the most recent model b from adafruit so I hope it has the full 512mb. Is there a way to check?

    4-Do you know how I would go about making the seperate snes emulators appear different in ES? I’m assuming it involves the es_systems.cfg again or maybe a different setting?

    5-one last thing since you’ve been so helpful, do you know anyway to set up controls for mame so that they stick? Its the last piece of the puzzle for me and I really wanted to fix that

    #12191
    zSprawl
    Guest

    3) Not sure, but sounds like the latest.

    4) I haven’t tried yet. Perhaps tomorrow.

    5) I haven’t messed with MAME since I’m setting this Pi up as a console emulator. I have me an arcade cabinet for MAME, but it isn’t running on a Pi, yet. :)

    #12198
    petrockblog
    Keymaster

    Great post!
    Do you think that the guide is general enough that it could be posted as a blog post?

    #12199
    Thomas
    Guest

    1-if I use the retroarch menu to edit settings within a rom and I go to “save new retroarch” or whatever it says, I get the error “cannot save to retropie/configs/a…” but it cuts off so I never see the end.

    ich habe das problem auch

    i have the problem too

    #12226
    nemo93
    Participant

    Thomas, anyone with “permissions” issue,

    please have a look here: https://www.petrockblock.com/forums/topic/no-writing-permission-for-retroarch-cfg/#post-12219

    hope this helps.
    cheers,

    #12264
    zSprawl
    Guest

    I’ll look into the permissions issue later today. I would recommend against making a root user. While it works, it really isn’t “best practice”.

    Once we work out the last few kinks, this would be an excellent blog post. All I would ask is for a link back to my world ( http://zsprawl.com ).

    Thanks!

    #12268
    borlandoflorida
    Participant

    Excellent post. Just what I was looking for (hence my original post yesterday). Going through a new setup now so will follow this and see how it goes. Will report any issues.

    #12302
    ranem123
    Participant

    Guys please help me i cant edit the es_systems.cfg with Winscp getting permission error .

    Antoher Question how i can stretch or fit the screen ?

    #12313
    zSprawl
    Guest

    Fix your permissions error one of two ways:

    1) You can change the owner of the file to pi.

    sudo chown pi /etc/emulationstation/es_systems.cfg

    2) Or you can put a file that overrides it in ~/.emulationstation

    sudo cp /etc/emulationstation/es_systems.cfg ~/.emulationstation
    vi ~/.emulationstation/es_systems.cfg

    #12314
    zSprawl
    Guest

    It looks like Nemo’s suggested fix is probably the best. Honestly I’m not running into the permissions issue once I did:

    sudo chown pi /opt/retropie/configs/all/retroarch.cfg

    However, I’m also only using NES, SNES (pisnes), Genesis, Master System, and Turbographx.

    #12372
    zsprawl
    Participant

    By the way, to save your configs in-game, I was able to do so after running:

    sudo chown -R pi /opt/retropie/configs

    After you do the above, once in game, press F1 to access the setup menu.

    #12386
    smatticus
    Participant

    Don’t forget you can set a hotkey for the menu if you don’t always want to have a keyboard plugged in

    #12409
    lukas
    Participant

    Hello,

    i am running into problems when typing the sudo ./retroarch-joyconfig command.
    I am using a xbox 360 wired controller, i already installed the xboxdrv but the lights are still flashing on the controller.

    When entering the command, i get this error: Couldn’t open joystick #1

    Can someone help me?

    Thanks

    #12436
    zsprawl
    Participant

    Unfortunately the X-Box controller will never stop flashing. That is normal behavior in my experience.

    As far as the retroarch-joystick command, try different “-j” values. For me, the controller was “-j 1” but for you it might be “-j 0” or “-j 2”.

    #12468
    Lukas
    Guest

    Hello,

    thanks for your help, now i cant run my snes roms. i’ve put them in the before mentioned directory, but i get this error:

    sh: 1: /opt/retropie/emulators/pisnes/snes9x/home/pi/RetroPie/roms/snes/Legend of Zelda.smc: not found

    It looks like i changed the path to the roms, but i cant figure it out how to change the path directory.

    When Starting the Emulationstation i see the Snes emulator and Zelda, but when i try to start this i get this error in the CLI and get back to the Station.

    Thanks for your help!

    Regards

    #12470
    Lukas
    Guest

    Small Update:

    and i cant move to the directory, i can change the directory till …/pisnes/

    When i try to get to /pisnes/snes9x/ i get this error:

    -bash: cd: …./snes9x/: Not a Directory

    I hope this helps

    #12478
    ranem123
    Participant

    Hi Guys i use my Ps2 Controller with my adapter (Twin USb ) all working only the analog sticks not working . How i can fix it ?
    Thanks

    #12487
    zsprawl
    Participant

    I believe you set the path to your ROMs in the es_system.cfg file.

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

    Look for the line that declares the system_directory. Mine looks like this:

    system_directory = /home/pi/RetroPie/roms/../BIOS

    Also you may want to change your es_system.cfg back to RetroArch and see how that works.

    Also, try starting up any game at all, even the built in ones, and hit F1. Try to configure the path to your ROMs there.

    Somewhere you have a path setting messed up, just not sure where. Worst case, start over.

    #12488
    zsprawl
    Participant

    [quote=12478]Hi Guys i use my Ps2 Controller with my adapter (Twin USb ) all working only the analog sticks not working . How i can fix it ?
    Thanks[/quote]

    Did you use the following to set it up?

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

    You also may want to try pressing F1 during a game, and configuring the joystick there.

    #12504
    ranem123
    Participant

    i try it to set it up again but still not working analog sticks only d pad :( ?
    when i set it up it show my analog sticks and i can recognize them but not in the games !

    #12513
    zsprawl
    Participant

    If you want to use the analog stick in-game, you’ll have to configure the D pad and left stick as opposites. So when it asks for up/down/left/right, use the analog stick.

    #12664
    Anonymous
    Inactive

    Thanks for posting this guide. It helped a lot. Unfortunately I am having trouble getting pisnes to work. I followed you directions for changing the emulator to pisnes in the es_systems.cfg file, but now when I try to run a game, I get an error something like this;

    sh: 1: opt/retropie/emulators/pisnes/snes9x permission denied!

    Any ideas on what I am doing wrong?

    Also, another problem I am having is that I previously ran the scraper, then ended up moving some roms and now the pictures don’t show up. If I try to re-run the scraper, it thinks that the info is already there so it skips those games. If I force it to re-scrape the entire folder, it stops on the first game and goes back to terminal. If I try to re-enter emulationstation from terminal I get an error message saying I have no systems and I have to reboot.

    #12678
    Mutex
    Participant

    Maybe the executable has no execution rights

    If that’s the case this should fix it:
    sudo chmod +x opt/retropie/emulators/pisnes/snes9x

    You can remove the entries from the gamelist.xml in ~/.emulationstation/.
    There’s also a folder with downloaded images and since emulationstation by default just looks for roms that have no image set it will skip those.
    If you just moved the rom to a different folder after scraping the path to the rom set in the gamelist.xml is wrong and starting them shouldn’t work.

    #12683
    ranem123
    Participant

    [quote=12513]If you want to use the analog stick in-game, you’ll have to configure the D pad and left stick as opposites. So when it asks for up/down/left/right, use the analog stick.[/quote]

    i try it but still only the d pad works !+
    This are my analog settings
    input_player1_l_x_plus_axis = “nul”
    input_player1_l_x_minus_axis = “nul”
    input_player1_l_y_plus_axis = “+1”
    input_player1_l_y_minus_axis = “-1”
    input_player1_r_x_plus_axis = “nul”
    input_player1_r_x_minus_axis = “nul”

    what is the solution ?

    #12685
    tandre
    Participant

    I dont know why but pressing 0 button, i.e. triangle on ps2 controller, emulators quit.

    Also the load/save buttons doesnt work…
    [code]system_directory = /home/pi/RetroPie/roms/../BIOS
    config_save_on_exit = false
    video_aspect_ratio = 1.33
    video_smooth = false
    video_threaded = true
    input_enable_hotkey = escape
    rewind_enable = false
    rewind_buffer_size = 10
    rewind_granularity = 2
    input_rewind = r
    video_gpu_screenshot = true
    input_shader_next = m
    input_shader_prev = n
    video_shader_dir = /opt/retropie/emulators/RetroArch/shader/
    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_autodetect_enable = true
    joypad_autoconfig_dir = /opt/retropie/emulators/RetroArch/configs/
    input_player1_b_btn = "2"
    input_player1_y_btn = "3"
    input_player1_select_btn = "8"
    input_player1_start_btn = "9"
    input_player1_up_axis = "-1"
    input_player1_down_axis = "+1"
    input_player1_left_axis = "-0"
    input_player1_right_axis = "+0"
    input_player1_a_btn = "1"
    input_player1_x_btn = "0"
    input_player1_l_btn = "6"
    input_player1_r_btn = "7"
    input_player1_l2_btn = "4"
    input_player1_r2_btn = "5"
    input_player1_l3_btn = "11"
    input_player1_r3_btn = "10"
    input_player1_l_x_plus_btn = "h0up"
    input_player1_l_x_minus_btn = "h0down"
    input_player1_l_y_plus_btn = "h0right"
    input_player1_l_y_minus_btn = "h0left"
    input_player1_r_x_plus_btn = "+2"
    input_player1_r_x_minus_btn = "-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_save_state_btn = “11″
    input_load_state_btn = “10″
    [/code]

    #12753
    zsprawl
    Participant

    [quote=12683]
    i try it but still only the d pad works !+
    This are my analog settings
    input_player1_l_x_plus_axis = “nul”
    input_player1_l_x_minus_axis = “nul”
    input_player1_l_y_plus_axis = “+1″
    input_player1_l_y_minus_axis = “-1″
    input_player1_r_x_plus_axis = “nul”
    input_player1_r_x_minus_axis = “nul”

    what is the solution ?
    [/quote]

    I don’t know exactly other than going through the joystick_config script again, but it doesn’t look like anything has been setup for the X axis.

    On my x-box controller, axis 1 is up and down, 0 is left and right.

    Unfortunately I don’t have a PS controller to test.

    #12754
    zsprawl
    Participant

    [quote=12664]Thanks for posting this guide. It helped a lot. Unfortunately I am having trouble getting pisnes to work. I followed you directions for changing the emulator to pisnes in the es_systems.cfg file, but now when I try to run a game, I get an error something like this;

    sh: 1: opt/retropie/emulators/pisnes/snes9x permission denied!

    Any ideas on what I am doing wrong?

    Also, another problem I am having is that I previously ran the scraper, then ended up moving some roms and now the pictures don’t show up. If I try to re-run the scraper, it thinks that the info is already there so it skips those games. If I force it to re-scrape the entire folder, it stops on the first game and goes back to terminal. If I try to re-enter emulationstation from terminal I get an error message saying I have no systems and I have to reboot.
    [/quote]

    As mentioned above, set the file to 777 will fix this.

    sudo chmod -R 777 /opt/retropie/emulators/pisnes

    If you download pisnes from source, this step is in the install script, so I accidently left out this requirement.

    #12756
    zsprawl
    Participant

    [quote=12685]I dont know why but pressing 0 button, i.e. triangle on ps2 controller, emulators quit.
    [/quote]

    Have you tried to set this one to “nul” and see if it still happens?

    input_exit_emulator_btn = “9″

    #12962
    landrain
    Guest

    In order to configure the first joystick, I’ve had to use

    sudo ./retroarch-joyconfig -j 0 >> /opt/retropie/configs/all/retroarch.cfg

    instead of

    sudo ./retroarch-joyconfig -j 0 >> /opt/retropie/configs/all/retroarch.cfg

    #12964
    landrain
    Guest

    Sorry, please read:

    instead of
    sudo ./retroarch-joyconfig -j 1 >> /opt/retropie/configs/all/retroarch.cfg

    #13019
    ranem123
    Participant

    [quote=12753]

    <div class=”d4p-bbt-quote-title”>ranem123 wrote:</div>
    i try it but still only the d pad works !+
    This are my analog settings
    input_player1_l_x_plus_axis = “nul”
    input_player1_l_x_minus_axis = “nul”
    input_player1_l_y_plus_axis = “+1″
    input_player1_l_y_minus_axis = “-1″
    input_player1_r_x_plus_axis = “nul”
    input_player1_r_x_minus_axis = “nul”

    what is the solution ?

    I don’t know exactly other than going through the joystick_config script again, but it doesn’t look like anything has been setup for the X axis.

    On my x-box controller, axis 1 is up and down, 0 is left and right.

    Unfortunately I don’t have a PS controller to test.
    [/quote]

    I found the solution ! Everything works after delete the retroarch.cfg and set up the controller again ! !

Viewing 35 posts - 1 through 35 (of 81 total)
  • The forum ‘Everything else related to the RetroPie Project’ is closed to new topics and replies.