# MegaZeux Platform Support Matrix

Best viewed with >=1280 pixel monitor.

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

$PLATFORM | amiga | android | darwin | gp2x | mingw | msvc | nds | psp | unix | wii | pandora
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
Description | AmigaOS 4.x | Android | MacOS 10.x | GP2X | Windows (GNU toolchain) | Windows (Visual Studio) | Nintendo DS | Playstation Portable | Linux, BSD, Solaris HaikuOS, etc. | Nintendo Wii | Pandora
Architecture(s) (Tested Only) | PPC (ELF) | ARMv7-a (ELF) i686 (ELF) | PPC (Mach-O) i686 (Mach-O) | ARM9 (ELF) | x86 (PE COFF) | x86 (PE COFF) x64 (PE+ COFF) | ARM9 (ELF) | MIPS (ELF) | x86 (ELF) AMD64 (ELF) PPC64 (ELF) | PPC (ELF) | ARMv7-a (ELF)
Endian | Big | Little | Varies | Little | Little | Little | Little | Little | Varies | Big | Little
Toolchain | gcc 4.2.2 binutils 2.14 clib2 | gcc 4.2.1 binutils 2.17 bionic | gcc 4.0.1 cctools 667.3 10.3 (min ver) | gcc 4.1.1 binutils 2.16.1 glibc 2.3.6 (open2x) | gcc 4.4.0 binutils 2.19.1 | Visual Studio 2008 | gcc 4.4.0 binutils 2.19.1 (dk r26) | gcc 4.3.3 binutils 2.16.1 (dk r13) | Various | gcc 4.4.1 binutils 2.19.1 (dk r18) | gcc 4.4.1 binutils 2.19.51 (CS 2009q3)
Packaged | LHA | TBD | DMG | ZIP | ZIP | NO[1] | ZIP | ZIP | Various | ZIP | ZIP (PND?)
Optimized Visibility[2] | YES | YES | YES | N/A | YES | YES | N/A | N/A | YES | N/A | YES
Stack Protector | YES | NO | YES | NO | NO[3] | NO | NO | NO | YES | NO | YES
Module Engine | ModPlug | ModPlug | ModPlug | MikMod | ModPlug | ModPlug | N/A | ModPlug | ModPlug | ModPlug | ModPlug
Ogg Vorbis | libvorbis | tremor | libvorbis | tremor | libvorbis | libvorbis | N/A | tremor | libvorbis | libvorbis | tremor
Optimization | Speed | Size | Speed | Size | Speed | Speed | Size | Size | Speed | Size | Speed
SDL | YES | NO | YES | YES | YES | YES | NO | YES | YES | NO | YES
EDITOR | YES | YES | YES | NO[4] | YES | YES | NO[4] | NO[4] | YES | YES | YES
HELPSYS | YES | YES | YES | NO[4] | YES | YES | NO[4] | NO[4] | YES | YES | YES
AUDIO | YES | TBD | YES | YES | YES | YES | NO | YES | YES | YES | YES
SOFTWARE | YES | NO | YES | render_gp2x | YES | YES | render_nds | YES | YES | render_gx | YES
GL | YES | YES | YES | N/A | YES | YES | NO | NO | YES | NO | NO
OVERLAY | YES | NO | YES | NO | YES | YES | NO | NO | YES | NO | NO
GLSL | YES | YES | YES | N/A | YES | YES | N/A | N/A | YES | N/A | NO
UPDATER | YES | YES | YES | YES | YES | YES | NO | NO | NO[5] | NO | YES
MODULAR | YES | YES | YES | N/A | YES | YES | N/A | N/A | YES | N/A | N/A
PNG | YES | YES | YES | YES | YES | YES | NO[6] | NO[6] | YES | NO[6] | YES
X11 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | YES | N/A | NO
LOADSAVE_METER | NO | NO | NO | YES | NO | NO | YES | YES | NO | YES | NO

### Platform Notes

1. Could use existing `package.sh' however this does not handle PDB files.
   MSVC binaries are replicate of MinGW binaries and require a non-free, non cross-capable compiler.
2. "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.
3. Disabled due to miscompilation of stack protector in conjunction with C++ exceptions with some MinGW compilers.
4. 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.
5. 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.
6. Not had the opportunity to cross compile the required libraries (zlib and libpng).
   Future developments may depend on these libraries, such as networking and the archive browser. Currently, the bloat cannot be justified, and these platforms do not yet have functioning network APIs.

### Copyright

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