Native Windows PC Port · ShiVa3D Engine · Dynarmic JIT Runtime
An authentic, native Windows x64 PC port of the classic 2013 remake of Prince of Persia: The Shadow and the Flame. Rather than relying on heavy Android emulators that virtualize an entire operating system and kernel, this project runs the original ARMv7 client library (libS3DClient.so) natively as a standalone 64-bit Windows executable through Dynarmic dynamic retranslation, Desktop OpenGL, OpenAL Soft, and a dedicated 2000s-style configurator.
No BlueStacks, Nox, or Android VM hypervisors. The game's ARMv7 ELF binary runs directly inside Windows user space with near-zero latency, negligible CPU footprint, and instant startup times.
Employs a custom precompiled Dynarmic JIT fat library to retranslate 32-bit ARM machine code directly into host x86-64 machine instructions on the fly with optimized register mapping.
Bridges mobile OpenGL ES 2.0 to Desktop OpenGL compatibility profile. Features real-time software ETC1 texture decompression, true 16:9 widescreen resolutions up to 3840x2160, MSAA 8x, and 16x Anisotropic Filtering.
Intercepts Android OpenSL ES and OpenAL calls and bridges them directly to modern 64-bit OpenAL Soft, preserving authentic surround sound, environmental reverb, and crystal-clear music.
Powered by SDL2 with support for XInput/DirectInput controllers, mouse buttons (Left, Right, Middle, Extra buttons, Scroll wheel), and customizable keyboard layouts with conflict resolution.
Includes PoPSnF_Launcher.exe, a retro 2000s Prince of Persia style launcher with 1-click APK asset extraction, Dolphin-style key binding, and full undo/redo configuration history.
libS3DClient.so
ARMv7 ShiVa3D Game Logic & Assets
All ARM code, stacks, heaps, and mock Android structures reside inside a deterministic 512 MB virtual memory window:
| Address Range | Region | Description |
|---|---|---|
0x00000000 - 0x0000FFFF |
Low Scratch | Scratchpad memory & argument staging buffers |
0x00010000 - 0x0001FFFF |
SVC Trampolines | Supervisor Call trampolines (0xEF000000 | idx → BX LR) |
0x00020000 - 0x0002FFFF |
Data Imports | __stack_chk_guard, _ctype_, __sF, stdout, stderr |
0x00030000 - 0x0003FFFF |
JNI Structs | Virtual JNIEnv & JavaVM pointer tables |
0x01000000 - 0x01BD0B6C |
ELF Image | Original libS3DClient.so game logic, code segments & static data |
0x02000000 - 0x1E000000 |
Segregated Heap | Dynamic 28-bin segregated free-list heap with 448 MB memory capacity |
0x1E000000 - 0x1FFFFFE0 |
Guest Stack | 32 MB downward-growing ARM stack arena with page guards |
Drop the original game APK directly onto PoPSnF_Launcher.exe. In under 1 second, it inspects, verifies, and unpacks libS3DClient.so, S3DMain.stk, and game splash screens automatically into the game directory.
Select native 16:9 widescreen resolutions from 720p up to full 4K UHD (3840x2160). Toggle Borderless Fullscreen, VSync, MSAA up to 8x, 16x Anisotropic Filtering, and customizable frame limiters (30, 60, 120, 144, 165, 240, or Unlimited).
Map any action to keyboard keys, mouse buttons (Left, Right, Middle, Mouse 4/5, Wheel Up/Down), or gamepads. Duplicate bindings automatically swap without collision. Supports Dolphin-style Escape key binding and full Undo/Redo (Ctrl+Z / Ctrl+Y).
game/config.ini
| Action | Keyboard & Mouse Default | Gamepad Default (Xbox / Generic) | Description |
|---|---|---|---|
| Move Left / Right | A / D or ← / → | Left Stick / D-Pad Left & Right | Horizontal movement across platforms |
| Jump / Climb Up | W or ↑ or Space | A Button / Left Stick Up | Ascend ledges, leap across chasms, wall run upward |
| Crouch / Roll / Drop | S or ↓ or Left Ctrl | B Button / Left Stick Down | Roll through narrow passages, drop down ledges |
| Attack / Strike | Mouse Left or J | X Button | Execute sword attack combo sequences |
| Block / Parry | Mouse Right or K | Y Button / Left Trigger | Deflect enemy strikes and prepare counter-attacks |
| Drink Health Potion | E or H | Right Shoulder (RB) | Restore health from inventory vials |
| Interact / Action | F | X Button (Contextual) | Pull levers, inspect pressure plates, open gates |
| Pause / In-Game Menu | Escape | Start / Menu Button | Open game pause menu and options |
- 64-bit Windows 10 or 11
- OpenGL 3.3 compatible graphics card
- Microsoft Visual C++ 2015-2022 Redistributable (x64)
- A legitimate Android .apk of Prince of Persia: The Shadow and the Flame (v1.0.0 or later)
Download the latest release from GitHub. Launch PoPSnF_Launcher.exe and drag-and-drop your game .apk into the extraction prompt. The launcher will automatically unpack and verify the required assets in seconds.
Choose your preferred resolution (e.g. 1080p, 1440p, or 4K UHD), toggle VSync or MSAA, adjust your keybindings or controller layout, and click Launch Game!