Skip to content

Releases: oitofelix/mininim

Alpha release (small size)

28 Sep 05:15
Compare
Choose a tag to compare
Pre-release
v200928

Fix dynamic loading

Alpha-release next branch

27 Sep 05:22
Compare
Choose a tag to compare
Pre-release
v200927

Adapt configure.ac to use more recent gnulib and Lua

Debug release

26 Sep 18:11
Compare
Choose a tag to compare
Debug release Pre-release
Pre-release
v200926

Facilitate debug releases

Alpha release from next branch

25 Sep 20:02
Compare
Choose a tag to compare
Pre-release
Revert "Initial porting to Org Mode Babel Literate Programming paradigm"

This reverts commit 2a75490248b9982cbc71455f59db30c0d88d15af.

MININIM 201701122309

13 Jan 01:37
Compare
Choose a tag to compare

I'm glad to announce the release of MININIM 201701122309.

  • Allegro upgrade
    • MININIM releases now use my own fork of Allegro 5.2.3. That's a significant upgrade from the previously used 5.0.10. My fork may have improvements brought to the library through MININIM. Like these. If you are building from source consider using it for best results.
    • I plan no rupture from upstream Allegro. MININIM future releases should continue to build properly using vanilla 5.0.10 or my own fork of the latest development version, the only difference being the set of available features.
    • Windows releases of MININIM now come with a default "allegro5.cfg" file which the user may use to fine tune Allegro.
    • Unfortunately recent versions of Allegro have a bug where joystick initialization fails on Windows. That has been reported by me here. The workaround is to use debug builds of Allegro (with debug symbols stripped off, of course). Users should notice no difference (besides some additional Allegro debug/logging optional facilities, useful for bug reports of low level failures).
    • Useful features made available in recent versions of Allegro are planned to be used in next MININIM releases.

News of this release:

  • Haptics fully integrated into game mechanics.

    • The player can feel kid's muscular effort and body movement, falls, collisions, harm, potion effects, sword hits and bumps, its surroundings, pressing, shaking and breaking floors, choppers closing, spikes coming out, and more.
    • The option --gamepad-rumble-gain scales down every effect proportionally in case the default is too intense for the available gamepad (or the player's taste). A value of 0 disables haptic effects altogether.
    • Option --joystick-info reports all haptic effects supported by the connected joystick. However, all effects used by MININIM are implemented in software using just the simplest constant force feedback for maximum portability and perfect timing with in-game events. The currently implemented software effects are: gain, sine, triangle and queue of effects.
    • CTRL+J: enables joystick (implicitly calibrating it) at first call, and subsequently calibrates it, rumbling in case it's haptic-capable. Keyboard input continues to work as usual. This is the default mode in case a joystick has been detected.
    • CTRL+K: disables joystick and haptics.
    • Allegro support for haptics is experimental. Allegro developers told me MININIM is the first game to use its API. That's MININIM on the cutting edge ;). I'm providing feedback to them on improving Allegro's haptics API.
    • Haptics require Allegro 5.2.0 or superior, but MININIM still can build fine against 5.0.10. In this case haptics support is unavailable and a proper message remarking this fact is printed next to the documentation of --gamepad-rumble-gain option in --help output.
    • Because of an Allegro bug, haptics is not properly supported on Windows. I've reported this to Allegro developers here, and I'll be following this closely, providing help if possible. In the unlikely case of it magically working for you on Windows, please let me know.
    • I tried to make haptics in MININIM natural and enjoyable. Feedback from users, critics or suggestions are very welcome. After all, I had access only to one (cheap) device. Please, let me know if haptics doesn't turn out to be what I/you expected using your device.
    • I had an idea for haptics implementation back when I introduced joystick support in MININIM. However at that time the stable version of Allegro didn't have any API for that (not even an experimental one). Recently this idea came back to me thanks to Falcury. Fortunately this time Allegro was mature enough (kind of).
  • Option --random-seed sets the initial seed for the random number generator. This is potentially useful for debugging purposes. Thanks to Norbert for suggesting it.

  • Regarding MININIM saving and loading of files:

    • Save files (actually configuration files in general) have the extension "mcf".
    • All load dialogs show only valid files.
    • All save dialogs hint the correct file extension.
  • ALT+ENTER is an alias to F, = is an alias to + and _ is an alias to -.

  • In MININIM, everybody screams!

  • General improvements to the physics and specially the fight system. David had a point when he said:

    • The first guard of level 8 seems to be quite easy. I just pressed left and shift and I defeated him... He's too inactive, perhaps?
    • Hey, this works for all guards?! (Except Jaffar, because he immediately strikes back.)

    Of course, as I replied, the problem with those guards were their derivation of skills from the legacy profiles. Fine tuning guard skills allowed one to make guards that couldn't be defeated by mechanical tricks.

    I've, however, revised the fight system and implemented an scheme (based on the concept of anger) to hopefully make any guard, no matter how unskilled he might be, immune to repetitive tactics, like that one David described. Fights are quite more enjoyable now.

  • As usual, many bugs have been fixed.

MININIM 201701051749

28 Dec 14:39
Compare
Choose a tag to compare

Implement support for replays. See F7 and ALT+F7 key bindings as well as --record-replay, --replay-info, --validate-replay-chain, --rendering, --time-frequency options and non-option [REPLAY...] arguments. Complete and valid replay chain for standard legacy level set included in data/replays. Now the title screen has a demo replay of level 0.

MININIM 201612251709

25 Dec 19:57
Compare
Choose a tag to compare

Second official release

02 Mar 02:21
Compare
Choose a tag to compare

0.10

 *Features:*

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

 *Bug fixes:*

 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.

apoplexy integration

19 Feb 00:46
Compare
Choose a tag to compare

News

• Add support for reading legacy PoP 1 ‘LEVELS.DAT’ file using the
option ‘--legacy-level=DAT’.
• Add support for reading legacy PoP 1 PLV extended level files using
the option ‘--legacy-level=PLV’.
• Implement command line compatibility for the sake of applications
(like level editors) which use it.
• Implement ‘LEVELS.DAT’ legacy loading behavior.

First release

17 Feb 13:54
Compare
Choose a tag to compare
v0.9.2

Add tarball signatures