BREATH OF THE WILD / MAC BUILD

Breath of the Wild on Mac: native build guide

MacNativeGames builds a native Mac app from your own supported Switch files. Choose a 1.6.0 or 1.9.0 input route, prepare the fonts, then run one build command.

Choose your files ↓
Nintendo Breath of the Wild artwork: Link overlooks Hyrule from a rocky summit.
Nintendo promotional artwork · © Nintendo ↗
Apple siliconMac onlymacOS 26+Build and play22 GB freeFresh work-folder checkYour own filesBase, update, keys and fonts

Start with the files you actually have

The script identifies the game and version from its contents. Renaming a file does not convert it into a supported input. Keep your base, update and keys as separate files where the route below requires them.

RouteRequired game filesDLC
1.6.0 combined cardOne supported XCI containing the base and 1.6.0 update.The supported card can include DLC inside it. Do not add separate DLC flags.
1.6.0 separate updateBase NSP or XCI plus the separate 1.6.0 update NSP/NSZ.No external DLC input on this route.
1.9.0 base + updateBase NSP plus the separate 1.9.0 update NSP.Optional: supply each DLC NSP separately with --dlc.

All routes need your prod.keys and a shared-font source. Use either a directory of extracted shared fonts or your own firmware directory. A card image without a font partition still needs an external font source.

Prepare the Mac, then pin the source

01

Install the command-line tools and dependencies

Install Homebrew first if it is not on this Mac. Let the Xcode tools installation finish before continuing.

Mac dependencies
xcode-select --install
brew install opus libvpx python@3.14
02

Use the same source version as this guide

Use a new folder for this checkout. The revision below supports both BOTW versions described here.

Fixed source checkout
mkdir -p ~/Games
git clone https://github.com/ly05010419/MacNativeGames.git ~/Games/MacNativeGames
cd ~/Games/MacNativeGames
git checkout f134a7b58c2ae46b03615b622cd3ecfd0c6d3ae6
Space and placement: the script checks for about 22 GB free for a fresh BOTW work folder. Keep the work folder and output app on the same APFS volume so packaging can clone files efficiently; allow additional room for your input files and backups.

Build the version you chose

YOUR FILES → LOCAL BUILD → PLAYBOTW has its own app and work folder.
Base + update
keys + fonts
→build_app.py
BotW_build
→Breath of the Wild.app

The examples run from the MacNativeGames source folder. Replace each example path with the corresponding file or folder on your Mac; quote paths that contain spaces.

1.9.0: base and update, without DLC

Build the 1.9.0 Mac app
python3.14 build_app.py ~/Games/botw-base.nsp -k ~/keys/prod.keys --update ~/Games/botw-1.9.0.nsp --firmware ~/Games/firmware
Add the two optional 1.9.0 DLC packs

Use your own DLC NSPs for title IDs ending 11F001 and 11F002. Pass the flag once for each file; these are game-data packages, not the TOTK mod options.

1.9.0 with both DLC files
python3.14 build_app.py ~/Games/botw-base.nsp -k ~/keys/prod.keys --update ~/Games/botw-1.9.0.nsp --dlc ~/Games/botw-dlc-1.nsp --dlc ~/Games/botw-dlc-2.nsp --firmware ~/Games/firmware
1.6.0: combined XCI or separate update

These examples reuse an extracted shared-font folder. If you have firmware instead, replace the --shared-fonts option and its path with --firmware ~/Games/firmware.

Combined 1.6.0 XCI
python3.14 build_app.py ~/Games/botw.xci -k ~/keys/prod.keys --shared-fonts ~/Games/TOTK_build/totk/extracted/firmware/shared-fonts
Separate base and 1.6.0 update
python3.14 build_app.py ~/Games/botw-base.nsp -k ~/keys/prod.keys --update ~/Games/botw-1.6.0.nsp --shared-fonts ~/Games/TOTK_build/totk/extracted/firmware/shared-fonts

Wait for the final app path before opening it. Do not use the TOTK build wizard for BOTW: its version choices and additional options serve a different game.

Open the app and keep its files organized

03

Launch Breath of the Wild.app

Open the app at the path printed by the builder. First launch verifies game data and any included DLC, then prepares shaders. Keep the work folder while you confirm the app opens and your save works.

A macOS security message has its own recovery steps: match the warning you see.

Default build folder
BotW_build, beside the base game file.
User data and saves
~/Library/Application Support/MacNativeGames/BotW
Runtime log
~/Library/Logs/MacNativeGames/botw.log
Build logs
The logs folder inside your BOTW work folder.

In Finder, use Go → Go to Folder to open the user-data path. Quit the game and copy that whole folder before updating or moving saves. Keep BOTW and TOTK backups separate.

Use the controls supported by your version

Key or option1.6.01.9.0
2 / 3Frame-rate / picture modesFrame-rate / picture modes
4 / 5Not the 1.9.0 shortcutsUltrawide view / temporal edge smoothing
Native 2K canvasNot implementedNot implemented
iPhone / iPad exportNo iOS buildNo iOS build

Pair a controller in macOS before testing it in the game. Follow the Mac pairing steps; the TOTK layout generator does not establish BOTW controller mappings.

If the build or first session stops

What happenedNext action
Unsupported input or versionReturn to the three input routes. Match the actual game contents, base and update rather than their filenames. Read the first error in the build log.
Font source missingSupply the extracted shared-font folder or firmware directory. Point at a real directory, not at the NSP or the parent of an unrelated build.
DLC rejectedSeparate DLC files are for the 1.9.0 route. Verify the DLC title IDs and supported base/update before rerunning.
A new scene stuttersAllow new shaders to compile, then revisit the same scene. Keep a first-visit pause separate from steady gameplay.
Link sinks into the ground / memory keeps growingThe early 1.9.0 notes describe these issues. Save, quit and retain the runtime log with your source revision and scene when reporting a repeatable problem.

Read the original 1.9.0 implementation and known issues ↗. For a different game or platform, compare MacNativeGames targets.