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’).

This is the README file for MININIM version 202505220946.

   Copyright © 2016 Bruno Félix Rezende Ribeiro

     Permission is granted to copy, distribute and/or modify this
     document under the terms of the GNU Free Documentation License,
     Version 1.3 or any later version published by the Free Software
     Foundation; with no Invariant Sections.  A copy of the license is
     included in the file ‘GNU-FREE-DOCUMENTATION-LICENSE’.


— Table of Contents —
Preface
1 Description
2 Distribution
3 Getting a copy
4 Contact
5 Bug reporting
6 Contributing
7 Donating
8 Hacking
8.1 MinGW


Preface
*******

   This file briefly discuss matters relevant to MININIM while a
software package: build, installation, distribution and contribution are
some of the covered topics.  Bear in mind that instructions in this file
are package-specific; for general and in-depth configuration, build and
installation instructions refer to the ‘INSTALL’ file present in the
top-level directory of the source distribution.  If you have checked out
the source tree from the VCS repository see *note Hacking::.

   For other information about this package you can check the following
files found in the top level directory of the distribution:

‘NEWS’
     User-visible changes since previous versions;
‘TODO’
     Features we want to see implemented someday;
‘THANKS’
     List of contributors;
‘DONORS’
     People who supported the development by donations;
‘INSTALL’
     Generic build and installation instructions;
‘ABOUT-NLS’
     Internationalization and localization matters;
‘COPYING’
     The program license;
‘GNU-FREE-DOCUMENTATION-LICENSE’
     The documentation license;
‘ChangeLog’
     Detailed list of changes of the source code;
‘LINUX-AND-THE-GNU-SYSTEM’
     Article by Richard Stallman (RMS) talking about the relationship
     between the GNU operating system and the kernel Linux.

   For more information about this program you can visit its home page
at <http://oitofelix.github.io/mininim/>.  If you want to receive
notifications about new releases of this program subscribe to the
author’s atom feed at <http://oitofelix.github.io/feed.xml>.

1 Description
*************

   _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.

2 Distribution
**************

   This program is “free software”; this means that everyone is free to
use it and free to redistribute it under certain conditions.  This
program is not in the public domain; it is copyrighted and there are
restrictions on its distribution, but these restrictions are designed to
permit everything that a good cooperating citizen would want to do.
What is not allowed is to try to prevent others from further sharing any
version of this program that they might get from you.  The precise
conditions are found in the GNU General Public License (‘COPYING’ file).
The program manual is covered by the GNU Free Documentation License
(‘GNU-FREE-DOCUMENTATION-LICENSE’ file).  This license is similar in
spirit to the GNU General Public License, but is more suitable for
documentation.

   ---------- 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!

3 Getting a copy
****************

   One way to get a copy of this program is from someone else who has
it.  You need not ask for our permission to do so, or tell any one else;
just copy it.  If you have access to the Internet, you can get the
latest distribution version of this program at
<http://oitofelix.github.io/mininim/>.

   A VCS repository, where the development takes place, is also
available.  It maintains the full history of modifications for every
single source file.  You can checkout any given revision of any file or
get an snapshot of the entire source tree in a particular desired state.
Special build tools, as described in *note Hacking::, are required to
build from those checkouts.  To stay up to date with the latest
developments in the source tree, you can anonymously checkout the
repository with the following command:
     git clone https://github.com/oitofelix/mininim.git

4 Contact
*********

   You can get in touch with other users of this program by posting to
its forum at <http://forum.princed.org/viewforum.php?f=127>.  You may
also join us on our friendly IRC channel at
<irc://irc.freenode.net/mininim>.  You can contact the author at
<oitofelix@gnu.org>.

5 Bug reporting
***************

   You can report bugs at <https://github.com/oitofelix/mininim/issues>.
Please, when reporting a bug include enough information for the author
to reproduce the problem.  Generally speaking, that means:

   • The contents of any input files necessary to reproduce the bug and
     command line invocations of the program(s) involved (crucial!).
   • A description of the problem and any samples of the erroneous
     output.
   • The version number of the program(s) involved (use ‘--version’).
   • Hardware, operating system, and compiler versions (‘uname -a’).
   • Unusual options you gave to configure, if any (see
     ‘config.status’).
   • Anything else that you think would be helpful.

6 Contributing
**************

   This program is a collaborative effort and we encourage contributions
from anyone and everyone — your help is very much appreciated.  You can
help in many ways:

   • Donate to the author in order to support his work.  *Note
     Donating::.
   • Help users in the forum and IRC channel.  *Note Contact::.
   • Find and report bugs.  *Note Bug reporting::.
   • Suggest new features.
   • Submit portability patches.

7 Donating
**********

   *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!*

8 Hacking
*********

The development sources are available through VCS:

     https://github.com/oitofelix/mininim

   If you are getting the sources from the VCS (or change
‘configure.ac’), you’ll need to have *Automake* and *Autoconf* to
(re)build the configuration script.  To build the binary *GCC*, *GNU
Make*, *gnulib*, and *Allegro 5* (>= 5.0.9) development library are
necessary as well.  For building the documentation you’ll need
*Texinfo*, *TeX Live* and *help2man*.  All these should be available
from 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 automake autoconf gcc make gnulib liballegro5-dev \
     liballegro-image5-dev liballegro-audio5-dev liballegro-acodec5-dev \
     liballegro-dialog5-dev texinfo texlive texlive-generic-recommended help2man

   When building the sources, the usual incantation ‘./bootstrap &&
./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).  After
that first time, running ‘make’ should suffice to rebuild the program
with your changes.  See file ‘INSTALL’.

   When committing changes to the repository always create an entry in
the ‘doc/release/latest-news.texi’ file for any user-visible changes or
additions made.  This file is intended to provide the latest release
news for the ‘NEWS.texi’ and ‘ANNOUNCEMENT.texi’ files to avoid
duplication of information and syncing work.  After a release is made
the news items should be moved to the ‘NEWS.texi’ file and another news
list should be built from scratch in the ‘latest-news.texi’ file.

8.1 MinGW
=========

   These are the steps to build using MinGW, in a machine running
Microsoft Windows.

   • Download and install git: <https://git-scm.com/download/win>.

   • Clone the gnulib repository: ‘git clone
     git://git.savannah.gnu.org/gnulib.git’ and add the gnulib root to
     your ‘PATH’.

   • Download MinGW:
     <http://downloads.sourceforge.net/project/mingw/Installer/mingw-get-setup.exe>

   • Install the packages: ‘mingw32-base’, ‘mingw32-gcc-g++’,
     ‘msys-base’, ‘mingw32-autoconf’, ‘mingw32-automake’.

   • Rename the file ‘C:/MinGW/msys/1.0/etc/fstab.sample’ to ‘fstab’.

   • Download Allegro:
     <http://cdn.allegro.cc/file/library/allegro/5.0.10/allegro-5.0.10-mingw-4.7.0.zip>
     and extract its root folder’s contents to ‘C:\MinGW’.

   • Run msys: ‘C:\MinGW\msys\1.0\msys.bat’

   • Clone the repository: ‘git clone
     https://github.com/oitofelix/mininim.git’

   • Build: ‘cd mininim && ./bootstrap && ./configure && make’

   • Distribute the resulting binary mininim.exe along with the
     following dlls: ‘C:\MinGW\bin\libstdc++-6.dll’ and
     ‘C:\MinGW\bin\libgcc_s_dw2-1.dll’.

