Reviving Prince of Persia: SDLPoP Explained

Released in 1989 by Jordan Mechner, Prince of Persia was groundbreaking for its time. Using rotoscoping techniques, Mechner created fluid character animations that set a new standard in video game realism.

The game’s mix of platforming, sword combat, and puzzle-solving captivated audiences and spawned sequels, remakes, and eventually Ubisoft’s Sands of Time trilogy. Its DNA can even be traced into modern franchises like Assassin’s Creed.

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 for SDLPoP
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

Compiling SDLPoP on Ubuntu isn’t just reliving a classic it’s bridging eras of computing. What once demanded a DOS machine now takes only a few lines of code and SDL2 libraries, proving how open source communities preserve history while modern tools breathe new life into old binaries.

By building and running this port, you’re not just playing Prince of Persia you’re keeping digital heritage alive, adaptable, and meaningful for the next generation.

This post was written with ❤️ and ☕️

Leave a comment