-
Search Results
-
Topic: Overscan woes
I’m having trouble making all elements of the RetroPie experience fit on my screen.
If I set overscan_scale=1, all emulators fill my screen vertically as expected, but the Emulation Station UI flows over the edges of my screen.
If I remove overscan_scale=1, then Emulation Station fits fine, but none of the emulators fill the screen vertically – there is empty space on the top and bottom.
The only setting I’ve found that corrects this is using hdmi_group=1 and hdmi_mode=1 to force VGA mode. This lets both Emulation Station and emulators to scale properly. Unfortunately, Emulation Station looks awful at this low resolution.
How can I get everything to fit just right?
Thanks!
Topic: How do I Overclock?
So…I’ve been looking around for hours now and I have no idea why my overclocking is not working. I use a Raspberry Pi Model B+.
I’ve been looking at this: https://github.com/retropie/RetroPie-Setup/wiki/Advanced-Configuration
And changing the config.txt in /boot/ does nothing. I went from 700 to 1050 on arm_freq and did the stresstest specified in the link and my temp is not affected. My current config.txt file is as follows:
# uncomment if you get no picture on HDMI for a default "safe" mode #hdmi_safe=1 # uncomment this if your display has a black border of unused pixels visible # and your display can output without overscan #disable_overscan=1 # uncomment the following to adjust overscan. Use positive numbers if console # goes off screen, and negative if there is too much border #overscan_left=16 #overscan_right=16 #overscan_top=16 #overscan_bottom=16 # uncomment to force a console size. By default it will be display's size minus # overscan. #framebuffer_width=1280 #framebuffer_height=720 # uncomment if hdmi display is not detected and composite is being output #hdmi_force_hotplug=1 # uncomment to force a specific HDMI mode (this will force VGA) #hdmi_group=1 #hdmi_mode=1 # uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes #hdmi_drive=2 # uncomment to increase signal to HDMI, if you have interference, blanking, or # no display #config_hdmi_boost=4 # uncomment for composite PAL #sdtv_mode=2 #uncomment to overclock the arm. 700 MHz is the default. arm_freq=1000 # for more options see http://elinux.org/RPi_config.txt core_freq=500 sdram_freq=500 over_voltage=4 avoid_safe_mode=1 gpu_mem=384 force_turbo=0
I also tried changing doing this: sudo raspi-config and changing overclock settings to turbo, but no temperature change or anything. I don’t even have extra cooling, so it feels like my settings are not being used.
Any ideas?
Hi there,
I’m editing the mupen64plus.cfg file under ~/.config/mupen64plus/ and I can’t get the resolution to change (by changing ScreenWidth and ScreenHeight under [Video-General]). Also, Joy Mapping Stop isn’t working either. I set it equal to “j0b9” after confirming using jstest that the button I want is button 9 on joystick 0.
Does anyone have any advice/input on this? My config file is below:
# Mupen64Plus Configuration File # This file is automatically read and written by the Mupen64Plus Core library [Audio-OMX] # Mupen64Plus OMX Audio Plugin config parameter version number Version = 1 # Frequency which is used if rom doesn't want to change it DEFAULT_FREQUENCY = 33600 # Swaps left and right channels SWAP_CHANNELS = False # Audio output to go to (0) Analogue jack, (1) HDMI OUTPUT_PORT = 1 # Audio Output Frequncy mode: 0 = Rom Frequency, 1 ROM Frequency if supported (HDMI only), 2 = Standard frequency < Rom Frequency, 3 = Standard frequency > Rom Frequency, [N] Force output frequency DEFAULT_MODE = 0 [Core] # Mupen64Plus Core config parameter set version number. Please don't change this version number. Version = 1.010000 # Draw on-screen display if True, otherwise don't draw OSD OnScreenDisplay = True # Use Pure Interpreter if 0, Cached Interpreter if 1, or Dynamic Recompiler if 2 or more R4300Emulator = 2 # Disable compiled jump commands in dynamic recompiler (should be set to False) NoCompiledJump = False # Disable 4MB expansion RAM pack. May be necessary for some games DisableExtraMem = False # Increment the save state slot after each save operation AutoStateSlotIncrement = False # Activate the R4300 debugger when ROM execution begins, if core was built with Debugger support EnableDebugger = False # Save state slot (0-9) to use when saving/loading the emulator state CurrentStateSlot = 0 # Path to directory where screenshots are saved. If this is blank, the default value of ${UserConfigPath}/screenshot will be used ScreenshotPath = "" # Path to directory where emulator save states (snapshots) are saved. If this is blank, the default value of ${UserConfigPath}/save will be used SaveStatePath = "" # Path to directory where SRAM/EEPROM data (in-game saves) are stored. If this is blank, the default value of ${UserConfigPath}/save will be used SaveSRAMPath = "" # Path to a directory to search when looking for shared data files SharedDataPath = "" # Scheduling policy. 0 for Standard (SCHED_OTHER), 1-99 RealTime FIFO policy with Priority of [N] Scheduler = 10 [CoreEvents] # Mupen64Plus CoreEvents config parameter set version number. Please don't change this version number. Version = 1 # SDL keysym for stopping the emulator Kbd Mapping Stop = 27 # SDL keysym for switching between fullscreen/windowed modes Kbd Mapping Fullscreen = 323 # SDL keysym for saving the emulator state Kbd Mapping Save State = 286 # SDL keysym for loading the emulator state Kbd Mapping Load State = 288 # SDL keysym for advancing the save state slot Kbd Mapping Increment Slot = 0 # SDL keysym for resetting the emulator Kbd Mapping Reset = 290 # SDL keysym for slowing down the emulator Kbd Mapping Speed Down = 291 # SDL keysym for speeding up the emulator Kbd Mapping Speed Up = 292 # SDL keysym for taking a screenshot Kbd Mapping Screenshot = 293 # SDL keysym for pausing the emulator Kbd Mapping Pause = 112 # SDL keysym for muting/unmuting the sound Kbd Mapping Mute = 109 # SDL keysym for increasing the volume Kbd Mapping Increase Volume = 93 # SDL keysym for decreasing the volume Kbd Mapping Decrease Volume = 91 # SDL keysym for temporarily going really fast Kbd Mapping Fast Forward = 102 # SDL keysym for advancing by one frame when paused Kbd Mapping Frame Advance = 47 # SDL keysym for pressing the game shark button Kbd Mapping Gameshark = 103 # Joystick event string for stopping the emulator Joy Mapping Stop = "j0b9" # Joystick event string for switching between fullscreen/windowed modes Joy Mapping Fullscreen = "" # Joystick event string for saving the emulator state Joy Mapping Save State = "" # Joystick event string for loading the emulator state Joy Mapping Load State = "" # Joystick event string for advancing the save state slot Joy Mapping Increment Slot = "" # Joystick event string for taking a screenshot Joy Mapping Screenshot = "" # Joystick event string for pausing the emulator Joy Mapping Pause = "" # Joystick event string for muting/unmuting the sound Joy Mapping Mute = "" # Joystick event string for increasing the volume Joy Mapping Increase Volume = "" # Joystick event string for decreasing the volume Joy Mapping Decrease Volume = "" # Joystick event string for fast-forward Joy Mapping Fast Forward = "" # Joystick event string for pressing the game shark button Joy Mapping Gameshark = "" [Input-SDL-Control1] # Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number. version = 2 # Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic mode = 2 # Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number device = 0 # SDL joystick name (or Keyboard) name = "Jess Technology Co., Ltd. 3 IN 1 Conversion-Box" # Specifies whether this controller is 'plugged in' to the simulated N64 plugged = True # Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak plugin = 2 # If True, then mouse buttons may be used with this controller mouse = False # Scaling factor for mouse movements. For X, Y axes. MouseSensitivity = "2.00,2.00" # The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes. AnalogDeadzone = "4096,4096" # An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value AnalogPeak = "32768,32768" # Digital button configuration mappings DPad R = "hat(0 Right)" DPad L = "hat(0 Left)" DPad D = "hat(0 Down)" DPad U = "hat(0 Up)" Start = "button(8)" Z Trig = "button(10)" B Button = "button(5)" A Button = "button(2)" C Button R = "button(1)" C Button L = "button(3)" C Button D = "button(11)" C Button U = "button(0)" R Trig = "button(7)" L Trig = "button(6)" Mempak switch = "" Rumblepak switch = "" # Analog axis configuration mappings X Axis = "axis(0-,0+)" Y Axis = "axis(1-,1+)" [Input-SDL-Control2] # Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number. version = 2 # Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic mode = 2 # Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number device = -1 # SDL joystick name (or Keyboard) name = "" # Specifies whether this controller is 'plugged in' to the simulated N64 plugged = False # Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak plugin = 1 # If True, then mouse buttons may be used with this controller mouse = False # Scaling factor for mouse movements. For X, Y axes. MouseSensitivity = "2.00,2.00" # The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes. AnalogDeadzone = "4096,4096" # An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value AnalogPeak = "32768,32768" # Digital button configuration mappings DPad R = "" DPad L = "" DPad D = "" DPad U = "" Start = "" Z Trig = "" B Button = "" A Button = "" C Button R = "" C Button L = "" C Button D = "" C Button U = "" R Trig = "" L Trig = "" Mempak switch = "" Rumblepak switch = "" # Analog axis configuration mappings X Axis = "" Y Axis = "" [Input-SDL-Control3] # Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number. version = 2 # Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic mode = 2 # Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number device = -1 # SDL joystick name (or Keyboard) name = "" # Specifies whether this controller is 'plugged in' to the simulated N64 plugged = False # Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak plugin = 1 # If True, then mouse buttons may be used with this controller mouse = False # Scaling factor for mouse movements. For X, Y axes. MouseSensitivity = "2.00,2.00" # The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes. AnalogDeadzone = "4096,4096" # An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value AnalogPeak = "32768,32768" # Digital button configuration mappings DPad R = "" DPad L = "" DPad D = "" DPad U = "" Start = "" Z Trig = "" B Button = "" A Button = "" C Button R = "" C Button L = "" C Button D = "" C Button U = "" R Trig = "" L Trig = "" Mempak switch = "" Rumblepak switch = "" # Analog axis configuration mappings X Axis = "" Y Axis = "" [Input-SDL-Control4] # Mupen64Plus SDL Input Plugin config parameter version number. Please don't change this version number. version = 2 # Controller configuration mode: 0=Fully Manual, 1=Auto with named SDL Device, 2=Fully automatic mode = 2 # Specifies which joystick is bound to this controller: -1=No joystick, 0 or more= SDL Joystick number device = -1 # SDL joystick name (or Keyboard) name = "" # Specifies whether this controller is 'plugged in' to the simulated N64 plugged = False # Specifies which type of expansion pak is in the controller: 1=None, 2=Mem pak, 5=Rumble pak plugin = 1 # If True, then mouse buttons may be used with this controller mouse = False # Scaling factor for mouse movements. For X, Y axes. MouseSensitivity = "2.00,2.00" # The minimum absolute value of the SDL analog joystick axis to move the N64 controller axis value from 0. For X, Y axes. AnalogDeadzone = "4096,4096" # An absolute value of the SDL joystick axis >= AnalogPeak will saturate the N64 controller axis value (at 80). For X, Y axes. For each axis, this must be greater than the corresponding AnalogDeadzone value AnalogPeak = "32768,32768" # Digital button configuration mappings DPad R = "" DPad L = "" DPad D = "" DPad U = "" Start = "" Z Trig = "" B Button = "" A Button = "" C Button R = "" C Button L = "" C Button D = "" C Button U = "" R Trig = "" L Trig = "" Mempak switch = "" Rumblepak switch = "" # Analog axis configuration mappings X Axis = "" Y Axis = "" [UI-Console] # Mupen64Plus UI-Console config parameter set version number. Please don't change this version number. Version = 1 # Directory in which to search for plugins PluginDir = "./" # Filename of video plugin VideoPlugin = "mupen64plus-video-rice.so" # Filename of audio plugin AudioPlugin = "mupen64plus-audio-omx.so" # Filename of input plugin InputPlugin = "mupen64plus-input-sdl.so" # Filename of RSP plugin RspPlugin = "mupen64plus-rsp-hle.so" [Video-General] # Use fullscreen mode if True, or windowed mode if False Fullscreen = False # Width of output window or fullscreen width ScreenWidth = 1024 # Height of output window or fullscreen height ScreenHeight = 768 # If true, activate the SDL_GL_SWAP_CONTROL attribute VerticalSync = False [Video-Rice] # Frame Buffer Emulation (0=ROM default, 1=disable) FrameBufferSetting = 0 # Frequency to write back the frame buffer (0=every frame, 1=every other frame, etc) FrameBufferWriteBackControl = 0 # Render-to-texture emulation (0=none, 1=ignore, 2=normal, 3=write back, 4=write back and reload) RenderToTexture = 0 # Control when the screen will be updated (0=ROM default, 1=VI origin update, 2=VI origin change, 3=CI change, 4=first CI change, 5=first primitive draw, 6=before screen clear, 7=after screen drawn) ScreenUpdateSetting = 4 # Force to use normal alpha blender NormalAlphaBlender = True # Use a faster algorithm to speed up texture loading and CRC computation FastTextureLoading = False # Use different texture coordinate clamping code AccurateTextureMapping = True # Force emulated frame buffers to be in N64 native resolution InN64Resolution = False # Try to reduce Video RAM usage (should never be used) SaveVRAM = False # Enable this option to have better render-to-texture quality DoubleSizeForSmallTxtrBuf = False # Force to use normal color combiner DefaultCombinerDisable = False # Enable game-specific settings from INI file EnableHacks = True # If enabled, graphics will be drawn in WinFrame mode instead of solid and texture mode WinFrameMode = False # N64 Texture Memory Full Emulation (may fix some games, may break others) FullTMEMEmulation = False # Enable vertex clipper for fog operations OpenGLVertexClipper = False # Enable/Disable SSE optimizations for capable CPUs EnableSSE = False # Use GPU vertex shader EnableVertexShader = True # If this option is enabled, the plugin will skip every other frame SkipFrame = True # If this option is enabled, the plugin will only draw every other screen update SkipScreenUpdate = True # If enabled, texture enhancement will be done only for TxtRect ucode TexRectOnly = False # If enabled, texture enhancement will be done only for textures width+height<=128 SmallTextureOnly = False # Select hi-resolution textures based only on the CRC and ignore format+size information (Glide64 compatibility) LoadHiResCRCOnly = True # Enable hi-resolution texture file loading LoadHiResTextures = False # Enable texture dumping DumpTexturesToFiles = False # Display On-screen FPS ShowFPS = True # Use Mipmapping? 0=no, 1=nearest, 2=bilinear, 3=trilinear Mipmapping = 0 # Enable, Disable or Force fog generation (0=Disable, 1=Enable n64 choose, 2=Force Fog) FogMethod = 0 # Force to use texture filtering or not (0=auto: n64 choose, 1=force no filtering, 2=force filtering) ForceTextureFilter = 1 # Primary texture enhancement filter (0=None, 1=2X, 2=2XSAI, 3=HQ2X, 4=LQ2X, 5=HQ4X, 6=Sharpen, 7=Sharpen More, 8=External, 9=Mirrored) TextureEnhancement = 0 # Secondary texture enhancement filter (0 = none, 1-4 = filtered) TextureEnhancementControl = 0 # Color bit depth to use for textures (0=default, 1=32 bits, 2=16 bits) TextureQuality = 0 # Z-buffer depth (only 16 or 32) OpenGLDepthBufferSetting = 32 # Enable/Disable MultiSampling (0=off, 2,4,8,16=quality) MultiSampling = 0 # Color bit depth for rendering window (0=32 bits, 1=16 bits) ColorQuality = 0 # OpenGL level to support (0=auto, 1=OGL_1.1, 2=OGL_1.2, 3=OGL_1.3, 4=OGL_1.4, 5=OGL_1.4_V2, 6=OGL_TNT2, 7=NVIDIA_OGL, 8=OGL_FRAGMENT_PROGRAM) OpenGLRenderSetting = 0 # Enable/Disable Anisotropic Filtering for Mipmapping (0=no filtering, 2-16=quality). This is uneffective if Mipmapping is 0. If the given value is to high to be supported by your graphic card, the value will be the highest value your graphic card can support. Better result with Trilinear filtering AnisotropicFiltering = 0
Thought I’d put a post up about overscan when using RetroPie, hopefully it will help some of you. Feel free to point out any issues!
Overscan
Overscan is historicaly an issue for CRT TV’s as they weren’t consistant in what area of a video signal would be displayed. This means that a portion of the picture is often outside of the viewable area. It isnt so much of an issue for modern digital (720p/1080p) TV’s as its a lot more specific.Far more information can be found here:
http://en.wikipedia.org/wiki/OverscanWhen using the Raspberry Pi, Emulation Station or playing games you may find that a small portion of the display is ‘chopped off’, often at the top and bottom of the screen. This is often independent of the emulator and more a Raspberry Pi video setting.
Raspberry Pi Settings – config.txt
You can see a lot of options to configure the video settings, including overscan in the /boot/config.txt file.
There is a lot (all?) of the information here: http://elinux.org/RPiconfig#VideoThe key areas are:
hdmi_group=1 (usually 1, for TV) hdmi_mode=4 (720p) overscan_left=16 (Amount of pixels to skip - this is what you want to change to move the viewing area) overscan_right=16 (Amounat of pixels to skip - this is what you want to change to move the viewing area) overscan_top=16 (Amount of pixels to skip - this is what you want to change to move the viewing area) overscan_bottom=16 (Amount of pixels to skip - this is what you want to change to move the viewing area) overscan_scale=1 (Not usually needed for the terminal console view, but forces overscan when video modes are kicking in, like EmulationStation) disable_overscan=0 (set to 0 to enable overscan)
Make sure that any values you want to use aren’t commented out with a hash ‘#’
You will see group CEA and DMT mentioned, broadly speaking they refer to using TV (CEA), or using a computer monitor (DMT)
This is a useful command to see what your TV will support:
/opt/vc/bin/tvservice -m CEA
You can see your current mode with:/opt/vc/bin/tvservice -s
Here is a comment about the video modes here:
Emulation Station
When you use RetroPie, you start a game using the Emulation Station interface. The configuration file that will start the emualtor and roms is stored in the es_systems.cfg file. This is usually found in /etc/emulationstation/ .An example is here:
https://github.com/solygen/dotfiles-RetroPie/blob/master/.emulationstation/es_systems.cfgYou can see that before runnig the rom, there is a command like
"COMMAND=/home/pi/RetroPie/supplementary/runcommand/runcommand.sh 1"
This means that the video mode will be ‘1’ – you can match these up by looking at http://elinux.org/RPiconfig#Video(I changed the fba emulator from using 1 (small VGA window) to 4 – standard 720p.)
The common setting for these is ‘4’ which is:
hdmi_mode=4 720p 60 Hz
The runcommand script itself can be seen here:
https://github.com/retropie/RetroPie-Setup/blob/master/supplementary/runcommand.shSo you could even update your own and tweak video modes there.
MAME
I also found that there is another setting for Mame that is useful. I hadnt changed any overscan settings in config.txt, as my games looked fine except for Mame which is run with mame4all-pi. Here is the config file for that: https://code.google.com/p/mame4all-pi/
I simply changed the value of
display_border
from “0” to “24” and it worked really well!This is found in the mame.cfg file which is in /opt/retropie/emulators/mame4all-pi
I finally got my system able to update via a proxy, but my first run has totally messed up the video picture.
I had come across this thread:
https://www.petrockblock.com/forums/search/?bbp_search=force+hdmiwhich indicated on a new system one should run:
sudo rpi-update sudo reboot sudo apt-get update && sudo apt-get upgrade -y
Problem is, after running the first line & rebooting, my system will NO LONGER go into HDMI mode. This is inspire of the fact that it worked fine before running this command, and even after uncommenting both:
hdmi_force_hotplug=1
hdmi_drive=2I end up with a zoomed in picture that is totally cut off.
In addition there is this little color box in the upper right hand corner that won’t go away no matter what I do (it even shows when my screen is blanked out by the emulationstation screensaver).
Any ideas on what happened and how to fix it? I’m using image v2.3…
Hi.
How I force de analogic video output in 2.3 retropie version in my raspi b+??
I start with the analogic video coneccted in my TV and only see snow and grey lines and zzuuimmmm sound .
hdmi output works perfecty
Thancks
Topic: Resolution problems in games
I have some quite weird problems with resolution. When I start raspberry pi retropie loads nicely with correct resolution (800×600) that I set in config.txt but when I start NES or SNES game resolution is higher (returns to correct resolution if I exit the game). But if I press F4 in the EmulationStation and type “sudo reboot” I notice that after reboot ES and game resolution is good (800×600).
I have added/modified this to /boot/config.txt :
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=9
hdmi_force_mode=9I have also tried modifying config.txt lines regarding display settings but the lines above seems to be about the only configuration that I can get correct resolution after reboot.
When I start a game without rebooting I get a text saying (this goes away if I reboot before running a game):
“Powering on HDMI with explicit settings (CEA mode 4)”How to make this work? That resolution might otherwise be ok but I have a old flat screen display with maximum resolution of 800×600 (I have no image with that HDMI setup that game normally starts) connected with HDMI to VGA adapter.
I have tried modifying a lot of settings and files to try to make it run correctly but so far this is the best setting I have found and it is not good enough to have to manually reboot every time.
Thanks for the help!
Migrating from 2.2 to 2.3
If you are looking to migrate from 2.2 to 2.3, it is much easier to copy files off the old image using winscp (or something similar), then copy them back into place in 2.3. Save these files:
/opt/retropie/configs/all/* /etc/emulationstation/es_system.cfg /home/pi/RetroPie/roms/*
Your saved games are located in the roms folder, if you’d prefer to only save those (since I hope you backup your roms elsewhere!)
—–
Fresh Build
1) Download the latest version of RetroPie’s SD image. This document is based off version 2.3.
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.
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 = "5" input_load_state_btn = "4"
After this has been done, you can hold select and press the L and R paddles to save and load states respectively. I also like to add some in-game volume control.
input_volume_up_axis = "-1" input_volume_down_axis = "+1"
11) Run configuration.
sudo raspi-config
12) Change password.
13) Change Memory-split to 384.
14) Set your time zone and localization options, then configure the keyboard keymap. I used en_US.UTF-8.
15) Expand root file system to fill entire SD card.
16) Force audio out of audio jack (instead of HDMI).
17) Exit from tool and reboot.
18) SSH back in (if you are using DHCP, the resizing of the file system can cause an IP change).
19) Now copy your Roms to the SMB shares (ex. \\RaspberryPi\snes is where the Super Nintendo ROMs go).
20) All done? Reboot and game on.
sudo reboot
21) Start up any Genesis/Megadrive game and press F1 on the keyboard. Go through the options and select “6-button controller” for Sega Genesis. Save the config.
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. I go turbo without issue.
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 -y6) 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 -a7) 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.cfg9) 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.cfgCopy 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.cfgChange 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.cfgEdit 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=020) 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.