* Build: check out scripts with LF line endings * Build: replace the build scripts with Kazarov * Port: rename PC_OVERRIDE to Kazarov's PORT_OVERRIDE * Build: build the PS2 executables through Kazarov's CMake modules * Scripts: remove unused tooling * Build: update Kazarov * Build: update Kazarov * Build: run the port without a disc when its data exists, reject the old REGION variable, and lock the shared Windows dependencies * Build: update Kazarov * Port: serialise game data extraction across configurations * Build: update Kazarov * Port: hold a shared data lock while the game runs * Port: refuse to start on data another configuration re-extracted * Build: update Kazarov
1.6 KiB
macOS on Apple Silicon
The PC port (docs/PC.md) builds natively for arm64 macOS and runs on Vulkan
through MoltenVK. Like on Linux, it needs your own PAL disc.
Dependencies
Xcode or its command line tools, and Homebrew in /opt/homebrew:
brew install llvm lld cmake ninja python glslang sdl3 nlohmann-json vulkan-headers vulkan-loader vulkan-tools molten-vk googletest
The presets use Homebrew's llvm; Apple's clang is not current enough for C++26.
Building
./build.sh macos-arm64 # Debug, port/build/macos-arm64
./build.sh macos # Release, port/build/macos-arm64-release
cmake --preset macos-arm64-release # the same Release build, without the container
cmake --build --preset macos-arm64-release
CLEAN=1 discards the build directory first; JOBS=N sets the number of
parallel jobs.
Game data
port/build/macos-arm64-release/dcdata extract "rom/pal/Dark Cloud (PAL).iso" data
Without it, the first windowed start asks for the disc image and extracts it.
File names on the disc that are not UTF-8 are written with %xx escapes, since
APFS refuses them; the game looks them up the same way.
Running
export VK_DRIVER_FILES=/opt/homebrew/etc/vulkan/icd.d/MoltenVK_icd.json
port/build/macos-arm64-release/darkcloud --data data --save save
The Vulkan loader does not search Homebrew's prefix, so VK_DRIVER_FILES is
required. Options and config.json are those of docs/PC.md.
Tests
The tests run on MoltenVK too, as CI runs them:
export VK_DRIVER_FILES=/opt/homebrew/etc/vulkan/icd.d/MoltenVK_icd.json
ctest --preset macos-arm64