Prince Of Persia (with SDLPoP engine) - Le Bottin des Jeux Linux

Prince Of Persia (with SDLPoP engine)

🗃️ Specifications

📰 Title: Prince Of Persia (with SDLPoP engine) 🕹️ / 🛠️ Type: Game
🗃️ Genre: Adventure & Action 🚦 Status: 05. Tested & Working (status)
🏷️ Category: Adventure & Action ➤ Action Platformer 🌍️ Browser version:
🔖 Tags: Action; Adventure; Platformer; Exploration; Action Platformer; Puzzle; Swordplay; Cinematic Platformer; Pixel Art; Cute; Atmospheric; Cinematic; Retro; 1990s; Prince of Persia; Cult Classic; Linear; Moddable; Controller; Keyboard 📦️ Package Name: sdlpop
🐣️ Approx. start: 📦️ Arch package:
🐓️ Latest: 2019-12-24 📦️ RPM package:
📍️ Version: Latest: 1.20 / Dev: 4acfe46 📦️ Deb package:
🏛️ License type: 🕊️ Libre 📦️ Flatpak package:
🏛️ License: GPL-3 📦️ AppImage package:
🏝️ Perspective: Side view 📦️ Snap package: ✓
👁️ Visual: 2D Scrolling ⚙️ Generic binary:
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single 📱️ PDA support:
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 5 stars 👫️ Contrib.: goupildb & Louis
🎰️ ID: 15491 🐛️ Created: 2018-10-04
🐜️ Updated: 2023-04-10

📖️ Summary

[en]: A libre, multi-platform and improved port of Jordan Mechner's game Prince Of Persia (1989, for Brøderbund studio, not libre), an action and adventure platform game in which the Prince has only one hour to escape from the jail of the palace where he was imprisoned by the grand vizier Jaffar before the expiry of the ultimatum that this one has fixed to the princess - lover of the Prince, beyond which he will executed her if she still refuse to become his wife. This SDL port brings tons of improvements, including the ability to mod it. Excellent! [fr]: Un portage libre, multi-plateforme et amélioré du jeu Prince Of Persia (1989, non libre) de Jordan Mechner (pour le studio Brøderbund), un jeu d'action et d'aventure en plateforme dans lequel le Prince ne dispose que d'une heure pour s'échapper des geôles du palais où il est détenu par le grand vizir Jaffar avant que n'expire l'ultimatum que celui-ci a fixé à la princesse - amante du Prince, au delà duquel il la fera exécuter si elle ne l'épouse pas. Ce portage SDL apporte des tonnes d'améliorations, dont la possibilité de le modder. Excellent !

🎥️ Videos


🎲️ Gameplay: (202xxx), (202xxx), (202xxx),


🎮️ Showcase (Mods):


🐧 Linux plays: Sebastien Morin,


🎙️ Dev Interviews: Jordan Mechner


🏺️ Its story: The history of Prince of Persia, Making of Prince of Persia, Prince of Persia Modding

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t(202xxx) gd(202xxx) hg(202xxx) hg(202xxx) hg(202xxx) id(202xxx) id(202xxx) id(202xxx) id(202xxx) r(202xxx) lp(202xxx) g(202xxx) g(202xxx) g(o)(202xxx) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI] [FAQ] [RSS] [Changelog 1 2 3]

💰 Commercial: (empty)

🍩️ Resources
• Original source code of Prince of Persia, by Jordan Mechner (Not necessary, for information purpose): [GitHub (Prince of Persia Apple II)]
(Not necessary, for information purpose)
• Princed Resources, by Dávid Nagy: [GitHub (Princed Resources)]
(Not necessary for SDLPoP, a complementary tool for developers, to export and import graphics & other data from and to DAT files of Prince of Persia 1 & 2)
• Resources for Prince of Persia: [Popot.org]
✔ • apoplexy, GPL-3+, a Level Editor for Prince of Persia 1 &2, by Norbert de Jonge : [apoplexy (HomePage) (Dev site)] g(202xxx)
(v3.4, June 27, 2018 : Compiled version tested & works well, install libzip-dev & libsdl2, it recognize my Logitech RumblePad)
✔ • leapop, GPL-3+, a Level Editor for Prince of Persia for the Apple II & BBC Master, by Norbert de Jonge : [leapop]
(v0.9b, February 23, 2018 : Compiled version tested & works well, install libzip-dev & libsdl2, it recognize my Logitech RumblePad, same interface as apoplexy)
• Some examples of resources :
- Kid of Persia (13 levels for hardcore gamers): [Popot.org (Kid of Persia)] Video
- HWLev (levels for hardcore gamers, with custom graphics): [Popot.org (HWLev03)] Video [Popot.org (HWLev06)] Video [Popot.org (HWLev08)] Video
- Little Time (7 minutes to finish 5 levels): [Popot.org (Little Time)] Video
- Mysterious Castle 2 (14 levels): [Popot.org (Mysterious Castle 2)] Video

• A fork making it playable on Clockworkpi's GameShell, by pleft: [GitHub (SDLPoP fork by pleft)]

🛠️ Technical informations
[PCGamingWiki] [MobyGames] [Popot.org] [Princed Project.org] [Popuw.com] [forum.princed.org]

🦣️ Social
Devs (Jordan Mechner [fr] [en]): [Site 1 2 3] [MobyGames] [mastodon] [Facebook] [Instagram] [YouTube] [PressKit] [Interview 1(Story)(201703) 2(201507) 3(201507) 4(201005) 5(201403) 6(200802)]
Devs (Brøderbund [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (SDLPoP Team [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (Dávid Nagy (NagyD) [fr] [en]): [Site 1 2] [Chat] [mastodon] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Forums] [mastodon] [PeerTube] [YouTube] [PressKit] [reddit] [Discord]

🐝️ Related
[Wikipedia (Prince of Persia (1989 video game)) [fr] [en] [de]]
[Popot.org]

📦️ Misc. repositories
[Repology] [pkgs.org] [Generic binary] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage(author's repo)] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB]

📰 News / Source of this Entry (SotE) / News (SotN)
[Changes with v. 1.20 (20191013)] [maxigaz (20191205) (SotN)] [Alan Pope (20181004) (SotE)]

🕊️ Source of this Entry: [Site (date)]

🦣️ Social Networking Update (on mastodon)

🕹️ Title:
🦊️ What's:
🏡️
🐣️
🔖 #LinuxGaming #ShareYourGames #LibreGameEngine
📦️
📖 Our entry: https://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update:
⚗️
📌️ Changes:
🦣️ From: 📶️

🏝️ https://www.youtube.com/embed/
🦉️ https://www.youtube.com/embed/
🦝️ https://www.youtube.com/embed/
🦝️ https://www.youtube.com/embed/
🕵️ https://www.youtube.com/embed/
🕯️ https://www.youtube.com/embed/
🕯️ https://www.youtube.com/embed/
🎲️ https://www.youtube.com/embed/
🎲️ https://www.youtube.com/embed/
🎲️ https://www.youtube.com/embed/
🎲️[fr] https://www.youtube.com/embed/
🎮️ https://www.youtube.com/embed/
🎮️ https://www.youtube.com/embed/
🐧 https://www.youtube.com/embed/
🐧 https://www.youtube.com/embed/

📕 Description [en]

📕🐧"A libre improved port of Jordan Mechner's game Prince Of Persia"🐧📕.

An open-source port of Prince of Persia, based on the disassembly of the DOS version.

Name of program: SDLPoP
(Earlier name: David's open-source port of PoP)

Author: David from forum.princed.org (NagyD on GitHub)
Contributors: (see above)

LICENSE
This program is open source under the GNU General Public License terms, see gpl-3.0.txt and src/GPLv3.h.


🌍️ Wikipedia:

Prince of Persia is a 1989 fantasy cinematic platformer originally developed and published by Brøderbund and designed by Jordan Mechner for the Apple II. In the game, players control an unnamed protagonist who must venture through a series of dungeons to defeat the Grand Vizier Jaffar and save an imprisoned princess.

Much like Karateka, Mechner's first game, Prince of Persia used rotoscoping for its fluid and realistic animation. For this process, Mechner used as reference for the characters' movements videos of his brother doing acrobatic stunts in white clothes and swashbuckler films such as The Adventures of Robin Hood.

The game was critically acclaimed and, while not an immediate commercial success, sold many copies as it was ported to a wide range of platforms after the original Apple II release. It is believed to have been the first cinematic platformer and inspired many following games in this subgenre, such as Another World. Its success led to the release of two sequels, Prince of Persia 2: The Shadow and the Flame and Prince of Persia 3D, and two reboots of the series, first in 2003 with Prince of Persia: The Sands of Time, which led to three sequels of its own, and then again in 2008 with the identically-titled Prince of Persia.

Plot

The game is set in ancient Persia. While the sultan is fighting a war in a foreign land, his vizier Jaffar, a wizard, seizes power. His only obstacle to the throne is the Sultan's daughter (although the game never specifically mentions how). Jaffar locks her in a tower and orders her to become his wife, or she would die within 60 minutes (extended to 120 minutes in the Super NES version, which has longer and harder levels). The game's unnamed protagonist, whom the Princess loves, is thrown prisoner into the palace dungeons. In order to free her, he must escape the dungeons, get to the palace tower and defeat Jaffar before time runs out. But in addition to guards, various traps and dungeons, the protagonist is further hindered by his own doppelgänger, an apparition of his own self that is conjured out of a magic mirror.

Gameplay

The main objective of the player is to lead the unnamed protagonist out of dungeons and into a tower before time runs out. This cannot be done without bypassing traps and fighting hostile swordsmen. The game consists of twelve levels (though some console versions have more). However, a game session may be saved and resumed at a later time only after level 3.

The player has a health indicator that consists of a series of small red triangles. The player starts with three. Each time the protagonist is damaged (cut by sword, fallen from two floors of heights or hit by a falling rock), the player loses one of these indicators. There are small jars of red potion scattered throughout the game that restore one health indicator. There are also large jars of red potion that increase the maximum number of health indicators by one. If the player's health is reduced to zero, the protagonist dies. Subsequently, the game is restarted from the beginning of the stage in which the protagonist died but the timer will not reset to that point, effectively constituting a time penalty. There is no counter for the number of lives; but if time runs out, the princess will die and the game will be over.

There are three types of traps that the player must bypass: Spike traps, deep pits (three or more levels deep) and guillotines. Getting caught or falling into each results in the instant death of the protagonist. In addition, there are gates that can be raised for a short period of time by having the protagonist stand on the activation trigger. The player must pass through the gates while they are open, avoiding locking triggers. Sometimes, there are various traps between an unlock trigger and a gate.

Hostile swordsmen (Jaffar and his guards) are yet another obstacle. The player obtains a sword in the first stage, which they can use to fight these adversaries. The protagonist's sword maneuvers are as follows: advance, back off, slash, parry, or a combined parry-then-slash attack. Enemy swordsmen also have a health indicator similar to that of the protagonist. Killing them involves slashing them until their health indicator is depleted or by pushing them into traps while fighting.

A unique trap encountered in stage four, which serves as a plot device, is a magic mirror, whose appearance is followed by an ominous leitmotif. The protagonist is forced to jump through this mirror upon which his doppelganger emerges from the other side. This apparition later hinders the protagonist by stealing a potion and throwing him into a dungeon. The protagonist cannot kill this apparition as they share lives; any damage inflicted upon one also hurts the other. Therefore, the protagonist must merge with his doppelganger.

Once they have merged, the player can run across an invisible bridge to a new area, where they battle Jaffar (once the final checkpoint is reached, the player will no longer get a game over screen even if time runs out, except if the player dies after the timeout). Once Jaffar is defeated, his spell is broken and the Princess can be saved. In addition, the in-game timer is stopped at the moment of Jaffar's death, and the time remaining will appear on the high scores.

Development

Development for the game began in 1985, the year Jordan Mechner graduated from Yale University. At that time, Mechner had already developed one game, Karateka, for distributor Brøderbund. Despite expecting a sequel to Karateka, the distributor gave Mechner creative freedom to create an original game. The game drew from several sources of inspiration beyond video games, including literature such as the Arabian Nights stories, and films such as Raiders of the Lost Ark and The Adventures of Robin Hood.

Mechner used an animation technique called rotoscoping, with which he used footage to animate the characters' sprites and movements. To create the protagonist's platforming motions, Mechner traced video footage of his younger brother running and jumping in white clothes. To create the game's sword fighting sprites, Mechner rotoscoped the final duel scene between Errol Flynn and Basil Rathbone in the 1938 film The Adventures of Robin Hood.[8] Though the use of rotoscoping was regarded as a pioneering move, Mechner later recalled that "when we made that decision with Prince of Persia, I wasn't thinking about being cutting edge - we did it essentially because I'm not that good at drawing or animation, and it was the only way I could think of to get lifelike movement."Also unusual was the method of combat: protagonist and enemies fought with swords, not projectile weapons, as was the case in most contemporary games. Mechner has said that when he started programming, the first ten minutes of the film Raiders of the Lost Ark had been one of the main inspirations for the character's acrobatic responses in a dangerous environment.

For the Japanese computer ports, Arsys Software and Riverhillsoft enhanced the visuals and redesigned the Prince's appearance, introducing the classic turban and vest look. This version became the basis for the Macintosh version and later Prince of Persia ports and games by Brøderbund. Riverhillsoft's FM Towns version also added a Red Book CD audio soundtrack.

📕 Description [fr]

Un portage amélioré du jeu Prince Of Persia, par Dávid Nagy (NagyD) et la SDLPoP Team, d'après le jeu original Prince Of Persia par Jordan Mechner pour le studio Brøderbund.

SDLPoP (anciennement "David's open-source port of PoP") est un portage libre, multi-plateforme et amélioré du jeu Prince Of Persia (1989, non libre) de Jordan Mechner (pour le studio Brøderbund), un jeu d'action et d'aventure en plateforme dans lequel le Prince ne dispose que d'une heure pour s'échapper des geôles du palais où il est détenu par le grand vizir Jaffar avant que n'expire l'ultimatum que celui-ci a fixé à la princesse - amante du Prince, au delà duquel il la fera exécuter si elle ne l'épouse pas. Ce portage SDL apporte des tonnes d'améliorations, dont la possibilité de le modder. Excellent !


Un portage open source de Prince of Persia, basé sur le désassemblage de la version DOS.

Nom du programme: SDLPoP
(Nom antérieur: David's open-source port of PoP)

Auteur: David de forum.princed.org (NagyD sur GitHub)
Contributeurs: (voir ci-dessus)

LICENCE
Ce programme est open source selon les termes de la licence publique générale GNU, voir gpl-3.0.txt et src / GPLv3.h.



🌍️ Wikipedia:

Prince of Persia (jeu vidéo, 1989)

Prince of Persia est un jeu vidéo d'action/réflexion et d'aventure en deux dimensions développé par Brøderbund et sorti en 1989 pour le micro-ordinateur 8 bits Apple II. Développé par Jordan Mechner pendant près de 4 ans, il rencontre un fort succès. Traduit dans 6 langues, et porté sur une vingtaine de supports, le jeu s'est vendu à plus de 2 millions d'exemplaires à travers le monde.

Il est resté célèbre pour la qualité des animations par rapport aux autres jeux de l'époque grâce à l'utilisation de la technique de rotoscopie. Il est le premier épisode de la saga Prince of Persia et le premier épisode du premier cycle de la série.

Le jeu est novateur et abouti sur bien des aspects : on y trouve une animation très fluide et détaillée du personnage, jointe à un comportement et des aptitudes physiques réalistes, à contre-courant de nombreux jeu d'arcade de l'époque; l'utilisation de la barre de vie, encore rare à cette époque; un temps limité pour achever l'aventure; des combats originaux : le protagoniste et les ennemis s'affrontent à l'épée, et non avec toutes sortes de projectiles comme dans les jeux qui lui sont contemporains; l'absence de tout score ou encore l'inclusion de scènes cinématiques (séquences où le joueur devient spectateur et n'a plus de contrôle sur le personnage).

Scénario

Le jeu se déroule dans une Perse ancienne empreinte de légendes et de magie. Alors que le sultan est parti en guerre, le grand vizir Jaffar fait régner la terreur sur le pays. Mais pour jouir d'un pouvoir total, il doit épouser la princesse, il lui pose alors un ultimatum d'une heure pour accepter sa requête avant de la faire exécuter. Le seul espoir de la princesse est son jeune amant (appelé simplement Prince), nouvellement arrivé au pays, mais déjà jeté dans les geôles du palais par Jaffar. Dans sa cellule, une dalle s'effondre sous son poids et le prince accède aux souterrains du château. Il va tout faire pour rejoindre sa dulcinée et vaincre Jaffar dans le temps imparti.

Système de jeu

Le joueur contrôle avec beaucoup de finesse un personnage vu de profil, qui peut marcher, courir, se baisser, sauter, s'accrocher, et combattre à l'épée. Le but est de terminer tous les niveaux dans le temps imparti, c’est-à-dire une heure.

Ceux-ci consistent en donjons de plus en plus grands, contenant des pièges tels que des précipices, des dalles se dérobant sous les pieds, des pics sortant du sol à leur approche, etc. Des fioles se trouvent en divers endroits, et peuvent rendre de l'énergie au personnage, voire augmenter son énergie maximale, ou au contraire lui en retirer. De nombreux gardes sont également présents, bien que la difficulté et l'intérêt du jeu soient essentiellement dans son aspect jeu de plateformes. Ces gardes sont pour la plupart similaires, mais certains ont toutefois des caractéristiques propres comme le garde du niveau 8, qui n'attaque jamais le premier, ou le gros garde du niveau 6, défendant et contre-attaquant systématiquement.

À noter également que le "Prince" devra affronter un squelette, mais également un spectre de lui-même. L'objectif final est la libération de la princesse, prisonnière du Vizir.

Développement

(...)

🚧️ Installation ➜ 🚀️ Launching [fr]

⚙️ Installation à partir du binaire
Pas de binaire disponible.

📄️ Installation à partir du source

Installation :
• Téléchargez son source via la commande suivante : $ git clone https://github.com/pleft/SDLPoP.git
• Installez au préalable le(s) paquet(s) suivant(s) : sdl2

• Décompressez son source, puis dans son répertoire racine lancez successivement :
$ cd SDLPoP
$ cd src
$ make all


🚀️ LANCEMENT DU JEU:

• En console dans son répertoire racine lancez : $ ./prince

⌨️🖱️🎮️ CONTRÔLES:

(Readme.txt)

(...)

Q: What command-line options are there?
A:
• megahit -- Enable cheats.
• a number from 0 to 15 -- Start the given level. (if cheats are enabled)
• draw -- Draw directly to the screen, skipping the offscreen buffer.
• full -- Run in full screen mode.
• demo -- Run in demo mode: only the first two levels will be playable, and quotes from magazine reviews will be displayed.
• record -- Start recording immediately. (See the Replays section.)
• replay or a *.P1R filename -- Start replaying immediately. (See the Replays section.)
• validate "replays/replay.p1r" -- Print out information about a replay file and quit. (See the Replays section.)
• mod "Mod Name" -- Run with custom data files from the folder "mods/Mod Name/"
• debug -- Enable debug cheats.
• --version, -v -- Display SDLPoP version and quit.
• --help, -h, -? -- Display help and quit. (Currently it only points to this Readme...)
• seed=number -- Set initial random seed, for testing.
• --screenshot -- Must be used with megahit and a level number. When the level starts, a screenshot is saved to the screenshots folder and the game quits.
• --screenshot-level -- Similar to the above, except the whole level is screenshotted, thus creating a level map.
• --screenshot-level-extras -- Similar to the above, except lots of additional info is displayed on the picture. You can find the meaning of each symbol in Map_Symbols.txt.

Q: What keys can I use?
A:
Controlling the kid:
• left: turn or run left
• right: turn or run right
• up: jump or climb up
• down: crouch or climb down
• shift: pick up things
• shift+left/right: careful step
• home or up+left: jump left
• page up or up+right: jump right
You can also use the numeric keypad.

Gamepad equivalents:
• D-Pad: arrows
• Joystick: left/right (for all-directional joystick movement, set joystick_only_horizontal to false in SDLPoP.ini)
• A: down
• Y: up
• X or triggers: shift
• Start or Back: display in-game menu

Controlling the game:
• Esc: pause game
• Space: show time left
• Ctrl-A: restart level
• Ctrl-G: save game (on levels 3..13)
• Ctrl-J: joystick/gamepad mode
• Ctrl-K: keyboard mode
The initial mode is joystick/gamepad if such a device is detected, otherwise keyboard mode.
The game will automatically change input mode when there is input from either device.
• Ctrl-R: return to intro
• Ctrl-S: sound on/off
• Ctrl-V: show version of SDLPoP
• Ctrl-C: show versions of SDL:
COMP: the SDL version SDLPoP was compiled against, i.e. the version of the SDL headers.
LINK: the SDL version SDLPoP was linked against, i.e. the version of SDL2.dll (or its equivalent on other platforms).
• Ctrl-Q: quit game
• Ctrl-L: load game (when in the intro)
• Alt-Enter: toggle fullscreen
• F6: quicksave
• F9: quickload
• F12: Save a screenshot to the screenshots folder.
• Backspace: display in-game menu

Viewing or recording replays:
• Ctrl+Tab (in game, or on title screen): start or stop recording
• Tab (on title screen): view/cycle through the saved replays in the SDLPoP directory
• F (while viewing a replay): skip forward to the next room
• Shift-F (while viewing a replay): skip forward to the next level

Cheats:
• Shift-L: go to next level
• c: show numbers of current and adjacent rooms
• Shift-C: show numbers of diagonally adjacent rooms
• -: less remaining time
• +: more remaining time
• r: resurrect kid
• k: kill guard
• Shift-I: flip screen upside-down
• Shift-W: slow falling
• h: look at room to the left
• j: look at room to the right
• u: look at room above
• n: look at room below
• Shift-B: toggle hiding of non-animated objects
• Shift-S: Restore lost hit-point. (Like a small red potion.)
• Shift-T: Give more hit-points. (Like a big red potion.)
• Shift+F12: Save a screenshot of the whole level to the screenshots folder, thus creating a level map.
• Ctrl+Shift+F12: Save a screenshot of the whole level with extras to the screenshots folder. You can find the meaning of each symbol in Map_Symbols.txt.

Debug cheats:
• [: shift kid 1 pixel to the left
• ]: shift kid 1 pixel to the right
• t: toggle timer

Q: Where is the music?
A:
Since version 1.13, the game supports loading music from the data/music folder.
Until 1.15, music was not included in releases because it is very big, and it does not change between SDLPoP versions.
You need to get the music from here (38 MB): https://www.popot.org/get_the_games/various/PoP1_DOS_music.zip
It's the last link here: https://www.popot.org/get_the_games.php?game=1
Copy the OGG files to the data/music folder.

Since version 1.15, music is included.

Since version 1.18, SDLPoP can play music from the MIDISND*.DAT files and OGG files are not included.

MODS
====

Q: Can I play mods?
A:
Since version 1.02, the game supports LEVELS.DAT, and since version 1.03, the game can use all .DAT files.
You can either copy the modified .DAT files to the folder of the game, or the game to the mod's folder.

Since version 1.17, the game can also load from mod folders that have been placed in the "mods/" directory.
If you use this method, only the files different from the original V1.0 data are required in the mod's folder.
To choose which mod from the "mods/" folder to play, do one of the following:
• Open SDLPoP.ini and change the 'levelset' option to the name of the mod's folder.
• Use the command line option "mod", like so: prince.exe mod "Mod Name"
Hall-of-Fame and saved game files will also be placed in the mod's folder.

Another way to play a mod is to start the game while the current directory is the mod's directory.
You can do this from the command line, or with batch files / shell scripts.
This is useful if you want to compare the behavior of this port and the original DOS version (to find bugs).
Especially if you're editing the level and don't want to copy LEVELS.DAT from one place to the other.
/!\ Note that as of 1.03, the data/font folder and its contents must exist in the current directory!
Since 1.11, the data/font folder is no longer required.

Since version [upcoming], SDLPoP can recognize most changes made with CusPoP in a DOS mod's PRINCE.EXE.
Since version 1.16, you can configure some options in SDLPoP.ini: starting time, level types, etc.
In addition, since version 1.17, mods in the "mods/" folder can use a custom configuration file "mod.ini".
Options in this file can override (most of) the gameplay-related options in SDLPoP.ini.

Beware, some mods (especially the harder ones) might rely on bugs that are fixed in SDLPoP.
You can choose whether gameplay quirks should be fixed or not in the file 'SDLPoP.ini':
- Set the option 'use_fixes_and_enhancements' to 'false' to get the exact behavior of the original game.
- Alternatively, set the option 'use_fixes_and_enhancements' to 'true'. You can then also enable or disable
individual fixes and enhancements, depending on your preference.
You can also enable or disable gameplay fixes through the in-game menu.
- In the settings menu, look for the option "Enhanced mode (allow bug fixes)" in the GAMEPLAY section.

Furthermore, SDLPoP opens up new possibilities for mod making.
For example:
Falcury released a mod, called "Secrets of the Citadel" that "has been designed to be played using a modified version of SDLPoP".
Description and download: https://forum.princed.org/viewtopic.php?f=73&t=3664
Alternate link: https://www.popot.org/custom_levels.php?mod=0000153

Since version 1.16, there is support for fake tiles, for example walls that the prince can go through.
The Apoplexy level editor supports these additional tiles since v3.0: https://www.popot.org/level_editors.php?editor=apoplexy
(Just don't overuse them, please!)

REPLAYS
=======

Q: How do replays work?
A:
Starting from version 1.16, you can capture or view replays in SDLPoP.
To start recording, press Ctrl+Tab on the title screen or while in game. To stop recording, press Ctrl+Tab again.
Your replays get saved in the "replays/" directory as files with a .P1R extension.
You can change the location where replays are kept using the setting 'replays_folder' in SDLPoP.ini.

If you want to start recording on a specific level, you can use the command "prince.exe record ",
where is the level on which you want to start.

To view a replay, you can press Tab while on the title screen.
To cycle to the next replay (in reverse creation order), press Tab again.
You can also double-click on a replay file (and tell the OS that the file needs to be opened with the SDLPoP executable).
SDLPoP will then immediately play that replay. Dragging and dropping onto the executable also works.
While viewing a replay, you can press F to skip forward to the next room, or Shift+F to skip to the next level.

Your settings specified in SDLPoP.ini (including whether you are playing with bugfixes on or off) are remembered in the replay.
It shouldn't matter how SDLPoP.ini is set up when you are viewing the replay later.
Note that any cheats you use do not get saved as part of the replay.

To print out information about the replay from the command-line, you can use the 'validate' command-line parameter.
Example usage: prince validate "replays/replay.p1r"

DEVELOPING
==========

(...)

🕵️ Test [fr]

🕵️ Test (1.18.1, sur Debian Sid 32-bits) par goupildb :

🎯️ Objectif: rédiger/mettre à jour/valider sa notice d'installation, tester son fonctionnement et partager mes premières impressions.

🫕️ Installation :
Le jeu s'installe facilement (par compilation), il est livré avec les tableaux d'origine (aucun téléchargement externe n'est nécessaire) et sa bande son.
De plus il supporte le joystick et les mods (non testé).

🕹️ Conclusion :
Impression globale : 👍️
Excellent !
👏️ ❤️ Un grand bravo et merci aux auteurs de SDLPoP et à Jordan Mechner !