Fixes/changes 0.86 -> 0.87 (18.08.2017) # Samples are now upsampled to 16bit, 22kHz, signed to avoid issues in MacOS # Fixed text positioning in level finished screens # removed deprecated warning under MacOS Fixes/changes 0.85 -> 0.86 (13.10.2014) # Added fractional zoom modes (per menu: x1.5, x2.5) # Added option for classical cursor behaviour (as implemented on Amiga) Fixes/changes 0.84 -> 0.85 (20.08.2014) # Added zoom modes x1, x2, x3 Fixes/changes 0.83 -> 0.84 (14.01.2010) # Fixed bug in erasing of stencil by bashers etc. which wouldn't erase the "no dig" (left/right arrow) attribute. Could lead to problems when a builder builds over this and the block is to be erased again. Thanks to Lorcán for reporting. # Fixed regression bug in saving replays introduced in 0.82. Thanks to Stefan Berinde for reporting. Fixes/changes 0.82 -> 0.83 (10.01.2010) # Fixed regression introduced in 0.82: left arrow tiles could only be destroyed from the right. Thanks to J. Gareth Moreton for reporting. Fixes/changes 0.81 -> 0.82 (29.12.2009) # Lemmini is now open source. It's released under the Apache license 2.0. # Cleaned, reworked and commented the code for release. Hope I didn't mess too many things. # Added HyperlinkListener in Disclaimer dialog. Fixes/changes 0.80 -> 0.81 (11.17.2009) # Reworked icon, splash screen and logo # Changed JNLP to install desktop icon again automatically # Added lemmings icon to main window # Fixed bug where a died blocker could be assigned blocker again which resulted in the blocker mask not being erased Fixes/changes 0.79b -> 0.80 (10.7.2009) # Changed "Bubble" to "bubble" in all "Oh No" level ini files. Should fix problems finding the bubble style on case dependent file systems (Linux, MacOS X). # Added volume controls for sound and music. Note: Setting low sound volumes might lead to sound artefacts depending on the mixer - changing the mixer might help. Fixes/changes 0.79 -> 0.79b (10.8.2008) # Removed STYLES.md5 from crc.ini since it only existed on my computer -> broke extraction process for anyone else (shame on me). Fixes/changes 0.78 -> 0.79 (4.8.2008) # Added workaround for the notorious Thread.sleep() - Bug under XP Not sure if it really helps though. # Decreased minimum sleep time decrease CPU load on low end systems. # Converted time measurements to nanoTime since currentTimeInMillis() has proven to be extremely inaccurate. Even with a system timer of 1ms, time measurement based on currentTimeInMillis() seems to return differences of 0, 15 or 16ms for every value below 16ms. Unfortunately this also means that Lemmini needs JRE 1.5 (5.0) now. # Removed some workarounds in the time measurement/redraw code because of the above changes. # Added workaround for sound bug in newer version of JRE6 under Windows in combination with certain hw mixers. Obviously playback of WAVs with sample frequencies < 8kHz can be erratic (continuous noise after end of playback) at least with some sound drivers. As workaround, every sound with a samping rate below 20050, which is neither 8000Hz nor 11025Hz, is sampled up to 22050Hz. This might also help with some sound drivers not supporting uncommon sampling frequencies. # Precalculated all 100 pitch samples for the +/- keys since I suspected the "on the fly" pitching to be responsible for slowdowns when keeping +/- pressed for a long time. Unfortunately, this didn't really help. Anyway, it might improve performance on low end systems. # Stored mixer setting were not really restored at program startup althoug the menu setting would suggest this, # Added general exception/error handling in the extraction process and added memory check at startup to make sure that people with less than 64MB heap get an error dialog instead of just a console output. # Added CRC checking of all WINLEMM resources to avoid problems with corrupt resources. Fixes/changes 0.77 -> 0.78 # Fixed embarrasing bug that would crash Lemmini if a levelcode for any first level of a difficulty level was entered. # Fixed bug in fade in/out code that would restart fading again and again each time the left mouse button was clicked. # Parameter "maxFallDistance" in levelpack.ini was ignored. Now it can be set in the levelpack and additionally for each single level. Default if omitted is 126. # Implemented parameter "codeOffset" of levelpack.ini to give the first level a higher levelcode. Untested and experimental. Fixes/changes 0.76 -> 0.77 # Fixed long overlooked timing bug in sleep mechanism. # Added new comments for level lost but 50-95% saved and 95-100% saved (of the ones needed) # Fixed number of lemmings from 80 to 100 in Tricky 25 (checked with Amiga version) # Added 3 select types, selectable using cursor keys: cursor left: only lemmings headed left are selectable cursor right: only lemmings headed right are selectable cursor up: only walkers are selectable Fixes/changes 0.75 -> 0.76 # Changed frame time grid from 33ms to 30ms (probably the original UK Amiga Version rendered every 3rd frame at 50Hz which equals 60ms. Since I need the double speed to compensate for the double resolution, this would result in 30ms). This should fix some unsolvable ONML levels (e.g. Wild 13). # Reduced distance to ceiling to turn builder from 12 to 8 pixels (counted from "collision" position) # Fixed steel tiles in ONML:Wicked 16/Five Alive (lvl1081.ini). For some reasons, the steel tiles in the WinLemm lvl file are much too large though WinLemm seems to work around this somehow. # Fixed steel tiles in ONML: Havoc 11/Welcome to the party, pal!(lvl1002.ini). # Fixed steel tiles in ONML: Havoc 14/Synchronised Lemming (lvl1085.ini). # Set height of exit collision masks to 17. Some masks (e.g. brick) were too high to build above them without entering the exit. Should fix e.g. Wicked 3. # Fast forward mode didn't work in Superlemming mode due to wrong condition order. Fixed. # Mask of steam pipe trap in snow style was too large to let a lemming pass through on the left side. Adjusted mask (snowom_0.gif) to allow just that. Fixes Havoc 15. # Explode mask was applied 3 pixels too high compared with WinLemm. # Changed number font a little to make it more readable. # Added workaround for changed webstart behaviour in Java6.0: location of "lemmings.ini" in now in the "user.home" directory if application started via webstart. Fixes/changes 0.74 -> 0.75 # On MacOS, the screen menu bar is supported. # Red dots representing lemmings in the mini map didn't show on MacOS (probably gfx/image update issue of JVM). Fixed by drawing everything (also explosion particles) in the graphics object and nothing in the image # When loading a level manually, the music track is chosen randomly. Fixes/changes 0.73 -> 0.74 (27.6.2006) # Fixed GIF extraction bug introduced with 0.72 that would make areas transparent if they had the same color as the transparent color (but a different palette index). This especially affected fire_16.gif and (due to strange level design) created garbage in levels 0061 and 0061b ("If only they could fly"/"Down, along, up. In that order"). # Changed "skill won" text to "You finished all the levels!" # Drowning sound was missing in crystal set due to a typo. # For the last few bricks, builder uses "ting" sound (like unassigned skill) instead of "chink" (like hitting on steel). Fixes/changes 0.72 -> 0.73 (5.6.2006) # Fixed bug that hindered Lemmini from loading custom styles from the "styles" folder # Changed GIF extraction routine to work around bugs in the Mac JVM: in indexed color mode the MAC JVM doesn't use the correct indices when creating a BufferedImage from a pixel buffer and an IndexColorModel. Firstly, it always selects the lowest possible index for colors that appear multiple times in the palette. Secondly, sometimes wrong indices with similar colors are used. Fixes/changes 0.71 -> 0.72 (15.4.2006) # All level files start with "# LVL" now (well, I hope so) # General exceptions are caught during extraction. Also tried to catch hard errors (java.lang.Error) during extraction and in main game loop. # Renamed "Oh no! More Lemmings" to "Oh No! More Lemmings" (capital "N") # Extended basher break condition by one pixel to compensate for hires problems (one pixel left after mask is applied, but basher stops). Fixes/changes 0.70 -> 0.71 (14.4.2006) # Upside down objects are drawn correctly. Also upside down objects are inactive. # Fixed bug introduced in 0.69 which prevented level progress from being saved in the player stats # "Save Replay" is not possible any more for single levels started with "load level" # If a level doesn't contain a valid entry, Lemmini won't crash any more. Fixes/changes 0.69 -> 0.70 (11.4.2006) # Keyword "numToRescue" in level files was misspelled "NumToRecue": fixed. Fixes/changes 0.68 -> 0.69 (5.4.2006) # Replaced fixed levelcodes with codes calculated by the original algorithm # removed levels/levels.ini. Now subfolders of levels will be assumed to be levelpacks (alphabetical order) Note: in this context, also the level folder names have changed. So it's time for deleting the resource directory to clean things up. # Extended extractor/patcher to support files of same name in different folders (hope this doesn't destroy Linux compatibility) # Added fade in/out effects like on the Amiga # Lemmings walking down a steep slope (at least 45° or more) accumulated "fallen" pixels which were never reset. This led to splashing if they converted to fallers after the slope even if the fall distance was minimal -> fixed # Levels (*.ini) loaded via "Load level" are checked for start string "# LVL" Fixes/changes 0.67 -> 0.68 (2.4.2006) # Lemmini crashed when a single level loaded with "Load Level" was won (indeed fixed as silent update in 0.67) # Reduced font width from 20 to 18 pixels. Looks more like the Amiga and fixes display issues when text is too long. # Added colon (":") to font (though it was missing on the Amiga as well) # Fixed wrong briefing display after changing levels (introduced in 0.67) # Key "S" does a full level screen shot ("level.png") in resource directory Fixes/changes 0.66 -> 0.67 (1.4.2006) # Added replay functionality # Introduced text buttons instead of left/right clicking in debriefing screen # Set Focus explicitly on graphics pane. Maybe helps with flicker on low end machines? # Fixed some (more) bugs in LVL1016 (doubled entry, wrong water object) Who made this level anyway? It has at least three bugs ;) # Split loading and painting levels so when restart/replay is used, the level is not loaded completely but (more or less) only redrawn # Reset Basher to Walker conditions to what it was before 0.64 Fixes/changes 0.65 -> 0.66 (24.3.2006) # Support for second exact level time. Keyword is "timeLimitSeconds" instead of "timeLimit". E.g. "timeLimitSeconds = 356" for 5 minutes and 56 seconds # Fixed gap in pillar of LVL0025.ini (Taxing 4) # Fixed one pixel shift in last animation frame of entries of ROCK and PILLAR Fixes/changes 0.64 -> 0.65 (22.3.2006) # Swapped Walker/Faller strings. Was overlooked when cleaning up lemming.ini for 0.64 # Lemmini wouldn't work on Linux if the resource or game directory used capital letters. Should be fixed now. # Width of yellow frame in MiniMap was derived from Screen resolution, not from windows width. Fixed. Fixes/changes 0.63 -> 0.64 (19.3.2006) # Reworked skill assignment. Assignment request is buffered and applied at the beginning and if that fails at the end of the lemmings movement update. This should make skill assignment generally better to apply. # Reworked main loop. Usually missing animation updates are caught up if possible to maintain game time. However, under special cirumstances (high system load for a second or so) this led to a kind of forced "fast forward" mode until the game time was synchronous with the real time again. To avoid this, any time difference larger than 5 frames (165ms) will now be skipped instead of being caught up. # Reworked function key assignment: F1 to decrease RR, F2 to increase RR, F3 - F10 for the skill assignments, F11 to pause and F12 to nuke. # Removed check that considered one pixel walls/gaps as artifacts. So Lemmings are reflected by one hires pixel walls and fall through one pixel gaps now. # Made main cursor a little thinner (there are issues though, since obviously, the cursor is scaled up to some system default) # Put "load level" feature back in to load a single level file (INI or LVL). It's still a little unstable though (quick hack), so use it on your own risk ;) # Added the 4 "Tame" levels 17..20 missing in the windows version # Reworked break conditions for miners, diggers and bashers when hitting an indestructible pixel (e.g. steel). Now they all use an additional mask which should improve the behaviour. # When a digger, miner or basher hits steel, the "chink" sound is played. # Changed the way the digger works. Now he will move 2 pixels down at each animation cycle instead of falling down digging. Now can be stopped by a vertical gap just one hires pixel in height. However, as he moved down 2 hires pixels at once, he will "jump" over such a line with a probability of 50%. Only if the gap is 2 hires pixels high,he will be stopped for sure. # Added the dreaded horns to the fire exit. May need some rework, but for the start, it's ok. # Renamed "squasher" to "marble" Fixes/changes 0.62 -> 0.63 (16.3.2006) # Jumpers can be assigned "additional" skills like Floater and Climber # Fixed a bug that would let jumpers survive a nuke. Now also splatters, drowners etc. can be nuked - I thought they could, but there was a bug obscured by the fact that these types die anyway. # Keys F1-F8 can be used in addition to 1..8 for skill assignment. Fixes/changes 0.61 -> 0.62 (16.3.2006) # Forced resource extraction (needed for fun25 title change fixed in 0.61) # Fixed drawing order: animated objects that don't have the "no overdraw" flag set will not be drawn behind the terrain any more. # Drawing order also fixed in minimap (all objects were drawn behind terrain) # Walkers, Jumpers and Builders can't leave the level to the top any more # Increased number of pixels that have to be free above a builder to continue building. # Reworked jumper animation. Looks a little less silly in my eyes. Yet maybe not in yours. Fixes/changes 0.60/0.61 (14.3.2006) # Fixed stencil after extending it from short to int (again). Partly short access led to wrong sounds being played, wrong trap behaviour and so on. # Eliminated trailing spaces on Fun 25 ("Lemmings Lemmings everywhere") Fixes/Changes 0.59 -> 0.60 (14.3.2006) # Replaced "New Player" with "Manage Players" which allows deleting players # Fixed wrong background color of Minimap in 16bit color mode. # Current player's progress is stored when changing player or entering the "manage players" menu # Introduced "Jumper". Looks a bit silly though. # Re-enabled old (exact) explosion masking: only destructible parts are erased # Keys 1..8 can be used to select skills # Changed inner workings of blocker mask: it's split into left and right part. A lemming moving right will not be influenced by a right side blocker mask and a lemming moving left won't be influenced by a left side blocker mask. This should fix lemmings turning around if a blocker was assigned next to them though they already passed him. # Lemmings with no name (e.g. drowning, killed by a trap, splatting etc.) will not be considered for cursor selection. Thus also no "empty" names can appear any more. # Fixed name of Fun 25 ("Lemmings Lemmings everywhere") # Builder doesn't get stuck in ceiling any more (especially in Mayhem 2) Fixes/Changes 0.58 -> 0.59 (10.3.2006) # Increased distance at which a lemming is considered "beneath the cursor" # Changed window title back to "Lemmini" when jumping back to the intro. # Use of own synchronization monitor for paint()/redraw() instead of using image as monitor (else first paint() could throw a NullPointerException resulting the menu being corrupted). Fixes/Changes 0.57 -> 0.58 (9.3.2006) # Limited number of sounds to be played in parallel to 6 Fixes/Changes 0.56 -> 0.57 (9.3.2006) # Added a sychronization monitor to paint()/redraw() to (maybe?) avoid flicker on low end machines # Added a sychronization monitor to the textscreen class to (maybe?) avoid redraw issues on low end machines # Double-Clicking the release rate icons will jump to maximum/minimum value. Fixes/Changes 0.55 -> 0.56 (8.3.2006) # Speed up cleaning of bgImage when changing levels (not noticeable though) # Moved players directory ro resource directory and player definitions from main ini to players.ini in the resource directory. Also allowed capital letter for players ini files. # Skill attributes a,c,f now displayed in capital letters A,C,F # Space is displayed instead of dashes for number of lemmings beneath cursor. Fixes/Changes 0.54 -> 0.55 (7.3.2006) # Changed drawing in minimap (alpha value always 0xff) to avoid different background color under Linux Fixes/Changes 0.53 -> 0.54 (7.3.2006) # Fixed: stopper mask was not completely removed in case of explosion etc., which made setting a new stopper at the same position hard to impossible (walkers were usually not affected though). # Fixed: bug in LineListener. Maybe connected to "freezes" happening from time to time since I introduced the LineListener (Edit: no, not really) # Fixed: Lemmini doesn't work on Macs because version number contains characters (0-beta) Fixes/Changes 0.52 -> 0.53 (7.3.2006) # Slowed down RR changes a little # Fixed empty masks when using miners/bashers/builders to the left. Fixes/Changes 0.51 -> 0.52 (5.3.2006) # Changed the way the music is stopped to avoid delay Fixes/Changes 0.50 -> 0.51 (5.3.2006) # Fixed (kind of) resource leak when playing sounds (Clip.close() via LineListener). Win98 guys: please give it a try. # Fixed (kind of) resource leak when painting level (flush() is used on all Images/BufferedImages) (edit: nonsense, removed later on). Fixes/Changes 0.44 -> 0.50 (4.3.2006) # Changed: Player handling is in (Menu "Player"). This also means that only the first level of each difficulty level is available by default (see below) # Changed: new Menu item "Enter Levelcode". The Amiga levelcodes should work. # Changed some pixels in the number font. So 2, 8 and 9 should be a little better to keep apart. # Fixed entry order for levels with 3 entries (was shifted by one). However, WinLemm doesn't have special treatment for 3 entries at all. # Reworked dirt_39 since the one pixel offset would lead to a fall in Mayhem1 being not lethal any more. # Increased safe fall distance to 126 and moved this as configuration entry to the levelpack ini (so "oh no" and orginal lemmings could have different safe distances). To keep Mayhem 1 fall from trapdoor lethal, I changed the entry (foot) position to 20 hires pixels under the upper trapdoor coordinates. I may add that in Winlemm, the fall from the trapdoor is NOT lethal, but it is on the Amiga version. # Added more debriefing screens. All there now??? # Fixed: Scolling via MiniMap or mouseDragging could cause screen flicker. # Fixed: on the rightmost border of the level, dragging the mouse left didn't work # Reworked homepage a little: some minimal instructions can be found there now Fixes/Changes 0.44 -> 0.45 (2.3.2006) # Reworked MiniMap internals. Also "hidden" exits are no longer shown neither in the Minimap nor in the level preview (briefing). # Reworked Floaters a little to "jump" up when the parachutes opens # New debouncing for release rate icons/keys: first press is debounced, then the RR increases/decreases faster # Reworked nuking. Now really no lemming can survive a nuke. Also types like exiting or drowning lemmings should get nuked. # Messed around with "free pixels above" to improve builder behaviour. Fixes/Changes 0.43 -> 0.44 (1.3.2006) # Reworked whole redrawing scheme. Redraw will take a little longer but "hidden" exits don't need special treatment any more. Also graphical glitches like removed pixels in water should be gone now. # Checked/Fixed lemmings leaving playfield and according Exceptions # Fixed Diggers "hanging" on steel in special situations Fixes/Changes 0.42 -> 0.43 (28.2.2006) # Builders shouldn't be able to leave the screen any more to the top causing ArrayOutOfBoundExceptions # Added basic priority handling for "lemmings under cursor" Please tell me if it's ok this way. # Reworked entry timing: Lemmings can only enter level if trapdoor is fully opened # Music starts only after trapdoor opened # Floater, climber or both skills (athlete) are displayed as "(f)", "(c)" and "(a)" behind the main skill. Just a test to hear some opinions on this. # Reworked Cursor: active Lemming gets its own border, so it's clearer which lemming is active. Mixture of Winlemm and Amiga look. Also the Cursor is the default (System) cursor now, so it moves smoother Fixes/Changes 0.41 -> 0.42 (28.2.2006) # Fixed Builder mask (again) to work better on slopes (resource extraction!!!) # Fixed ArrayOutOfBoundException thrown when accessing second direction for lemmings with only one direction (bug introduced in 0.41 when fixing digger direction "memory") Fixes/Changes 0.4 -> 0.41 (27.2.2006) # FF speeds up object animations as well # Some memory optimizations - Memory footprint should be distinctly reduced # Builders stop building when reaching ceiling again (bug introduced in 0.3) # Diggers "remember" direction (bug introduced in 0.3) # Fixed error in fall distance calculation for walker converted into fallers -> fixes lethal fall in WILD 16 (bug introduced in 0.2 while fixing ccexplore's bug #0) Fixes/Changes 0.3 -> 0.4 (26.2.2006) # Fixed ArrayIndexOutofBoundsException when selecting a Blocker that is about to explode # When a blocker about to explode ("oh no") falls, the blocker mask is erased # Blocker skill can't be assigned when overlapping a blocker any more However it's (probably) still possible to create a gapless line of blockers Was this possible in the original? # Erased trailing spaces from Fun 9 level name "As long as you try your best" that caused the string being displayed too far to the left # Changed the way fast forward (and Superlemming mode) works. Should work much better and with less CPU load on mid-range machines. Could cause frame skip on very low end machines though. # Pressing shift doubles scrolling speed # Dragging right mouse moves screen (well, not perfect, but a start) # When a Blocker reflects a builder, only the direction is changed, but the builder keeps building. Also a reflected miner keeps mining. # Fixed masks for flamethrower (fire) and steam (snow) # Shruggers can explode now (hard to check though) # When a Blocker is trapped, the blocking mask is always removed now # Exit mask visible on some Brick exits was resolved # Additional skills like climbing, floating etc. can't be assigned to lemmings that are drowning, leaving the exit, splatting, trapped or exploding. # Hidden exit in Havoc 19 works now # Exit in Havoc 15 is working as it should # Explosions speed up with FF and stop when paused. # Menu option to disable sound # Completely reworked lemming coordinate system. This should fix this like shruggers being offset and make it easier to become more compatible. However it is very likely that I broke some things # Digger animation corrected (doubled animation length) # Fixed (WINLEMM) level errors in "Fun - Live and Lem" and "Mayhem - Steel Mines of Kessel" # Fixed typos in orig.ini resulting in wrong stats for "Tricky - Lemming Drops" # Messed around with fall distance and entry height Fixes/Changes 0.2 -> 0.3 (24.2.2006) # Walkers now turn to fallers immediately if the fall distance is far enough (solves problems in e.g. Mayhem - All or Nothing # Fun 9 renamed from "I have a cunning plan" to "As long as you try your best" # Digger now stop (again) if they hit steel. # When converting a digger to another skill, the new type is no longer starting 4 pixels too low # A lemmings assigned to digger skill, will immediately apply the diging mask # Blockers affect builders now (also bashers and miners if someone managed to create such a situation) # Assigning a skill (successfully) to a lemming unpauses the game # Builders can exit a level # Improved error output # Blocker status is not cleared when the blocker is about to explode, but only when it has exploded # Fixed position at which lemmings enter the level (a little higher and 2 pixels to the right) # Nuke assigned to new level only every 2nd frame to compensate for higher frame rate # No more lemmings should survive a nuke # Explosions clipped to level area # Small congratulations text (preliminary) instead of crash when last level of a difficulty level was won. # Newer versions of MOD files (?) # Changed order of music files played. Most probably still not 100% correct. Fixes/Changes 0.1 -> 0.2 (23.2.2006) # Briefing screen of level one shows "Level 1" # Debriefing screen shows code of following level # Reworked JNLP to get more RAM (128MB) to avoid potential out of memory issues # Fast Forward with Enter # Animations and explosions stop in pause mode # No builder restrictions for first brick # Reduced climber speed by two # Moved step mask a little bit so it should work on slopes (please test) Unfortunately this forces new resource extraction # A climber reaching a plateau does the animation "climber to walker" now instead of using the animation for conversion from climber to faller # Release of first lemming doesn't depend on release rate # Digger won't stop until a gap of 12 pixels width below him is free. Well it should be 14, but this somehow doesn't work. Initial Revision 0.1 (21.2.2006)