Releases: ericlangedijk/Lemmix
Lemmix 3.0.0
(small source code changes during beta will be synchronized after release).
3.0.0
- During Beta Fixed: Also enable system dialog to open replay file from game screen with "L"
- During Beta Fixed: Replay messages position stuck when pausing and next frame. messages need updating.
- During Beta: christmas lemmings colorized too.
- During Beta: included Ron Stard levels.
- During Beta: create default language file.
- Removed options Misc.Usefinder, Misc.UseFastForward, Misc.UseSaveStates, Misc.UseHyperJumps.
- Removed Holiday 93 style because of duplicates only. All levels are inside Holiday 94.
- issue #8: Added option Misc.AutosaveReplayFiles. Replays will be saved in folder .\Output\AutoSave. Autosave only when there were any game-actions executed.
- Renamed / reworked options.
- Added option Game.AlwaysRegainControlOnMouseClick. ctrl+click will always regain control.
- Added option Misc.AdjustMenuScreenLogo. When set, the Lemming logo in the menuscreen will be scaled to half of its horizontal size. The buttons are untouched.
- Added option Misc.KeepLevelRatioInPreviewScreen. If set the preview screen the level-image has the correct ratio, otherwise it will be fully stretched in height. The image is a bit larger than in the previous version in any case.
- Added option Misc.ShowLemmingCountInsteadOfPercentage. Of set we see numbers instead of percentages. In the preview- postview- and gamescreen.
- Added option Misc.FullCPU. If set full cpu is used, otherwise 1 millisecond sleep after each frame during playing.
- Added option Misc.AlwaysOverwriteReplayFiles. if off than timestamp is added to filename.
- Added option Misc.UseVoice. Added some speech feedback, using windows SAPI text-to-speech.
- Added option Misc.UpdateReplayCacheWhenSaving. When saving, directly update the replay file cache.
- New option Voice.StartReplay.
- New option Voice.ReplayFail.
- New option Voice.SoundFX.
- New option Voice.CurrentSection.
- New option Voice.Cheater.
- New option Voice.BinLevelSavingOn.
- New option Voice.BinLevelSavingOff.
- New option Voice.BinLevelSaved.
- New option Voice.VoiceDisable.
- New option Voice.VoiceEnable.
- New option Voice.CurrentStyle.
- New option Voice.GameSaved.
- New: Added 4300 custom levels which have been made through the years with lemedit or Lemmix. All converted to .LVL format instead of .DAT. Removed duplicates, useless, empty and error levels.
- New: Level finder screen officially implemented.
- New: Replay Finder screen.
- New: Settings screen to edit Lemmix.config. Asks for restart if a folder changed.
- New: Help screen for shortcuts (press "?" from menuscreen, gamescreen, previewscreen, resultscreen, finder screen, find replay screen)
- New: Drag game-map with alt+mousebutton.
- New: Keep paused mode when skipping or rewinding frames in paused mode.
- New: Loading replay from previewscreen.
- New: Added custom pathtoreplay in config
- New: "v" or "V" in menuscreen or playingscreen toggles voice off/on (saved to config as well).
- New: Rewind game one minute with "D".
- New: High resolution game messages (optional)
- New: 'hyperspeed play until the end' during gameplay. press 'z' to activate. Nice feature for speedruns.
- New: Optional show pausebutton highlighted when paused.
- New: Useless feature for saving a level to a binary file. Used for A.I. project.
- New: Restart game without replay with 'R'.
- New: language in config.
- Changed Sorting in options screen. If there are Lemmini levels these are displayed after the DOS-levels.
- Changed Replay cursor strategy, when replaying old replayfiles (without cursor data or invalid positions). A best guess location of the cursor is shown.
- Changed Naming convention for saving replayfiles. a subfolder is created for each style.
- Changed When secretely cheat-scrolling through the levels, and a loaded replay is active, the game will only start the replay if we are at the correct level.
- Changed position of "Replay" tekst in previewscreen to the top (instead of behind the "Rating" line).
- Changed replay text file layout. better organized and some more info, like the installed style, section, levelnumber, date + time etc.
- Changed level time restriction. A level will now allow up to 99 minutes, just in case.
- Changed: removed messagebox form due to scaling errors. standard dialog now. note: it prevents shortening filenames by replacing slashes with an arrow-like sign like windows explorer.
- Changed: fadeout using alphablend instead of bitmap. previewscreen fades out now as well (forgotten in previous versions).
- Changed: Game can be saved only once in result screen.
- Changed: Dramatic speed improvement rewinding one frame while paused. Flickerfree as well.
- Changed: Game stops scrolling now, if mouse enters skillpanel.
- Fixed issue #16: Added an entry "Maindat" in Style.config which is needed for correctly interpreting a custom main.dat file (loading fifth section image (havoc) and purple font).
- Fixed: Small issue. Prevent multiple save games while keeping down "u" key in gamescreen.
- Fixed: Crash when playing a level without entrances. Lemmix tried to spawn lemmings from a non-existing object.
- Fixed: windows high-dpi / font / scaling issues in 'normal' windows like dialogs and finder screen en options screen.
- Fixed: replay fail during (paused) rewind (releaserate was not updated correctly during paused rewind). Note: The handling of pause should be coded better. It is a small drama.
- Fixed: Rewinding in combination with pause-glitch was wrong, because of using global game-pause variable.
- Fixed: Replaycursor hides now when rewinding.
- Internal: Code changes regarding hyperspeed. Not affecting mechanics or gameplay.
- Internal: Code optimizations.
- Internal: Removed unnecessary painting of infopanel during hyperspeed. Flicker free when going back frames in-game. although not superfast in complicated or long games.
- Internal: Reworked screen logic a bit (i.e. to enable restarting smoothly a replayfile when modal screens are visible).
- Internal: Changed replayfile-header. Removed Unused field replayrecordsize (now 2 reserved bytes).
- Internal: changed checking valid cursordata a bit. When resaving cursordata is set to [0,0].
- Internal: Old replay-files loading / saving more safe regarding old invalid cursordata.
- Internal: better and more flexible png transparency handling when exporting images.
- Internal: Fixed: do not load replay cache if replaydir does not exist.
- Internal: Removed wrong value check of replayrecordsize inside replayfile-header.
- Internal: Some minor issues and some minor speedups.
- Internal: Changed logic when searching correct level for replay when there are duplicates. Default styles have priority. Order is: orig, ohno, christmas, user, lemmini.
- Internal: shrinked exe-size by more than 1 megabyte by disabling runtime type information en setting pe-flag.
- Internal: Scaling and layout options screen.
- Internal: Hidden (debug mode only) feature for exporting a style to JSON + png-files.
- Internal: Reworked pause and hyperspeed handling. All code moved to engine.
- Internal: Simplified the (optional) pause glitch.
- Internal: Renaming of vars. More logic and consistent
- Internal: Aligned vars in the engine (sorted by size) for minor performance increase.
- Internal: Replay restricts replay glitch iterations to range 0..33, when loading.
- Internal: Prevent pausing on off while F11 key down.
- Internal: Small speedup by changing pixelcombiner to static.
- Internal: Reworked all text values to be able to make translations.
- Internal: Added helpstring class for helpscreen.
- Internal: Replaced format function with simple one.
Lemmix 2.1.0
2.1.0
- First release that is not a beta version.
- issue #12 Black initial screen closable with escape if error occurs during startup.
- issue #13 F1 now starts the preview screen from the menu screen as it should. Ctrl + F1 starts finder screen (secret option)
- issue #14 Replaying first iteration (index 0) is replayed now as well. This was skipped in previous versions.
- issue #15 Added option EnableSkillAssignmentsWhenPaused.
- issue #15 Changed 'go to previous frame' hot key during pausing from 'p' to 'b'.
- issue #15 Changed 'save to png' hot key from 'b' to 'p'.
- New functionality: press 'l' to load a open dialog for replay from the menu-screen. The correct level will be opened.
Lemmix Beta 2.0.7
2.0.7
- Added support for custom sounds. Included PathToSounds in config. Custom sounds: Miner, Digger, Basher, OpenUmbrella, SilentDeath, Nuke.
- Changed screenshot .png filename to leveltitle only. If title is empty or spaces only the name is "screenshot.png".
Lemmix Beta 2.0.6
2.0.6
- Allowed overlapping sounds. I think a sort of balance is reached between acceptable and absurd.
- Added option Misc.ShowReplayCursor for replay (some very old replayfiles - 0.0.7.0 alpha and below - do not have a stored cursorposition)
for 10 frames we see a transparent replaycursor disappearing during these 10 frames - Added option Misc.UsePhotoFlashEffect for replay
Lemmix Beta 2.0.5
2.0.5
- PDF updated. Will maybe change later to another format.
- Added limited support for Lemmini
- Added 'per pixel' in-game scrolling when using ctrl+left or ctrl+right. Normal scrolling is per 8 pixels.
- Added optional mechanic Mechanic.RightMouseGlitch to config
- Added optional mechanic Mechanic.PauseGlitch to config
- Upgraded replay version to version 3. Added some bits for RightMouseGlitch.
- Better mouse-handling when application is not active.
-deactivate, activate, mousecursor,mousemove,clipping
If application gets focus again by alt+tab the cursorposition is restored. - Pooling mechanism for styles to prevent reloading.
- The options screen is different and easier to use.
- In cheatscrollingmode the mousewheel also scrolls through the levels in the preview-screen.
- New option PathToStyles add to config. You can specify the rootpath to the styles for example C:\LemmixData\Styles.
If not specified the path will be .\Data\Styles. - New option Misc.RepairCustomLevels added. default value=1.
If the option is on then the rendering mechanism will - just before executing - remove tiles or objects which have an out-of-range index.
A messagebox will apear that this level contains errors.
If the option is off, Lemmix will crash during loading of the level. - Special vgaspec bitmap support voor custom style.
SpecialGraphics=DEFAULT must be specified in the Style.config if you want Lemmix to read the special graphics from the Style folder.
SpecialGraphics=ORIG will 'borrow' the special bitmaps from the original 4 vgaspec files. - Changed the naming convention of replay-files to leveltitle only.
- If a replay is saved from the postview-screen results are included in the .txt file.
- Lemmix can now directly open a .DAT file from the explorer. If it contains levels the first level will be opened.
- Changed caching system a bit. Enhanced determination if re-cache is needed.
New structure with more information. A wrong cache-file will not be written if there is an error.
Re-cache will occur when:- there is a new lemmix file-cache-version
- the style-folder's last write time does not match the cached time.
- the config-file's last write time does not match the cached time.
- a config-file was added or deleted
- Solved levelsection + levelnumber bug in custom levels. Recache will occur automatically.
The number of levels per section was wrong and some levels at the and where not included. - Ctrl+C copies the new levelcode to clipboard in postview-screen (when succeeded)
- Menu-screen displays description of style instead of name (if fits)
- Preview-screen displays description of style instead of name (if fits)
- Added Misc.UseShuffledMusic option in config
- Added PathToMusic to config. Only used for custom styles. When used all custom styles will use this path.
Lemmix Beta 2.0.4
2.0.4
March 19th, 2020
- Solved ridiculous bug in gameresult
Lemmix 2.0.3 Beta
2.0.3
March 19th, 2020
- PDF still not updated
- Opening a replay file or LVL file from the explorer will trigger a reload now, instead of a message 'Lemmix already running'.
As a hint: reloading will take place in whatever state the program is. It just quits the currentscreen and loads again.
To prevent this behaviour set Misc.AllowReloading=0 in the config (which is on by default) - Preparations for emulating the Pause glitch are visible in the config-file, but not implemented yet
- Old issue: entrance started with frame 2 when opening. Corrected to frame 1
- Slight optimization: only refresh clockdata when clockframe = 1
- Sound of entrance opening on frame 34 instead of 35
- Now the frame-timer is really at 58 milliseconds.
2.0.2
March 18th, 2020
-
Switching to a different monitor implemented. Pressing F12 in the menu-screen switches to the next monitor (if there is one).
This way you can cycle through the active monitors.
Regarding multiple monitors: when playing a level the cursor is clipped inside the playing-region. This could conflict with normal behaviour of the mouse.
So a few minor changes here as well: in-game scrolling when the mouse is left or right is only done when the Lemmix application has focus.
When selecting another application the mouse is released from its clipping-prison. -
First High dpi version: Lemmix seems to scale nicely on high dpi monitors.
-
Adjusted internal tick timer from 60 to 58 milliseconds per frame. A gamesecond is now closer to the real second.
One gamesecond is 17 frames. That is 986 milliseconds for a game-second. But we have to consider some delay because of graphics and calculations.
Measuring the new 58 MS value on my computer, every gamesecond is now between 995 MS and 1005 MS.
When using the old 60 MS interval, every gamesecond was somewhere between 1030 and 1040. -
Upgraded the lemmixreplayversion to 2. Replays created with this Lemmix cannot be replayed with the old lemmixplayer from now on. But this Lemmix still can open
the old replay files (version 1). -
Mechanic.NukeGlitch added to config to enable (optional) emulating the old famous dos nuke glitch.
For those of you who don't know: nuking the level triggers a wrong calculation of the percentage of rescued lemmings. Instead of the correct rescued/total
it calculates rescued/released. -
Saving a level can be done in postview-screen by pressing "u".
-
It is possible to directly replay your just finished level from the postview-screen by pressing "r". The play-screen will start again directly.
-
More precise timer-handling using QueryPerformanceCounter() instead of timeGetTime().
-
Misc.EnableSkillButtonsWhenPaused added to config to enabled mouse-selecting a skillbutton during pause.
-
Misc.ShowDefaultCursor added to config. If on then all dos-screens show the default cursor instead of nothing.
-
Display.Monitor added to config
-
Display.Zoomfactor added to config.
-
Solved old issue: when setting music on before entrances are openened, the music will not restart after the entrances are openened.
-
Solved old issue: when exploding a lemming at the end of the level the clock got below zero during the explosion.
2.0.1
March 15h, 2020
- Old bug solved with triggered traps.
- MP3 custom music supported.
- Game copies mechanics from replayfile if replaying.
- Only one instance of Lemmix is allowed
History
- Version 2.0 recompiled 15 years after, reworked all code, added some features
- Version 1.6 solved entrance order bug in versions after original lemmings
- Version 1.5 added remake version with multiple levelpacks, containing all 9 tilesets
- Version 1.4 removed some obsolete testcode, added holiday 94 clone
- Version 1.3 solved bug starting up with replayfile
- Version 1.2 solved bug with finding levelcode
- Version 1.1 added startup with replayfile
- Version 0.8 added optional overriding with LVL files