Advanced Configuration - mdeguzis/RetroRig GitHub Wiki
Table of Contents
- Intro
- Individual Components
- How it all works
- Backend Files
- Language support for local folders
- Controller configurations
- Suggested Emulators
Intro
Many configuration files and pre-sets are setup within RetroRig. Each component below has a page for configuration details that were performed. Advanced configurations, such as overclocking, BIOS files, can be found in those pages as well. Tweaks to RetroRig's installer itself, and other settings/objects will be found here. For those seeking that more in-depth information, click on any one of the sub-pages in the following list.
Individual components
- XBMC
- ROM Collection Browser
- Mednafen
- Mupen64plus
- Stella
- xboxdrv
- qjoypad
- Ubuntu 14.04 LTS
- jstest-gtk
- MESS
- MAME
- PPSSPP
- PCSX2
- Dolphin
- AntiMicro
<a name="howitworks"
How it all works
RetroRig application launcher
- Path: /usr/share/applications/RetroRig.desktop
- RetroRig is either launched from the Desktop Shortcut or Unity shortcuts
- The desktop file is a standard launcher file that launchers /usr/share/applications/startXBMC.sh
startXBMC.sh
- Path: /usr/share/applications/startXBMC.sh
- startXBMC.sh is referenced from the application launcher
- It's main job is to handle the environment paths and status of RetroRig
- The $HOME path is set for RetroRig
- The main xbmc-retrorig excutable is run
- xbmc-retrorig is continually monitored for it's application state (running/not running)
xbmc-retrorig
- Path: /usr/bin/xbmc-retrorig
- This file takes care of launching our modified versions of xbmc.bin, as well as the typical logging XBMC provides.
gp_autodetect_xbmc
- Path: /usr/share/applications/gp_autodetect_xbmc.sh
- This monitoring script detects if there is a disconnection in the controller
- If a connection is severed, XBMC is notified of the change and triggers a small piece of code to reinitialize the joysticks.
rescan
- Path: /etc/init.d/rescan
- This service starts, stops or restarts gp_autodetect_xbmc.sh based on the running state of XBMC
- The service also is responsible for determining if the correct patched version of XBMC is present
Controller init services
- Path: dependent on distro
- Most commonly, xboxdrv is used for most controller types, sixad for PS3 Bluetooth services
- xboxdrv uses /etc/default/xboxdrv to maintain it's service configuration file
Backend Files
For all affected files and backend configurations, the code is commented in that spot. Most, if not all notation about this, is contained in the scriptmodules/ folder on GitHub.
How RetroRig functions
For historical purposes, and to remind even myself what I'm doing half the time, I thought that it would be pertinent to sketch just how RetroRig launches and interacts with files. This area is subject to change and may not always be 100% up to date.
A general summary of affected file/folder locations are as follows:
Application files
- $HOME/.retrorig/.xbmc
- /usr/share/applications/startXBMC.sh
- /usr/share/applications/RetroRig.desktop
- /usr/share/applications/gp_autodetect.sh
Utilities / Tools
- $HOME/.retrorig/.config/antimicro
Emulators
- $HOME/.retrorig/.config/mupen64plus
- $HOME/.retrorig/.config/ppsspp
- $HOME/.retrorig/.config/pcsx2
- $HOME/.retrorig/.dolphin-emu
- $HOME/.retrorig/.stella
- $HOME/.retrorig/.mednafen
- $HOME/.retrorig/.mess
- $HOME/.retrorig/.mame
System Files (dependent on distro type)
- /etc/default/xboxdrv
- /etc/init.d/xboxdrv
- /etc/init.d/sixad
- /etc/init.d/rescan
- /usr/bin/xbmc-retrorig
Language support for local folders
RetroRig makes some changes and additions to local folders, such as the users' desktop icons. In other languages, these are obviously different. To combat this, RetroRig uses the XDG variables that allow this to be possible:
Here's what folders are specific (example German set):
cat ~/.config/user-dirs.dirs:
XDG_DESKTOP_DIR="$HOME/Schreibtisch"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Vorlagen"
XDG_PUBLICSHARE_DIR="$HOME/Öffentlich"
XDG_DOCUMENTS_DIR="$HOME/Dokumente"
XDG_MUSIC_DIR="$HOME/Musik"
XDG_PICTURES_DIR="$HOME/Bilder"
XDG_VIDEOS_DIR="$HOME/Videos"
Controller configurations
A list of support and unsupport controllers can be found on the Gamepads wiki page, as well as documenation for configuring them.
Suggested Emulators
Each one of the sections of RetroRig's default Rom Collection Browser Listings have default emulators setup. Refer to the below list for more information. Please also see the Emulator Resource Page for alternative emulators and more information.
Atari 2600
Suggested emulator: Stella
Alternative emulators: Unknown
Tips and Tricks:
Gamepad is enabled for navigation of menu system
Please see the Stella wiki entry for more.
Atari Lynx
Suggested emulator: Mednafen Alternative emulators: Unknown
Tips and Tricks:
Requires BIOS file for operation.
Please see the Mednafen wiki entry for more.
Gameboy
Suggested emulator: Mednafen
Alternative emulators: Unknown
Tips and Tricks:
Please see the Mednafen wiki entry for more.
Gameboy Color
Suggested emulator: Mednafen
Alternative emulators: Unknown
Tips and Tricks:
Please see the Mednafen wiki entry for more.
Game boy Advance
Suggested emulator: Mednafen
Alternative emulators: Unknown
Tips and Tricks
Please see the Mednafen wiki entry for more.
MAME
Suggested emulator: mame
Alternative emulators: unknown
Tips and Tricks:
Gamepad is enabled for navigation of menu system. There is no quick save/load feature that I saw. Doing a save/load prompts for a slot number. You could work around this if you wish to give up a button on your gamepad to map to a number 0-9 with the qjoypad program
Please see the MAME wiki entry for more.
Neo-Geo CDZ
Suggested emulator: MESS
Alternative emulators: Unknown
Tips and Tricks:
You must load BIOS files for most systems. Please see the MESS wiki entry for more.
Nintendo 64
Suggested emulator: Mupen64Plus
Alternative emulators: Project64
Tips and Tricks:
The Mupen64Plus Google code site has superb documentation. Be sure to check it out for all intensive purposes.
There is a front end for Mupen64Plus called M64py
If you install the front-end GUI, be aware changes when opening up either Mupen64Plus via the CLI, or M64py will overwrite each other
The video plugin uses was Glide, due to video issues on Ubuntu 14.04 and my hardware. Your mileage may vary.
Please see the Mupen64Plus wiki entry for more.
Nintendo Entertainment System
Suggested emulator: Mednafen
Alternative emulators: FCE Ultra, FakeNES, Mednafen
Tips and Tricks:
The main buttons were reversed to reflect the original gamepad
Gamepad is enabled for navigation of menu system
Please see the Mednafen wiki entry for more.
Super Nintendo
Suggested emulator: Mednafen
Alternative emulators: SNES9X, ZSNES
Tips and Tricks:
Please see the Mednafen wiki entry for more.
Sega Game Gear
Suggested emulator: Mednafen
Alternative emulators: Unknown
Tips and Tricks:
Please see the Mednafen wiki entry for more.
Sega Master System
Suggested emulator: Mednafen
Alternative emulators: Unknown
Tips and Tricks:
Please see the Mednafen wiki entry for more.
Sega Genesis
Suggested emulator: Mednafen
Alternative emulators: Unknown
Tips and Tricks:
Please see the Mednafen wiki entry for more.
Sony Playstation Portable (PSP)
Suggested emulator: ppsspp Alternative emulators: Unknown
Tips and Tricks:
Please see the PPSSPP wiki entry for more.
Sony Playstation 1
Suggested emulator: mednafen Alternative emulators: Unknown
Tips and Tricks:
Requires BIOS files. Please see the PCSX2 wiki entry for more.
Sony Playstation 2
Suggested emulator: pcsx2 Alternative emulators: Unknown
Tips and Tricks:
When the game exits, please expect a 2 second pause for PCSX2 to quit, and another second or so for antimicro to quit as well.
Please see the PCSX2 wiki entry for more.
TurboGraphx 16
Suggested emulator: Mednafen
Alternative emulators: Unknown
Tips and Tricks:
Please see the Mednafen wiki entry for more.