Monday, 2 November 2026

Play Mario 64 on a Zune HD with touchscreen and saves

A homebrew build compiles Nintendo's 3D classic straight for the Zune's Tegra chip using OpenZDK. Here is how it works and what you need to try it.

Zune HD
Photo: Robert Nelson from Tarpon Springs, Florida, USA / CC BY 2.0 (modified)

The short version

  • Developer rsheldiii's sm64-zune project runs Super Mario 64 natively on Microsoft's Zune HD, not through an emulator.
  • It relies on OpenZDK, an unofficial kit that opened the Zune to native apps, plus precompiled shaders for the Tegra chip.
  • There is no download: you build it on a Linux PC with Docker from your own game copy, then copy it over USB.
  • Only Zune HD firmware 4.5 has been tested, and the game logic targets 30 ticks a second with some slowdown.
Quick read · 2 min

Super Mario 64 now runs on Microsoft's Zune HD, the 2009 media player that rivaled the iPod. A developer called rsheldiii built a native version for the player's Nvidia Tegra chip rather than an emulator, with a touchscreen controller overlay, sound and saves.

The project depends on OpenZDK, an unofficial kit fans released after hacking the Zune HD, plus shaders prepared ahead of time because the Zune cannot compile them on the fly. It plays mostly at full speed, with some lag when the player falls behind.

  • No download: you build it on a Linux PC with Docker.
  • You must supply your own US copy of the game.
  • Only firmware 4.5 has been tested.

Nintendo has acted against compiled Mario 64 builds before, which is why the project ships only its own code. Whether using your own copy is legal depends on where you live.

A music player Microsoft stopped making in 2011 can now run Super Mario 64, and not through an emulator. A developer known as rsheldiii has compiled Nintendo’s 3D platformer to run natively on the Zune HD’s Nvidia Tegra chip, complete with an on-screen touch controller and working saves.

If you still have a Zune HD in a drawer, this is a reason to charge it. The Mario 64 Zune HD port is also a neat look at how fan projects keep old gadgets alive long after their makers walk away, and how a half-forgotten toolkit called OpenZDK made it possible.

01

How the Mario 64 Zune HD port works

The project, called sm64-zune, runs as native ARM code (instructions the Zune’s processor executes directly) rather than inside an emulator that imitates a Nintendo 64. That is the big difference. Emulation adds a heavy layer of overhead, while a native build runs the game’s own logic straight on the hardware.

It is built on sm64ex, a fan-maintained fork of the unofficial Super Mario 64 PC port. That PC port exists because fans finished decompiling the game in 2019, turning the original cartridge code back into readable C source that rebuilds a matching copy of the game. The full PC port followed in May 2020, and sm64ex added extras such as mouse look and a cheats menu.

For the Zune version, the developer applied 14 patches to a fixed version of sm64ex. The game launches through a small wrapper written for XNA, the Microsoft framework the Zune officially allowed for third-party software. The Zune’s own firmware is not modified.

Super Mario 64, related to: Play Mario 64 on a Zune HD with touchscreen and saves
Photo: Martinligabue / CC BY-SA 4.0 (modified)
02

What is OpenZDK?

OpenZDK is an unofficial development kit that lets programmers run native code on the Zune HD, something Microsoft never allowed. Officially, outside developers had to use XNA, which kept them away from much of the hardware. Fans quickly found it too limited, especially for 3D games.

That changed when the ZuneBoards community announced a hack of the Zune HD and released OpenZDK alongside it, around the time the first 64GB Zune HD models were reaching buyers. Developers described it as access to everything XNA had held back. In less than a week, a Zune HD version of Doom had appeared using the kit.

Microsoft halted Zune production in 2011, but OpenZDK stayed around. It is the piece that gives this new Mario project a path to the bare hardware.

03

The graphics tricks that make it run

The hardest part was not raw speed. It was software. The Zune HD uses Nvidia’s Tegra APX 2600 chip, and its graphics driver cannot compile shaders (the small programs that tell the graphics chip how to draw each pixel) while the game is running.

To get around that, the port uses an OpenGL ES 2 renderer based on the game’s Fast3D graphics code, with shader variants prepared ahead of time using Nvidia’s Tegra tools. The graphics chip also has no dedicated hardware for blending see-through effects, so that blending is baked into the shaders too.

The game draws at 480×272 sideways, which matches the Zune HD’s 3.3-inch OLED touchscreen when you turn the player on its side. Sound runs on its own thread with higher priority than the game, so audio holds steady even when the picture slows down.

Close-up of a retro handheld device with a small screen
04

How well it plays

The developer says the game runs mostly at full speed with sound, touch controls and saves, and that qualifier is honest. The game logic runs at 30 ticks a second, but the Zune cannot always keep up, so you will see some lag. There is no official frame-rate figure.

Controls sit in a see-through overlay on top of the picture. You get a stand-in analog stick, the A, B, Z and R buttons, all four C buttons and Start. You can change the button style and how see-through the overlay is. The player is turned sideways while you play, so your thumbs sit on either side of the screen.

05

What you need to try it yourself

There is no file to download and drop on your player. The repository has no releases and ships no game assets, so you build the package yourself. You will need:

  • A Zune HD running firmware 4.5, the only version the project has tested.
  • Your own copy of the US version of Super Mario 64, matching the checksum the project lists. The developer suggests dumping it from a cartridge you own.
  • A 64-bit Linux computer with Docker and Git, plus about 6 GB of free space. No Windows PC is needed.
  • A USB cable to move the finished game onto the Zune.

The build reads your game file on the PC, produces a package and leaves the transfer to you. The developer warns that installing it is at your own risk, the standard disclaimer for homebrew.

06

Why this matters beyond nostalgia

For everyday gadget owners, the lesson is about how long hardware can stay useful. The Zune HD launched at $219.99 to $289.99 depending on storage and lasted only a couple of years on sale. Yet fan-made tools have kept it running new software more than a decade later.

There is a legal edge, too. When the PC version appeared, Nintendo quickly went after a gameplay video and websites offering ready-made builds of it. This project keeps its open-source porting code separate from Nintendo’s copyrighted game, which is why you must supply your own copy. Whether that is lawful depends on copyright law where you live.

Mario 64 ports keep popping up on unlikely hardware, from the 3DS and Wii U to the Dreamcast and the web. They may be getting more common thanks to AI coding tools: the first commit in this project credits an AI assistant as co-author, so AI helped at least in part.

07

Quick answers

Can you download Mario 64 for the Zune HD?

No. The project offers no prebuilt file or game data. You build it on a Linux PC from your own copy of the game, then copy it to the Zune over USB.

Does the Zune HD port use an emulator?

No. It is compiled as native code for the Zune’s Tegra chip through OpenZDK, which is why it can run at close to full speed.

Which Zune HD firmware does it need?

Firmware 4.5 is the only version the developer has tested, so other versions may not work.

You're reading the quick version.