Aaron Watts Dev RetroPie Nespi 4
Back to home
RSS feed

RetroPie NesPi 4

A NesPi-4 cased Raspberry Pi 4b, with the slot open
        to show a NES cartridge style SSD case, an 8BitDo SN30 Pro
        controller, and a WiiMote in a pistol lightgun adapter.

The Raspberry Pi 4, with Retroflag's NesPi 4 Case, running RetroPie is the ultimate retro gaming rig. Low power consumption? Check. Light gun games? You got it. Great customisation options? Of course. Did you know you can even use a wiimote as the stylus for the Drastic Nintendo DS Emulator?? Did I hear someone say Wario Ware?

I've gone through a few different renditions of hardware, cases and software for my retrogaming rig. I use Recalbox on a GPi case 2 with compute module 4 (no wifi), and have also used it on this device. However, I found myself coming back to RetroPie for the NesPi 4 case and my main rig. Recalbox is certainly a great piece of software, and even has easy set up for the case, however RetroPie just lets you do so much more, and also I found Recalbox to occasionally break after updates - not often, but often enough for me to notice a pattern.

Getting Started

The NesPi 4 Case gives you the option to use an SSD drive cunningly disguised as a NES cartridge for additional storage. But, given the faster speeds and greater reliability of SSD via USB for the raspberry pi, the smarter play is to boot from it and throw out the SD card. You might need to update EEPROM to get it going, I didn't in this case. If you bought the spare cartridge it comes with a case that lets you plug it into your computer, so do that, and flash a fresh copy of RetroPie to the disk using the Raspberry Pi Imager, or etcher if you so choose. If you didn't get the adapter, you will want to dig one out from your drawer of wires, or order one online.

Note: RetroPie images can be found in the Raspberry Pi Imager, or online at RetroPie.

First boot should prompt you to map your gamepad. Once done you can get your pi online and get its IP from the RetroPie menu, and ssh into it to install the NesPi 4 safe shutdown script:

wget -O - "https://raw.githubusercontent.com/RetroFlag/retroflag-picase/master/install.sh" | sudo bash

There's plenty of themes and splash screens to choose from, so make the pi yours (I went with a smart looking Nintendo theme and splash myself), and move to the next step when you're ready.

BIOS files

So now games? No. Slow down there. Some of the emulators are plug'n'play, but for some to run you will need BIOS's. As much as I love being told to google it by people in forums, it's not helpful, and you can often end up with files that don't work. Someone has been kind enough to collate a BIOS set on github, you can simply copy all contents into your BIOS directory, or copy in as needed.

If you're not familiar with how git works, and need some extra help just follow the steps below.

Note: these instructions are assuming you are working on a different device to the pi.

git clone https://github.com/archtaurus/RetroPieBIOS.git
cd RetroPieBIOS

Get your pi's local IP address, but don't SSH in. Either copy the entire BIOS set over, or cherry pick what you need:

# to copy entire directory
rsync -r BIOS/ <user>@<ip_address>:~/RetroPie/BIOS

# or to pick out a single file
rsync <bios_file> <user>@<ip_address>:~/RetroPie/BOIS/

If that scares yesterdays dinner out of you, then just plug your SSD (or SD card if you are unwilling to take good advice) back into the computer and do it all the old fashioned way.

Getting Games

I have no idea if I'm legally allowed to tell you where to download digital copies of games you already own, but these guys don't seem to give a toss. There's some good sources there. EmuParadise stopped working, but if you install the tampermonkey extension on firefox, the following script adds a workaround which you can right click and choose save as to download.

Note: workaround doesn't work when there are multiple download sources on a page - a common thing for Dreamcast images.

// ==UserScript==
// @name         EmuParadise Download Workaround - 1.1.1
// @version      1.1.2
// @description  Replaces the download button link with a working one
// @author       Eptun
// @match        https://www.emuparadise.me/*/*/*
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    var id = ((document.URL).split("/"))[5];
        `<a target="_blank"
            title="Download using the workaround script"
        >Download using the workaround script</a><br><br>`);

To get your games over to your pi, check the RetroPie Docs to make sure that your roms are in the correct format, then copy them over the old fashioned way or with rsync to the correct directory. Otherwise, if you're chicken, use USB.

Note: Use the built in scrapers on the RetroPie start menu to get cover art and game descriptions, you might need to run each once to get all your games list done. If some still don't work, they may need their file names adjusted in order to be found.

Performance Tweaks

Aside from the obvious performance tweaks (cooling system, overclock, installing the operating system on a SSD or USB), There's a few things you can do for emulators which can tend to struggle on a pi 4. You're probably not going to like them, but that's what you get for not doing an X86 build with a graphics card instead. You pay peanuts, you get 480p.


I've seen a load of tips online on how to imrove N64 performance. None of them worked for me. The sad truth is N64 just works the pi too hard. But you can make your games playable by setting the resolution to 480p. Stop complaining, if you plugged a real N64 into your TV you think you're going to get better resolution?

Launch a game, and interrupt the runcommand dialog by pressing A, choose Select video mode for lr-mupen64plus-next, and scroll down and select 720x480@60Hz 16:9 (27.03Mhz, nhsync, nvsync, driver). This fixed all the graphical and audio glitches for me, and now I can play Banjo Kazooie and Ocarina of Time and enjoy them. Granted the trophy overlays look like shit, but this is the dirty world of emulation, pirates aren't known for being clean.


If, like me, you bought a lot of the indie games by the likes of NG:Dev.Team, Red Spot and HuCast, then those bad boys are most likely going to run in full 1080. Tap yourself on the back for supporting great devs and for also having great taste. If you are more interested in playing the classics, such as Shenmue, Crazy Taxi, or Jet Set Radio, you're going to have to make some sacrifice. Those games all play brilliantly in 1080 through the Redream emulator ... but not on a pi4. You will have to use the redream menu to set the resolution per game. The menu has a lush UI and I honestly doubt you'll srtuggle to work that out yourself. Find the resolution settings and drop it down to 480. Don't forget, the Dreamcast ran at 480 anyway, if you want more then you will want to look at doing a X86 build.


Start here: https://retropie.org.uk/docs/PSP/#performance. Good luck! It's playable enough ..

But RetroPie doesn't have menu music, I hear you say. That may be, but out of the linux based emulation station frontends, it's the least opinionated, so we can just add it ourselves. Neat! First download whatever music you want running on the menu, and place it in ~/pi/bgm/ - as many as you want. I only went with one, I used the nintendo wii menu soundtrack to go with my nintendo theme. Next install mpg123:

sudo apt install mpg123

Next we will want to add the following to the /opt/retropie/configs/all/autostart.sh file:

while pgrep omxplayer >/dev/null; do sleep 1; done
(sleep 10; mpg123 -Z /home/pi/bgm/*.mp3 >/dev/null 2>&1) &
emulationstation #auto

And in the /opt/retropie/configs/all/runcommand-onstart.sh file, create one if it doesn't already exist:

pkill -STOP mpg123

And then the /opt/retropie/configs/all/runcommand-onend.sh file, again: create if it doesn't exist:

pkill -CONT mpg123

And finally we just need to make those last two files executable:

sudo chmod a+x /opt/retropie/configs/all/runcommand-onstart.sh
sudo chmod a+x /opt/retropie/configs/all/runcommand-onend.sh

Reboot for moods.

Lightgun Games

This was surprisingly simple to get going. I don't really play MAME games, and there's plenty of guides for the MAME lightgun games anyway, jfgi if that's what you're here for. We will be looking at PSX and Dreamcast instead.

You will need a Mayflash Dolphin Bar, a wiimote, and to do it properly, a wiimote pistol adaptor. With RetroPie, at least, the dolphin bar is plug and play - although you will need to adjust settings in the retroarch menu. You can only use one wiimote per dolphin bar sadly, I'm not entirely sure a second bar will give you a second wiimote as it works by using the wiimote to emulate mouse and cursor control, but the brave and/or rich among you are welcome to give it a try.

Key mapping in emulation station and retroarch respectively can be a pain. So I will go through the basic setup for PSX and Dreamcast. First, once you've synced your wiimote up to your Maylfash Dolphin bar in mode 2, select configure input in the Emulation Station start menu settings. Emulation Station can't detect buttons A or B on the wiimote - this is because these are registering as mouse buttons in mode 2. Further, Retroarch can't detect buttons 1 or 2 on the wiimote - why this is, I'm not entirely sure. This is mildly inconvenient, but it's not enough to stop us from getting our way. For the Emulation Station input use the following mapping:

Wiimote Input
1 Start
2 Select
D-Pad D-Pad
+ A
- B
- Hotkey

This is enough to select our games and access the settings menu if we need to. The next steps differ slightly between Dreamcast and PSX. Newer versions of RetroPie use Redream as the default Dreamcast emulator, this is good - it's a fantastic emulator. However to use the wiimote we need the power of retroarch customisations, so we will need to install the lr-flycast emulator. So in the RetroPie menu screen, select retropie-setup, then select manage packages, then manage optional packages, and scroll down to lr-flycast and install the emulator. In the Dreamcast games menu, choose a lightgun game such as House of the Dead, launch the game, and interupt the runcommand menu by pressing A when the launch text appears. Choose select emulator for ROM and set it to lr-flycast, and then launch the game.

Once the game has launch, trigger the RetroArch menu using Hotkey + X. In the quick menu, select controls, port 1 controls, then set device type to lightgun. Then choose manage remap files, and save remap file.

Next, go back to quick menu, then back once more to main menu, choose settings, input, retropad binds, port 1 controls, and set the following mappings:

Wiimote Input
B Gun Trigger
A Gun Reload
+ Gun Start
D-Pad D-Pad

Next, go back to quick menu, select core options, input, and set the gun crosshair 1 display by choosing which crosshair you would like.

Finally, back in the main menu, select configuration file, and then save current configuration for settings to persist the next time you load the game.

For PSX, we will be using the same emulator as with every other game, so we don't need to change anything there. The set up is similar to Dreamcast, except for the device type and button mapping. Instead of setting device type to lightgun, choose guncon. And, for Time Crisis at least, this is the better mapping:

Wiimote Input
B Gun Trigger
A Gun Aux A
Home Gun Reload
+ Gun Start
D-Pad D-Pad

Note: you will need to play around with different mappings for different games depending on the controls they use, however these mappings are a decent starting point to work from.

Nintendo DS

Drastic is the suggested DS emulator for RetroPie. It is experimental but works quite well from what I've played on it. In the RetroPie settings menu, choose retropie-setup, then manage packages, manage experimental packages, and then install drastic.

You may need to map some buttons, I can't remember if the home button is the default one to open the settings menu, but make sure you keep a key mapped for it, otherwise you may have to delete the mapping file and start again. Drastic has the option to align the screens horizontally or vertically, which is a nice touch for games like pokemon where you can muster a little more screen real estate. As far as I know, there is no way to enforce a padding between the 2 screens, so things moving from top to bottom, or vice versa, tend to look a little awkward, but really you should be giving Nintendo your money for a quality experience so go cry in a corner. You wouldn't steal a car, would you?

If you have a Mayflash Dolphin Bar set to mode 2, and a synced wiimote, you already have a stylus, it's already set up. Don't believe me? Try it out ... I know right, I was stoked on that too! What are you waiting for? Go play WarioWare!


Trophies! Set up an account at RetroAchievements to add replay value to all your old favourites! You'll find the settings for this in the retroarch settings. It will only work with the libretro cores, which is most of what you will be using. It won't work with Redream, Drastic, or PPSSPP emulators - but unless you've replaced the lr cores for different ones, it should run on every other emulator you will be using.

Back to Top

Comments Section