Windows
Windows Developer Environment Setup
What to install
Everything not marked optional is required. Polyphase always packages for GameCube, Wii and 3DS, so the devkitPro toolchains are part of the baseline setup, not an extra.
| Install | Needed for | Verify with |
|---|---|---|
| Visual Studio 2022 Community with the "Desktop development with C++" workload | Everything (Polyphase.sln) |
Polyphase.sln opens and builds DebugEditor |
| CMake | libgit2 prebuild (Tools\prebuild.bat), native addons that ship a CMake project |
cmake --version |
| Vulkan SDK 1.3.275.0 (LunarG) | Editor and every game build, glslc for shaders |
echo %VULKAN_SDK% prints the install path, glslc --version |
Python 3 on PATH |
Tools\prebuild.bat asset stubs, Lua stub generator, 3DS 3D banners |
python --version |
devkitPro installer with wii-dev and 3ds-dev (installed through its MSys2 pacman) |
Packaging for Wii, GameCube and 3DS (the devkitPPC and devkitARM compilers) | in the devkitPro MSys2 shell: /opt/devkitpro/devkitPPC/bin/powerpc-eabi-g++ --version |
libogc2, libogc2-libdvm, gamecube-tools-git (same pacman) |
Packaging for GameCube (its libraries come from libogc2, not the stock libogc) | ls /opt/devkitpro/libogc2/lib/cube in the MSys2 shell |
makerom, bannertool, cwavtool, pycgfx |
The Nintendo 3DS (CIA) installable target | Packaging a 3DS installable |
WSL2 with rpm / appimagetool (optional) |
The Linux RPM and AppImage installer targets from a Windows host; see Linux.md | wsl rpmbuild --version |
| Android Studio with SDK Build Tools 34.0.0, NDK 25.2.9519653, CMake 3.22.1 (optional) | Packaging for Android; see Compiling.md | SDK Manager shows the three components |
| Docker Desktop (optional) | Building Linux and console targets in the maintained container instead of installing the toolchains above; see Compiling.md | docker --version |
Pull Submodules
git submodule update --init --recursive
Download and Install:
- Visual Studio Community 2022 (with C++ support)
- CMake
- Vulkan SDK version 1.3.275.0 (During install select "Shader Toolchain Debug Symbols - 64 bit" and deselect all other options)
- devkitPro (base installer; the GameCube/Wii/3DS toolchains are installed via pacman in the next section)
- Instructions for installing devkitPro can be found in the devkitPro wiki here
Install devkitPro toolchains:
Open your Start Menu and launch devkitPro > MSys2, then run each command below separately.
Trust the libogc2 package signing key:
pacman-key --recv-keys C8A2759C315CFBC3429CC2E422B803BA8AA3D7CE --keyserver keyserver.ubuntu.com
pacman-key --lsign-key C8A2759C315CFBC3429CC2E422B803BA8AA3D7CE
Next, edit C:\devkitPro\msys2\etc\pacman.conf and add the following entry above the existing [dkp-libs] entry. This is file content, not commands — the two Server lines are mirrors of the same repository (pacman falls back to the second if the first is unreachable), and both lines belong in the file:
[libogc2-devkitpro]
Server = https://packages.libogc2.org/devkitpro/windows/$arch
Server = https://packages.extremscorner.org/devkitpro/windows/$arch
Back in the MSys2 shell, sync and update:
pacman -Syuu
Then install the toolchains and libraries (accept overwriting if asked):
pacman -S wii-dev 3ds-dev gamecube-tools-git libogc2 libogc2-libdvm
Note: the
libogc2packages are only the GameCube/Wii libraries.wii-devand3ds-devare the meta-packages that pull in the actual compilers — devkitPPC (powerpc-eabi-g++) and devkitARM (arm-none-eabi-g++). Without them, shader compilation and the editor will work, but GameCube/Wii/3DS packaging will fail partway throughmakewith a missing-compiler error.
Verify the setup in the MSys2 shell. First check the environment variables the build reads — the Makefiles fail immediately if these are missing from the environment make runs in:
echo $DEVKITPRO
echo $DEVKITPPC
echo $DEVKITARM
Expect output like /opt/devkitpro and /opt/devkitpro/devkitPPC (MSYS-style; Windows-style values like C:\devkitPro\devkitPPC also work — either way it must point at the toolchain root folder, not a \bin subfolder). If any prints empty, the devkitPro installer's environment setup didn't take — restart your computer, and if it's still empty, re-run the devkitPro installer.
Then verify the compilers by full path (both should print a version):
/opt/devkitpro/devkitPPC/bin/powerpc-eabi-g++ --version
/opt/devkitpro/devkitARM/bin/arm-none-eabi-g++ --version
Note: the compiler
binfolders are deliberately not on the shell PATH — the build invokes compilers via$(DEVKITPPC)/bin/. A barepowerpc-eabi-g++printing "command not found" does not mean the install is broken; always test with the full paths above.
- Restart computer if you've opened Visual Studio prior to installing the toolchains to make sure the environment variables (
DEVKITPRO,DEVKITPPC,DEVKITARM) are found. - Build shaders,
libgit2, and theStandalone\Generated\embedded-asset stubs by runningTools\prebuild.bat. The stub step writes minimal placeholders forEmbeddedAssets.{h,cpp},EmbeddedScripts.{h,cpp}, andAddonPlugins.cpponly if they are missing — these files are gitignored and normally regenerated by the Editor's "Build Data" action, but a fresh clone needs the stubs soStandalonecompiles. (Requires Python 3 on PATH.)
Packaging a 3DS installable (.cia)
The plain Nintendo 3DS build target needs nothing beyond 3ds-dev above. The Nintendo 3DS (CIA) target, which produces an installable HOME Menu title, shells out to tools that devkitPro does not ship. None of them are needed unless you use that target.
| Tool | Needed for | Where it comes from |
|---|---|---|
makerom |
the .cia (required) |
3DSGuy/Project_CTR releases, makerom-v0.19.0-win_x86_64.zip |
bannertool |
HOME Menu banner and tune (optional) | carstene1ns/3ds-bannertool releases, bannertool-1.2.3-windows.zip |
cwavtool |
DSP-ADPCM tune encoding (optional, experimental) | PabloMK7/cwavtool releases, cwavtool.zip, use windows-x86_64\cwavtool.exe |
| Python 3.12 + pycgfx | 3D scene banners (optional) | python.org and skyfloogle/pycgfx |
Easiest: in the editor open Preferences > External > Launchers, scroll to 3DS CIA Tools, and click Download makerom + bannertool + cwavtool. The archives are fetched from the release pages above into %APPDATA%\PolyphaseEditor\Tools\3DS and picked up immediately.
Manual: extract makerom.exe, bannertool.exe and cwavtool.exe and either copy them into C:\devkitPro\tools\bin, put their folder on PATH, or set the path fields in the same Preferences page.
3D banners additionally need Python. Install Python 3.12 from python.org and tick Add python.exe to PATH in its installer, restart the editor, then click Install pycgfx in the same Preferences page (it downloads pycgfx, pinned to a fixed commit, and runs pip install --user gltflib pillow). pycgfx has no license file, which is why the editor only fetches it on request and never bundles it. Selecting a 3D banner in a build profile without these installed shows what is missing and falls back to the image banner.
Details on the target, its options and the HOME Menu limits are in Platforms/3DS/Overview.md.
Visual Studio Setup & Editor Build
- Open
Polyphase.sln. - Switch to the
DebugEditorsolution configuration. - Set the
Standaloneproject as the Startup Project. - In the debug settings for
Standalone, change the working directory to$(SolutionDir). - Build and run
Standalone. This is the standalone level editor if you were making a game with Lua script only.