# ports_nfsmw **Repository Path**: windstarry/ports_nfsmw ## Basic Information - **Project Name**: ports_nfsmw - **Description**: nfsmw的ports移植 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-12 - **Last Updated**: 2026-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 极品飞车:最高通缉(Need for Speed: Most Wanted)掌机移植 > **来源说明**:本仓库基于 GitHub 上游项目 [Detoy/nfsmw-r36s](https://github.com/Detoy/nfsmw-r36s) 进行二次开发与扩展。上游仓库地址:`https://github.com/Detoy/nfsmw-r36s.git` > **项目定位**:原项目仅适配 R36S(ArkOS)掌机。本项目在其基础上,将兼容性运行层扩展为**适配 aarch64 架构通用掌机**的移植方案——在 aarch64 掌机(如 ROCKNIX 等基于 aarch64 的掌机平台)上复用原有的 ARMv7 库映射、Bionic/JNI 兼容层与软浮点 ABI 转译,使游戏可在更广泛的 aarch64 设备上运行。 > **公开 Alpha 版**:竞速玩法已可正常运行,操控、音效与背景音乐均可用。赛前选车环节仍需时序 workaround。安装前请阅读 [已知问题](KNOWN_ISSUES.md)。 本仓库仅包含独立编写的兼容性代码与 PortMaster 打包文件,不包含游戏本体、APK、OBB、提取的 Android 库或其他 Electronic Arts 资产。 ## 适配范围 - 上游原始适配:R36S(ArkOS) - 本项目扩展适配:aarch64 架构通用掌机(ROCKNIX 等基于 aarch64 的掌机平台) - 复用机制:ARMv7 库映射、Bionic/JNI 兼容层、软浮点 ABI 转译、SDL 图形/输入/音频输出 ## 功能特性 - 实测平均 48.84 FPS,可开启高画质设定 - 流畅的模拟摇杆转向与十字键菜单导航 - 竞速、地图、车库、改装界面操控 - 通过 FMOD 宿主文件回调(替换式)+ 纯 C 音频抽取,经 FMOD/OpenSL 到 SDL 的音频桥接实现音效与背景音乐 - 生涯存档与多次完成竞速 - 干净退出返回 PortMaster > 背景音乐已恢复:本 runtime 通过 FMOD 宿主文件回调(替换式)从 OBB 抽取的 `published/sounds/` 真实文件供给 FMOD,音乐与音效均正常播放(详见 [变更记录](CHANGELOG.md) 2026-09-23 条目)。 ## 安装 1. 下载 [`nfsmw-r36s-v0.1.0-alpha.zip`](https://github.com/Detoy/nfsmw-r36s/releases/tag/v0.1.0-alpha)。 2. 通过 PortMaster 安装,或解压到 ROM 卡根目录。 3. 将合法获取的 APK 与 OBB 复制到 `ports/nfsmw/gamedata/`。 4. 启动移植。首次运行会校验文件并在本地提取所需的五个 ARMv7 库。 ### 支持的游戏版本 - 包名:`com.ea.games.nfs13_row` - 版本:`1.3.128`(`1003128`) - APK SHA-256:`bfbe9d08165b8e976924e94879b40ac6575108d5b92521ca837175c0b291c7c7` - OBB 文件名:`main.1003128.com.ea.games.nfs13_row.obb` - OBB SHA-256:`66dd4e695e698929f789e7c825eabe3ba5a50ed2ce28b628c96e5dbc008043a1` 其他发行版及名称相近的重新打包文件不兼容。 ## 操作控制 - 左摇杆:转向 / 地图移动 - 十字键:菜单导航 - A:确认 / 漂移 - B:返回 - L1:刹车 / 倒车 - R1:氮气加速 - 菜单中 L1 / R1:切换顶层分区 - Start:暂停 / 选择地图事件 - Select + Start:退出到 PortMaster 在赛前选车或购买界面,请使用 [KNOWN\_ISSUES.md](KNOWN_ISSUES.md) 中描述的 workaround。后续的改装界面可正常使用十字键与 A 键操作。 ## 开发构建 运行时映射原始 Android ARMv7 库,提供所需的 Bionic 与 JNI 兼容层,转译 Android 软浮点 ABI,并通过 Linux/SDL 承载图形、控制器与音频输出。 从自有游戏文件准备本地私有测试目录: ```sh tools/extract_nfsmw.sh \ /path/to/your-game.apk \ /path/to/main.1003128.com.ea.games.nfs13_row.obb \ gamefiles ``` 构建硬浮点 ARMv7 运行时: ```sh make -C runtime ``` 生成干净的 PortMaster 归档: ```sh portmaster/build_port.sh ``` 更多技术细节见 [PORTING\_STATUS.md](PORTING_STATUS.md) 与 [research/abi-contract.md](research/abi-contract.md)。 ## 许可证与游戏所有权 兼容性代码与打包文件以 [MIT License](LICENSE) 发布。许可证不涵盖《极品飞车》及其代码、数据、美术、音频或商标,相关权利归各自所有者所有。