一个面向 macOS 的开源 Galgame 转译启动器
🚧 持续开发中。SwiftUI 应用、CLI 和核心库均已接入;兼容性仍按具体游戏验证。
| 引擎 | 状态 |
|---|---|
| Unity (32-bit) | ✅ 已验证 (Aokana) |
| SiglusEngine | ✅ 已验证 (CLANNAD) |
| KiriKiri/KAG | 🔜 待测 |
| TyranoScript | 🔜 待测 |
| Ren'Py | 🔜 待测 |
- 🎮 多引擎识别:识别 Unity、SiglusEngine、KiriKiri、TyranoScript 等;识别不代表已验证兼容
- 🍎 Wine/GPTK 启动:通过 Mythic Engine 运行 Windows 游戏
- 📚 游戏库管理:扫描、搜索、筛选、导入和一键启动
- 🌏 CJK 与音频配置:按游戏设置 Wine 语言环境,启动时应用字体映射与音频默认值
- 💾 存档与 Steam 信息:本地存档工具、Steam 游戏匹配及云存档导入入口
- 🆓 完全开源:GPL-3.0
- macOS 14.0+ (Sonoma)
- Apple Silicon (M1/M2/M3/M4) 或 Intel
- 8GB+ RAM(推荐 16GB 用于大型游戏)
项目提供 SwiftUI 图形界面和命令行界面(CLI)。两者共用游戏库数据。通过 swift run 启动的开发版本和 CLI 使用本机安装的 Mythic Engine;带内置 Engine 的应用包会优先使用包内 Engine。Wine 容器位于 ~/Library/Application Support/Mythic/Containers/,游戏库配置位于 ~/Library/Application Support/Gal4Mac/。存档位置取决于具体游戏和引擎。
启动器会为每个游戏的 Wine 容器设置 CoreAudio、DirectSound 原生优先(内置回退)、 44.1 kHz / 16 位及软件仿真,并为吉里吉里游戏默认复用语音缓冲区。 这些设置会在每次启动游戏时应用,已有游戏和之后导入的游戏使用同一套默认值。
本机已验证的原生 dsound.dll 放在
~/Library/Application Support/Gal4Mac/Audio/DirectSound/x86/dsound.dll。
启动器会把它复制到每个 32 位游戏容器,替换前的文件保存在同目录的 Backups 下。
若没有提供对应架构的原生 DLL,Wine 会回退到内置实现;64 位 DLL 可放在同级的
x64/dsound.dll。仓库和应用包不包含 Windows DLL。
从源码运行前需要安装 Mythic 并下载 Engine。引擎包含 Wine 及 Apple Game Porting Toolkit 组件;SwiftPM 构建不会自动打包 Engine,仓库不存放引擎二进制。
- 在 Releases 下载
.dmg。带-with-engine的已内置 Mythic Engine;另一个体积很小,不含 Engine,需要先用brew install --cask mythic安装 Mythic,并打开一次让它下载 Engine。 - 打开 DMG,把
Gal4Mac.app拖进“应用程序”。 - 双击
Gal4Mac启动。首次打开会被 Gatekeeper 拦截,见下文放行方法。 - 点击工具栏的“+”导入游戏,或在“设置”中添加游戏库文件夹后重新扫描,然后在游戏详情中点击“启动游戏”。
安装包没有 Apple Developer ID 签名,也未经公证,任选一种方式放行,每次安装只需做一次:
- macOS 14:在“应用程序”中右键点击 Gal4Mac,选择“打开”,再确认“打开”。
- macOS 15 及更新:先双击打开一次并关闭提示,然后进入“系统设置 → 隐私与安全性”,在底部点击“仍要打开”。
- 或在终端运行:
xattr -dr com.apple.quarantine /Applications/Gal4Mac.app
可用发布页中的 .sha256 文件校验下载:shasum -a 256 -c Gal4Mac-*.dmg.sha256。
# 1. 安装 Mythic 并打开一次,让它下载 Engine
brew install --cask mythic
open /Applications/Mythic.app
# 2. 打包成可双击运行的 .app(输出在 dist-release/)
bash Scripts/build_release.sh
open dist-release/*.app
# 或直接运行开发版本 / CLI
swift run Gal4MacApp
swift build -c release
./.build/release/gal4mac doctor
./.build/release/gal4mac list
./.build/release/gal4mac scan ~/Games/Gal
./.build/release/gal4mac launch "游戏名称"加上 ENGINE_DIR="$HOME/Library/Application Support/Mythic/Engine" 可把 Engine 打进应用包,详见 docs/RELEASING.md。
图形界面可从“导入游戏…”进入四步导入:选择本地文件夹、ZIP/RAR/7z 压缩包或 HTTP/HTTPS 压缩包直链;解压;确认显示名称、Steam 关联、引擎、可执行文件和语言环境;完成导入。在线下载需要 aria2;加密压缩包需要 unar。分卷压缩包会检查缺失分卷。也可以在设置中添加游戏库目录后重新扫描。
游戏详情支持启动、停止、在 Finder 中显示、设置语言环境和从游戏库移除。移除只删除库记录,不删除游戏文件。关联 Steam AppID 后可查看 Steam 介绍,并打开云存档导入入口:先在设置中登录 Steam(登录后网页隐藏,可随时退出登录),再确认目标存档目录和下载导入;同名文件会先备份。云存档功能仍需按具体游戏做端到端验证。
# 扫描游戏库
gal4mac scan ~/Games/
# 列出已识别的游戏
gal4mac list
# 启动游戏(自动检测引擎)
gal4mac launch CLANNAD
# 显示游戏信息
gal4mac info Aokana
# 查看环境与管理库目录
gal4mac doctor
gal4mac libraries
gal4mac add-library ~/Games/Gal
# 不经游戏库,直接指定游戏目录
gal4mac launch "游戏名称" --path /path/to/game- Phase 1 (MVP):环境验证(Unity + SiglusEngine 通过)
- Phase 2 (核心):CLI 启动器
- 引擎检测
- 一键启动
- 基础 CJK 字体映射与 Wine 语言环境
- SwiftUI 图形界面:游戏库、详情、导入、统计与基础设置
- 扩大逐游戏兼容性验证与 Steam 云存档端到端验证
详细架构见 docs/ARCHITECTURE.md。
Gal4Mac/
├── Sources/Gal4MacCLI/ # CLI 入口
├── Sources/Gal4MacUI/ # SwiftUI 图形界面
├── Sources/Gal4MacCore/ # 核心逻辑
│ ├── Engine/ # Mythic Engine 封装
│ ├── Game/ # 游戏模型 + 检测 + 启动
│ └── Library/ # 游戏库管理
├── Tests/ # 测试
├── docs/ # 文档
└── Scripts/ # 启动脚本
GPL-3.0 - 详见 LICENSE
免责声明:本工具仅用于运行用户已合法拥有的游戏副本。请支持正版。