Releases: oitofelix/mininim
Alpha release (small size)
v200928 Fix dynamic loading
Alpha-release next branch
v200927 Adapt configure.ac to use more recent gnulib and Lua
Debug release
v200926 Facilitate debug releases
Alpha release from next branch
Revert "Initial porting to Org Mode Babel Literate Programming paradigm" This reverts commit 2a75490248b9982cbc71455f59db30c0d88d15af.
MININIM 201701122309
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
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
Second official release
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
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
v0.9.2 Add tarball signatures