banner Pi emulation -- Branden Skeli / Unsplash

7 Proven Methods to Boost Your Raspberry Pi Emulation Performance

If you click our links and make a purchase, we may earn an affiliate commission. Learn more

So you’ve started retro-gaming on Raspberry Pi, but for some reason, the game you’re emulating doesn’t play the way you remember. Is there anything you can do to improve how it runs on your Raspberry Pi? Definitely, and in this post, I’ll share with you my tested techniques.

Emulation performance on a Raspberry Pi can be enhanced through hardware tweaks, such as overclocking and preventing downclocking, as well as through software configurations, such as output resolution, input latency, background services, and console-specific tweaks.

I’ll provide brief explanations of each one, along with some examples and screenshots. You may have to look up how to find the setting on the specific gaming OS or emulator you’re using, since there are many different systems and setups!

By the way, if you’re looking for some great retro games, I’ve got a list of my 24 favorites for Retropie, Recalbox, or Lakka. It’s packed with screenshots, descriptions, and download links to make it easy for you. Grab the list for free here!

1. Choose the Right Raspberry Pi for the Game Console

When getting started, you need to ensure your hardware can handle the gaming console you want to play. Each Raspberry Pi board has a different CPU and graphics processor, which affects which game systems it can emulate.

The Raspberry Pi Zero 2W is an excellent choice as a portable handheld, as long as you aim for less powerful consoles. The Pi 3B+ is often used for budget builds, while the Pi 4 is a great all-arounder that covers almost every console commonly emulated on the Pi. Lastly, the Pi 5 is the most powerful if you’re looking for playability in as many titles as possible.

Here’s a list of popular game consoles along with my recommendations on which Raspberry Pi boards will run them decently:

Game ConsoleRecommended Raspberry Pi
Game Boy
Game Boy Color
Game Body Advance
Pi Zero 2W
Pi 3B+
Pi 4 / Pi 400
Pi 5 / Pi 500
NES
Super Nintendo
Sega Genesis
Pi Zero 2W
Pi 3B+
Pi 4 / Pi 400
Pi 5 / Pi 500
Arcade
PlayStation 1
Pi 3B+
Pi 4 / Pi 400
Pi 5 / Pi 500
PSP
Sega Saturn
GameCube
Dreamcast
Pi 4 / Pi 400
Pi 5 / Pi 500
N64*
PlayStation 2**
Pi 5 / Pi 500
*Many problems on Pi hardware.
**Emulating the PS2 on Raspberry Pi is possible but bleeding edge.

Related: How to Play PSX Games on RetroPie?

By the way, every model can get better loading times by using a fast SD card. If you want to hold lots more games and make loading even snappier, I recommend adding an SSD, whether that’s through an external USB enclosure or an internal NVMe SSD.

2. Overclock the Raspberry Pi

The performance of the Raspberry Pi in game emulation is most directly affected by the speeds of its processor and graphics chip. In other words, the faster your CPU and GPU, the better games will feel.

My favorite games!
Get a list of my 24 favorites games (with links) to play on Retropie, Recalbox or Lakka
Download now

The Raspberry Pi can be overclocked beyond its default frequencies to squeeze out extra gaming performance.

The retro-gaming OS, Batocera, makes it easy for Raspberry Pi users: go to Start Menu > System Settings > Overlock, and choose from the available presets.

Start low to check if your system boots and is stable during gameplay before going higher.

Related: Best Retro-Gaming OS: Retropie, Recalbox, Batocera, or Lakka?

Overclocking is more involved for other emulator distros like RetroPie, Recalbox, or Lakka. For those, you have to manually set the overclocks in the /boot/config.txt file. The variable names are slightly different depending on the Raspberry Pi, so you’ll have to look them up for your particular model. They usually involve variations of arm_freq, gpu_freq, and over_voltage.

Example overclock settings for Raspberry Pi 5

The numbers your Pi will be stable at will also differ depending on how lucky you are when it comes to the silicon lottery. To get you started, here’s a range of what’s realistic:

Raspberry Pi ModelCPUGPU
Pi Zero 2W1100 – 1400450 – 600
Pi 3B+1400 – 1500 450 – 600
Pi 4 / Pi 4001600 – 2100600 – 750
Pi 5 / Pi 5002500 – 3000850 – 1000
Note: higher settings will require active cooling and a stable power supply.

Warning: It’s best to take a slow-and-go approach when overclocking. The over_voltage setting can PERMANENTLY damage your Raspberry Pi, and should be approached with extreme caution.

3. Prevent CPU and GPU Downclocking

Did you know that your Raspberry Pi isn’t always using its max capabilities? It lowers its CPU and GPU clocks when they’re not needed and boosts them when under load.

Change the CPU Governor to Performance Mode

For the processor, this is controlled by what’s called the “CPU governor” and is normally set to be on demand. It’s great for saving electricity, but ramping up and down can cause stuttering in games.

My favorite games!
Get a list of my 24 favorites games (with links) to play on Retropie, Recalbox or Lakka
Download now

Switching the Raspberry Pi’s CPU governor to “Performance Mode” will tell its processor to run at full speed at all times.

In Batocera, you can find this under Start menu > Game Settings > Power Mode.
In Retropie, it’s under Retropie Setup > Run Command Configuration (more instructions here).
In other systems with RetroArch, look for the performance menu to find this setting.

Prevent Graphical Downclocking

A similar setting also exists for the GPU, except you set a minimum speed it will always run at. That way, the GPU spends less time ramping to full speed.

Unfortunately, I don’t know an easy way to change this setting within the emulator menus. Instead, you can SSH into your Raspberry Pi and add this line to the /boot/config.txt file:
v3d_freq_min=500

4. Target Resolution and Frame Rate

If you come from PC gaming, you might think that a higher resolution and higher framerate are always better; however, that’s not always true for emulating console games. Many consoles were programmed to run best at a fixed pixel resolution and FPS. For instance, most games for the PlayStation 1 originally ran at 240p and ~30 fps (but not all of them).

Most gaming distros automatically set game resolutions and framerates. Sometimes these defaults are good, but they can also be changed to improve performance.

Two different resolution settings often get confused: the external output and the internal output. Let’s discuss each one separately.

External Scaling

The first thing you can change is how the game is displayed on your monitor/TV, so you can get rid of the black bars on the sides. This is known as modifying the external output, but you might also see it called “external scaling” or “aspect ratio.”

  • Launch the game you want to tweak.
  • Press Hotkey + B to bring up the in-game emulator menu.
    This combination might be different depending on your distro or controller.
  • Find the setting for Scaling or Aspect Ratio.
    (e.g., for Batocera, it’s under Settings > Video > Scaling > Aspect Ratio.)
  • Change the aspect ratio to 16:9.
    This is the most common ratio for modern displays.
  • Exit the menu and return to the game.
    The game should now be stretched to your display.
    If you still have vertical overlays covering the sides, like in Batocera, turn them off by going to Start menu > Game Settings > Decorations.
Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now

Changing the external aspect ratio won’t change the game’s graphical fidelity, so it shouldn’t affect the game’s framerate. But modifying the next setting we’re going to discuss, internal resolution, is a different story.

Internal Resolution

What if the game is too demanding for your Raspberry Pi and runs poorly?
Or maybe it’s the opposite situation, where you want an older game to look better.
You can deal with this by modifying the internal resolution.

The internal resolution of a game directly affects the graphical quality. Changing the rendering resolution significantly affects performance in either direction.

Here’s how to change the internal resolution:

  • Launch the game you want to test.
  • Bring up the in-game emulator menu.
    (e.g., Hotkey + B)
  • Look for the internal resolution setting.
    For example, try looking under Quick Menu > Core Options > Video > Internal Resolution or under Quick Menu > Core Options > Enhancement Settings.
  • Make a decision based on the situation:
    • If the game is running poorly, decrease the scale from 1x (native) to something smaller, like 0.5x.
    • If the game is running well and you want better graphics, increase the scale to 1.5x, or however high your Raspberry Pi can handle and maintain the target framerate.
  • Exit menu mode and return to the game to check its performance.

Be aware that the menu location for this setting differs per emulator, so you’ll have to hunt for it. In addition, emulators for some older consoles might not have it at all.

5. Reduce Controller Input Lag

You might be wondering why lag matters if you’re not playing online. The lag I’m talking about here isn’t network latency, but rather input lag.

Input lag is how long it takes the game to respond to your actions. If you’re emulating Street Fighter Alpha 2 and Ryu is slow to jump when you press a button on your PS4 controller, you probably have high input lag.

Older consoles were originally optimized for those old tube televisions (CRTs) and actually had decently low input lag. But your emulated system might have variables that make it feel sluggish or unresponsive. Not fun. In a perfect world, you want as little input lag as possible.

Lost in the terminal? Grab My Pi Cheat-Sheet!
Download the free PDF, keep it open, and stop wasting time on Google.
Download now

If you’re experiencing input lag, try these settings to reduce it:

  • If you’re playing on a modern TV, switch to “Game Mode” on your TV.
  • Vsync – OFF.
  • Frame skip – ON.
  • Threaded video – OFF.
  • Run-Ahead Frames – ON, and set to 1 frame.
  • Use a wired USB controller instead of one connected via Bluetooth.
  • USB polling rate – increase it to 1000 Hz.

You can set these options on a per-console or on a per-game basis. They’ll be found under different menus depending on your system setup. Changing the USB polling rate is for advanced users only and requires modifying the /boot/cmdline.txt file.

6. Disable Unnecessary Features

Let’s say you’re pushing your Raspberry Pi to its limit but still aren’t getting the FPS you want in games like Soulcalibur or Final Fantasy IX. Turning off the gaming distro’s bells and whistles will redirect all of the hardware resources to game rendering.

You can free up resources by:

  • Disabling services added by your gaming distro that you don’t use, for instance, Bluetooth, Samba file sharing, web interface server, AI translations, or auto backup services.
  • Using a basic theme or no theme.
  • Disabling special shaders.
  • Disabling the “Rewind” functionality.
  • (For Batocera) Disabling Kodi.
  • (For manual installations of RetroPie) Starting with a lightweight OS as your base rather than one with a desktop environment.

🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

If you enjoy learning about Raspberry Pi, you’ll feel right at home in the RaspberryTips Community. It’s a friendly group of makers helping each other grow. Join us today for $1 and see what it’s like inside.

7. Apply System-Specific Tips & Tricks

All right! We’ve covered the big picture stuff. The next step is to tweak each console emulator individually, as each has its own quirks that can improve performance.

You probably won’t need a lot of configuring to run titles from the SNES, Sega Genesis, or old arcade games. These games should run great on the Raspberry Pi, and many optimizations have already been baked into their default settings.

Instead, I’ll cover a few consoles where some tweaks can make a difference on the Raspberry Pi. You can access these settings by bringing up the in-game emulator menu (Hotkey+B).

PlayStation 1

  • Enhanced Resolution:
    In RetroPie, it’s under Quick Menu > Core Options > GPU Plugin.
    • Enhanced Resolution: ON.
    • Enhanced Resolution Speed Hack: ON.
  • Enhancement Settings:
    In Batocera, go to Quick Menu > Core Options > Enhancement Settings.
    • True Color Rendering: ON.
    • Scaled Dithering: ON.
    • Texture Filter: Bilinear.
    • PGXP Geometry Correction: ON.

GameCube

  • Graphics API > Vulkan – use this video driver when it works.
  • ROMs – download the PAL versions, which often run better than NTSC versions.
    (Related: Where to Download ROMs in 2025?)

Dreamcast

  • Emulator – use Flycast, as it’s more optimized at the moment.
  • Internal Resolution Scaling – if your hardware can handle it, try upping to 2x for much cleaner-looking graphics, as DC emulates well on Pi architecture.

PSP

  • Lazy texture caching – ON.
  • Frame skipping – 1.
  • Spline/Bezier quality – Low.
  • Buffer graphics – Up to 2.
  • Hardware transform – ON.
  • Software skinning – ON.
  • Upscale type: Hybrid + Bicubic.
  • Upscale level – OFF.
  • Deposterize – OFF.

Emulation has come a long way on the Raspberry Pi. The dream is to one day build a Pi arcade cabinet that lets your family and friends choose from every retro game out there!

Whenever you’re ready, here are other ways I can help you:

Test Your Raspberry Pi Level (Free): Not sure why everything takes so long on your Raspberry Pi? Take this free 3-minute assessment and see what’s causing the problems.

The RaspberryTips Community: Need help or want to discuss your Raspberry Pi projects with others who actually get it? Join the RaspberryTips Community and get access to private forums, exclusive lessons, and direct help (try it for just $1).

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

You can also find all my recommendations for tools and hardware on this page.

Similar Posts