Depot Games: MININIM: The Advanced Prince of Persia Engine (a c
Links: Web Site
MININIM is the Advanced Prince of Persia Engine — a childhood dream, the free software implementation of Jordan Mechner’s masterpiece game, developed from scratch by Bruno Félix Rezende Ribeiro (oitofelix).
Joystick support. To use a joystick just plug it in and press ‘CTRL+J’ to enable and auto-calibrate it on the fly. See the manual for the default mapping. If the default mapping doesn’t suit you or your joystick, you can use the options ‘–joystick-axis’, ‘-joystick-button’ and ‘–joystick-info’ to define a new mapping. In case your joystick is ill-behaved the ‘–joystick-axis-threshold’ and ‘–joystick-button-threshold’ options may help. Using a joystick doesn’t disable the keyboard — you can use both interchangeably.
Classic numeric keypad control. This is always enabled, and can be used along the two other input methods (arrow keys and joystick). The original game manual used to refer to this as the standard input method.
Apoplexy level editor integration. Just copy MININIM’s executable along with any dlls (if under Windows) and its ‘data’ directory to apoplexy’s ‘prince/’ directory, rename the executable to ‘prince.exe’ (‘prince’ if under GNU/Linux) and make sure there is a ‘LEVELS.DAT’ file there, and you are ready to go. Apoplexy will invoke MININIM as a drop-in replacement for the original engine.
Hue coloring support. This makes the engine able to render VGA color schemes like the 1.3 and 1.4 versions of the original game. That’s the default. You can force particular hue modes by using the ‘–hue-mode’ option or the ‘F9’ key binding. To revert to the previous and classic behavior use ‘–hue-mode=NONE’.
Support for reading legacy PoP 1 ‘LEVELS.DAT’ file using the option ‘–legacy-level=DAT’. Put the ‘LEVELS.DAT’ file inside ‘data/dat-levels/’ directory and use that option.
Support for reading legacy PoP 1 PLV extended level files using the option ‘–legacy-level=PLV’. Put the ‘00.plv’..‘15.plv’ PLV files inside ‘data/plv-levels/’ and use that option.
Command line legacy compatibility for the sake of applications which use it. Used by apoplexy.
‘LEVELS.DAT’ legacy loading behavior compatibility for the sake of applications that rely on it. Used by apoplexy. Just put the ‘LEVELS.DAT’ file in the same directory as the ‘mininim’ executable and preference will be given to it, over the legacy level files under the ‘dat/legacy-levels/’ directory.
Kid start position can be specified using the ‘–start-pos’ option. Very useful for placing the kid in a specific place for tests. To start with the kid in level 12, room 15, floor 0 and place 7, invoke MININIM with the options ‘–start-level=12 –start-pos=15,0,7’.
Disable screensaver by default.
Guards have infallible defense in refraction periods, for longer and more dramatic battles.
Shadow in legacy level 12 has the same total/current life points as the kid, and life points are taken off one at a time, for a longer and more dramatic battle.
‘–keyboard-flip-mode’ option renamed to ‘–gamepad-flip-mode’, since now it applies to joysticks as well.
All the bugs the author knew about at the time of this release have been fixed. If you’ve found a bug or annoyance in the previous version, chances are it has been fixed, as well. ;-)
Spurious wall collision occurs in kid’s stabilization movement.
Kid can’t hang on a ledge after a long floating fall.
Kid’s run movement after a running turn starts one frame off.
In some circumstances the kid is unable to reach the other end after a jump, as if a force field prevented him from landing there.
Kid dies after just touching guards.
Guards spuriously attack thin air while trying to prevent the kid from bypassing them.
While in counter attack and counter defense mode kid defends even if too far from the guard, when he could otherwise let the guard strike only thin air.
Restarting the game while it’s paused causes it to get stuck in a paused state after the title screen.
It’s hard to perform 3-tile running jumps because MININIM is lacking platform edge detection.
Kid doesn’t stumble on guards, in case he manages to pass through them without being hit.
Guards continue to advance towards the kid, even when he is running towards them.
Guard mode changing doesn’t work for guards that died falling, spiked or chopped.
Kid can’t battle properly against more than one guard at once.
Shadow death music in level 12 plays in a row if reviving kid with R repeatedly in a short period of time.
Legacy level rooms above room 0 may have traversable constructions at bottom over room 0’s walls.
In legacy level 12 shadow appears sooner than expected if the kid manages to enter room 15 from below after exiting room 18 to the right.
Guards turn too quickly when their attention is grabbed from opposite directions in a short period of time.
Drawing glitches occur in several situations involving two characters near each other.
Fight mode collision detection is ill-behaved for kid and guards.
Game doesn’t pause while saving.
In some cases of death after fight, the normal death tune is played along the fight one.
Falling close to door makes kid collide and stabilize standing, instead of crouching.
Guard chasing logic has flaws and corner cases that result in counter-intuitive guard behavior in certain situations.
If the kid is exactly 27 pixels from falling, walking to the very edge and then from there again doesn’t trigger a misstep.
Turning close to door at its left causes a spurious collision.
Game saves should store the remaining time of when kid first enters the level, not of when the game is saved.
Simple jump might fall earlier than expected.