
RetroConvert
在ornithe环境(或作为java代理)中将Babric模组转换为Ornithe模组
RetroConvert
将你的 Babric 模组放入 Ornithe 实例中,RetroConvert 会在启动时自动转换它们。
Babric 和 Ornithe 都在 Minecraft Beta 1.7.3 上运行 Fabric Loader,但它们使用不同的中间映射,因此它们的模组互不兼容。RetroConvert 解决了这个问题:它在启动时原地重写 Babric 模组的字节码,逐令牌地转换为 Ornithe 的 Calamus gen2 映射,无需重新编译、无需源代码、无需网络连接。
功能特性
- 全自动:只需将 Babric
.jar文件与 RetroConvert 一起放入mods文件夹,然后启动即可。转换后的模组显示为<名称>-ornithe.jar;原始文件会安全归档至config/retroconvert/originals/。 - 深度转换:重写类字节码、混入注解(包括无重映射表的字符串目标)、重映射表 JSON 文件、访问扩展器、
fabric.mod.json、用于反射的字符串常量,以及嵌套的 jar-in-jar 模组(递归处理)。 - 无可见重启:转换完成后,Fabric Loader 会在同一个 JVM 内基于转换后的模组文件夹重新启动。游戏会直接开始运行。
- 智能检测:已移植的 Ornithe 模组不会被修改;对于包含嵌套 jar 的伞状模组(如 StationAPI),会按 jar 分别处理。
- 官方构建替换:少数模组(如 StationAPI、GlassConfigAPI)改动过大,无法通过字节码重写转换;对于这些模组,会直接下载官方 Ornithe 构建版本,字节码转换作为离线备用方案。
- 缓存机制:jar 文件通过 SHA-256 哈希作为键值,因此后续启动仅扫描新文件。
使用方法
- 将 RetroConvert 安装到 Ornithe b1.7.3 实例的
mods文件夹中。 - 将你的 Babric 模组放入同一文件夹。
- 启动游戏。完成。
可选:Java 代理模式(零重启,即使首次启动也是如此)
在你的 JVM 参数中添加以下内容(Prism Launcher:实例 → 设置 → Java → JVM 参数):
-javaagent:mods/retroconvert-1.0.1+mcb1.7.3.jar
这会在 Fabric Loader 扫描文件夹 之前 转换模组 —— 完全不需要重新启动逻辑。在 Prism、MultiMC 和原版启动器的每个实例中均可使用同一行参数。
无界面使用
无需启动游戏即可转换任意模组文件夹:
./gradlew runConverter --args="/path/to/.minecraft/mods"
局限性
- 仅支持 b1.7.3 版本 —— 这是有意为之,因为 Babric 只针对 b1.7.3。
- 如果 Babric 模组依赖项解析失败,会在 RetroConvert 运行前导致游戏崩溃;请手动移除该 jar 文件。
- 不要将归档的原始文件与转换后的输出文件放在一起 —— 加载器会检测到两个 ID 相同的模组。
许可证与源代码
源代码、问题跟踪器及完整技术细节可在 GitHub 上获取。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。