MININIM 202505220946 ()
***********************

   _Menininho_ is the Brazilian Portuguese word for _male kid_, and
_mininim_ is how it’s informally pronounced throughout the country.
_Kid_ is the term used by _Jordan Mechner_(1) when referring to the main
character of his most famous game — *Prince of Persia* — in its source
code and documentation, because the character’s movements were derived
from rotoscoping footage of Mechner’s little brother.  *MININIM* is the
_Advanced Prince of Persia Engine_, written from scratch by computer
programmer and free software activist _Bruno Félix Rezende Ribeiro_
(‘oitofelix’).  Bruno had a childhood dream of deciphering the secrets
of his favorite game that introduced him to computing — a dream dreamt
when he was just a kid, a dream realized now that he’s still a _mininim_
deep in his heart.(2)

   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’).
_MININIM is free software_; you can redistribute it and/or modify it
under the terms of the GNU GPL (http://www.gnu.org/licenses/gpl.html)
(General Public Licence) as published by the FSF (Free Software
Foundation); either version 3, or (at your option) any later version.

   In addition to being already a complete replacement for the original
game with several improvements, MININIM aims to have detailed
documentation on all matters concerning the original Prince of Persia
world, ranging from its design concepts to the engine’s practical use
and development.  _MININIM documentation is free_; you can redistribute
it and/or modify it under the terms of the GNU FDL
(http://www.gnu.org/licenses/fdl.html) (Free Documentation Licence) as
published by the FSF — with no Invariant Sections; either version 1.3,
or (at your option) any later version.

   MININIM features various improvements over the original game, too
many to make an exhaustive list here.  Some of its noteworthy advantages
are:

   • Portable to modern operating systems.
   • Complete built-in level editor featuring an uniform and
     non-intrusive bottom-line menu interface and unlimited undo/redo
     for level modifications.
   • Video, environment, hue and guard modes may be selected on-the-fly.
   • Joystick mapping and threshold configuration.
   • Improved battle system based on upgradable skills, arbitrary number
     of simultaneous fighters and smarter enemy AI.
   • Real-time responsiveness, higher world interaction accuracy and
     more stable animations.
   • New useful movements.
   • Integrated configuration system using multiple back-ends.
   • Capability of loading level files in multiple formats, including
     legacy and native level formats.

News
====

*Features:*

   • Complete on-the-fly level editor.
   • Uniform and non-intrusive bottom-line menu interface.
   • Unlimited undo/redo capability for level playing and editing
     modifications.
   • Native level format.
   • Add 7 styles for skeleton and shadow for symmetry with guards.
   • Add option ‘--convert-levels’ to batch convert legacy formats to
     the native format.
   • Guards can back off in refraction periods.
   • Add ‘SHIFT+M’ previous level command key binding.

*Behavior changes:*

   • New default value for ‘--level-module’ option: ‘NATIVE’.
   • Data files looked for first in the user data directory, where
     native levels are saved by the level editor in order to make it
     easier to work with.
   • LEVELS.DAT loading path changed from resources directory to working
     directory, to make this legacy mechanism compatible with symbolic
     links.
   • ‘SHIFT+L’ doesn’t play level cut-scenes anymore, for faster
     progression.

*Bug fixes:*

   • Chopper doesn’t handle step extension correctly.
   • Drawing of rooms with broken links is ill-behaved.  There are
     glitches in room drawing for rooms with more than one link to the
     same room, and kid drawing glitches for rooms linked to themselves,
     as well as several other minor glitches.
   • Foreground drawing glitches when ‘ARCH_BOTTOM’ is below an ordinary
     floor.
   • Spurious collisions happen when the kid is climbing at the limits
     of a room linked to itself.
   • The kid can’t hang turn properly in a hangable place with a closed
     door in the opposite direction he’s facing.
   • Spikes kill kid in the last few frames of landing after a normal
     jump.
   • ‘BIG_LIFE_POTION’ doesn’t fill all life points, if the kid has the
     maximum amount of life point containers.
   • Legacy level module ignore guards with invalid palette.
   • Skeleton doesn’t hold his sword when falling.
   • Interrupting a video effect before its end results in normal draw
     cycles being skipped.
   • Sometimes the crossing mirror sound is played more than once.
   • Shadow’s sword isn’t white.
   • Mirror is not fully opaque.
   • Approximately 25% of the time balcony stars don’t respect the
     paused game state.
   • Not all pillar types are rigid.
   • The game crashes when the option ‘--start-time’ receives a value
     larger than the option ‘--time-limit’.

Links
=====

Homepage
     <http://oitofelix.github.io/mininim/>
Atom feed
     <http://oitofelix.github.io/feed.xml>
Forum
     <http://forum.princed.org/viewforum.php?f=127>
IRC channel
     <irc://irc.freenode.net/mininim>
Bug reporting
     <https://github.com/oitofelix/mininim/issues>
VCS
     <https://github.com/oitofelix/mininim>

Download
========

User’s Manual
-------------

   If you just want to have a look in the latest release documentation,
you can download the manual in PDF format separately.

   <https://github.com/oitofelix/mininim/releases/download/v202505220946/mininim-202505220946.pdf>

Windows
-------

   If you are under Microsoft Windows a MinGW build is readily
available.  No installation is required, just extract the zip archive
and run ‘mininim.exe’.  The PDF manual is bundled as well.

   <https://github.com/oitofelix/mininim/releases/download/v202505220946/mininim-202505220946-win32.zip>

GNU/Linux
---------

   If you use GNU/Linux, you have to build from source.  This should be
quite straightforward, provided you install the Allegro 5 development
libraries using your distribution’s package manager.  If you use an apt
based distribution (Debian, Ubuntu, ...)  you can do this by invoking
the command:

     sudo apt-get install '^liballegro.*5-dev$'

   When building the sources, the usual incantation ‘./configure &&
make’ is often enough.  The installation step (‘make install’) is
optional as MININIM is able to run directly from its source directory
(provided you don’t make a ‘VPATH’ build, in which case you need to
specify the _data path_.  See the ‘--data-path’ option).

Here are the compressed sources and a GPG detached signature:

   • 
     <https://github.com/oitofelix/mininim/releases/download/v202505220946/mininim-202505220946.tar.gz>
   • 
     <https://github.com/oitofelix/mininim/releases/download/v202505220946/mininim-202505220946.tar.gz.sig>

   Use the ‘.sig’ file to verify that the corresponding file (without
the ‘.sig’ suffix) is intact.  First, be sure to download both the
‘.sig’ file and the corresponding tarball.  Then, run this command:

     gpg --verify mininim-202505220946.tar.gz.sig

   If that command fails because you don’t have the required public key,
then run this command to import it:

     gpg --recv-keys 0x28D618AF --keyserver hkp://keys.gnupg.net

and rerun the ‘gpg --verify’ command.

   This release is signed by _Bruno Félix Rezende Ribeiro_.  His key
fingerprint is ‘7CB1 208C 7336 56B7 5962 2500 27B9 C6FD 28D6 18AF’.

This release was bootstrapped with the following tools:
   • GNU Autoconf
   • GNU Automake
   • GNU Texinfo

To do
=====

   The following additional features are planned to be implemented
eventually.

   • Arbitrary number of events, guards and rooms per level
   • Guile scripting and arbitrary number of levels
   • Network play
   • Level generator module

Please, support MININIM development!
====================================

   *MININIM* development is voluntary.  If you like this game and want
to thank the author for the work he has done so far, or want to enable
him to spend more time improving it, please make a donation!  For values
equal or greater than 50 US$ or 0.12 BTC your name will be acknowledged
in the manual section “Donors” and in the donors page at the author’s
website (<http://oitofelix.github.io/funding.html#donors>).  If you
decide to make recurrent donations, the total amount of your donations
will be updated every month for all records.  Please, donate at
<http://oitofelix.github.io/funding.html>.
                     *Thank you for your support!*

   ---------- Footnotes ----------

   (1) Jordan Mechner (born June 4, 1964) is an American video game
designer, author, screenwriter, and filmmaker, best known for creating
the Prince of Persia video game franchise and the 8-bit computer game
Karateka.

   (2) Of course, none of this is reason enough to name a game engine
“MININIM”, if not by the fact that it’s a really cool palindrome!

