native-gb/super-mario-land
GitHub: native-gb/super-mario-land
使用 C++20 对 Game Boy 版《Super Mario Land》进行非官方原生重写的开源研究项目,目标是生成可读的原生游戏而非模拟器。
Stars: 0 | Forks: 0
# native-gb-super-mario-land
这是对 Game Boy 版《Super Mario Land》计划中的非官方原生 C++20 重新实现。其目标是打造一个可读的原生游戏,而不是一个模拟器。它将通过 Gubsy 使用 SDL 3,并在运行时从用户提供的兼容 ROM 中读取所需内容。
本仓库不包含 ROM、提取的游戏资产或参考汇编代码。它不隶属于 Nintendo 或任何其他版权所有者,也未获得其认可。
## 状态
研究目标和仓库边界已确立。原生游戏玩法尚未实现。详细顺序请参见 [PORTING_PLAN](PORTING_PLAN.md)。
支持的研究输入:
```
Title SUPER MARIOLAND
Size 65,536 bytes
Revision 1 (World Rev A)
SHA-1 418203621b887caa090215d97e3f509b79affd3e
SHA-256 49fbd2f61f953d5ef28cab73e357e524c3009ad19fcf30f6a9ee0ae273be41dc
```
第一个可执行的里程碑将在读取任何内容之前验证此身份。ROM 文件将被忽略,且绝不能被提交。
## 工作区布局
本仓库将是唯一的 C++ 工作区。通用工具位于 `GBRE` 中;语义映射、测试场景、固定的参考配置和 oracle 绑定位于私有的同级仓库 `native-gb-super-mario-land-re` 中。
```
GBRE/
native-gb-super-mario-land-re/
native-gb-super-mario-land/
```
最终面向玩家的程序将不会链接到或内嵌 mGBA。模拟器比较仅用于开发。
## 预期结果
- 确定性的无头游戏逻辑和控制器优先的原生游玩;
- 运行时 ROM 验证和带有来源信息的内容提取;
- 原始的 160x144 验证展示和整数缩放;
- 高刷新率的原生分辨率宽屏渲染;
- 无需 CPU 模拟的原生 Game Boy 音频重构;
- 用于状态、角色、碰撞、相机、资产和脚本的开发者检查器;
- 可选的增强功能与兼容性行为保持分离。
## 分发
本仓库中不应包含任何 ROM、提取的音视频内容、存档状态、参考截屏或复制的反汇编代码。纯文本的游戏名称仅用于标识兼容性,并不意味着赞助。在公开本仓库或分发构建版本之前,请参阅 GBRE 的仓库和发布政策。
## 许可证
本仓库中的原始源代码和文档在 GPL-3.0-only 许可下提供。该许可不授予任何第三方游戏内容或商标的权利。
标签:C++20, Game Boy, SDL, 云资产清单, 平台跳跃游戏, 开源重制, 游戏引擎, 逆向工程