Game files are distributed as ROM files. These are copies of the games which have been extracted from the original game media (e.g. a game cartridge).
Creating and distributing ROM files from copyrighted media is often a breach of copyright. PES is therefore not distributed with any ROM files.
Obtaining a ROM file of a game you already own is also seen as a breach of copyright.
For example, Nintendo’s stance on ROM creation, use and distribution can be found at: http://www.nintendo.com/corp/legal.jsp
Creating and using a console emulator is not illegal as it does not breach any copyright laws. Using a game that is subject to copyright law with a game emulator is however.
This guide will not tell you where you can download ROM files, but if you can use a search engine it won’t take you long at all.
The file extension of a ROM file determines the console that the ROM is intended to run on. The table below shows the console file extension mappings.
|Commodore64||.crt .d64 .g64 .t64 .tap .x64 .zip|
|GameBoy Advance||.gba .zip|
|GameBoy Color||.gc .gbc .zip|
|Game Gear||.gg .zip|
|Genesis||.smd .md .gen .bin|
|Mega CD||.bin .iso .img .zip|
|MegaDrive||.smd .md .gen .bin|
|MSX||.msx1 .msx2 .rom|
|PC Engine||.pce .zip|
|PlayStation||.bin .iso .img .zip|
|PSP||.bin .cso .iso .img .zip|
|SNES||.smc .sfc .zip|
|ZX Spectrum||.tap .tzx .z80 .zip|
File extensions can also be in upper case
You can modify the file extensions that PES searches for each emulator by editing
/home/pi/pes/conf.d/pes/consoles.ini or from Windows:
Many ROMs also contain a pair of square brackets in the name. The character within the square brackets can denote a number of things, including the region that the ROM is from. The table below explains the commonly used codes.
||Verified good dump of the original game|
||Modified to run better on emulators|
||Hacked ROM - use with caution|
||Supports multiple languages|
||Overdump may work - use with caution|
The region codings may be combined, for example
[JE] would represent a ROM that supports Japanese and European regions.
Under the PES data directory
/data/pes, a directory called “roms” exists. Within this directory is a sub directory for each console emulator that is supported:
- Atari 2600
- GameBoy Advance
- GameBoy Color
- Mega CD
- Neo Geo
- PC Engine
- ZX Spectrum
ROMs can be made available to PES by copying them into the appropriate directory. These directories can be accessed from other computers on your home network via Samba and SFTP (see below).
- MAME for the Raspberry Pi uses the 0.375b ROM set
- MAME for the Raspberry Pi 2/3/4 uses the 0.78 ROM set
- PSP is only available on the Raspberry Pi 2/3/4
By default PES will launch the Samba file server at boot time. This server provides Windows printer and file sharing services for Linux and Unix based operating systems. PES is set to join the Windows workgroup “WORKGROUP” by default. From your Windows desktop you can find PES in Network Places providing that your Raspberry Pi has been connected to your home network.
Once you have found PES double click the ROMs directory and copy the files to the directory for the console that the ROM file is for.
If you cannot find PES in Network Places then try accessing it via its IP address. Just enter the IP address of your Raspberry Pi (this can be found in the PES GUI) prefixed by two back slashes in the Windows Explorer address bar, e.g. enter
/data partition that is used by PES to store ROMs, cover art, config settings et.c is actually a FAT32 partition. This partition is created when you boot PES for the first time. As the partition is in FAT32 format this means that it can be read by a Windows system as well.
Therefore, you can easily copy ROMs to PES by making sure you have booted PES once (thus creating the partition), and then you can insert the SD card into your Windows PC and copy your ROMs etc. directly to the SD card.
If you have a SFTP client installed on your computer you can use this to copy games to your PES installation as well. In the example below, it assumed that your IP address of your Raspberry Pi is 192.168.0.2 (you can find out your Raspberry Pi’s IP address from the PES GUI or by running the
ip a command on your Raspberry Pi).
sftp [email protected] cd /home/pi/pes/roms/nes put Mario.nes exit
At present PES does not support automatic importing of ROMs from USB storage, however this is planned for the future. In the meantime here’s how to copy ROMs from USB storage to your Raspberry Pi.
- Make sure your USB storage is formatted for use as FAT32 (most USB keys, external hard drives are by default).
- Copy your ROMs to your USB storage on your computer.
- Unplug your USB storage from your computer and turn on your Raspberry Pi running PES.
- Once the PES GUI has loaded plug in your USB storage to your Raspberry Pi.
- From the PES GUI select “Exit to Command Line”.
- Now we need to find out which device path has been assigned to your USB storage. Run the following command:
ls -l /dev/disk/by-label
[[email protected] ~]$ ls -l /dev/disk/by-label/ total 0 lrwxrwxrwx 1 root root 15 Jan 1 1970 BOOT -> ../../mmcblk0p1 lrwxrwxrwx 1 root root 10 Sep 27 21:01 USBx20KEY -> ../../sda1 lrwxrwxrwx 1 root root 15 Jan 1 1970 data -> ../../mmcblk0p3 lrwxrwxrwx 1 root root 15 Jan 1 1970 root -> ../../mmcblk0p2
Three of these device paths are for the SD card: BOOT, data and root. The remaining device paths will be for your USB storage providing that your Raspberry Pi has recognised the partitions on it.
- You now need to mount the partition containing your ROMs from your USB storage which in my case is USBx20KEY.
sudo mount /dev/disk/by-label/USBx20KEY /mnt
Use the tab key as you type to automatically complete the file path.
You can also mount the partition using the device path, e.g.:
sudo mount /dev/sda1 /mnt
- Copy the ROMs to your Raspberry Pi using the
cpcommand. In the example below I am copying all files from a MegaDrive directory on the USB storage to the corresponding directory on the Raspberry Pi.
cp /mnt/MegaDrive/* ~/pes/roms/MegaDrive/
- Unmount the USB storage before removing it from your Raspberry Pi:
sudo umount /mnt
- Now launch PES again:
You will now need to update the database to access your new ROMs (see below).
Update the Database¶
Once you have copied over your new games you need to tell PES to scan for newly added ROMs. To do so please select Update Database from the main menu of PES. From this screen you can select which console directories you want to search. By default all emulators are selected.
Once you are happy with your selections please press the start button on your primary control pad or the spacebar on your keyboard (if connected). This will cause PES to scan your selected ROMs directory for newly added ROMs, deleted, and renamed ROMs. If your Raspberry Pi is connected to the Internet then PES will use theGamesDB.net to download cover art and other game details.
Depending on the number of games you have added and the speed of your Internet connection the scanning process could take several minutes. You can cancel the scan at any point by selecting Abort.
If PES cannot contact theGamesDB.net for any reason your games will still be added. If you perform another database update at a later date then the missing cover art and game details will be downloaded then.
All cover art is saved to
This directory is actually a symbolic link to
/data/coverart. It is also available via Samba at
If no cover art is found in the cover art directory for a ROM when PES is performing a database update, PES will attempt to download cover art for the ROM from theGamesDB.net. You can therefore provide your own cover art to PES to add cover art that could not be found. Adding cover art yourself will also speed up database updates.
PES will automatically resize cover art for performance reasons and to reduce to disk space.
When providing cover art please place the files into the appropriate emulator directory under
/home/pi/pes/coverart (or if using Samba
\\pes\coverart). PES will recognise the following file extensions for images: