← 全部文章

在 Anbernic RG40XXH(muOS)上玩 Minecraft Java:让 PortMaster 移植版跑起来

PortMaster 有一个 Minecraft Java 移植版(minecraftjava),可以在 Anbernic RG40XXH 这类 muOS 掌机上运行。安装看起来很简单,但在我们的 RG40XXH 上它先是无法启动,然后又卡死,经过好几次修正才能正常游玩。本文把所有要点集中在一起。

**测试环境:**Anbernic RG40XXH(1 GB 内存)· muOS 2601.0 Jacaranda · PortMaster Minecraft 移植版 · Minecraft Java 1.12.2。

首先:移植版只是一个启动器

PortMaster 移植版不包含 Minecraft。它包含启动器菜单、启动脚本、手柄映射,以及 Minecraft 在掌机上运行所需的 ARM 组件。游戏本身(Minecraft Java Edition 的文件)必须来自你自己的正版。

也就是说:

  • 你需要拥有 Minecraft: Java Edition(在 minecraft.net 购买,包含在 Java & Bedrock 合集中)。文件来自你电脑上的官方 Minecraft Launcher。
  • 移植版以离线方式启动游戏,不登录账户。你会以默认皮肤的本地玩家身份游玩,无法加入正版验证(在线模式)的服务器。局域网或离线模式服务器仍可使用(把地址写入移植版文件夹中的 server.txt)。

只有两个 Minecraft 版本可用

移植版只支持:

版本 原版 Forge
1.7.10 ✅(最快) ✅
1.12.2 ✅ ✅

我们的第一个错误是复制了 1.12.1。看起来差不多,但启动器菜单只检查 1.7.10 和 1.12.2,所以菜单里只有 Exit。也不要把其他版本改名为 1.12.2,必须是真正的 1.12.2。

第 1 步:在电脑上准备 1.12.2

  1. 打开官方 Minecraft Launcher,用拥有 Java Edition 的账户登录。
  2. 进入 Installations → New installation,选择 release 1.12.2,点击 Create。
  3. 点击一次 Play,等主菜单出现。这样会下载 1.12.2 需要的库以及声音、材质资源。然后退出。

现在你的 Minecraft 文件夹就完整了:

系统 文件夹
Windows %APPDATA%\.minecraft
macOS ~/Library/Application Support/minecraft
Linux ~/.minecraft

第 2 步:把正确的文件夹复制到正确的位置

最简单的方法:交给脚本。 我们免费的电脑脚本只收集移植版需要的 1.12.2 文件,并把它们复制到卡上,不会替换移植版自带的文件。下载 PortBridge-1.0.0-stock.zip,把 SD 卡 1 插到电脑上,在 PC 文件夹中运行:python3 collect-minecraft.py --to <SD>/ports/minecraftjava(macOS、Linux;<SD> 是卡)或在 PowerShell 中运行 .\collect-minecraft.ps1 -To E:\ports\minecraftjava(Windows;换成你的卡的盘符)。详见原厂系统指南。想手动操作的话,请继续往下看。

这是我们的第二个错误。版本文件不是放在 ports/minecraftjava/versions/。启动脚本从移植版内的隐藏文件夹 .minecraft 加载它们:

SD 卡 1(muOS:/mnt/mmc)
└── ports/minecraftjava/.minecraft/
    ├── versions/1.12.2/   ← 1.12.2.jar 和 1.12.2.json
    ├── libraries/         ← 电脑上的 .minecraft/libraries 文件夹(合并)
    └── assets/            ← 电脑上的 .minecraft/assets 文件夹(合并)

只复制 .jar 和 .json 是不够的。Minecraft 1.12.2 还需要大约 30 个库和资源文件(声音、语言文件、材质),总共约 200 MB。没有它们就无法启动。

“整个文件夹”是什么意思:在你电脑的 Minecraft 文件夹中(见上表),有一个 libraries 文件夹,里面有许多子文件夹(com、org、net…),装满了 .jar 文件;还有一个 assets 文件夹。把它们连同全部内容复制到 SD 卡上的 ports/minecraftjava/.minecraft/。

要合并,不要替换。移植版已经有自己的 libraries 文件夹,里面有让 Minecraft 能在掌机上运行的 ARM 版 LWJGL。电脑询问时,请选择合并(macOS),或者复制到现有文件夹并跳过已存在的文件(Windows)。选择替换会删除移植版的文件,Minecraft 将无法启动。versions 和 assets 也一样。

如果你在电脑上玩过很多 Minecraft 版本,这些文件夹可能很大,因为里面有所有版本的文件。这没关系:掌机只会用到 1.12.2 需要的部分。

可以用读卡器复制,也可以通过 Wi-Fi 使用 muOS 的 SFTP 服务器(在 SFTP 应用中路径显示为 /SD1 (mmc)/ports/minecraftjava/.minecraft/)。移植版保留自己的 ARM 版 LWJGL,所以复制电脑上的 libraries 文件夹不会破坏任何东西。

如果电脑上 .minecraft 是隐藏的:在 macOS 的访达中按 ⌘ Shift .;在 Windows 中打开 查看 → 隐藏的项目。

第 3 步:启动

在掌机上打开 Ports → Minecraft Launcher。菜单现在应该显示 Vanilla v1.12.2。

如果仍然只显示 Exit,请查看 ports/minecraftjava/Launcherlog.txt。类似 versions/1.12.1/1.12.1.json: line 1: {assetIndex:: command not found 的错误说明启动脚本 ROMS/Ports/Minecraft Launcher.sh 被手动修改过。从 PortMaster 重新安装移植版即可恢复原始脚本。

**不要在 ROMS/Ports 里留下备份。**我们曾把旧脚本保存为 Minecraft Launcher.sh.bak 放在那里,muOS 把它显示成了第二个名为“Minecraft Launcher.sh”的游戏。启动它又运行了那个坏掉的旧脚本。请把备份放在别处。

解决:卡顿、冻结或死机

这是最常见的问题,而且几乎总是设置问题,不是安装坏了。

表现

  • 一开始玩得好好的,然后越来越慢,几分钟后像是卡死了。
  • 按键反应延迟好几秒。
  • 整台掌机失去响应,连 SFTP 服务器也不动了,直到重启。

我们的 ports/minecraftjava/log.txt 显示 Can't keep up! Did the system time change, or is the server overloaded? Running 2227ms behind, skipping 44 tick(s),游戏从每秒 30 帧降到每 8–12 秒一帧。这不是崩溃,只是负载过重。

原因

RG40XXH 只有 1 GB 内存和手机级别的芯片。移植版只给 Java 384 MB。如果你从电脑复制了设置,Minecraft 会尝试以 12 区块的渲染距离、高品质图像和平滑光照来加载。掌机跟不上,内存耗尽,Java 把大部分时间花在清理内存上,而不是运行游戏。

能解决问题的设置

在 Options → Video Settings 中修改,或者(关闭游戏后)编辑 ports/minecraftjava/.minecraft/options.txt:

设置(游戏内) options.txt 设为 原因
Render Distance renderDistance 4(之后可试 5–6) 对速度和内存的影响远超其他设置
Graphics fancyGraphics false(Fast) 树叶、水和阴影更简单
Smooth Lighting ao 0(Off) 每个方块都省 CPU
Clouds renderClouds false 少画一些
Mipmap Levels mipmapLevels 0 材质占用更少内存
Max Framerate maxFps 30 稳定 30 帧,不追求更高
VSync enableVsync false 避免帧间额外等待
Particles particles 2(Minimal) 战斗和下雨时特效更少
Entity Shadows entityShadows false 少画一些

在 options.txt 中,这些行如下:

renderDistance:4
fancyGraphics:false
ao:0
renderClouds:false
mipmapLevels:0
maxFps:30
enableVsync:false
particles:2
entityShadows:false

改完后,我们的 RG40XXH 运行流畅。

如果仍然卡顿

逐一尝试:

  1. 在大而繁忙的世界里,把渲染距离降到 3,甚至 2。
  2. 开一个新世界,或者在出生点附近玩。加载了大量区块、农场或很多动物的巨大世界会占用更多内存。
  3. **长时间游玩后重启游戏。**内存会随着时间累积。
  4. **换成 1.7.10。**这是移植版支持的最轻量版本,移植版自己的说明也推荐用它来获得最佳性能。
  5. **进阶:给 Java 更多内存。**上限设置在 ports/minecraftjava/1.12.2.start 中(1 GB 设备上会选 XMX=384M)。提高到 448M 可以减少卡顿,但 muOS、显示层和游戏共用同一个 1 GB。设得更高,系统可能会直接结束游戏。只有在上面的步骤都不够时才修改,并把原文件的副本放在 ROMS/Ports 之外。

现在就卡死了?

按 R2 + SELECT + B(muOS 强制退出)。如果毫无反应,按住 POWER 约 10 秒。你的世界会保留,但上次自动保存之后的进度会丢失。再次游玩前先降低设置。

无害:log.txt 里满是 GL ERROR 1282 @ Post render。这来自移植版的图形兼容层,不是变慢的原因。

操作

按键 动作
左摇杆 移动
右摇杆 环顾四周,在菜单中是鼠标指针
A 跳跃
B 丢弃物品
X / Y 物品栏
R2 破坏 / 攻击(鼠标左键)
L2 放置 / 使用(鼠标右键)
L1 / R1 快捷栏
L3 / R3 疾跑 / 潜行
START 暂停菜单

游戏不让你退出时:R2 + SELECT + B 是 muOS 的强制退出。先暂停,让世界得以保存。

总结

  1. 拥有 Minecraft Java Edition,并用官方启动器安装一次 1.12.2(或 1.7.10)。
  2. 把 versions/1.12.2、libraries 和 assets 复制到 ports/minecraftjava/.minecraft/。
  3. 保持 ROMS/Ports 干净,不要放 .bak 脚本。
  4. 使用较低的视频设置(渲染距离 4、快速图像、30 FPS)。仍然卡顿的话,参见上面的排查步骤。

有问题?请发邮件至 feedback@pocketkode.com。

Minecraft 是 Mojang Synergies AB 的商标。PocketKode 与 Mojang、Microsoft、PortMaster、muOS 和 Anbernic 均无关联。