MegaZeux Platform Support Matrix

Best viewed with >=1920 pixel monitor. Requires Javascript.

Legend: Ideal Normal Not applicable Pending triage Suboptimal, Trivially fixable Faulty, Not trivially fixable


Platform Notes

  1. These platforms are currently unsupported due to lack of available hardware to test on, lack of working toolchains, inherent compatibility issues with MegaZeux, or simply lack of interest. Information based on last known working builds (if any).
  2. Could use existing `package.sh' however this does not handle PDB files.
    MSVC binaries are replicate of MinGW binaries and require a proprietary non cross-capable compiler.
  3. "Optimized Visibility" refers to the hiding of library symbols which are not required or referenced outside of that library. An "optimized" library is smaller and loads faster.
    Required on Win32. Only applicable with CONFIG_MODULAR=y builds.
  4. The GCC option `-fstack-protector-strong` is preferred when available; otherwise, `-fstack-protector-all` will be selected. The config.sh option `--disable-stack-protector` should be used for old MinGW compilers (due to miscompilation in conjunction with C++ exceptions) and for platforms where GCC does not support the stack protector at all (e.g. DEC Alpha).
  5. The editor and help system features are disabled to conserve cache on embedded platforms. The features build and work on these platforms, but they are basically unusable due to the lack of any on-screen keyboard. Additionally, hash tables have been disabled on the NDS to conserve memory.
  6. The updater may or may not work on these platforms, but no builds are currently provided by the official update hosts.
  7. The updater is typically disabled in the Linux binaries that are shipped (for distributions like Debian or Fedora), even though the feature can easily be enabled.
    The issue is that MegaZeux is installed system-wide on these platforms and overwrites cannot be guaranteed.
    Additionally, it is felt that the advanced package management on these platforms supercedes any usefulness of the built-in updater.
  8. Building MZX with SDL on the 3DS is viable, but the software renderer is far slower, currently offers no additional functionality, and doesn't allow for special features such as screen dragging. Furthermore, SDL significantly increases the size of the MZX executable.
  9. Building MZX with SDL Wii (1.2) or SDL2 is viable, but produces larger binaries than desired and relies on the software renderer. SDL Wii (1.2) is also considered unstable. Also, the SDL controller mappings are far less flexible than MZX's built-in support and may omit features (like the classic controller's analog triggers).
  10. Layer rendering is supported on this platform by as it uses the SDL software renderer. By default, the 8bpp software renderer is selected for performance, so the UI palette will not be protected in SMZX mode. Switching to a higher force_bpp value will fix this issue.
  11. The GL renderers work on the Switch but have been disabled because they cause system crashes when exiting MegaZeux. They generally seem to perform worse than softscale, so there isn't much reason to fix this.
  12. The GL fixed-function renderers currently do not work with Android. This hasn't been investigated because the softscale and GLSL based renderers are essentially guaranteed to work with the supported API levels.
  13. Networking support is only enabled when some feature that requires it is also enabled. The only feature that currently uses networking is the updater.
  14. libpng is used to save screenshots/editor image exports, to load icons for some platforms, to load the onscreen keyboard in the 3DS port, and for loading PNGs with the utilities ccv and png2smzx. MegaZeux has a fallback PNG exporter, so libpng can be disabled to reduce executable size if it isn't really needed and/or if the worse PNG output is acceptable. Currently, only DJGPP is truly deficient here (utilities).
  15. There is currently a toolchain conflict between two versions of zlib - one (1.2.5) included in the Wii U operating system, one (1.2.11) included in devkitPro. As such, the devkitPro-provided version of libpng fails to link.

Other Unix Architectures

MegaZeux is regularly tested with Linux, BSD, and/or Android on hardware (or semi-regularly tested in QEMU) for the following architectures:

Debian GNU/Linux Alpine Linux NetBSD Android Related ports
AMD64 / x86-64 YES YES YES
i386 / i686 / etc. YES YES
AArch64 Le Potato
Raspberry Pi
qemu-system-aarch64 YES Nintendo Switch
ARMv7 Raspberry Pi qemu-system-arm YES PlayStation Vita
Pandora
ARMv6 / ARMhf Raspberry Pi
qemu-system-arm
Nintendo 3DS
<=ARMv5 Nintendo DS
GP2X
RISC-V RV64GC VisionFive 2
qemu-system-riscv64
DEC Alpha qemu-system-alpha
LoongArch64 qemu-system-loong64
MIPSeb qemu-system-mips
(Debian 10.13)
MIPSel qemu-system-mipsel
(Debian 12.x)
PlayStation Portable
MIPS64el qemu-system-mipsel
Motorola 68000 qemu-system-m68k
PA-RISC qemu-system-hppa
PowerPC qemu-system-ppc Mac OS X
Nintendo Wii
Nintendo Wii U
AmigaOS 4
PowerPC 64 qemu-system-ppc64 Mac OS X
POWER8 qemu-system-ppc64
SPARC qemu-system-sparc
SPARC64 qemu-system-sparc64
SuperH SH-4 qemu-sh4 (binfmt_misc) Sega Dreamcast
IBM Z qemu-system-s390x

Darwin/Xcode Architectures

The following architectures and SDL versions are currently supported by the macOS builds. Listed toolchain/SDK values are the ones used for release builds currently:

Xcode darwin-dist
Toolchain/SDK Minimum OS SDL Toolchain/SDK Minimum OS SDL Enabled in
release
ppc Xcode 3.2.6
10.4u SDK
10.4 SDL 1.2.15
SDL 2.0.3
YES (1.2.15)
ppc64 Xcode 3.2.6
10.5 SDK
10.5 SDL 1.2.15
SDL 2.0.3
YES (1.2.15)
i386 Xcode 9.4.1
10.13 SDK
10.6 SDL 2.0.22 YES
x86_64 Xcode 14.2
13.1 SDK
10.11
10.14
SDL2 (latest)
SDL3 (latest)
Xcode 9.4.1
10.13 SDK
10.6 SDL 2.0.22 YES
x86_64h Xcode 9.4.1
10.13 SDK
10.9 SDL2 (latest)
SDL3 (requires newer Xcode)
NO
arm64 Xcode 14.2
13.1 SDK
11.0
11.0
SDL2 (latest)
SDL3 (latest)
Xcode 14.2
13.1 SDK
11.0 SDL2 (latest)
SDL3 (latest)
YES
arm64e Xcode 14.2
13.1 SDK
11.0 SDL2 (latest)
SDL3 (latest)
NO

Copyright

This document may be copied and redistributed without limitation or reservation.