📖 本文由 Batocera 官方 Wiki 翻译整理,内容可能随版本更新而变化。
关于不支持模拟器的常见问题解答
如果你想了解哪些模拟器可以在特定的硬件平台上运行,可以参考这份详细的官方清单:https://Batocera.org/compatibility.php
模拟器综合 FAQ
为什么某个特定的模拟器、变体、核心或分支没有被收录进 Batocera?
最常见的答案其实很简单:“目前还没有人去动手实现它。”
除此之外,可能还存在以下原因:Batocera 曾经有一个老口号叫“只保留真正重要的核心(Only cores that matter)”。在某种程度上,那些功能重叠、显得有些多余的模拟器(比如系统里已经有一个非常好用的同类模拟器了)可能会被有意排除在外。
生活化类比:这就像你的手机工具箱,如果已经有了一个既好用又全能的瑞士军刀,通常就没必要再塞进一把功能完全一样的小刀,除非这把新刀在切某种特定材质时特别锋利。
话虽如此,如果某个系统有充足的理由收录多个模拟器,我们也非常欢迎。这些理由包括:
* 提供了更丰富的配置选项。
* 拥有更广泛的游戏兼容性(Compatibility)。
* 在性能表现上有显著差异(例如在性能较弱的平台上运行更流畅)。
事实上,从 2021 年初开始,我们已经放宽了“每个系统只专注一个模拟器”的指导原则。现在的 Batocera 拥有的核心(Cores)和模拟器数量比以往任何时候都要丰富!
为什么有些核心无法在特定平台上运行?
上面提到的兼容性清单中详细记录了某些核心(Cores)未出现在特定平台上的原因。通常情况下,最直接的原因是该平台的硬件性能还不够强大,跑不动这些模拟器。
- 如何查看具体原因:
在电脑端,只需将鼠标悬停在清单中的复选框(或者空白处)上,系统就会弹出一个提示工具栏(Tooltip),为你显示具体的解释。
【提示】:如果你在移动设备上无法执行悬停操作,也可以直接查看这些说明的原始代码列表。
关于“次世代”主机的立场
有一点是 Batocera 始终坚持的原则:我们不会官方内置那些真正属于“当代/现役”性能的主机模拟器。
生活化类比:Batocera 就像是一家专门收集黑胶唱片和复古磁带的博物馆。虽然它拥有最现代化的播放设备,但它的核心使命是保护和重温历史,而不是去卖电影院刚上映的院线大片。
Batocera 首先是一个专注于复古游戏(Retro-gaming)的操作系统。
当然,如果你是一位进阶用户(Advanced users),Batocera 本身并不会限制你的探索。只要你具备相关的技术功底,完全可以按照自己的需求实现自定义的模拟系统。你可以通过社区资源或系统的重要文件说明页来尝试手动搭建。
【注意】:通过这种手动方式添加的模拟器属于非官方支持(Not officially supported)范畴。如果你在折腾过程中遇到了困难,官方论坛或 Discord 频道将无法为你提供技术援助。
可是,某个模拟器在 Linux 系统下跑得很完美啊!
为什么 Linux 能跑的模拟器,在 Batocera 上不行?
这确实是个好问题。但请记住,Batocera 并不是简单的软件合集,它是一个独立的操作系统(Operating System)。
这意味着它拥有自己独特的函数库(Libraries)和编译方法(Compilation methods),这与大多数常见的 Linux 发行版完全不同。
生活化类比:这就好比虽然都是用木头盖房子,但有的房子用钉子固定(普通 Linux),而 Batocera 用的是榫卯结构。如果你直接把为钉子房设计的零件拿过来,很可能压根装不进去。
例如,很多依赖于完整 Raspberry Pi OS 背景环境运行的脚本(比如 RetroPie 里的那些),在 Batocera 简洁的环境下可能就无法工作。
那个模拟器在 Windows 上跑得飞起!能不能用 WINE 加进来?
除了上面提到的系统差异外,通过 WINE(兼容层,可在 Linux 运行 Windows 程序) 运行程序会面临更严苛的挑战。WINE 里的程序对库文件和后端环境的要求极其挑剔,更别提在 WINE 中正确配置 Windows 程序本身就是一件让人头大的麻烦事。
【提示】:像 Cemu 这样能完美兼容 WINE 并在 Batocera 中运行的模拟器,简直可以称得上是一个奇迹。
不同硬件平台的特殊“黑名单”
为什么我的 ARM 架构单板机(SBC)或掌机上没有 Steam?
- 架构不通:Steam 本质上是一个基于 x86 架构(x86 based program) 开发的程序,因此它只能在 x86 或 x86_64 架构的电脑上运行。目前在 ARM 设备上运行 Steam 还没有可行的方案。
- 替代方案:虽然不能直接装 Steam,但你可以使用 Moonlight(游戏流传输) 将 PC 上的游戏画面串流到你的 ARM 设备上玩。
为什么我不能在 ARM 掌机上通过 WINE 安装 Windows 程序?WINE 不就是为了在 Linux 里跑 Windows 吗?
这通常是很多人的误区。即便有了 WINE,硬件层面的“语言不通”依然是最大的障碍。
生活化类比:WINE 就像是一个同声传译。如果两个人都说同样的方言(都是 x86 架构),传译很轻松;但如果一个人说中文,另一个人说外星语(一个是 ARM,一个是 x86),光靠翻译官是不够的,你还需要一个彻底的改造工程。
为什么我的 ARM 设备(单板机/掌机)搞不定这些程序?
很多玩家在折腾 ARM 架构(ARM-based) 设备(比如树莓派或各类开源掌机)时,经常会遇到无法安装某些软件的情况。这里有几个硬核的科普:
- WINE 和架构的锁死:正如此前所说,WINE(Windows 兼容层) 是为 x86 架构设计的。因此,它只能在 x86 或 x86_64 架构的电脑版 Batocera 上运行。
- 软件的“基因”问题:即便理论上将 WINE 移植到其他平台,绝大多数 Windows 程序和它们依赖的函数库(Libraries)依然是基于 x86 指令集的。这一点对于 Steam 用的 Proton(兼容层) 同样适用。
- 备选方案:如果你非要在掌机上玩这些,目前最靠谱的方法是使用 Moonlight(游戏流传输),将 PC 上的游戏画面像看直播一样串流到你的小设备上。
为什么我不能在 ARM 设备上安装 Flatpak 软件包?
- 平台独占:绝大多数 Flatpak(跨发行版软件包管理器) 里的软件都是为了 x86/x86_64 平台的 Linux 设计的。
- 空有一身武艺:就算 Batocera 在 ARM 版中开启了 Flatpak 支持,你也会发现几乎没东西可装(比如最常用的 Steam 依然只有 x86 版本)。
为什么我的(老款)掌机或单板机跑不动 Dolphin 模拟器(Wii/GameCube)?
想要流畅运行 Dolphin(NGC/Wii 模拟器),硬件必须过三关:
- 第一步:核心指令集匹配
现代版的 Dolphin 只支持 x86_64 和 arm8 架构的 即时编译(JIT)。 - 第二步:架构版本要求
虽然老版本 Dolphin 曾支持过 arm7 架构(比如 Odroid XU4),但由于代码没人维护,现在已经无法在新系统上使用了。 - 第三步:频率门槛
Dolphin 对性能有硬性指标。它通常需要至少 2.0GHz 的 CPU 频率,而像 Odroid C2 这样的老兵,最高也只能跑到 1.9GHz。
生活化类比:这就像是去参加一场高强度的体育竞赛,不仅要求你是特定年龄段的选手(架构匹配),还要求你必须达到一定的体能基准(主频要求)。哪怕只差了那么一点点(0.1GHz),也只能被拒之门外。
简单来说,虽然在一些老款掌机上确实可以运行 Dolphin,但那必须得用极老版本的模拟器核心才行。
Batocera 的原则是:除了极少数例外,我们会始终维持大部分模拟器的最新版本。如果你特别有热情,愿意为某个特定平台移植并维护老版本的 Dolphin 核心,非常欢迎你提交一个 拉取请求(Pull Request)。
【注意】:即便通过老版本模拟器勉强跑通了,性能表现通常也会非常糟糕,很难达到流畅游玩的程度。
为什么我的 Odroid C2 跑不了 Dreamcast 模拟器(Reicast/Flycast)?
- 架构语言不通:目前 Reicast/Flycast 的源代码还没有完全适配 aarch64 架构(64位 ARM 架构)。
为什么我的树莓派 3、Pi Zero 2 或其他 ARM 板子不支持 Redream 模拟器?
- 黑盒限制:Redream 是一款 闭源模拟器(Closed-source emulator)。这意味着我们没法修改它的代码,只能直接拿官方提供的编译好的二进制文件(Binaries)来用。
- 性能表现:实际上,Redream 在树莓派 4(RPi 4)上的表现甚至不如 Flycast。在那些性能更弱的板卡上,它可能连基本的“可玩速度”都达不到。
生活化类比:闭源软件就像是一个密封的罐头,我们只能按照人家做好的样子来吃。如果这个罐头里没放勺子(没针对特定架构优化),我们也打不开,没法根据你的胃口(硬件)去重新调味。
为什么某些老版本的 Batocera 不支持 Apple II?
虽然 GSPlus(一个支持 Apple II+ 和 2GS 的模拟器)已经从 v32 版本开始重新加入 Batocera,但在 v32 之前的某段时期内,Apple II 曾被暂时移除,原因如下:
- 底层技术过时:早期的 Apple II 模拟器 LinApple 必须依赖 SDL v1(媒体开发库版本1) 才能运行。
- 硬件不匹配:虽然新一代的 SDL v2 已经进行了补丁升级,可以支持最新的单板机和 x86_64 平台的 图形处理器(GPU),但老旧的 SDL v1 却从未获得这项支持。
简单来说,LinApple 因为迟迟没有升级到 SDL v2 导致跟不上时代的脚步,所以曾被暂时弃用。
为什么我的 ARM 架构掌机/单板机里没有 Mesen、Mesen-S 或 bsnes 模拟器?
Mesen、Mesen-S 和 bsnes 这几款模拟器是以“高精度”闻名的,但代价就是它们对硬件性能的要求极高。
生活化类比:这就像是临摹名画,有的模拟器是画个大概意思,跑起来很轻松;而这几位是“像素级复刻”,每一笔都要还原到位,自然需要更强劲的电脑性能才能带得动。
在 Batocera v34 版本的测试中,bsnes 和 Mesen-S 在大部分 ARM 设备上的表现非常糟糕,因此默认没有收录。不过,在一些性能更强劲的板卡上,你依然可以看到 Mesen 和 Mesen-S 的身影。
我想让 Batocera 支持某个新模拟器,该怎么出力?
我就喜欢这种说干就干的行动派!如果你想提供帮助,可以参考以下路径:
- 如果你是开发者(或擅长 Python 脚本):
你可以尝试自己动手实现它。如果不想从头开始重新编译(Compiling)整个 Batocera 系统,你可以先研究一下现有系统中的重要文件和文件夹结构。
【提示】:如果该模拟器运行所需的依赖项(Dependencies)或函数库(Libraries)在 Batocera 系统中并不存在,那你可能还是得走“从源码编译整个系统”这条路,把缺少的东西补齐。
- 如果你是普通用户也想帮忙:
你可以前往 Discord 的#suggestions频道提交你的心愿清单。如果某个模拟器因为某些技术原因暂时无法加入,你可以尝试有礼貌地鼓励该模拟器的开发者,让他们与 Batocera 团队沟通,看看模拟器本身需要做哪些调整才能完美适配(通常活跃维护的软件都有专门的功能请求流程,动手前建议先阅读他们的官方文档)。
关于模拟器加入的“门槛”
并不是所有的模拟器都能轻易入驻。一般来说,那些早已停止维护的“老古董”,或者是只能在 Windows 下运行的程序,如果没有经过海量的重构(Refactoring)、测试和打补丁(Patching),很难被整合进 Batocera。
生活化类比:这就像是搬家,如果这件家具是专门为旧房子定制的异形件(Windows 专用),想把它塞进新房子(Linux 环境)里,要么得把墙拆了重新装修,要么得把家具拆散了重组。
- 奇迹般的例外:Cemu 是个特例,它之所以能在 WINE 下跑得这么好,是因为它具备了许多“天生丽质”的条件——比如原生支持 Vulkan(图形接口)、只需极少数易于维护的 Windows 库,还有社区专门为它开发的 WINE 适配补丁。
- 未来的希望:虽然大多数 Windows 软件没有这种“待遇”,但我们目前已经成功添加了几个 Windows 专用模拟器。
【提示】:好饭不怕晚,有时候你只需要一点点时间和耐心。
原文: 不支持的模拟器FAQ • 翻译: DIY8 Bot



暂无评论内容