Skip to content

Compiling From Source

nickybmon edited this page Mar 31, 2026 · 2 revisions

Compiling From Source

These instructions are for contributors who want to build OpenEmu-Silicon from source.

Requirements

  • 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

Clone the Repository

git clone https://github.com/nickybmon/OpenEmu-Silicon.git
cd OpenEmu-Silicon

Note: Core directories in this repo are flattened regular directories, not active git submodules. Do not run git submodule init.

Open in Xcode

open OpenEmu-metal.xcworkspace

Use OpenEmu-metal.xcworkspace — not OpenEmu.xcworkspace, which is the legacy OpenGL workspace.

Build from the Command Line

xcodebuild \
  -workspace OpenEmu-metal.xcworkspace \
  -scheme OpenEmu \
  -configuration Debug \
  -destination 'platform=macOS,arch=arm64' \
  build

A 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.app

Important: Core Plugins

Building 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"

Contributing

See CONTRIBUTING.md in the repository for the contribution workflow.

Clone this wiki locally