Oct 31, 2022 3 min read

How to play Ocarina of Time and Majora's Mask in 4K on Steam Deck

With the right mods, you can play The Legend of Zelda: Ocarina of Time and Majora's Mask in 4K on Steam Deck.

A Majora's Mask figurine standing next to a Steam Deck

While Nintendo is still holding out on releasing the remakes of both The Legend of Zelda: Ocarina of Time and The Legend of Zelda: Majora's Mask for Nintendo Switch, we thought we should take the matter into our own hands and see how to get it running on a modern handheld — namely the Steam Deck.

Thanks to a fantastic modding community, we can now install 4K textures for the 3DS versions of both classic Zelda games, which look superb.

Here's a look at what to expect:

For this guide, we're working with Majora's Mask.

Play Majora's Mask on Steam Deck

To play Majora's Mask on the Steam Deck, you'll want this texture pack by Henriko Magnifico and Project Restoration.

Here's what you need to do to get this running:

  1. First, you need to install the emulators following our guide.
  2. Next, when you legally acquired your 3DS ROM, download the textures above. While the 4K textures look the best, they need a whooping 11GB of disk space.
  3. Unpacking the texture pack comes with a lot of folders, most of which you can ignore. The folder you want to look for is in user/load/textures/ and is called 0004000000125500.  If it doesn't exist, you need to create it first.
  4. Copy that folder onto your Steam Deck into /home/deck/.var/app/org.citra_emu.citra/data/citra-emu/load/textures. You might need to show hidden files.
  5. Next, start up Citra on your Steam Deck, click on Emulation, then Configure and under Graphics toggle the Use Custom Textures option below. Here, you can also set the Internal Resolution to something higher, like 3x native.
  6. For Project Restoration, you want to copy the files called code.bps and exheader.bin into /home/deck/.var/app/org.citra_emu.citra/data/citra-emu/load/mods. You might have to recreate a folder called 0004000000125500 here too.

One note, however: Depending on the region of your legally acquired 3DS ROM, you might need to replace 0004000000125500 for 0004000000125600 if it's a European/Australian ROM, or 0004000000125400 for the Japanese ROM.

Here's a look at what you can expect:

Play Ocarina of Time on Steam Deck

The steps for 4K textures for Ocarina of Time (nearly 10GB) are similar, only that the destination folder changes.

For the US version, you want to add the textures to 0004000000033500, and 0004000000033600 for the European/Australian ROM, while for the Japanese version you want to use 0004000000033400. There is, however, no Project Restoration for the 3DS version of Ocarina of Time.

If you are running low on space

User pheraph over on our Discord channel also shared a way to store the textures on an external microSD-card and symlink (basically create a virtual copy) the texture pack back to the correct place. This method also respects the folder structure created by EmuDeck and makes it thus easier to manage multiple texture packs.

The command to do so is as follows:

ln -s /run/media/mmcblk0p1/Emulation/hdpacks/citra/ /home/deck/.var/app/org.citra_emu.citra/data/citra-emu/load

Next, in hdpacks/citra you want to create a folder called textures and add a folder with the ROM number (like 0004000000125500 for Majora's Mask) in that one. Do the same for mods and any other game.

So there you have it, that's how you can play these Nintendo 64 classics on a modern handheld. Let us know if you give it a go!

Did you find this post helpful?

It was published in overkill digest first, a free weekly newsletter where we feature a mix of content from overkill.wtf, links to exciting gaming reads we found across the internet, and more. Sign up here!
Kevin Wammer
Kevin Wammer
Gamer since the age of 3. Fell in love with tech while hacking PSPs for fun. I have a tri-force on my forearm.
Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to overkill.wtf.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.