PowerPC Windows NT ported to Nintendo GameCube/Wii/Wii U
C
807
79 commits
updated Feb 26, 2026
The following systems are supported:
The following systems are theoretically supported, although not tested due to the rarity of such hardware:
The following systems will NEVER be supported:
NT 3.51 RTM and higher. NT 3.51 betas (build 944 and below) will need kernel patches to run due to processor detection bugs. NT 3.5 will never be compatible, as it only supports PowerPC 601. (The additional suspend/hibernation features in NT 3.51 PMZ could be made compatible in theory but in practise would require all of the additional drivers for that to be reimplemented.)
sd:\nt\disk00.isosd:\nt\disk00.img - I use qemu-img create disk00.img 2G, change the size as appropriate. Remember that the maximum file size on a FAT32 partition is 4GB.arcldr_dol.dol from Swiss; on Wii/vWii, load arcldr from the Homebrew Channel.Run firmware setup, then Repartition disk or disk image for NT installation.Press any key to restart. This should either restart your system or return to loader where you can load arcldr again.Run NT setup from cd00.
Setup could not determine the type of computer you have.Other (default selected option), just press Enter (or A button) when asked for hardware support disk.Nintendo GameCube, Wii and Wii U (vWii).Setup could not determine the type of one or more mass storage drivers installed in your system. At least two drivers need to be loaded at this point.
S (X button on GameCube controller, Z button on N64 controller) to pick a driver, choose Other from the list, press Enter (A button) when asked for hardware support disk, and choose the driver.
Nintendo Wii SD Slot (via IOS) [Disk Images] is required when using the front SD card slot on a Wii or Wii UNintendo Wii USB (via IOS) is required when using any USB device (keyboard, mouse or mass storage) on a Wii or Wii UNintendo GameCube Controller Ports is required when using devices plugged into the GameCube controller ports on a GameCube or WiiSD Gecko or IDE-EXI and Compatible [Disk Images] is required when using SD Gecko (or compatible) or IDE-EXI (or compatible) devices in the GameCube memory card slots on a GameCube or Wii, or the serial ports present underneath a GameCubeSetup could not determine the type of video adapter installed in the system. Choose Other from the list, press Enter when asked for hardware support disk, and choose the correct option depending on the OS you are installing.
ArtX Flipper, ATI Vegas, AMD Bollywood (NT 4) is for NT 4, ArtX Flipper, ATI Vegas, AMD Bollywood (NT 3.x) is for NT 3.51.Setup has determined that your computer contains the following hardware and software components, change Keyboard from Unknown to XT, AT or Enhanced Keyboard (83-104 keys) and Pointing Device from Unknown to No Mouse or Other Pointing Device.C: drive from the partition list. If you chose to create an NT partition of size 2GB or less, it must be formatted.C: partition again in the NT text setup partition selector.You need devkitPPC. Additionally, a libgcc.a compiled for powerpcle must be present in arcfw/gccle. If you need to find one, it should be present on any Void Linux mirror, the current filename to search for as of 2024-07-12 is cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps - decompress it by zstdcat cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps -o cross-powerpcle-linux-gnu-0.34_1.x86_64.tar, then pull the file out of the tarball: usr/lib/gcc/powerpcle-linux-gnu/10.2/libgcc.a.
DEVKITPPC environment variable is set to your devkitPPC directory, usually /opt/devkitpro/devkitPPCcd arcldr ; make -f Makefile.wii ; make -f Makefile.gc ; cd ..cd arcfw/baselibc ; make ; cd ../..cd arcfw; make ; cd ..You need peppc. Additionally, the powerpc libs from the NT4 DDK (ddk/lib/ppc/free/*.lib) must be present in lib. The rest of the toolchain (VC6 PPC CE cross compiler used for the C preprocessor for asm, as multi-line defines are handled improperly by gcc cpp; assembler PASM.EXE with single branch patched to skip "dump statements"; resource compiler and linker from MSVC 4.2, and its dependencies; SPLITSYM.EXE from NT 3.51 DDK to split COFF debug symbols from executables) is present in msvc-ppc directory.
To build the NT 3.5x GDI driver fpgx35dll you also need the powerpc winsrv.lib from NT 3.51 DDK.
The headers are included and come from various places with slight modifications for working with this toolchain, or for backwards compatibility reasons:
nt4/sdk - NT4 SDKnt4/ddk - NT4 DDK (including all the headers from the src/*/inc directories)nt4/crt - VC++ 4.0 (CRT headers)nt4/hal - because of a lack of a public dump, this folder includes the headers that have evidence suggesting they were included in the NT4 halkit (minus nthal.h which is in the hal source folder, and was modified to allow for backwards compatibility). Some have been modified to allow them to be included by drivers after ntddk.h (so drivers can call HalDisplayString for debugging purposes, or use LOADER_PARAMETER_BLOCK to determine whether they are running in text setup or not).The makefiles used are derived from devkitPro.
Ensure PEPPC environment variable is set to the peppc-build/toolchain/bin directory.
You must build the hal first (cd halartx; make; cd ..) before you can build the other drivers, as the HAL implements the exported IOP IPC and EXI drivers (due to the HAL itself using them).
framebuf.(top 24 of 37)
1,891 followers · starred Aug 2025
946 followers · starred Mar 2025
32 followers · starred Feb 2025
471 followers · starred Feb 2025
PowerPC Windows NT ported to Nintendo GameCube/Wii/Wii U
C
807
79 commits
updated Feb 26, 2026
The following systems are supported:
The following systems are theoretically supported, although not tested due to the rarity of such hardware:
The following systems will NEVER be supported:
NT 3.51 RTM and higher. NT 3.51 betas (build 944 and below) will need kernel patches to run due to processor detection bugs. NT 3.5 will never be compatible, as it only supports PowerPC 601. (The additional suspend/hibernation features in NT 3.51 PMZ could be made compatible in theory but in practise would require all of the additional drivers for that to be reimplemented.)
sd:\nt\disk00.isosd:\nt\disk00.img - I use qemu-img create disk00.img 2G, change the size as appropriate. Remember that the maximum file size on a FAT32 partition is 4GB.arcldr_dol.dol from Swiss; on Wii/vWii, load arcldr from the Homebrew Channel.Run firmware setup, then Repartition disk or disk image for NT installation.Press any key to restart. This should either restart your system or return to loader where you can load arcldr again.Run NT setup from cd00.
Setup could not determine the type of computer you have.Other (default selected option), just press Enter (or A button) when asked for hardware support disk.Nintendo GameCube, Wii and Wii U (vWii).Setup could not determine the type of one or more mass storage drivers installed in your system. At least two drivers need to be loaded at this point.
S (X button on GameCube controller, Z button on N64 controller) to pick a driver, choose Other from the list, press Enter (A button) when asked for hardware support disk, and choose the driver.
Nintendo Wii SD Slot (via IOS) [Disk Images] is required when using the front SD card slot on a Wii or Wii UNintendo Wii USB (via IOS) is required when using any USB device (keyboard, mouse or mass storage) on a Wii or Wii UNintendo GameCube Controller Ports is required when using devices plugged into the GameCube controller ports on a GameCube or WiiSD Gecko or IDE-EXI and Compatible [Disk Images] is required when using SD Gecko (or compatible) or IDE-EXI (or compatible) devices in the GameCube memory card slots on a GameCube or Wii, or the serial ports present underneath a GameCubeSetup could not determine the type of video adapter installed in the system. Choose Other from the list, press Enter when asked for hardware support disk, and choose the correct option depending on the OS you are installing.
ArtX Flipper, ATI Vegas, AMD Bollywood (NT 4) is for NT 4, ArtX Flipper, ATI Vegas, AMD Bollywood (NT 3.x) is for NT 3.51.Setup has determined that your computer contains the following hardware and software components, change Keyboard from Unknown to XT, AT or Enhanced Keyboard (83-104 keys) and Pointing Device from Unknown to No Mouse or Other Pointing Device.C: drive from the partition list. If you chose to create an NT partition of size 2GB or less, it must be formatted.C: partition again in the NT text setup partition selector.You need devkitPPC. Additionally, a libgcc.a compiled for powerpcle must be present in arcfw/gccle. If you need to find one, it should be present on any Void Linux mirror, the current filename to search for as of 2024-07-12 is cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps - decompress it by zstdcat cross-powerpcle-linux-gnu-0.34_1.x86_64.xbps -o cross-powerpcle-linux-gnu-0.34_1.x86_64.tar, then pull the file out of the tarball: usr/lib/gcc/powerpcle-linux-gnu/10.2/libgcc.a.
DEVKITPPC environment variable is set to your devkitPPC directory, usually /opt/devkitpro/devkitPPCcd arcldr ; make -f Makefile.wii ; make -f Makefile.gc ; cd ..cd arcfw/baselibc ; make ; cd ../..cd arcfw; make ; cd ..You need peppc. Additionally, the powerpc libs from the NT4 DDK (ddk/lib/ppc/free/*.lib) must be present in lib. The rest of the toolchain (VC6 PPC CE cross compiler used for the C preprocessor for asm, as multi-line defines are handled improperly by gcc cpp; assembler PASM.EXE with single branch patched to skip "dump statements"; resource compiler and linker from MSVC 4.2, and its dependencies; SPLITSYM.EXE from NT 3.51 DDK to split COFF debug symbols from executables) is present in msvc-ppc directory.
To build the NT 3.5x GDI driver fpgx35dll you also need the powerpc winsrv.lib from NT 3.51 DDK.
The headers are included and come from various places with slight modifications for working with this toolchain, or for backwards compatibility reasons:
nt4/sdk - NT4 SDKnt4/ddk - NT4 DDK (including all the headers from the src/*/inc directories)nt4/crt - VC++ 4.0 (CRT headers)nt4/hal - because of a lack of a public dump, this folder includes the headers that have evidence suggesting they were included in the NT4 halkit (minus nthal.h which is in the hal source folder, and was modified to allow for backwards compatibility). Some have been modified to allow them to be included by drivers after ntddk.h (so drivers can call HalDisplayString for debugging purposes, or use LOADER_PARAMETER_BLOCK to determine whether they are running in text setup or not).The makefiles used are derived from devkitPro.
Ensure PEPPC environment variable is set to the peppc-build/toolchain/bin directory.
You must build the hal first (cd halartx; make; cd ..) before you can build the other drivers, as the HAL implements the exported IOP IPC and EXI drivers (due to the HAL itself using them).
framebuf.(top 24 of 37)
1,891 followers · starred Aug 2025
946 followers · starred Mar 2025
32 followers · starred Feb 2025
471 followers · starred Feb 2025