# fcdev **Repository Path**: sungbin/fcdev ## Basic Information - **Project Name**: fcdev - **Description**: 6502 兼容机(NES、小霸王学习机等)的开发工具集:用 C 或 ca65 汇编写程序,基于 cc65 构建,自带调试模拟器和反汇编,也提供 VS Code 扩展;首批支持 NES 与 SB2000。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-11-10 - **Last Updated**: 2026-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # fcdev 6502 兼容机(NES、小霸王学习机等)的开发工具集:用 C 或 ca65 汇编写程序,用 cc65 构建成各机型能运行的程序,自带调试用模拟器,也能把已有程序反汇编回 ca65 源码。首批支持 NES 与小霸王学习机 SB2000,以后按“目标”扩展到步步高、裕兴等机型。 ## 安装 要求 Node.js 22 及以上。目前自带的 cc65 编译器与模拟器只有 Windows x64 的版本;其他系统可自备 cc65,见 [fcdev 的说明](packages/fcdev/README.md)。 不用单独安装,创建项目时会自动装好: ```bash npm create fcdev@latest my-game ``` 按提示选择目标(`nes` 或 `sb2000`)与语言(`c` 或 `asm`),会在目录里生成示例程序、配置文件并安装依赖。 ## 使用 ```bash cd my-game npm run build # 构建,产物在 build/<目标>/ npm start # 在模拟器里运行 npm run disk # 把程序放进磁盘镜像(只有 SB2000 等带磁盘的目标) ``` SB2000 的运行需要自己提供 BIOS 文件,写进项目的 `fcdev.json`: ```json { "target": "sb2000", "name": "hello", "firmware": "D:/roms/SB2K_BIOS.NES" } ``` 本仓库不提供任何 BIOS 或 ROM。全部命令、配置项、调试与反汇编的用法见 [packages/fcdev/README.md](packages/fcdev/README.md),创建项目的选项见 [packages/create-fcdev/README.md](packages/create-fcdev/README.md)。 ## 限制 - 自带的编译器与模拟器只有 Windows x64 版;模拟器只能在 Windows 上运行。 - SB2000 程序默认最大 16K,设置 `targetOptions.banks` 后可做换页的大程序(最大约 468K);`main` 的返回值被忽略。 - 反汇编目前只支持 NROM 的 NES 与平铺二进制。 - VS Code 扩展目前有智能感知(ca65 汇编的悬停、补全、转到定义、文档符号,以及 C 配置的自动同步)与 ca65 语法高亮,任务与调试还没有做。 ## 目录结构 | 目录 | 内容 | | --- | --- | | `packages/fcdev` | 命令行与各机型目标 | | `packages/create-fcdev` | `npm create fcdev` 的创建包与项目模板 | | `packages/fcdev-cc65-win32-x64`、`packages/fcdev-emulator-win32-x64` | cc65 与模拟器的平台包(构建生成,不入库) | | `vscode` | VS Code 扩展(独立的 npm 项目,说明见 [vscode/README.md](vscode/README.md)) | | `cc65`、`virtuanes` | cc65 与模拟器的源码,在本仓库维护,各自带许可文件 | | `tools` | 构建、检查与发布前验证脚本 | | `docs` | 各部分的开发文档,清单见 [docs/01-软件架构设计.md](docs/01-软件架构设计.md) 第 9 节 | ## 开发 ```bash npm install npm run build:libs # 构建各目标的运行库 npm test # 全部测试 npm run check # 依赖边界检查加测试 npm run release:check # 发布前检查 npm run release:verify # 打包后在临时目录里创建、安装并构建四个模板 ``` 构建 cc65 与模拟器的脚本、升级 cc65 的步骤见 [cc65 工具链](docs/04-cc65工具链.md) 与 [模拟器与调试](docs/05-模拟器与调试.md)。设置环境变量 `FCDEV_TEST_FIRMWARE` 指向 SB2000 的 BIOS 文件,测试会额外在模拟器里运行 SB2000 程序;设置 `FCDEV_TEST_NES_ROM` 指向一个 NROM 的 `.nes` 文件,测试会额外反汇编它。 ## 许可证 仓库与 `fcdev` 自己的代码为 Apache-2.0,见 [LICENSE](LICENSE)。`cc65/` 为 zlib 许可,`virtuanes/`(模拟器)为 GPLv3,各自的许可文件在对应目录。