Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions NOTICE.en.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# Modification and Attribution Notice
# CNC Generals for iOS/macOS: Modification and Attribution Notice

[中文](NOTICE.md) | [English](NOTICE.en.md)

This repository is a modified GPLv3 fork. It is not an official release by Electronic Arts, Westwood, EA Pacific, or any upstream community project.
**CNC Generals for iOS/macOS** is the public name of this personal enhancement fork; it does not imply that this project independently created the Apple-platform port. This repository is a modified GPLv3 fork. It is not an official release by Electronic Arts, Westwood, EA Pacific, or any upstream community project.

## Direct upstream

- [`ammaarreshi/Generals-Mac-iOS-iPad`](https://github.com/ammaarreshi/Generals-Mac-iOS-iPad)
- **[`ammaarreshi/Generals-Mac-iOS-iPad`](https://github.com/ammaarreshi/Generals-Mac-iOS-iPad)**
- This personal customization was consolidated from upstream commit `c5c8c4d3e757033d9ab464f6bd6e15e91e0e742f`.

For the direct upstream's full feature description, Apple-platform porting history, and original project notes, read its own README. This repository links to that material instead of copying it into this fork's README.
The Apple-native porting base, iOS/macOS infrastructure, and corresponding achievements in this repository are inherited directly from that upstream project. Read the upstream README for its complete feature description, porting history, and original notes. This repository links to that material instead of copying it or presenting upstream achievements as original work by this fork.

## Earlier major sources

Expand All @@ -30,14 +30,16 @@ In 2026 this fork was modified around the maintainer's Apple Silicon macOS setup
- SDL input, cursor capture, menu robustness, and safe shutdown;
- game-data discovery, external-disk use, and local `.app` packaging.

This is not an official update from the direct upstream authors. Fork-specific problems should be reported in [this repository's issue tracker](https://github.com/Log1037/Generals-Mac-iOS-iPad/issues).
This is not an official update from the direct upstream authors. Fork-specific problems should be reported in [this repository's issue tracker](https://github.com/Log1037/CNC-Generals-for-iOS-macOS/issues).

## Game-asset boundary

This repository does not provide commercial assets from Command & Conquer: Generals or Zero Hour. Users must own and supply lawful copies.

Game names, story, artwork, audio, maps, video, and other commercial assets remain the property of their respective rights holders. Do not commit `.big` archives, audio, video, maps, private fonts, or other commercial data to this repository.

A personal iPhone or iPad build may embed game data lawfully owned by its user at packaging time for installation on that user's own devices. Any `.ipa` or `.app` containing those commercial assets is a private build artifact and must not be committed to the source repository, attached to GitHub Releases, or distributed publicly.

## License

Source remains available under the repository's [GPLv3 license and EA additional terms](LICENSE.md). Third-party components retain their respective licenses.
12 changes: 7 additions & 5 deletions NOTICE.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
# 修改与来源声明
# CNC Generals for iOS/macOS:修改与来源声明

[中文](NOTICE.md) | [English](NOTICE.en.md)

本仓库是一个经过修改的 GPLv3 分支,不是 Electronic Arts、Westwood、EA Pacific 或任何上游社区项目发布的官方版本。
**CNC Generals for iOS/macOS** 是本个人增强分支的公开名称,不表示本项目独立完成了 Apple 平台移植。本仓库是一个经过修改的 GPLv3 分支,不是 Electronic Arts、Westwood、EA Pacific 或任何上游社区项目发布的官方版本。

## 直接上游

- [`ammaarreshi/Generals-Mac-iOS-iPad`](https://github.com/ammaarreshi/Generals-Mac-iOS-iPad)
- **[`ammaarreshi/Generals-Mac-iOS-iPad`](https://github.com/ammaarreshi/Generals-Mac-iOS-iPad)**
- 本次个人需求版从上游提交 `c5c8c4d3e757033d9ab464f6bd6e15e91e0e742f` 开始整理。

直接上游的完整功能介绍、Apple 平台移植历程和原始说明请阅读其自己的 README。本仓库不复制那份 README,只说明本分支新增和修改的内容。
本仓库的 Apple 平台原生移植基础、iOS/macOS 基础设施和相应成果直接继承自该上游。直接上游的完整功能介绍、移植历程和原始说明请阅读其自己的 README;本仓库不复制那份 README,也不把上游成果重新表述为本分支原创,只说明后来新增和修改的内容。

## 更早的主要来源

Expand All @@ -30,14 +30,16 @@
- SDL 输入、鼠标捕获、菜单稳定性和安全退出修复;
- 游戏资源路径识别、外接盘运行和本地 `.app` 打包。

这不是直接上游作者发布的官方更新。本分支特有问题应提交到[本仓库的 Issues](https://github.com/Log1037/Generals-Mac-iOS-iPad/issues)。
这不是直接上游作者发布的官方更新。本分支特有问题应提交到[本仓库的 Issues](https://github.com/Log1037/CNC-Generals-for-iOS-macOS/issues)。

## 游戏资源边界

本仓库不提供《命令与征服:将军》或《零点行动》的商业游戏资源。使用者必须自行拥有并提供合法副本。

游戏名称、剧情、美术、音频、地图、视频和其他商业资源的权利属于其各自权利人。不得把 `.big`、语音、视频、地图、私人字体或其他商业资源提交到本仓库。

个人 iPhone 或 iPad 构建可以在打包阶段嵌入使用者自己合法持有的游戏资源,以便在自己的设备上安装。包含这些商业资源的 `.ipa` 或 `.app` 属于私人构建产物,不得提交到源码仓库、附加到 GitHub Releases 或对外分发。

## 许可证

源码继续按照仓库中的 [GPLv3 许可证及 EA 附加条款](LICENSE.md)发布。第三方组件继续适用其各自许可证。
14 changes: 7 additions & 7 deletions README.en.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Command & Conquer: Generals — Zero Hour for Apple Platforms
# CNC Generals for iOS/macOS

[中文](README.md) | [English](README.en.md)

<img width="500" height="281" alt="Zero Hour running on an Apple platform" src="https://github.com/user-attachments/assets/aeaf6692-36e6-40c8-b9f8-8066d014ec4b" />

This community project runs Command & Conquer: Generals — Zero Hour natively on Apple Silicon Macs, iPhone, and iPad. It is not a Windows emulator: the game engine is compiled directly for ARM64, while the original DirectX 8 renderer reaches Metal through DXVK, Vulkan, and MoltenVK.
> **Upstream attribution:** This repository is not an independent port made from scratch. Its direct Apple-platform porting base is [`ammaarreshi/Generals-Mac-iOS-iPad`](https://github.com/ammaarreshi/Generals-Mac-iOS-iPad). **CNC Generals for iOS/macOS** names only the enhancements, fixes, and packaging work added for the maintainer's personal use on top of that upstream project. Please read the upstream README for its complete project description and porting history.

This repository is a personal-use-driven fork of [`ammaarreshi/Generals-Mac-iOS-iPad`](https://github.com/ammaarreshi/Generals-Mac-iOS-iPad). It retains the upstream Apple-platform port and adds macOS usability fixes and local single-player features based on real use with an Apple Silicon Mac, Chinese game data, an external-disk installation, and day-to-day play.
This project runs Command & Conquer: Generals — Zero Hour natively on Apple Silicon Macs, iPhone, and iPad. It is not a Windows emulator: the game engine is compiled directly for ARM64, while the original DirectX 8 renderer reaches Metal through DXVK, Vulkan, and MoltenVK. This fork preserves the upstream work and embeds personal-use features and usability fixes prompted by real play with an Apple Silicon Mac, Chinese game data, and an external-disk installation.

> This repository does not include commercial assets from Generals or Zero Hour. You must own and supply a lawful Windows copy of the game data.
> This repository and its GitHub Releases do not include commercial assets from Generals or Zero Hour. You must own and supply a lawful Windows copy of the game data. A personal iPhone or iPad build may bundle game data that you lawfully own into a private IPA; that IPA is for installation on your own devices and is not committed here or distributed publicly.

## What this fork adds

Expand All @@ -27,7 +27,7 @@ See the [English engineering log](docs/WORKDIR/reports/MACOS_LOCAL_FORK_CHANGELO
| Platform | Status | Notes |
|---|---|---|
| Apple Silicon macOS | Primary use platform | Supports local builds, command-line runs, and a double-clickable `.app` |
| iPhone / iPad | Inherited from the direct upstream | Requires full Xcode, a signing team, and the iOS packaging workflow |
| iPhone / iPad | Implemented upstream; fork regression pending | A personal build may bundle owned game data and be installed with your own signing identity |
| Linux | Shared engine retained | The macOS customization still needs broader cross-platform regression testing |

## Quick start
Expand Down Expand Up @@ -65,8 +65,8 @@ Install the Vulkan SDK from LunarG; Homebrew Vulkan headers alone are not suffic
### 3. Clone, build, and deploy

```bash
git clone https://github.com/Log1037/Generals-Mac-iOS-iPad.git GeneralsX
cd GeneralsX
git clone https://github.com/Log1037/CNC-Generals-for-iOS-macOS.git
cd CNC-Generals-for-iOS-macOS

export GX_RUNTIME_ROOT="$HOME/GeneralsX Runtime"
./scripts/build/macos/build-macos-zh.sh
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# 《命令与征服:将军——零点行动》Apple 平台原生版
# CNC Generals for iOS/macOS

[中文](README.md) | [English](README.en.md)

<img width="500" height="281" alt="《零点行动》在 Apple 平台运行" src="https://github.com/user-attachments/assets/aeaf6692-36e6-40c8-b9f8-8066d014ec4b" />

这是一个让《命令与征服:将军——零点行动》在 Apple Silicon Mac、iPhone 和 iPad 上原生运行的社区项目。它不是 Windows 模拟器:游戏引擎直接编译为 ARM64,原有 DirectX 8 渲染经过 DXVK、Vulkan 和 MoltenVK 转换到 Metal。
> **上游说明:** 本仓库不是从零开始的独立移植。Apple 平台原生移植的直接基础来自 [`ammaarreshi/Generals-Mac-iOS-iPad`](https://github.com/ammaarreshi/Generals-Mac-iOS-iPad);**CNC Generals for iOS/macOS** 只代表在该上游基础上,针对维护者个人使用情境所做的增强、修复和打包工作。上游的完整项目介绍与移植历程请直接阅读其 README。

本仓库是 [`ammaarreshi/Generals-Mac-iOS-iPad`](https://github.com/ammaarreshi/Generals-Mac-iOS-iPad) 的个人需求版分支。它保留上游的 Apple 平台移植成果,并根据维护者在 Apple Silicon Mac、中文游戏资源、外接盘安装和日常游玩中遇到的问题,整合了一批 macOS 使用体验修复与本地单机功能。
本项目让《命令与征服:将军——零点行动》在 Apple Silicon Mac、iPhone 和 iPad 上原生运行。它不是 Windows 模拟器:游戏引擎直接编译为 ARM64,原有 DirectX 8 渲染经过 DXVK、Vulkan 和 MoltenVK 转换到 Metal。本分支保留上游成果,并根据 Apple Silicon Mac、中文游戏资源、外接盘安装和日常游玩中实际遇到的问题,内嵌了一批个人常用功能与体验修复。

> 本仓库不包含《将军》或《零点行动》的商业游戏资源。你必须自行拥有并提供合法的 Windows 版游戏文件。
> 本仓库及其 GitHub Releases 不包含《将军》或《零点行动》的商业游戏资源。你必须自行拥有并提供合法的 Windows 版游戏文件。个人为自己的 iPhone 或 iPad 构建时,可以把自己合法持有的游戏资源封装进私人 IPA;这种 IPA 仅供个人设备安装,不进入本仓库,也不对外分发。

## 这个分支增加了什么

Expand All @@ -27,7 +27,7 @@
| 平台 | 状态 | 说明 |
|---|---|---|
| Apple Silicon macOS | 主要使用平台 | 支持本地构建、命令行运行和双击 `.app` |
| iPhone / iPad | 继承自直接上游 | 需要完整 Xcode、签名 Team 和 iOS 打包流程 |
| iPhone / iPad | 上游已有实现,本分支待回归 | 个人构建可把自有资源封装进 App,并用自己的签名安装 |
| Linux | 共享引擎仍保留 | 本分支的 macOS 修改尚需更完整的跨平台回归测试 |

## 快速开始
Expand Down Expand Up @@ -65,8 +65,8 @@ export VULKAN_SDK="$HOME/VulkanSDK/<version>/macOS"
### 3. 克隆、构建和部署

```bash
git clone https://github.com/Log1037/Generals-Mac-iOS-iPad.git GeneralsX
cd GeneralsX
git clone https://github.com/Log1037/CNC-Generals-for-iOS-macOS.git
cd CNC-Generals-for-iOS-macOS

export GX_RUNTIME_ROOT="$HOME/GeneralsX Runtime"
./scripts/build/macos/build-macos-zh.sh
Expand Down
4 changes: 2 additions & 2 deletions docs/BUILD/MACOS.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ The data must come from the user's own lawful Windows copy. This repository does
## 4. Clone and build

```bash
git clone https://github.com/Log1037/Generals-Mac-iOS-iPad.git GeneralsX
cd GeneralsX
git clone https://github.com/Log1037/CNC-Generals-for-iOS-macOS.git
cd CNC-Generals-for-iOS-macOS

./scripts/build/macos/build-macos-zh.sh
```
Expand Down
4 changes: 2 additions & 2 deletions docs/BUILD/MACOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ export GX_RUNTIME_ROOT="/Volumes/My Games/GeneralsX Runtime"
## 4. 克隆与构建

```bash
git clone https://github.com/Log1037/Generals-Mac-iOS-iPad.git GeneralsX
cd GeneralsX
git clone https://github.com/Log1037/CNC-Generals-for-iOS-macOS.git
cd CNC-Generals-for-iOS-macOS

./scripts/build/macos/build-macos-zh.sh
```
Expand Down
17 changes: 17 additions & 0 deletions docs/DEV_BLOG/2026-08-DIARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,23 @@

---

## 2026-08-10: Adopt the public name CNC Generals for iOS/macOS

- Named this personal enhancement fork **CNC Generals for iOS/macOS** while
retaining inherited `GeneralsX` and `GeneralsXZH` technical identifiers for
build compatibility.
- Made the direct-upstream attribution to
`ammaarreshi/Generals-Mac-iOS-iPad` prominent at the top of both README files
and strengthened the lineage statement in both NOTICE files.
- Clarified that this fork adds personal-use features and fixes on top of the
upstream Apple port rather than claiming an independent port.
- Documented the private iOS/iPadOS packaging boundary: a user may embed game
data they lawfully own into a personal build, but an IPA or app containing
commercial assets is not stored in this repository, attached to Releases, or
distributed publicly.

---

## 2026-08-10: Split public documentation by language

- Replaced the inherited, mixed-purpose root README with a concise description of
Expand Down
4 changes: 2 additions & 2 deletions docs/HOWTO/MACOS_LOCAL_FORK_QUICK_START.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ The first configure downloads and compiles dependencies and takes substantially
## 5. Clone, build, and deploy

```bash
git clone https://github.com/Log1037/Generals-Mac-iOS-iPad.git GeneralsX
cd GeneralsX
git clone https://github.com/Log1037/CNC-Generals-for-iOS-macOS.git
cd CNC-Generals-for-iOS-macOS

export GX_RUNTIME_ROOT="${GX_RUNTIME_ROOT:-$HOME/GeneralsX}"

Expand Down
4 changes: 2 additions & 2 deletions docs/HOWTO/MACOS_LOCAL_FORK_QUICK_START.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ export VULKAN_SDK="$HOME/VulkanSDK/<version>/macOS"
## 5. 获取源码、构建和部署

```bash
git clone https://github.com/Log1037/Generals-Mac-iOS-iPad.git GeneralsX
cd GeneralsX
git clone https://github.com/Log1037/CNC-Generals-for-iOS-macOS.git
cd CNC-Generals-for-iOS-macOS

export GX_RUNTIME_ROOT="${GX_RUNTIME_ROOT:-$HOME/GeneralsX}"

Expand Down
4 changes: 2 additions & 2 deletions docs/WORKDIR/reports/MACOS_LOCAL_FORK_CHANGELOG.en.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ of Generals and Zero Hour is still required.
As of the 2026-08-10 source publication:

- The customization was split into eight focused commits.
- [PR #1](https://github.com/Log1037/Generals-Mac-iOS-iPad/pull/1) merged those
- [PR #1](https://github.com/Log1037/CNC-Generals-for-iOS-macOS/pull/1) merged those
commits into the public fork's `main` branch.
- Commercial assets, saves, private fonts, build products, machine-local archives,
and the maintainer's custom ICNS remain excluded.
Expand Down Expand Up @@ -882,7 +882,7 @@ working-tree dump:
8. `docs(macos): document personalized fork setup`

The complete review record remains available in
[PR #1](https://github.com/Log1037/Generals-Mac-iOS-iPad/pull/1).
[PR #1](https://github.com/Log1037/CNC-Generals-for-iOS-macOS/pull/1).

## 16. File-group inventory

Expand Down
4 changes: 2 additions & 2 deletions docs/WORKDIR/reports/MACOS_LOCAL_FORK_CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
我们的重点不是改变《零点行动》的玩法,而是让这套原生移植在现代 Retina Mac 上真正达到日常可玩的状态:画面清晰、窗口行为正常、速度可控、中文可读、过场不丢、应用包可复现,并且退出时不把 macOS 留在异常的黑色全屏空间里。

当前用户反馈是整体体验已经很好。源码已经按功能拆分为八个提交,通过
[PR #1](https://github.com/Log1037/Generals-Mac-iOS-iPad/pull/1) 合入公开 fork 的
[PR #1](https://github.com/Log1037/CNC-Generals-for-iOS-macOS/pull/1) 合入公开 fork 的
`main` 分支。另一台干净 Apple Silicon Mac 上的完整安装验证仍是后续工作,因此目前发布的是可审阅的源码版本,而不是附带商业资源或预编译游戏本体的二进制发行包。

## 二、公开内容与本机内容的边界
Expand Down Expand Up @@ -508,7 +508,7 @@ GX_CJK_SERIF_FONT="PingFang SC" ./run.sh
7. `build(macos): add portable local app packaging`
8. `docs(macos): document personalized fork setup`

完整审阅记录保留在 [PR #1](https://github.com/Log1037/Generals-Mac-iOS-iPad/pull/1)。
完整审阅记录保留在 [PR #1](https://github.com/Log1037/CNC-Generals-for-iOS-macOS/pull/1)。

## 十九、当前结论

Expand Down