MegaZeux Platform Support Matrix
Best viewed with >=1920 pixel monitor. Requires Javascript.
Legend:
Ideal
Normal
Not applicable
Suboptimal, Trivially fixable
Faulty, Not trivially fixable
Platform Notes
- 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).
- 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.
- "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.
- 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).
- 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.
- The updater may or may not work on these platforms, but
no builds are currently provided by the official update hosts.
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- Networking support is only enabled when some feature that
requires it is also enabled. The only feature that currently uses networking
is the updater.
- 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 on hardware for the
following architectures:
- AMD64 / x86_64
- i386 / i686 / etc.
- ARMhf
- AArch64
- RISC-V RV64GC
More niche architectures are only tested via non-Linux ports or are
semi-regularly tested with Linux/BSD via QEMU emulation:
- DEC Alpha (qemu-system-alpha)
- MIPSeb (qemu-system-mips)
- MIPSel (qemu-system-mipsel, PlayStation Portable)
- MIPS64el (qemu-system-mips64)
- Motorola 68000 (qemu-system-m68k)
- PA-RISC (qemu-system-hppa)
- PowerPC (qemu-system-ppc, Nintendo Wii, Nintendo Wii U, Mac OS X)
- PowerPC 64 (qemu-system-ppc64, Mac OS X)
- SPARC (qemu-system-sparc)
- SPARC64 (qemu-system-sparc64)
- SuperH SH-4 (qemu-sh4-static, Sega Dreamcast)
- IBM Z (qemu-s390x-static)
Darwin/Xcode Architectures
The following architectures and SDL versions are currently supported by the macOS builds:
|
|
Xcode |
darwin-dist |
Toolchain/SDK |
Minimum OS |
SDL |
Minimum OS |
SDL |
ppc |
Xcode 3.2.6 10.4u SDK |
— |
— |
10.4 |
SDL 1.2.5 SDL 2.0.3 |
ppc64 |
Xcode 3.2.6 10.5 SDK |
— |
— |
10.5 |
SDL 1.2.5 SDL 2.0.3 |
i386 |
Xcode 9.4.1 10.13 SDK |
10.6 |
SDL 2.0.7 |
10.6 |
SDL 2.0.22 |
x86_64 |
Xcode 9.4.1 10.13 SDK |
10.6 |
SDL 2.0.7 |
10.6 |
SDL 2.0.22 |
x86_64h |
Xcode 9.4.1 10.13 SDK |
— |
— |
10.9 |
SDL2 (latest) |
Copyright
This document may be copied and redistributed without limitation
or reservation.