|
1 | 1 | # macOS Port — Implementation Status |
2 | 2 |
|
3 | | -> Updated: 2026-04-15 |
| 3 | +> Updated: 2026-05-27 |
4 | 4 |
|
5 | 5 | --- |
6 | 6 |
|
|
131 | 131 | | ✅ | `setDeviceListenerPosition` | Listener position/orientation → AVAudioEnvironmentNode | |
132 | 132 | | ✅ | WAV loading | PCM WAV from disk + `.big` archives, stereo→mono downmix for 3D | |
133 | 133 | | ✅ | Buffer cache | `m_bufferCache` prevents redundant disk reads | |
134 | | -| ⚠️ | Music streaming | MP3/OGG streaming not implemented — music tracks are silent | |
| 134 | +| ✅ | Music streaming | MP3/AAC/ADPCM via `AVAudioFile` + `avbridge_playStream` | |
| 135 | +| ✅ | Language fallback | `adjustForLocalization()` → English fallback for speech/music in non-English locales | |
135 | 136 | | ⚠️ | ADPCM WAV | Only PCM (format=1) supported; ADPCM files silently skipped | |
136 | 137 |
|
137 | 138 | --- |
|
200 | 201 |
|
201 | 202 | --- |
202 | 203 |
|
203 | | -## 11. Launcher & Distribution |
| 204 | +## 11. Video |
| 205 | + |
| 206 | +| Status | Component | Note | |
| 207 | +|:---|:---|:---| |
| 208 | +| ✅ | `FFmpegVideoPlayer` | Bink → FFmpeg decoder for `.bik` playback (intro, campaign, challenge) | |
| 209 | +| ✅ | `MacOSVideoAudioStream` | A/V sync via `AVAudioEngine` PCM scheduling | |
| 210 | +| ✅ | Language fallback | `FFmpegVideoPlayer::open()` → English fallback for localized movie paths | |
| 211 | + |
| 212 | +--- |
| 213 | + |
| 214 | +## 12. Launcher & Distribution |
204 | 215 |
|
205 | 216 | | Status | Component | Note | |
206 | 217 | |:---|:---|:---| |
207 | 218 | | ✅ | `GeneralsLauncher` (SwiftUI) | Folder picker + game data validation + launch with env vars | |
| 219 | +| ✅ | Game Language picker | 11 languages, reads/writes `Options.ini`, scope `GLOBAL` | |
| 220 | +| ✅ | Extended settings | Camera height/speed, FPS limiter, stats overlay, network, debug | |
| 221 | +| ✅ | SteamCMD integration | Automatic asset download from Steam depots | |
208 | 222 | | ✅ | `assemble_distribution.sh` | 6-step pipeline: dylib bundling, rpath cleanup, launcher compile, asset injection, README, ZIP | |
209 | 223 | | ✅ | `dylibbundler` integration | Copies Homebrew `.dylib` deps → `Contents/Frameworks/`, rewrites `@rpath` | |
210 | 224 | | ✅ | `Info.plist` patching | Sets `CFBundleExecutable` to `GeneralsLauncher`, injects `AppIcon.png` | |
|
0 commit comments