下载和安装 Pegasus Frontend

Pegasus Frontend 是一个跨平台、可定制的图形前端,旨在从同一位置浏览游戏库并启动各种模拟器,采用 GPLv3 开源协议许可。

官网:https://pegasus-frontend.org
GitHub 主页:https://github.com/mmatyas/pegasus-frontend

  1. 去官网或者 GitHub 下载(其实最终的下载地址都是 GitHub),我下载的是安卓 64 位稳定版:pegasus-fe_alpha16-82-gc3462e68_android64.apk

  2. 下载完成之后我们来安装,会提示存在风险,我们要确保是从官网下载的,并且我们信任来源然后点击「仍要安装」
    pegasus-frontend-installation-warning

  3. 安装完之后打开 Pegasus Frontend 应用,提示需要授予管理所有文件的权限,我们打开权限,然后返回
    pegasus-frontend-grant-permission-to-manage-all-files

  4. 再次打开 Pegasus Frontend 应用,提示是否要允许文档设备上的照片、视频、音乐和音频,我们点击「允许」
    pegasus-frontend-allow-to-access-photos-videos-music-and-audio-on-this-device

  5. 打开之后首页是这样的,默认来源是包括 Android Apps 的,所以显示出来了这些应用
    pegasus-frontend-first-open-homepage

  6. 因为我们用 Pegasus Frontend 主要针对模拟器游戏,所以不想包括 Android Apps 的话我们可以将来源去掉。打开 Pegasus Frontend 的设置,滑动到「启用/禁用数据源……」
    pegasus-frontend-settings-enable-disable-data-source-option

    点击进入之后将 “Android Apps” 选项取消勾选
    pegasus-frontend-enable-disable-data-source-page-android-apps-option

    再回到 Pegasus Frontend 的首页会发现不显示任何内容了,这就是我们要的效果,之后我们会加入游戏,首页就不会这么孤单了
    pegasus-frontend-homepage-blank-content

为 Pegasus Frontend 配置游戏

1. 准备游戏文件

游戏资源我们使用「跳坑者联盟」组制作和整理的「天马G v1.2 整合包」,并以其中的 GBA 游戏为例。
我们不直接使用整合包,而是仅提取其中整理好的游戏资源,通过我们手动一步步来设置去理解 Pegasus Frontend 的使用方法,首先我们手动从整合包提取 GBA 相关的文件到一个目录中:

  1. 新建一个 GBA 目录

  2. 跳坑者联盟 PegasusG v1.2 完整版/【3】数据列表(安卓+PC)/【安卓】metadata数据列表/GBA/metadata.pegasus.txt 复制到 GBA 目录

  3. 跳坑者联盟 PegasusG v1.2 完整版/【2】数据文件(安卓+PC)/【安卓+PC】通用rom--2358GB/【03】经典掌机--7G/GBA.7z.tkzlm 重命名为 GBA.7z,然后解压到 GBA 目录中,解压密码是 跳坑者联盟

  4. 最后得到了一个包含 metadata、游戏 Roms、media 的 GBA 文件夹,文件夹结构我们稍后再讲,先来看一个非常重要的元数据文件 GBA/metadata.pegasus.txt,其文件内容如下(省略了大量的游戏):

    collection: GBA
    sort-by: 018
    extensions: gba, 7z, zip
    launch: am start --user 0
      -n com.retroarch.aarch64/com.retroarch.browser.retroactivity.RetroActivityFuture
      -e ROM {file.path}
      -e LIBRETRO /data/data/com.retroarch.aarch64/cores/vbam_libretro_android.so
      -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch.aarch64/files/retroarch.cfg
      --activity-clear-top
    
    game: 黄金太阳2 失落的时代
    file: 黄金太阳2 失落的时代.zip
    sort-by: 002
    developer: 黄金太阳2 失落的时代
    description: 《黄金太阳2 失落的时代》是GBA平台RPG大作《黄金太阳 开启的封印》的续作,而本作的游戏容量增大了一倍,由此带来的最直接变化就是游戏世界的扩大,单纯从地图的面积来讲,由于引入了海洋的旅行,所以比前作“揭开的封印”多出了8倍有余,将一个完整的“太阳”的世界尽最大的可能展现在我们的面前。
    
    game: 牧场物语 矿石镇的伙伴们 男孩篇
    file: 牧场物语 矿石镇的伙伴们 男孩篇.zip
    sort-by: 013
    developer: 牧场物语 矿石镇的伙伴们 男孩篇 V1.7修正
    description: 《牧场物语 矿石镇的伙伴们 男孩篇》于2003年4月18日发售,其完美的画面及音效立刻征服了玩家。游戏保持一贯的作风,主角是一个农场的管理员,通过自己辛勤的劳动,种地、钓鱼、放牧、养鸡、挖矿等等来攒积金钱,建设自己的农场。而且游戏中还加入了不少有趣的设定。例如劳动时辛苦的脸变蓝了然后进医院是个有趣的设定,游戏里的这种细节刻画很成功,成为GBA屈指可数的大作之一。
    

    这个文件的详细配置可查看官方文档 Metadata files, 这里只解释一下上面列出的内容:

    • collection: GBA: 指定此文件的默认游戏集合为 GBA,如果下面 game 中没有明确指定 collection 那么这些游戏的集合都默认为 GBA。所有游戏都必须归入集合,但是一个游戏可以属于多个集合,这样允许我们做更灵活的配置

    • sort-by: 018: 用于排序

    • extensions: gba, 7z, zip: 只有文件名匹配列出来的这些后缀的才会被认为是此集合的游戏,如果未指定,Pegasus Frontend 会尝试加载目录下的所有文件,导致不必要的文件也被扫描,可能引发错误或者性能问题

    • launch: 集合中游戏的通用启动命令,和 Android 相关的官方文档 Platform Notes: Android

      • am start: 是 Android 系统中的命令,用于启动指定应用的某个活动(Activity)(可以理解为应用的某个页面),并可传递参数或指定行为
        • --user 0: 指定操作的目标用户,0 表示系统默认的主用户,普通设备通常只有一个用户 0
        • -n com.retroarch.aarch64/com.retroarch.browser.retroactivity.RetroActivityFuture: 指定要启动的应用及其具体活动(Activity)
          • com.retroarch.aarch64: 64 位 RetroArch 应用
          • com.retroarch.browser.retroactivity.RetroActivityFuture: RetroArch 应用中用于处理外部命令启动的游戏加载任务
        • -e ROM {file.path}: -e 表示添加一个额外参数,这里添加了 ROM 参数及值 {file.path}, 其中 {file.path} 会被替换为游戏的绝对路径
        • -e LIBRETRO /data/data/com.retroarch.aarch64/cores/vbam_libretro_android.so: LIBRETRO 参数告诉 RetroArch 使用哪个核心,/data/data/com.retroarch.aarch64/cores/vbam_libretro_android.so 是核心的实际路径
        • -e CONFIGFILE /storage/emulated/0/Android/data/com.retroarch.aarch64/files/retroarch.cfg: 指定 RetroArch 配置文件的路径,/storage/emulated/0/Android/data/com.retroarch.aarch64/files/retroarch.cfg 是 RetroArch 的默认配置文件你也可以指定其它的配置文件,其中 /storage/emulated/0 表示是手机内部存储的绝对路径,在大多数设备上都是这个
        • --activity-clear-top: 涉及到 Android Activity 的一些细节了,简单理解为可以提升游戏启动的流畅性
    • game: 黄金太阳2 失落的时代: 创建一个游戏并将其值作为游戏标题,从 game: 开始后续的字段都属于该游戏的元数据直到遇到下一个 game:

    • file: 黄金太阳2 失落的时代.zip: 指定游戏文件,可以是绝对路径,也可以是相对于元数据文件(如 metadata.pegasus.txt)的相对路径,我们这里设置的就是相对路径

    • sort-by: 002: 用于排序

    • developer: 黄金太阳2 失落的时代: 开发者信息

    • description: 《黄金太阳2 失落的时代》是GBA平台RPG大作《黄金太阳 开启的封印》的续作……: 游戏描述(简介)

  5. 接下来我们来看一下整个 GBA 文件夹的结构及内容(省略了大量的游戏):

    GBA/
    ├── media/
    │   ├── 牧场物语 矿石镇的伙伴们 男孩篇
    │   │   ├── boxfront.png
    │   │   ├── logo.png
    │   │   └── video.mp4
    │   └── 黄金太阳2 失落的时代
    │       ├── boxfront.png
    │       ├── logo.png
    │       └── video.mp4
    ├── metadata.pegasus.txt
    ├── 牧场物语 矿石镇的伙伴们 男孩篇.zip
    └── 黄金太阳2 失落的时代.zip
    
    • metadata.pegasus.txt: 是我们上面说过的元数据文件
    • 牧场物语 矿石镇的伙伴们 男孩篇.zip黄金太阳2 失落的时代.zip 是游戏文件
    • media/: 媒体文件夹,存放游戏资源和素材,详情可参考官方文档 meta-assets
      • 我们在 metadata.pegasus.txt 文件中没有指定游戏的封面、视频等,那么 Pegasus Frontend 默认会根据游戏标题从 media/ 文件夹下面查找

2. 安装 RetroArch

因为我们在 metadata.pegasus.txt 添加了 GBA 游戏并且指定由 RetroArch 来加载,所以我们还需要来安装 RetroArch。

RetroArch 是一个开源、多平台的综合模拟器前端,通过加载 Libretro 核心,支持运行多种经典模拟器和多媒体应用,为用户提供统一的界面和丰富的功能,采用 GPLv3 开源协议许可。

Libretro 核心 (Libretro Core) 是基于 Libretro API 开发的模块化插件,负责实现具体功能,如模拟器、游戏引擎或多媒体处理程序。核心由前端(如 RetroArch)加载运行,提供特定平台的模拟(如 NES、GBA、PlayStation)、游戏运行(如 Doom、Quake)或多媒体功能(如媒体播放器)。每个核心都独立运行,用户可以根据需求自由选择和加载不同的核心。

官网:https://www.retroarch.com/
GitHub 主页:https://github.com/libretro/RetroArch

  1. Google Play 商店的 RetroArch 太旧了,是 1.9.12 (2021-11-03) 的版本,然而现在最新的稳定版已经 1.19.1 (2024-06-05) 了,所以我们选择官网下载 RetroArch_aarch64.apk

  2. 下载完成之后我们来安装,会提示存在风险,我们要确保是从官网下载的,并且我们信任来源然后点击「仍要安装」,并且授予权限

    retroarch-installation-warning retroarch-grant-access-to-read-external-storage retroarch-allow-to-access-photos-videos-music-and-audio-on-this-device

  3. 需要等待几秒钟完成初始化
    retroarch-first-open-homepage

  4. 安装好的 RetroArch 默认没有安装任何核心,我们需要去下载 metadata.pegasus.txt 配置的 vbam_libretro_android.so 核心。在 RetroArch 主页,我们依次进入「在线更新」→「核心下载」,然后点击搜索 “VBA-M”,搜索到之后点击即可下载

    retroarch-core-download-page-search-vba-m retroarch-core-download-page-selected-vba-m

  5. 至此完成了对 RetroArch 的最基础配置

3. 配置 Pegasus Frontend

  1. 我们将第 1 步中准备好的 GBA 整个目录传输到设备上,比如我将其放到了 /storage/emulated/0/Games/GBA

  2. 打开 Pegasus Frontend,然后进入设置页面,然后选择「设置游戏目录……」
    pegasus-frontend-settings-page-selected-set-game-directory

  3. 点击 + 号,然后将 GBA 目录加入

    pegasus-frontend-in-set-game-directory pegasus-frontend-set-game-directory-page-with-added-gba-directory

  4. 退出到首页之后可以看到 GBA 游戏成功显示了!
    pegasus-frontend-homepage-displayed-gba-games

  5. 点击具体的游戏可以从 RetroArch 使用我们指定的核心来加载游戏(确保 RetroArch 中没有正在运行的游戏才能从 Pegasus Frontend 中加载新游戏)
    retroarch-loaded-golden-sun-2-game

本文只是讲解了最基础的 Pegasus Frontend 和 RetroArch 配置,手把手带你迈入 Pegasus Frontend 的大门,接下来还有更多精彩内容等待你自行探索。

到这里就结束了,感谢你的阅读!