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)


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.

sudo dpkg --force-architecture -i kega-fusion_3.63-2_i386.deb
sudo apt-get install -f

PlayStation 1 / PSX

Note: You will need PS1 BIOS Files, search on Google for them.

sudo apt-get install pcsxr

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


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:


For Example:

    <fullname>Super Nintendo Entertainment System</fullname>
    <extension>.smc .sfc .SMC .SFC</extension>
    <!--<command>snes9x-gtk %ROM%</command>-->
    <command>retroarch -L /usr/lib/libretro/ %ROM%</command>
    <fullname>Sega Mega Drive</fullname>
    <extension>.bin .smd .BIN .SMD</extension>
    <command>retroarch -L /usr/lib/libretro/ %ROM%</command>
    <fullname>Sega CD</fullname>
    <path>~/ConsoleGames/Sega CD</path>
    <extension>.bin .iso</extension>
    <command>retroarch -L /usr/lib/libretro/ %ROM%</command>
    <fullname>Sega 32x</fullname>
    <extension>.bin .32x .iso</extension>
    <command>kega-fusion %ROM%</command>
    <fullname>Atari 2600</fullname>
    <path>~/ConsoleGames/Atari 2600</path>
    <extension>.bin .BIN</extension>
    <command>retroarch -L /usr/lib/libretro/ %ROM%</command>
    <extension>.gb .GB</extension>
    <command>retroarch -L /usr/lib/libretro/ %ROM%</command>
    <fullname>GameBoy Colour</fullname>
    <extension>.gbc .GBC</extension>
    <command>retroarch -L /usr/lib/libretro/ %ROM%</command>
    <fullname>GameBoy Advanced</fullname>
    <extension>.gba .GBA</extension>
    <command>retroarch -L /usr/lib/libretro/ %ROM%</command>
    <!--<command>retroarch -L /usr/lib/libretro/ %ROM%</command>-->
    <fullname>Sony PSX</fullname>
    <extension>.iso .ISO .bin .BIN</extension>
    <command>pcsx -nogui -cdfile %ROM%</command>

    <fullname>Sony PS2</fullname>
    <extension>.iso .ISO .bin .BIN</extension>
    <command>pcsx2 --fullscreen %ROM%</command>
Test it out

Now to take it for a test run...

Emualtion Station will automatically ask you to configure a joypad on first run.