-
Notifications
You must be signed in to change notification settings - Fork 15
Compiling From Source
These instructions are for contributors who want to build OpenEmu-Silicon from source.
- Apple Silicon Mac (M1 / M2 / M3 / M4)
- macOS 11.0 or later (macOS 14 Sonoma or later recommended for development)
- Xcode 15 or later (Xcode 26 used for active development)
- Git
git clone https://github.com/nickybmon/OpenEmu-Silicon.git
cd OpenEmu-SiliconNote: Core directories in this repo are flattened regular directories, not active git submodules. Do not run
git submodule init.
open OpenEmu-metal.xcworkspaceUse OpenEmu-metal.xcworkspace — not OpenEmu.xcworkspace, which is the legacy OpenGL workspace.
xcodebuild \
-workspace OpenEmu-metal.xcworkspace \
-scheme OpenEmu \
-configuration Debug \
-destination 'platform=macOS,arch=arm64' \
buildA successful build will produce OpenEmu.app in:
~/Library/Developer/Xcode/DerivedData/OpenEmu-metal-*/Build/Products/Debug/
Launch it directly:
open ~/Library/Developer/Xcode/DerivedData/OpenEmu-metal-*/Build/Products/Debug/OpenEmu.appThe main OpenEmu scheme does not build core plugins. Each core has its own scheme. Use the scheme name shown in the table below:
| Core | Scheme name |
|---|---|
| 3DO (4DO) | OpenEmu + 4DO |
| GameCube / Wii | Dolphin |
| Dreamcast | OpenEmu + Flycast |
| Nintendo 64 | OpenEmu + Mupen64Plus |
| Atari 2600 | OpenEmu + Stella |
| SNES (BSNES) | OpenEmu + BSNES |
Example — build the 3DO core:
xcodebuild \
-workspace OpenEmu-metal.xcworkspace \
-scheme "OpenEmu + 4DO" \
-configuration Debug \
-destination 'platform=macOS,arch=arm64' \
build 2>&1 | tail -10Note: The 4DO scheme was previously listed as "not configured for the build action" when using
-scheme 4DO. The correct scheme isOpenEmu + 4DO. This was confirmed fixed in PR #175.
After building a core, install it with the helper script:
./Scripts/install-core.sh 4DOBuilding the OpenEmu scheme does not update the emulation cores installed in:
~/Library/Application Support/OpenEmu/Cores/
Cores are loaded from that folder at runtime and will silently shadow any changes you make to core code in DerivedData. After modifying a core, you must manually reinstall it:
# Replace "Flycast" with the name of the core you changed
DERIVED=$(find ~/Library/Developer/Xcode/DerivedData/OpenEmu-metal-*/Build/Products/Debug/Flycast.oecoreplugin -maxdepth 0 | head -1)
DEST=~/Library/Application\ Support/OpenEmu/Cores/Flycast.oecoreplugin
rm -rf "$DEST"
cp -R "$DERIVED" "$DEST"
codesign --force --sign - "$DEST"See CONTRIBUTING.md in the repository for the contribution workflow.