The Zune HD that has been sitting in a drawer since Microsoft discontinued the line in 2011 can now run Super Mario 64. Not through emulation: natively, compiled directly for the device’s Nvidia Tegra chip, with touchscreen controls and save support.
Developer rsheldiii released sm64-zune, a port built on sm64ex, the community-maintained fork of the fan-led Super Mario 64 decompilation project. According to the repository, the port delivers mostly full-speed gameplay with sound, though that qualifier is an honest one.
How It Actually Works
Getting native ARM code onto a device designed for XNA applications required building an unconventional software pathway from the ground up.
The Zune HD uses Microsoft’s XNA framework for third-party software. The project uses OpenZDK, an unofficial development kit the homebrew community created to enable native applications on the device. The port compiles as native ARM code and launches through a small XNA wrapper.
One hardware constraint shaped the entire rendering approach. The Zune’s Tegra APX 2600 graphics driver cannot compile shaders at runtime, so rsheldiii precompiled them using Nvidia’s Tegra tools before the game reaches the device. The result renders at 480×272, exactly matching the Zune HD’s 3.3-inch OLED display in landscape orientation.
Audio runs on a separate thread from the main game loop, per the repository, which helps sound hold up when the frame rate dips. Gameplay targets 30 ticks per second, though the repository acknowledges the Zune cannot always sustain that pace.
The touchscreen overlay includes a simulated analog stick plus A, B, Z, R, C-buttons, and Start controls.
To build it yourself, you need:
- A Zune HD running firmware 4.5 (the only version tested by the project)
- A Super Mario 64 USA ROM matching the repository’s specified checksum
- An x86-64 Linux machine with Docker and Git installed
- Approximately 6 GB of free space
- A USB cable to transfer the finished package
The repository ships no ROM, no game assets, and no prebuilt file you can drop onto the device. The build process uses your provided ROM to produce a package you transfer yourself. The developer flags installation as performed at the user’s own risk.
Why the Zune HD Is a Harder Target Than It Looks
The Tegra APX 2600 had enough processing capability for the task; the real engineering work was on the software side.
The Tegra APX 2600 hardware was capable for 2009, designed to handle multimedia and graphics workloads. The project’s documented challenges were primarily software constraints rather than raw processing limits, though the repository does not rule out hardware as a contributing factor in performance dips.
Those software barriers included a locked native-code path, a shader pipeline that could not compile at runtime, specialized Tegra tooling, and an unofficial SDK built entirely outside Microsoft’s support structure. OpenZDK provided the native pathway the project needed. Microsoft discontinued the Zune line in 2011, but the homebrew community maintained the development infrastructure.
Copyright Context
The repository is structured to separate open-source porting code from Nintendo’s copyrighted game content.
Nintendo has previously pursued distribution of compiled Super Mario 64 PC port builds, as reported by Hackaday. The sm64-zune repository ships only the porting code, never the game’s copyrighted assets or ROM. Users must supply their own ROM copy; whether doing so is lawful depends on applicable copyright law in each user’s jurisdiction. That separation keeps open-source code and commercial video games files clearly distinct, though it does not resolve every legal question surrounding the broader decompilation ecosystem.
The Bigger Picture
The project shows what becomes possible when decompilation efforts, reverse-engineered development kits, and hardware-specific toolchains converge around discontinued consumer hardware.
Microsoft did not officially support Super Mario 64 on the Zune HD. Through the convergence of the sm64ex decompilation project, OpenZDK, and Tegra-specific shader tooling, a developer has made it run anyway.




























