Git
Used to clone ArcadeDuck and switch between the main development and experimental hardware branches.
Documentation
ArcadeDuck currently supports building on Windows x64 using the Visual Studio/MSBuild workflow.
Requirements
Used to clone ArcadeDuck and switch between the main development and experimental hardware branches.
Install the Desktop development with C++ workload and a Windows SDK.
ArcadeDuck uses a prebuilt third-party dependency bundle for the normal Windows build workflow.
Install LLVM/Clang if you want to use one of the Clang-based build configurations.
Step 1
git clone https://github.com/StillJC/ArcadeDuck.git
cd ArcadeDuckFor current development work, switch to the dev branch unless you specifically need one of the experimental hardware branches.
git switch devStep 2
The dependency package is intentionally kept out of Git and distributed separately from the source repository.
From the ArcadeDuck release assets, download the current files matching:
ArcadeDuck-Windows-x64-Dependencies-*.zip
ArcadeDuck-Windows-x64-Dependency-Sources-*.zip
SHA256SUMS.txtThe Dependencies ZIP is required to build ArcadeDuck. The Dependency-Sources ZIP preserves the corresponding third-party source archives and notices.
Verify the dependency ZIP against SHA256SUMS.txt, then extract the contents of the dependency ZIP directly into the ArcadeDuck repository root.
After extraction, this file should exist:
dep\msvc\deps-x64\bin\uic.exeThird-party package metadata is installed under:
dep\msvc\dependency-metadata\Step 3
Open the Visual Studio solution:
ArcadeDuck.slnSelect an appropriate x64 configuration and build the solution in Visual Studio.
The dependency package has been validated using a fresh ArcadeDuck worktree and the Visual Studio/MSBuild build path.
Advanced
The prebuilt dependency package is the recommended route for contributors. If you need to rebuild the Windows x64 third-party dependency tree yourself, ArcadeDuck includes:
scripts\deps\build-dependencies-windows-x64.batThat script defines the dependency versions, source locations, and hashes used by the project. Rebuilding the full dependency set requires additional developer tools beyond a normal ArcadeDuck build.
Platform Development
Windows x64 is the only currently supported and validated build target, but contributions for additional platforms and frontends are welcome.
New targets should use an appropriate native or reproducible dependency workflow rather than relying on the Windows dependency package.
A libretro target is not just another operating-system build. It requires a frontend adapter for content loading, configuration, input, audio/video, arcade peripherals, external outputs, and other standalone ArcadeDuck behavior.
Platform-specific code should remain isolated from the shared emulator and arcade-hardware implementation wherever practical. New ports should avoid introducing Windows-only assumptions into shared code.
Large platform or frontend ports should be discussed through GitHub before restructuring shared subsystems. Keep toolchain and dependency setup reproducible and document it with the target.
Important
Some generated Qt CMake metadata can contain paths from the machine on which Qt was originally built. The prebuilt dependency package should not currently be treated as a portable standalone CMake SDK.
Third-Party Sources
The dependency source package preserves the exact third-party source archives or commits corresponding to the published Windows x64 dependency bundle, together with source hashes and collected license/notice files.