尝试将 RPG Maker VX Ace 游戏移植到 Apple Silicon macOS,解决了几个问题还是被卡住了,做个备忘。
1. 核心 RGSS runtime:https://github.com/mkxp-z/mkxp-z
2. rgss3a (RGSS 3 Archive) 解包/打包:https://gitlab.com/rgss/rgsstool
3. Win32 调用基本都有问题,如无必要可以直接把对应脚本删除。rvdata2 editor: https://marketplace.visualstudio.com/items?itemName=hyrious.vscode-rgss-scripts
4. 字体文件要放到游戏目录下的 Fonts 文件夹,并在 mkxp.json 中配置 solidFonts,游戏字体设置在脚本中的 Main.rb
5. mkxp-z 对文件路径做了 unicode normalization,然而虽然 macOS Finder 创建/修改的文件名是 NFD 的,其他程序直接创建的文件 macOS 并不会干预文件名,NFC 会保留原样,因此所有文件名要转成 NFD 才能被 mkxp-z 识别。
6. 经过处理的文件不会报 file not found 错误,但图片还是有 unsupported image format 的问题,目前观察下来好像只有上一项提到的文件会出现这种情况。
这个问题终于解决了,果然还是Unicode Normalization问题,对于带浊点和半浊点的文件名,RGSS的图像库死活不认。把文件名中的浊音假名全部换成罗马字,再改一下脚本读取修改后的文件名就好了,虽然有点trick。