MegaZeux Version 2.92d update has been released

  • Thread starter Deleted User
  • Start date
  • Views 964
  • Replies 0

Deleted User

MegaZeux Version 2.92d release

MegaZeux is a game creation system originally released in 1994 and still being developed today.

This release adds new features, numerous bug fixes, an experimental Android port and other fixes for the Windows and HTML5 ports.
You will find the complete changelog for this release below.

May 8th, 2020 - MZX 2.92d

This release includes minor new features, an overhaul to the way
MZX handles text input from SDL 2.0 which should fix various
text bugs (particularly with non-US keyboards), fixes required
to get the Android port working, and a new file format document.
Other things of note are two libxmp patches fixing issues with
S3Ms saved by the original Modplug Tracker and with GDMs relying
on fine effect continue, checkres updates, and misc. fixes for
the Windows and HTML5 ports.

Fixed compatibility issues in this release are a string compare
bug that prevented Mines of Madness from working and MODs with
extended filenames working when referenced by their truncated
DOS SFN in the MZX file. The latter fix only works when there is
a single unambiguous match, which turned out to be essentially
every affected game.

It is worth noting that the Android port is EXPERIMENTAL and is
likely to have compatibility issues on many devices. A USB OTG
or Bluetooth keyboard or game controller is required at minimum.
Many devices have key press issues that are likely caused by
drivers or SDL. SDL text input events are disabled as they cause
even more keyboard bugs, and as a result non-US keyboard layouts
probably won't work with this port right now. Other problems
with this port that have been reported include graphical bugs
and crashes when focusing/unfocusing MegaZeux.


+ Added robot editor shortcuts CTRL+Home and CTRL+End to jump to
the start and the end of the current program.
+ Char selector tile movement is now disabled outside of the
char editor and for 1x1 char selections. This allows typing
-/_/=/+ in other char selectors to jump to those characters.
+ Added docs/fileform.html, a document describing all currently
supported MZX file formats in excessive detail.
+ When startup_file is provided with both a directory and a
filename and no startup_path has been set, the directory will
now be used as startup_path. If startup_path is set, the
directory portion of startup_file will still be ignored.
+ The flash thing editor functions (Show Robots, etc.) now use
the protected charset and will display with the protected
palette in SMZX mode and in regular mode situations where the
normal flashing would be difficult/impossible to see.
+ Fixed a bug where input text with no corresponding internal
key would be ignored by the robot editor.
+ Fixed a bug where some AltGr key combinations would not work
in the robot editor (note: SDL doesn't distinguish Alt from
AltGr, so any Alt key combos with a special meaning in the
robot editor will still be intercepted by MZX).
+ Windows Alt+numpad sequences corresponding to ASCII characters
32-126 should now be recognized.
+ Fixed an out-of-memory error in the save slot UI and improved
its mouse functionality.
+ Added optional CRC-32 output to checkres. Currently this flag
only works for files in ZIP archives and no CRC-32 validation
is performed.
+ Fixed checkres parsing for LOAD CHAR SET "+&+var&file.chr".
+ Fixed checkres crash that could occur on some platforms when
attempting to checkres a directory.
+ Fixed wrong robot board positions reported by checkres for
some files when run with -vv.
+ Repurposed the old checkres -A flag to display everything but
unused files, which should be much more useful than the older
behavior (particularly with loose files in directory dumps).
+ Fixed memory leaks in legacy_assemble_line.
+ Fixed potential null termination issues in both world loaders
that could be triggered with invalid board name, robot name,
scroll, sensor, sfx, and status counter strings. Also improved
loaded robot stack bounds checks.
+ Decreased the sizes of the counter and string structs and
fixed a crash that would occur when attempting to expand the
counters or strings lists beyond 1 billion. Checks have been
added to prevent them from expanding beyond 2^31 (please don't
actually use this many counters/strings).
+ Fixed string comparison for pre-2.81 games that relied on
null-terminated string compares. This fixes Mines of Madness.
+ Fixed hlp2html bug where certain chars wouldn't be escaped and
decreased the size of the output HTML files somewhat.
+ Fixed libxmp playback for S3Ms containing ADPCM4 samples. This
fixes mm2flash.s3m in ZeuxDrop.
+ Fixed libxmp playback for GDMs where 100/200/A00 should
continue the fine portamento and fine volume slide commands.
This fixes LB2_7.GDM from Kikan.
+ fsafetranslate now attempts to detect matches for truncated
DOS SFNs on non-Windows platforms. If an unambiguous match for
a truncated SFN is found, the SFN will be expanded to the
match. This fixes numerous games relying on truncated SFNs
with unambiguous matches.
+ Reimplemented COPY # # # # for layer-to-layer copies.
+ Fixed a collision bug affecting unbound sprites with ccheck 3
set in SMZX mode where wrong colors could be treated as the
transparent color for the purposes of collision.
+ Fixed softscale bug on some platforms where the screen border
wouldn't be cleared.
+ The GLSL renderer will now attempt to use a framebuffer when
available. This fixes GL_INVALID_OPERATION bugs with certain
OpenGL ES 2.0 implementations.
+ Directory navigation in the file manager now checks directory
access permissions before allowing navigation and displays an
error when navigation fails.
+ Fixed windowing code bug in extended macro editor that would
occur after selecting "Default" multiple times.
+ Fixed a bug where long extended macros could sometimes break.
+ Fixed extended macros not working when the params line is
indented by more than one space or tab.
+ Windows builds now attempt to load and call SetProcessDPIAware
on startup. This should fix undesirable DPI-related scaling
and fullscreen bugs.
+ Fixed Emscripten crashes on startup when built with Emscripten
1.39.5 and up caused by usage of deprecated canvas behavior.
+ Fixed a COPY BLOCK $string bug where the buffer could be
allocated at the empty destination string's value on some
platforms and a faulty bounds check would result in the string
being expanded but otherwise blank.


+ Added a set of C++-based unit tests for portions of MZX that
can't be reached/tested easily by MZX worlds. These tests will
be built and run when "make test" is used prior to running the
test worlds.
+ Decoupled SDL 2 text input handling from regular key handling
and added a text input buffer. Text keys can now be requested
multiple times and either as ASCII or unicode; the next key in
the buffer is returned on subsequent calls. intake and editor
text entry can now accept multiple text chars per frame.
+ Added SDL 1.2 implementation for __peek_exit_input.
+ Contributed sound engines (libxmp, libmodplug) should now
properly rebuild after is run.
+ Fixed a bug where khash tables couldn't expand beyond 2^31,
added hash caching, made the MZX copy of khash use MZX style,
and better documented the changes made to it.
+ Added fast sprintf replacements for Robotic counter to string
conversion (counter interpolation, string/counter compares).
+ Fixed alignment issues in memcasecmp.
+ Fixed alignment issues in get_cursor_color.
+ Added a flag for UndefinedBehaviorSanitizer.
+ Categorized flags list.
+ Added a trace logging level that is disabled by default and
changed most dns.c, fsafeopen.c, and checkres.c debug logging
to use it. Use the --enable-trace flag to enable
trace logging for debug builds.
+ Added a flag to build using GCC's -fanalyzer flag
(disabled by default).
+ Refactored path functions out of util.c.
+ Replaced the Android build scripts with an improved Makefile
system. The Android Makefile now uses the NDK toolchains
directly. Also added support for APK signing and fixed several
Android port bugs.
+ MZX will now exit on startup if no world could be loaded and
the SDL dummy video driver is active.
- Removed -fpermissive from CXXFLAGS (pointless).
- Removed -fbounds-check from debug builds (pointless; MegaZeux
doesn't use GCC to build any Fortran or Java code).

Version 2.92d is available for: Windows, Power PC, Android, HTML5, Nintendo DS/3DS/Switch/Wii, PSP, Mac OS X, Ubuntu, Debian, and Raspbian builds pending.

General chit-chat
Help Users
    K3N1 @ K3N1: