Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
W

wiiMac

> 编程语言
Open source

A Mac OS X bootloader for the Nintendo Wii.

661 stars0 likes0 views
WebsiteGitHub

About

A Mac OS X bootloader for the Nintendo Wii.

wiiMac - A Mac OS X Bootloader for the Nintendo Wii

wiiMac enables PowerPC versions of Mac OS X to be booted natively on the Nintendo Wii.

See Releases for a precompiled, ready-to-run bootloader executable.

Supported Mac OS X Versions

Mac OS X Version Patched Kernel Drivers
10.0 Cheetah wii-xnu-124.13 wii-macosx-cheetah-drivers
10.1 Puma - -
10.2 Jaguar - -
10.3 Panther - -
10.4 Tiger - -
10.5 Leopard - -

Limitations

The following hardware is not yet supported:

  • Wi-Fi
  • Bluetooth
  • Optical drive
  • Hardware-accelerated graphics
  • Audio

Installation Guide

Prerequisites

To use wiiMac, you’ll need:

  • A Wii with an SD card slot (the Wii Mini is not supported)
  • A Wii that’s been soft-modded, with BootMii installed as boot2 or IOS
  • A MBR-formatted SD card with a FAT32 partition containing BootMii files (/bootmii/ppcboot.elf and /bootmii/armboot.bin)
  • A second SD card that’s at least 4 GB for the Mac OS X system

If you can open the BootMii menu, you’re ready to set up wiiMac. If you can’t, follow the instructions here.

SD Card Setup

As noted in the prerequisites above, two SD cards are needed.

Advanced users

Technically, you can get away with one SD card using a hybrid partitioning scheme: sector 0 contains MBR data, and sector 1 contains the APM data. This approach enables you to have the BootMii, wiiMac files, and the installed Mac OS X system all on the same SD card. Exactly how to accomplish this is left as an exercise for advanced users, but the gist of it is that you need to use fdisk to manually create an MBR at sector 0.

BootMii SD Card

First, we’ll install the wiiMac bootloader onto the SD card that you used to open the BootMii menu (see prerequisites).

  1. Download the latest version from Releases

  2. Copy the entire wiiMac folder (containing wiiMac.elf and config.txt) to the root of your SD card

  3. Verify that the following files exist:

/
└── bootmii
    ├── ppcboot.elf
    └── armboot.bin
└── wiiMac
    ├── wiiMac.elf
    └── config.txt
  1. Set the correct video_mode for your Wii in /wiiMac/config.txt (ntscp, ntsci, pal60, pal50)

Mac OS X System SD Card

Next, on a different SD card, we’ll prepare a Mac OS X system to be installed. We’ll need three partitions: a destination partition to which we’ll install Mac OS X, an install partition that we’ll boot from to run the installer, and a support partition containing a patched kernel and drivers.

Partitioning

Partitioning instructions depend on which host operating system you’re running.

macOS Host

  1. Run the following terminal command to obtain the device for the target SD card:
diskutil list
  1. Partition the SD card. Warning: this will erase the SD card.
bash
# Replace diskX with the correct device for the SD card
diskutil partitionDisk diskX APM \
  HFS+ "Macintosh HD" R \
  HFS+ "Install" 1G\
  FAT32 "Support" 64M

Linux Host

  1. Run the following terminal command to obtain the device for the target SD card:
lsblk -f
  1. Partition the SD card. Warning: this will erase the SD card.
bash
# Replace sdX with the correct device for the SD card
sudo parted /dev/sdX --script \
  mklabel mac \
  mkpart primary hfs+ 1MiB -1088MiB \
  mkpart primary hfs+ -1088MiB -64MiB \
  mkpart primary fat32 -64MiB 100%
  1. Format the partitions:
bash
# If hfsprogs is not installed:
sudo apt install hfsprogs        # Debian / Ubuntu
sudo pacman -S hfsprogs          # Arch
sudo dnf install hfsplus-tools   # Fedora

# then

# Replace sdX with the correct device for the SD card
sudo mkfs.hfsplus -v "Macintosh HD" /dev/sdX2
sudo mkfs.hfsplus -v "Install" /dev/sdX3
sudo mkfs.vfat -F 32 -n "Support" /dev/sdX4

Windows Subsystem for Linux (WSL) Host

Mount Media To use WSL to prepare media, we need to expose USB devices to WSL.

  1. Install usbipd-win:
batch
winget install --interactive --exact dorssel.usbipd-win
  1. Open a new PowerShell window as Administrator and list USB devices without the SD card inserted:
batch
usbipd list
…
  1. Plug in the SD card and re-enumerate USB devices to identify the SD card (7-1 in the output below)
batch
usbipd list
…
  1. Prepare to share the device (7-1):
batch
usbipd bind --busid 7-1
  1. Attach the device to WSL:
batch
usbipd attach --wsl --busid 7-1
  1. Run the following terminal command to obtain the device for the target SD card:
bash
lsblk -f
NAME
    FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda ext4   1.0
sdb ext4   1.0
sdc swap   1           3d051596-f50e-407d-9696-a285606a071c                [SWAP]
sdd ext4   1.0         633fba1b-1ccb-4dbf-bed6-79822f9f35a1  954.1G     0% /mnt/wslg/distro
                                                                           /
sde
sdf

sde and sdf are the volumes for the SD Card (and adapter?).

  1. Install needed utilities for disk partitioning and formatting:
bash
sudo apt install parted hfsprogs dosfstools mtools kpartx
  1. Partition the SD card. Warning: this will erase the SD card.
bash
# Replace sdX with the correct device for the SD card
sudo 
parted /dev/sdX
mklabel mac
mkpart primary hfs+ 1MiB -1088MiB
mkpart primary hfs+ -1088MiB -64MiB
mkpart primary fat32 -64MiB 100%
quit
  1. Format the partitions (still as sudo)
bash
# Replace sdX with the correct device for the SD card
mkfs.hfsplus -v "Macintosh HD" /dev/sdX2
mkfs.hfsplus -v "Install" /dev/sdX3
mkfs.vfat -F 32 -n "Support" /dev/sdX4

The partitions should look like this:

…
Flashing Installer

Next, we need our newly-created Install partition to contain a bootable Mac OS X installer. ISO backups of Mac OS X install media exist for many versions of Mac OS X. Once you’ve obtained an installer disk image for a supported version, mount it and then perform the following steps depending on your host operating system:

macOS Host

  1. Run the following terminal command to obtain the device and partition numbers for the SD card Install partition and the Mac OS X installer partition.
diskutil list
  1. Unmount both partitions:
# Replace diskXsA with the correct device and partition number for the SD card Install partition
diskutil unmount diskXsA
# Replace diskYsB with the correct device and partition number for the Mac OS X installer partition
diskutil unmount diskYsB
  1. Block-level copy the contents of the source Mac OS X installer partition to the destination Install partition on your SD card:
bash
# Replace diskXsA with the correct device and partition number for the SD card Install partition
# Replace diskMsY with the correct device and partition number for the source installation
sudo dd if=/dev/rdiskYsB of=/dev/rdiskXsA bs=512k status=progress

Linux Host

  1. Use the following command to create logical devices for each partition in the installer image.
bash
sudo kpartx -av /path/to/installer/iso
  1. Run the following terminal command to obtain the device and partition numbers for the SD card Install partition and the Mac OS X installer partition.
lsblk -f
  1. Unmount both partitions:
bash
# Replace sdXA with the correct device and partition number for the SD card Install partition
sudo umount /dev/sdXA
# Replace sdYB with the correct device and partition number for the Mac OS X installer partition
sudo umount /dev/sdYB
  1. Block-level copy the contents of the source Mac OS X installer partition to the destination Install partition on your SD card:
bash
# Replace sdXA with the correct device and partition number for the SD card Install partition
# Replace sdYB with the correct device and partition number for the source installation
sudo dd if=/dev/sdYB of=/dev/sdXA bs=1M status=progress conv=fsync

WSL Host

  1. Download the ISO in Windows and copy into WSL.

  2. Use the following commands to create logical devices for each partition in the installer image.

bash
sudo kpartx -av /path/to/installer/iso

Example output:

add map loop0p3 (254:0): 0 60 linear 7:0 4
add map loop0p4 (254:1): 0 56 linear 7:0 64
add map loop0p5 (254:2): 0 120 linear 7:0 120
add map loop0p6 (254:3): 0 56 linear 7:0 240
add map loop0p7 (254:4): 0 120 linear 7:0 296
add map loop0p8 (254:5): 0 512 linear 7:0 416
add map loop0p9 (254:6): 0 1157000 linear 7:0 928
  1. Run the following terminal command to obtain the device and partition numbers for the SD card Install partition and the Mac OS X installer partition.
bash
lsblk -f

Example output:

…
  1. Block-level copy the contents of the source Mac OS X installer partition to the destination Install partition on your SD card.

Note that the loopback partitions are exposed under /dev/mapper and not /dev/:

bash
# Replace sdXA with the correct device and partition number for the SD card Install partition
# Replace loopYpB with the correct device and partition number for the source installation
sudo dd if=/dev/mapper/loopYpB of=/dev/sdXA bs=1M status=progress conv=fsync

Example:

bash
sudo dd if=/dev/mapper/loop0p9 of=/dev/sde3 bs=1M status=progress conv=fsync
307232768 bytes (307 MB, 293 MiB) copied, 1 s, 307 MB/s592384000 bytes (592 MB, 565 MiB) copied, 1.86659 s, 317 MB/s

564+1 records in
564+1 records out
592384000 bytes (592 MB, 565 MiB) copied, 77.7162 s, 7.6 MB/s
Preparing Support Partition

The FAT32 “Support” partition is where we’ll store the patched kernel and drivers. Create a folder titled “wiiMac” at the root of this partition, and copy the appropriate mach_kernel and driver kexts into that folder. Refer to the supported version table for links to download a patched kernel and drivers.

Verify that the following files exist on the Support partition:

/
└── wiiMac
    ├── mach_kernel
    ├── IOUSBFamily.kext
    └── NintendoWii*.kext (all other drivers)

WSL Host Notes

Microsoft's default WSL2 kernel is heavily optimized and intentionally omits the vfat (FAT32) kernel module to save space and reduce boot time. Because of this, the standard mount command for FAT32 filesystems will always fail natively inside WSL2 unless you compile a custom kernel. You can attempt to unmount the volume and just copy the files in using Windows but that didn't work for me. Instead we'll use mtools utilities to copy files into the partition.

bash
sudo mmd -i /dev/sdXA ::/wiiMac
sudo mcopy -s -i /dev/sdXA /mnt/c/path/to/files/* ::/wiiMac

Confirm the contents of the drive:

bash
sudo mdir -i /dev/sdXA ::/wiiMac/

Example output:

…

Then unmount the drive from WSL in your Administrator PowerShell window:

powershell
usbipd detach --all

Installing Mac OS X

Now that we have both of our SD cards set up, we’re ready to boot into the Mac OS X installer to install Mac OS X.

Running wiiMac

First, we need to load and run the wiiMac bootloader using BootMii.

  1. Insert the BootMii SD card and load into the BootMii menu
  2. Navigate to the SD card icon and select it
  3. Navigate to the wiiMac folder, and open wiiMac.elf

You should now be running the wiiMac bootloader.

Booting the Mac OS X Installer

Next, we’ll boot the Mac OS X installer so that we can install Mac OS X.

  1. Remove the BootMii SD card
  2. Insert the Mac OS X System SD card
  3. Use the Power button to select to the Mac OS X installer partiti

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言