Setting Up and Installing Prince of Persia (SDLPoP) – Ubuntu Edition

SDLPoP is an open-source port of the original DOS Prince of Persia, based on a disassembly of the game and rebuilt using the SDL2 library. Created by David “NagyD” and contributors, the project preserves the original gameplay while adding modern conveniences like:

  • Fullscreen support
  • Gamepad compatibility
  • Quicksave and replay features
  • Modding support

This makes SDLPoP the best way to experience the original game on modern Linux desktops.

Original DOS vs. SDLPoP (SDL2 Port)

FeatureOriginal DOS (1989)SDLPoP (SDL2 Port)
PlatformMS-DOS PCsModern Linux, Windows, macOS
Graphics320×200 CGA/EGA/VGAScaled resolution, fullscreen support
SoundPC Speaker / AdLibSDL2 audio, stereo sound
ControlsKeyboard onlyKeyboard + Gamepad support
Save SystemPassword codesQuicksave / Quickload
Replay FeatureNoneReplay recording & playback
ModdingNot supportedMods folder, custom levels
AccessibilityRequires DOSBox todayNative build, easy compile with SDL2
Community UpdatesFrozen since 1990sActively maintained on GitHub

Installing SDL2 and Compiling SDLPoP on Ubuntu

Step 1: Installing the Required Libraries

sudo apt update
sudo apt install build-essential git
sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev

Ubuntu Packages Explained

PackagePurposeWhy It’s Needed
build-essentialMeta-package that installs GCC (GNU Compiler Collection), make, and other core tools for compiling software.Provides the compiler and build tools required to compile SDLPoP from source.
gitVersion control system for managing source code.Used to clone the SDLPoP repository from GitHub.
libsdl2-devDevelopment headers and libraries for SDL2 (Simple DirectMedia Layer).Core library that SDLPoP uses for graphics, input, and window management.
libsdl2-image-devSDL2 extension for loading and manipulating images (PNG, JPG, etc.).Enables SDLPoP to load textures and sprites beyond raw bitmap formats.
libsdl2-mixer-devSDL2 extension for audio mixing and playback.Provides sound effects and music playback in the game.
libsdl2-ttf-devSDL2 extension for rendering TrueType fonts.Allows SDLPoP to display text (menus, HUD, etc.) using modern font rendering.

Step 2: Clone the SDLPoP Repository

git clone https://github.com/NagyD/SDLPoP.git
cd SDLPoP

Step 3: Compile the Game

cd src
make

Step 4: Run the Game

cd ..
./prince

This post was written with ❤️ and ☕️

Updating My Pi 500: The Field Notes I Always Forget

Today I pulled out my Pi 500 and realised again that I always forget the steps for updating the OS and the firmware.

So here are my field notes. Future me, you’re welcome.

First let’s check if a new OS version has been relased.

If a new OS has been released, I normally “trash” the current SD and start fresh, I would recommend backing up your data before doing any of the below steps.

Below is a summary on how to upgrade the OS – Link to complete process.

  • Download the 64-bit Raspberry Pi OS image
  • Insert the SD card into the Pi 500
  • Boot up the Pi 500 and complete the initial setup

Let’s update the OS and its dependencies to make sure they are current before we do the firmware updates and reboot to apply any changes. The below commands are run from the Terminal.

  sudo apt update
  sudo apt full-upgrade
  sudo reboot

Now let’s update the firmware.

First we need to configure the bootloader, this controls how the Pi boots and what hardware features are supported.

  sudo raspi-config (Navigate to > Advanced Options > Bootloader Version)

Now let’s check if there is an update for the EEPROM. An update will normally enable new hardware support, bug fixes, and performance improvements.

  sudo rpi-eeprom-update

If there is an update, you can run the update using the -a switch.

  sudo rpi-eeprom-update -a

For the final update, let’s update the keyboard firmware, this update is only for the Pi 500 / Pi 500+, I found my keyboard more responsive after this update.

sudo rpi-keyboard-fw-update

The Pi 500 is now updated and ready yo go.

This post was written with ❤️ on a Pi 500