Homebrew loader runs original Plants vs Zombies Ultimate code on Switch
A GBAtemp developer has built a native loader that runs the unaltered ARM64 mobile build of Plants vs Zombies Ultimate on Switch homebrew, rather than remaking the game from scratch.
AI-drafted from 1 source. This story was written with AI from the outside reporting listed under Sources, and checked by automated tools before it went up. The originals have the full detail.
A developer on GBAtemp has published a homebrew loader that runs Plants vs Zombies Ultimate on Switch by loading the game's original mobile code directly, rather than rebuilding the game from the ground up. The project, posted by a user going by ChanseyIsTheBest, wraps version 2.12 of the ARM64 mobile build so it runs on Nintendo's console with English and Simplified Chinese available as in-game language options, according to the GBAtemp thread.
ARM64 is the instruction set used by both Switch's Tegra chip and most modern phones, which is the whole reason this works without an emulator in the traditional sense. Where a typical mobile-to-console project means reverse engineering assets and rewriting logic in a new engine, a native wrapper instead persuades the console to execute the game's own compiled code as if it were still on a phone, supplying whatever the mobile operating system would normally provide: input handling, audio output, file access, and so on.
What a NativeAOT wrapper actually does
The GBAtemp post describes the tool as a “native wrapper / loader,” built around NativeAOT, a Microsoft .NET technology that compiles code to native machine instructions ahead of time instead of relying on a runtime to translate it on the fly. That detail matters here because it suggests the original PvZ Ultimate mobile build was itself compiled this way, likely via a C#-based engine such as MonoGame, which produces ARM64 binaries that behave much like any other native app rather than something running inside a virtual machine. If that is right, the Switch port doesn't need to interpret or emulate the game's logic at all. It just needs to give the compiled binary somewhere to live and something to talk to.
That's a meaningfully different approach from projects that decompile and rebuild a game's source, sometimes called recomps, or from full software emulators that mimic an entire foreign system. Here the original binary is untouched. The loader is the only new code, which in principle should make the underlying game behave exactly as it did on a phone, gameplay logic included, for better or worse.
What's still unclear
The GBAtemp thread gives version and language details but not much else: no word on how touch controls map to buttons when the Switch is docked, no confirmation of how stable the wrapper is across different Switch firmware or hardware revisions, and no explanation of why Simplified Chinese specifically was included alongside English, which may hint at which regional build of the mobile game the loader targets. The project's GitHub repository is linked from the thread for anyone who wants to check the code themselves, but the thread itself doesn't detail build instructions or dependencies beyond naming the loader and the game version it targets.
For preservation-minded readers, the appeal is obvious: a mobile game that could vanish from app stores at any point, as PopCap's back catalogue periodically does, gets a second life on hardware people already own and tend to keep. For developers, it is also a small proof of concept that a NativeAOT-compiled ARM64 app doesn't strictly need its original operating system to run, provided someone is willing to write the glue. Whether that scales beyond one Plants vs Zombies spin-off is, as with most homebrew experiments, an open question the community will answer by trying it.
Sources
- PvZ Ultimate - Switch Port (GBAtemp.net - The Independent Video Game Community)
Image: GBAtemp.net - The Independent Video Game Community