How to Create a Retro Gaming System
This tutorial describes how to create a Retro Gaming system using Emulation Station graphical front-end with Libretro,
PCSX-Reloaded, and PCSX2 Emulators
Use this tutorial in conjunction with my YouTube video: How to Create a Retro Gaming System with Ubuntu
Libretro with its basic front-end RetroArch can emulate a wide range of systems using "Cores" from other standalone emulators.
In this setup I will be using the following emulators:
- Stella - Atari 2600
- Nestopia - NES
- Snes9x - SNES
- TGBDual - GameBoy, GameBoy Colour
- VBAM - Game Boy Advance
- GenesisPlusGX - Sega MegaDrive / Genesis, and SegaCD
Emulation Station is a nice Game Launcher and provides a "10 foot" GUI Interface, we will be using it with all the above Emulators.
sudo add-apt-repository ppa:libretro/testing
sudo add-apt-repository ppa:emulationstation/ppa
sudo apt-get update
sudo apt-get install retroarch
sudo apt-get install libretro-genesisplusgx libretro-snes9x libretro-vbam libretro-nestopia libretro-tgbdual libretro-stella
sudo apt-get install emulationstation emulationstation-theme-simple
RetroArch Config
Download Config file for RetroArch (optional)
wget http://quidsup.net/tutorials/retro/retroarch.zip
Unzip to /home/you/.config/retroarch
RetroArch Joypad setup
Navigation through the menus in RetroArch is done using the arrow keys, x to enter menu, and z to go back.
- Launch RetroArch either via desktop shortcut, or typing retroarch in terminal
- Press F1 to enter menu
- Navigate to Settings > Input
- Scroll down to Player 1 Joypad controls
- Highlight each item, and press x, and then the appropriate button on your joypad
- Navigate back through the menus by pressing z
- Then Esc to exit
- Your joypad settings will save when you close RetroArch
Sega 32x
I use Kega Fusion for Sega 32x, since GenesisPlusGX doesn't work with 32x CD games.
Note: You will need 32x BIOS Files, search on Google for them.
wget http://www.carpeludum.com/download/kega-fusion_3.63-2_i386.deb
sudo dpkg --force-architecture -i kega-fusion_3.63-2_i386.deb
sudo apt-get install -f
PCSX1
PlayStation 1 / PSX
Note: You will need PS1 BIOS Files, search on Google for them.
sudo apt-get install pcsxr
PCSX2
PlayStation 2 / PS2
Note: You will need PS2 BIOS Files, as always you can search on Google for them.
sudo add-apt-repository ppa:gregory-hainaut/pcsx2.official.ppa
sudo apt-get update
sudo apt-get install pcsx2-unstable
Emulation Station
Setup folders for your games
Store all your games in /home/you/ConsoleGames/System, e.g.
- /home/you/ConsoleGames/32x
- /home/you/ConsoleGames/Atari2600
- /home/you/ConsoleGames/GameBoy
- /home/you/ConsoleGames/GameBoyAdvanced
- /home/you/ConsoleGames/GameBoyColour
- /home/you/ConsoleGames/MegaDrive
- /home/you/ConsoleGames/Sega CD
- /home/you/ConsoleGames/SegaBios
- /home/you/ConsoleGames/SNES
- /home/you/ConsoleGames/SonyBios
- /home/you/ConsoleGames/SonyPS1
- /home/you/ConsoleGames/SonyPS2
Pre-Setup Emulation Station Config
I have provided a pre-setup Config file
wget http://quidsup.net/tutorials/retro/emulationstation.zip
Unzip to /home/you/.emulationstation
Customising Emulation Station Systems Config
The Systems config can be found in ~/.emulationstation/es_system.cfg, and consists of the format:
<systemList>
<system>
<name></name>
<fullname></fullname>
<path>~/ConsoleGames/</path>
<extension></extension>
<command>%ROM%</command>
<platform></platform>
<theme></theme>
</system>
</systemList>
For Example:
<systemList>
<system>
<name>snes</name>
<fullname>Super Nintendo Entertainment System</fullname>
<path>~/ConsoleGames/SNES</path>
<extension>.smc .sfc .SMC .SFC</extension>
<!--<command>snes9x-gtk %ROM%</command>-->
<command>retroarch -L /usr/lib/libretro/snes9x_libretro.so %ROM%</command>
<platform>snes</platform>
<theme>snes</theme>
</system>
<system>
<name>megadrive</name>
<fullname>Sega Mega Drive</fullname>
<path>~/ConsoleGames/MegaDrive</path>
<extension>.bin .smd .BIN .SMD</extension>
<command>retroarch -L /usr/lib/libretro/genesis_plus_gx_libretro.so %ROM%</command>
<platform>megadrive</platform>
<theme>megadrive</theme>
</system>
<system>
<name>segacd</name>
<fullname>Sega CD</fullname>
<path>~/ConsoleGames/Sega CD</path>
<extension>.bin .iso</extension>
<command>retroarch -L /usr/lib/libretro/genesis_plus_gx_libretro.so %ROM%</command>
<platform>segacd</platform>
<theme>segacd</theme>
</system>
<system>
<name>sega32x</name>
<fullname>Sega 32x</fullname>
<path>~/ConsoleGames/32x</path>
<extension>.bin .32x .iso</extension>
<command>kega-fusion %ROM%</command>
<platform>sega32x</platform>
<theme>sega32x</theme>
</system>
<system>
<name>atari2600</name>
<fullname>Atari 2600</fullname>
<path>~/ConsoleGames/Atari 2600</path>
<extension>.bin .BIN</extension>
<command>retroarch -L /usr/lib/libretro/stella_libretro.so %ROM%</command>
<platform>atari2600</platform>
<theme>atari2600</theme>
</system>
<system>
<name>gb</name>
<fullname>GameBoy</fullname>
<path>~/ConsoleGames/GameBoy</path>
<extension>.gb .GB</extension>
<command>retroarch -L /usr/lib/libretro/tgbdual_libretro.so %ROM%</command>
<platform>gb</platform>
<theme>gb</theme>
</system>
<system>
<name>gbc</name>
<fullname>GameBoy Colour</fullname>
<path>~/ConsoleGames/GameBoyColour</path>
<extension>.gbc .GBC</extension>
<command>retroarch -L /usr/lib/libretro/tgbdual_libretro.so %ROM%</command>
<platform>gbc</platform>
<theme>gbc</theme>
</system>
<system>
<name>gba</name>
<fullname>GameBoy Advanced</fullname>
<path>~/ConsoleGames/GameBoyAdvanced</path>
<extension>.gba .GBA</extension>
<command>retroarch -L /usr/lib/libretro/vba_next_libretro.so %ROM%</command>
<!--<command>retroarch -L /usr/lib/libretro/vbam_libretro.so %ROM%</command>-->
<platform>gba</platform>
<theme>gba</theme>
</system>
<system>
<name>psx</name>
<fullname>Sony PSX</fullname>
<path>~/ConsoleGames/SonyPS1</path>
<extension>.iso .ISO .bin .BIN</extension>
<command>pcsx -nogui -cdfile %ROM%</command>
<platform>psx</platform>
<theme>psx</theme>
</system>
<system>
<name>ps2</name>
<fullname>Sony PS2</fullname>
<path>~/ConsoleGames/SonyPS2</path>
<extension>.iso .ISO .bin .BIN</extension>
<command>pcsx2 --fullscreen %ROM%</command>
<platform>ps2</platform>
<theme>ps2</theme>
</system>
</systemList>
Test it out
Now to take it for a test run...
Emualtion Station will automatically ask you to configure a joypad on first run.