- Retroarch For Xbox One
- Download Retroarch On Xbox One
- Retroarch For Xbox
- Retroarch Xbox 360 Core
- Retroarch X360ce
RetroArch is a frontend for emulators, game engines and media players. It enables you to run classic games on a wide range of computers and consoles through its slick graphical interface. Settings are also unified so configuration is done once and for all. RetroArch sets the standard on cross-platform portability right now. Linux (x86 and x8664) Windows (32bit/64bit) Mac OSX (Intel) Playstation 3 (PS3 SDK) PlayStation Portable (PSP) WIP Xbox 1 (XDK) Xbox 360 (XeXDK/Libxenon) Gamecube Wii Raspberry Pi OpenPandora Android Blackberry (10/Playbook) iOS.
Wireless Receiver
To use wireless Xbox 360 controllers, you will also need a USB wireless receiver plugged into your Raspberry Pi. The Official Microsoft Xbox 360 receiver or a generic brand like zettaguard, VicTsing will work. You can pair multiple controllers to a single wireless receiver. Play and charging cables will not work.
- RetroArch 360 is a native port on the Xbox 360 Platform. RetroArch 360 is an ultimate emulator by the name of PetroArch (over half a year in the making). The list of system emulators it uses is impressive: SNES9x Next, FCEUmm, Final Burn Alpha, Gambatte, Genesis Plus GX, VBA Nex t, and even PrBoom.
- Retroarch can in no way, shape, or form play Xbox 360 games on your PS3. The PS3 cannot emulate the Xbox 360, nor can it run the games natively.
To pair your controller(s) with the wireless receiver:
- turn on your wireless Xbox 360 controller (hold down the Guide button)
- press the connect button on the receiver (green light will start flash)
- then press the tiny connect button on the top of the controller
- you will need to repeat these steps to pair each additional controller
Automatic Configuration (Easiest)
Xpad Driver
Starting with the RetroPie 4.1 SD image, the Xpad driver is enabled by default and the following steps are unnecessary.
With the recent kernel issues of xboxdrv rendering images unusable, there is an updated xpad driver which will work just as well for Xbox controllers, it's possible it may also support Xbox One controllers.
You access the driver through Manage Packages >> Manage Driver Packages >> Xpad Driver and you'll install it from source. Reboot for good measure, reconfigure your controllers and the lights should work properly.
A complete working config (that was generated from the EmulationStation configuration) is listed below at /opt/retropie/configs/all/retroarch-joypads/Xbox360WirelessReceiver(XBOX).cfg
Xboxdrv Driver
Note! There are known incompatibilities with this driver when used in it's default configuration with the latest kernel. As such, the xpad drive is currently the best option to simply make an Xbox 360 controller operational in RetroPie.
However, these incompatibilities are not an issue when using xboxdrv as a calibration and key-mapping tool for almost any gamepad, including the Xbox 360 controller. When used this way, it's even possible for both xpad and xboxdrv to coexist together.
Access the RetroPie Setup Script and navigate to Manage Packages >> Manage Driver Packages >> xboxdrv
- Enable xboxdrv: This will install the driver and add a start-up configuration in /etc/rc.local
- Disable xboxdrv: This will disable the driver and remove the start-up configuration in /etc/rc.local
- Set Number of Controllers To Enable: Default number of controllers is 2 (If you have more than two controllers, set this first before you enable xboxdrv)
- Set Analog Stick Deadzone: Smaller number = more responsive, Larger number = less responsive.
- Set dwc_otg.speed=1 in /boot/config.txt: May help if controller is being glitchy.
- Remove dwc_otg.speed=1 from /boot/config.txt: Removes the config.
After you have enabled the driver and rebooted you'll need to reconfigure your controller(s) in EmulationStation as described on the first installation page
Alternatively if you prefer you can manually install it..
Manual Configuration
RetroPie 3.3 contains a newer xboxdrv at /opt/retropie/supplementary/xboxdrv/bin/xboxdrv - which is preferable over the older Debian package. On older RetroPie images you can install the Debian package.
install it by running
Then you must choose one of the 3 methods below
1 - Multiples instances of xboxdrv
You have to launch multiple instances of xboxdrv (one for each controller)
For example we can edit the file /etc/rc.local to start instances of xboxdrv during boot
Here is an example of what to insert in /etc/rc.local for 4 wireless pads (put this just before exit 0):
(replace the --wid
by --id
if you use wired controllers)You must swich-on your pads before booting the raspberry.
Notice the sleep 1
between each instance: this prevents the RPi from setting random controllers with random led status; adjust timing if necessary.
2 - Single command line
Another way is to specify this single command :
3 - init script
The third possibility, you can use an init.d script with the daemon -D Option. Save the following content to /etc/init.d/xboxdrv:
sudo chmod +x /etc/init.d/xboxdrv
sudo update-rc.d xboxdrv start 90 2 3 4 5 stop 90 0 1 6
You will also need a default configuration file. Save the following content to /etc/default/xboxdrv:
To specifiy the amount of controller, edit the variable CONTROLLER_NUM. If you have a wired controller, replace all '-w' occurences with '-i'.
It is generally advisable to use the daemon mode, 'cause it uses less CPU and RAM instead of several xboxdrv processes for each controller.
Additional Configuration Information
Xbox 360 controller glitchy?
According to this post it might help to add the line dwc_otg.speed=1
to the file /boot/cmdline.txt
.
Alternate Controller Configurations
This is what makes the Xbox 360 controller the best for this project.
Copy necessary files: First, copy the files above to your pi. (Remove the .txt extension first of course.) I placed them in /usr/local/ but they could go anywhere.
Edit rc.local: Next, you need to edit rc.local so that xboxdrv uses the config files. There a few different possibilities depending on how you are instantiating xboxdrv, so be careful.
2a. If you have this line:
change it to this:
2b. If you have this line (generated by the xboxdrv install from retropie_setup.sh):
change it to this:
2c. Or, if you are using separate lines like this:
Edit them so that they look like this:
File Permissions: The very last step is to make the .cfg files executable. So run these commands, changing them to reflect the location you placed the .cfg files.
Now, whenever you press the Xbox (guide) button on either controller 1 or 2, it will change the control scheme. For player 1, the controller starts up in normal mode. Hitting the Xbox button will change to player1.cfg. Hitting it again will enable mouse emulation. One more time will bring back normal operation. Controller 2 cycles between normal operation and player2.cfg. Controllers 3 and 4 are unaffected.
Here's a little explanation of xboxdrv_player1.cfg (player2 is similar):
RetroArch is the reference frontend for the libretro API.Popular examples of implementations for this API includes videogame system emulators and game engines, but alsomore generalized 3D programs.These programs are instantiated as dynamic libraries. We refer to these as 'libretro cores'.
libretro
libretro is an API that exposes generic audio/video/input callbacks.A frontend for libretro (such as RetroArch) handles video output, audio output, input and application lifecycle.A libretro core written in portable C or C++ can run seamlessly on many platforms with very little/no porting effort.
While RetroArch is the reference frontend for libretro, several other projects have used the libretrointerface to include support for emulators and/or game engines. libretro is completely open and free for anyone to use.
Binaries
Latest Windows binaries are currently hosted on the buildbot -(http://buildbot.libretro.com/).
Support
To reach developers, either make an issue here on Github, make a thread on the forum,or visit our IRC channel: #retroarch @ irc.freenode.org.
Documentation
See our wiki. On Unix, man-pages are provided.More developer-centric stuff is found here.
Related projects
- Cg/HLSL shaders: common-shaders
- Helper scripts to build libretro implementations: libretro-super
Philosophy
RetroArch attempts to be small and lean,while still having all the useful core features expected from an emulator.It is designed to be very portable and features a gamepad-centric UI.It also has a full-featured command-line interface.
In some areas, RetroArch goes beyond and emphasizes on not-so-common technical features such as multi-pass shader support,real-time rewind (Braid-style), video recording (using FFmpeg), etc.
RetroArch also emphasizes on being easy to integrate into various launcher frontends.
Platforms
RetroArch has been ported to the following platforms outside PC:
- PlayStation3
- Xbox 360 (Libxenon/XeXDK)
- Xbox 1
- Wii, Gamecube (Libogc)
- Raspberry Pi
- Android
- iOS
- Blackberry
Dependencies (PC)
On Windows, RetroArch can run with only Win32 as dependency. On Linux, you need:
- GL headers
- X11 headers and libs, or EGL/KMS/GBM
OSX port of RetroArch requires latest versions of XCode to build.
Retroarch For Xbox One
RetroArch can utilize these libraries if enabled:
- nvidia-cg-toolkit
- libxml2 (GLSL XML shaders)
- libfreetype2 (TTF font rendering on screen)
RetroArch needs at least one of these audio driver libraries:
- ALSA
- OSS
- RoarAudio
- RSound
- OpenAL
- JACK
- SDL
- PulseAudio
- XAudio2 (Win32, Xbox 360)
- DirectSound (Win32, Xbox 1)
- CoreAudio (OSX, iOS)
To run properly, RetroArch requires a libretro implementation present, however, as it's typically loadeddynamically, it's not required at build time.
Dependencies (Console ports, mobile)
Console ports have their own dependencies, but generally do not requireanything other than what the respective SDKs provide.
Configuring
The default configuration is defined in config.def.h.It is not recommended to change this unless you know what you're doing.These can later be tweaked by using a config file.A sample configuration file is installed to /etc/retroarch.cfg. This is the system-wide config file.
RetroArch will on startup create a config file in $XDG_CONFIG_HOME/retroarch/retroarch.cfg if doesn't exist.Users only need to configure a certain option if the desired value deviates from the value defined in config.def.h.
To configure joypads, use the built-in menu or the retroarch-joyconfig command-line tool.
Compiling and installing
Linux
- Prerequisites:
- Compiling:
Mac
- Prerequisites: XCode, Cg.
- You can open the project (pkg/apple/RetroArch.xcodeproj) in the Xcode IDE and build (⌘-B) and run (⌘-R) it there. Or you can use the command line...
- Debug:
- Release:
PC
Instructions for compiling on PC can be found in the wiki.
PlayStation3
RetroArch PS3 needs to be compiled in the following order:
1) Compile RetroArch Salamander
make -f Makefile.ps3.salamander
2) Finally, compile RetroArch packed together with the GUI:
make -f Makefile.ps3
PlayStation3 - Creating a PKG installable file
You can add pkg
as a parameter in order to make a PKG file - for example:
Download Retroarch On Xbox One
make -f Makefile.ps3 pkg
This creates an NPDRM package. This can be installed on debug PS3s.
To make a non-NPDRM package that can be installed on a jailbroken/CFW PS3 (such as PSGroove or PS3 CFWs and other 3.55 CFW derivatives), do:
make -f Makefile.ps3 pkg-signed
If you're using Kmeaw 3.55 firmware, the package needs to be signed:
make -f Makefile.ps3 pkg-signed-cfw
NOTE: A pre-existing libretro library needs to be present in the root directory in order to link RetroArch PS3. This file needs to be called libretro_ps3.a
.
Xbox 360 (XeXDK)
You will need Microsoft Visual Studio 2010 installed (or higher) in order to compile RetroArch 360.
Retroarch For Xbox
The solution file can be found at the following location:
pkg/msvc-360/RetroArch-360.sln
NOTE: A pre-existing libretro library needs to be present in the pkg/msvc-360/RetroArch-360/Release
directory in order to link RetroArch 360. This file needs to becalled libretro_xdk360.lib
.
Xbox 360 (Libxenon)
You will need to have the libxenon libraries and a working Devkit Xenon toolchain installed in order to compile RetroArch 360 Libxenon.
make -f Makefile.xenon
NOTE: A pre-existing libretro library needs to be present in the root directory in order to link RetroArch 360 Libxenon. This file needs to be called libretro_xenon360.a
.
Wii
Retroarch Xbox 360 Core
You will need to have the libogc libraries and a working Devkit PPC toolchain installed in order to compile RetroArch Wii.
make -f Makefile.griffin platform=wii
Retroarch X360ce
NOTE: A pre-existing libretro library needs to be present in the root directory in order to link RetroArch Wii. This file needs to be called libretro_wii.a
.