MegaZeux v2.92d Released

MegaZeux v2.92d

AliceLR has released a new version of MegaZeux for your homebrew enabled Nintendo 3ds/2ds portable video gaming console. MegaZeux is a game creation system (GCS) created by game developer Alexis Janson in 1994. Originally a DOS program, in 2005 a multi-platform port was released by Exophase.


# MegaZeux
[Official MegaZeux git repository](

MegaZeux is a game creation system (GCS) created by game developer Alexis Janson in 1994.
Originally a DOS program, in 2005 a multi-platform port was released by Exophase. The most
recent version of MegaZeux is 2.92, which was released on July 22nd, 2019.

MegaZeux is officially supported on Windows, Linux/BSD, MacOS, as well as the NDS, 3DS, Wii,
and PSP consoles. Historical support has also existed for GP2X, Pandora, and AmigaOS 4.

## Downloads

Windows releases are packaged with a copy of the game Caverns of Zeux.
Older versions are available at [DigitalMZX](

[!-- Download URLs. --]

[!-- Images for download links. --]
[arch-w64]: contrib/archicons/windows64.png "Windows x64"
[arch-w32]: contrib/archicons/windows32.png "Windows x86"
[arch-dos]: contrib/archicons/dos.png       "MS DOS (MZX 2.70)"
[arch-osx]: contrib/archicons/osx.png       "MacOS"
[arch-ppc]: contrib/archicons/osxppc.png    "Mac OS X (PowerPC)"
[arch-u64]: contrib/archicons/ubuntu64.png  "Ubuntu AMD64"
[arch-u32]: contrib/archicons/ubuntu32.png  "Ubuntu i386"
[arch-d64]: contrib/archicons/debian64.png  "Debian AMD64"
[arch-d32]: contrib/archicons/debian32.png  "Debian i386"
[arch-rpi]: contrib/archicons/raspbian.png  "Raspbian"
[arch-aur]: contrib/archicons/archlinux.png "Arch Linux (via AUR)"
[arch-void]:contrib/archicons/voidlinux.png "Void Linux"
[arch-gen]: contrib/archicons/gentoo.png    "Gentoo"
[arch-nds]: contrib/archicons/nds.png       "Nintendo DS"
[arch-3ds]: contrib/archicons/3ds.png       "Nintendo 3DS"
[arch-wii]: contrib/archicons/wii.png       "Nintendo Wii"
[arch-swi]: contrib/archicons/switch.png    "Nintendo Switch"
[arch-psp]: contrib/archicons/psp.png       "PlayStation Portable"
[arch-ami]: contrib/archicons/amiga.png     "Amiga OS 4"
[arch-gp2x]:contrib/archicons/gp2x.png      "GP2X"
[arch-pand]:contrib/archicons/pandora.png   "Pandora"
[arch-src]: contrib/archicons/src.png       "Source code"

[!-- Displays the download links as images. --]
  [![Windows x64         ][arch-w64]][megazeux-w64]
  [![Windows x86         ][arch-w32]][megazeux-w32]
  [![Mac OS X            ][arch-osx]][megazeux-osx]
  [![Ubuntu AMD64        ][arch-u64]][megazeux-u64]
  [![Ubuntu i386         ][arch-u32]][megazeux-u32]
  [![Debian AMD64        ][arch-d64]][megazeux-d64]
  [![Debian i386         ][arch-d32]][megazeux-d32]
  [![Nintendo DS         ][arch-nds]][megazeux-nds]
  [![Nintendo 3DS        ][arch-3ds]][megazeux-3ds]
  [![Nintendo Wii        ][arch-wii]][megazeux-wii]
  [![Nintendo Switch     ][arch-swi]][megazeux-swi]
  [![PlayStation Portable][arch-psp]][megazeux-psp]
  [![Source code         ][arch-src]][megazeux-src]

The following platforms have MegaZeux releases available via repository:

  [![Arch Linux (via AUR)][arch-aur]](
  [![Void Linux][arch-void]](
  [![Amiga OS 4 (outdated)][arch-ami]](
  [![GP2X (outdated)][arch-gp2x]](,0,0,0,26,2920)
  [![Pandora (outdated)][arch-pand]](

Downloads are also available for the following platforms, but are not regularly updated:

  [![Mac OS X (PowerPC)  ][arch-ppc]][megazeux-ppc]
  [![Raspbian            ][arch-rpi]][megazeux-rpi]
  [![MS DOS (MZX 2.70)   ][arch-dos]][megazeux-dos]

## Credits

| MegaZeux 2.9x     |                                  |
| ----------------- | -------------------------------- |
| Alice Rowan       | Developer/current maintainer     |
| Dr. Lancer X      | Developer (layer rendering)      |
| Adrian Siekierka  | Developer (various ports)        |
| Alistair Strachan | Developer (initial SDL 2 support)|
| Terryn            | Help file                        |
| Spectere          | Mac OS X builds                  |
| Insidious         | Ubuntu/Debian builds             |
| Others            | Various                          |

#### MegaZeux Credits

Programming and Overall Design by Gilead Kutnick (Exophase),
Alistair Strachan (ajs), Alice Rowan (Lachesis) and Lancer-X.

Based off of original program and source code by Alexis Janson.

Help file by Terryn.

Default SMZX palette by Joel Lamontagne (LogiCow).

ccv utility by Lancer-X.
png2smzx utility by Alan Williams (Mr_Alert).
checkres utility by Josh Matthews (Revvy), ajs and Lachesis.

Port contributors: Adrian Siekierka (asiekierka) [3DS],
Mr_Alert [Wii], Kevin Vance [NDS], Simon Parzer [GP2X].

Renderer code contributors: LogiCow, Mr_Alert.
Shader code contributors: David Cravens (astral), GreaseMonkey.

Icon by Quantum P.; Extra icons by LogiCow.
GDM conversion by ajs and MadBrain.
Other past contributors: Spider124, Koji, JZig, Akwende, MenTaLguY.

#### Special Thanks

Insidious (.deb Builds)
mzxgiant (MSVC Testing, Bug Fixes)
mzxrules (Testing)
Quantum P. (OS X Testing / Builds)
Spectere (OS X Builds)
Terryn (Testing)
Wervyn (Testing)

## License

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

## Contact

Want to talk about MegaZeux? Encountered a bug or would like a new feature?
The MegaZeux community and development team can be contacted through Discord,
GitHub, or the DigitalMZX forums.

[MegaZeux Discord]( [br/]
[DigitalMZX forums]( [br/]
[MegaZeux Bug tracker]( [br/]
[MegaZeux Feature requests]( [br/]
[AliceLR on GitHub]( [br/]

## Resources

[Official MegaZeux game archive]( [br/]
[MegaZeux help file]( [br/]
[Development roadmap]( [br/]
[Compiling MegaZeux on the official Wiki](


-Alice Rowan Developer/current maintainer
-Dr. Lancer X Developer (layer rendering)
-Adrian Siekierka Developer (various ports)
-Alistair Strachan Developer (initial SDL 2 support)
-Terryn Help file
-Spectere Mac OS X builds
-Insidious Ubuntu/Debian builds Others Various

Changelog v2.92d
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)

Download: MegaZeux v2.92d

Post a Comment