RGBDS 0.9.1版本发布:Game Boy开发工具链的重要更新
RGBDS(Rednex Game Boy Development System)是一套专为Game Boy平台开发的工具链,包含汇编器、链接器、图形转换工具等组件。作为GB游戏开发的核心工具,RGBDS的最新0.9.1版本带来了一系列改进和修复,进一步提升了开发体验和稳定性。
跨平台支持增强
0.9.1版本的一个显著改进是增强了跨平台支持能力。开发团队现在通过GitHub Actions CI在Cygwin x64和FreeBSD 15.0环境下进行测试,确保RGBDS能在这些平台上正确构建和运行。这对于使用不同操作系统的开发者来说是个好消息,意味着更广泛的兼容性和更少的平台相关问题。
指令语法调整
在汇编语法方面,0.9.1版本对ld [$ff00+c], a和ld a, [$ff00+c]指令的处理进行了调整。0.9.0版本曾计划弃用这种语法形式,但经过社区反馈后,开发团队决定保留这种写法。不过需要注意的是,ld [c], a和ld a, [c]的简写形式仍然是被弃用的,开发者应该使用更准确的ldh [c], a和ldh a, [c]语法。
功能改进
本次更新移除了宏参数数量的限制(原先有99,999个参数的限制),为需要处理大量参数的复杂宏提供了更大的灵活性。此外,浮动节区(floating sections)的输出顺序可能会有所变化,这是开发者需要注意的一个行为变更。
所有RGBDS工具现在都支持-h或--help参数来显示帮助信息,这一标准化改进使得工具的使用更加直观和一致。
重要问题修复
0.9.1版本修复了多个关键问题:
- 修复了宏参数中反斜杠位于文件末尾时的未定义行为问题
- 改进了
INCLUDE指令缺失时的错误处理,当使用-MG选项时不再产生额外错误 - 修正了自0.8.0版本以来对象文件中
FILE节点错误地使用MACRO节点类型的问题 - 修复了字符串处理函数(
STRLEN、STRSUB、CHARLEN、CHARSUB)在UTF-8字符串处理中的截断问题 - 解决了RGBGFX工具在仅输出tilemap+attrmap时的去重(
-u)功能失效问题 - 修正了RGBFIX工具在
write系统调用未能写入全部给定字节时可能输出错误ROM文件的问题 - 更新了文档中关于
DAA指令的说明,确保与实际情况一致
总结
RGBDS 0.9.1版本虽然是一个小版本更新,但包含了多项对开发者有实际意义的改进和修复。从跨平台支持的增强到关键问题的解决,再到语法细节的调整,都体现了开发团队对工具链稳定性和易用性的持续关注。对于Game Boy开发者来说,升级到这个版本将获得更可靠的开发体验和更少的潜在问题。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0218
cann-learning-hubCANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。Jupyter Notebook0139
uni-appA cross-platform framework using Vue.jsJavaScript09
GLM-5.2智谱开源 GLM-5.2,这是针对长文本任务的最新旗舰模型。相较于前代产品 GLM-5.1,它在长文本任务处理能力上实现了显著飞跃,并且首次在稳定的 100 万 token 上下文中提供这一能力。Jinja00
SwanLab⚡️SwanLab - an open-source, modern-design AI training tracking and visualization tool. Supports Cloud / Self-hosted use. Integrated with PyTorch / Transformers / LLaMA Factory / veRL/ Swift / Ultralytics / MMEngine / Keras etc.Python00
tiny-universe《大模型白盒子构建指南》:一个全手搓的Tiny-UniverseJupyter Notebook03