
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)
| Feature | Original DOS (1989) | SDLPoP (SDL2 Port) |
|---|---|---|
| Platform | MS-DOS PCs | Modern Linux, Windows, macOS |
| Graphics | 320×200 CGA/EGA/VGA | Scaled resolution, fullscreen support |
| Sound | PC Speaker / AdLib | SDL2 audio, stereo sound |
| Controls | Keyboard only | Keyboard + Gamepad support |
| Save System | Password codes | Quicksave / Quickload |
| Replay Feature | None | Replay recording & playback |
| Modding | Not supported | Mods folder, custom levels |
| Accessibility | Requires DOSBox today | Native build, easy compile with SDL2 |
| Community Updates | Frozen since 1990s | Actively 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
| Package | Purpose | Why It’s Needed for SDLPoP |
|---|---|---|
| build-essential | Meta-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. |
| git | Version control system for managing source code. | Used to clone the SDLPoP repository from GitHub. |
| libsdl2-dev | Development headers and libraries for SDL2 (Simple DirectMedia Layer). | Core library that SDLPoP uses for graphics, input, and window management. |
| libsdl2-image-dev | SDL2 extension for loading and manipulating images (PNG, JPG, etc.). | Enables SDLPoP to load textures and sprites beyond raw bitmap formats. |
| libsdl2-mixer-dev | SDL2 extension for audio mixing and playback. | Provides sound effects and music playback in the game. |
| libsdl2-ttf-dev | SDL2 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 ☕️





















