编译运行龙芯retroarch——不完全的试探

群里有人问,于是就试着编了编。在这特殊的日子里,GitHub的速度感人,挂着proxy开着流量(移动的校园网几分钟一断网呵呵呵)clone了一个晚上+一个凌晨, make 了一个白天终于起来了。但是并不完美。

直接拿Ubuntu的官方编译教程参考,首先编译外壳,然后编译内核,最后安装assets和database。

这里以龙梦Fedora28为例,在福珑2盒子上。

编译外壳

$ git clone https://github.com/libretro/RetroArch.git retroarch
$ cd retroarch
$ ./configure
$ make clean
$ make -j4

在 Ubuntu 上可以通过 apt-get build-dep retroarch 解决编译依赖,但是我们使用了 Fedora ,我暂时也没有精力去逐个安装所有依赖的包。而且编译得到的二进制看起来不支持网络,网络更新啥的也果然不能用。

如果有报错则根据报错安装缺少的包,在我的系统上缺少 libXxf86vm-devel

编译完成以后直接安装或取得二进制打包为 rpm 。

# make install

编译内核

首先获取内核,我们需要 clone 下面的仓库,然后使用里面的脚本取得所有内核。

$ git clone https://github.com/libretro/libretro-super.git
$ cd libretro-super
$ ./libretro-fetch.sh

如果手动逐个编译,下面以 fceumm 为例:

$ ./libretro-build.sh fceumm

如果自动编译所有:

$ ./libretro-build.sh

如果缺少包,则安装之,如我安装了两个我已知依赖包 libXv-develSDL2-devel 。下面给出我编译后得到的输出,可以逐个使用前面编译单个内核的命令来获取其错误输出。

47 core(s) successfully processed:
	2048 bluemsx dosbox snes9x2005 fceumm fmsx gambatte handy
	stella nestopia nxengine prboom quicknes snes9x2010 tyrquake
	vba_next vecx mgba genesis_plus_gx bsnes_cplusplus98 mame2003
	mednafen_lynx mednafen_pce_fast mednafen_supergrafx mednafen_vb
	mednafen_wswan mu gw prosystem 81 fuse lutro tgbdual gpsp o2em
	opera virtualjaguar 3dengine snes9x vbam scummvm mednafen_snes
	meteor dinothawr mame2015 pcsx_rearmed bnes
24 core(s) failed:
   fbneo desmume desmume2015 picodrive mednafen_pcfx mednafen_psx yabause
   mame2010 stonesoup bsnes_accuracy bsnes_balanced bsnes_performance
   bsnes_mercury_accuracy bsnes_mercury_balanced bsnes_mercury_performance
   mame2016 mame emux_chip8 emux_gb emux_nes emux_sms ffmpeg testgl test

默认的安装目录是 /usr/local/lib/libretro

首次运行和配置

可以双击图标或终端运行 retroarch 来运行。首次运行会生成配置,默认配置和希望的配置可能会不同,而且会影响后面assets和database的安装。

由于没有安装assets,界面上的没有图标,中文显示也并不非常正常,并且没有检测到我们安装的内核,但是这些不重要。此时可以在 “设置->用户->语言” 暂时设置为中文,也可以直接退出。

首次运行后默认的配置应该已经生成在 ~/.config/retroarch/retroarch.cfg ,我们打开可以看到默认的 libretro\_directorylibretro\_info\_path 配置在 ~/.config/retroarch/cores ,我均改成 /usr/local/lib/libretro ,也就是前面内核的安装目录。另外注意一下 assets_directory = "~/.config/retroarch/assets"cheat_database_path = "~/.config/retroarch/cheats" ,这提示我们 assets 和 database 的安装目录。注意这里编辑配置的过程必须在退出 retroarch 以后。

保存后重新启动 retroarch,在“加载核心”界面已经可以看到我们安装的内核了。

安装assets和database

直接 clone 仓库并安装即可:

$ git clone https://github.com/libretro/retroarch-assets.git
$ git clone https://github.com/libretro/libretro-database.git

在 Makefile 中可以发现使用了 DESTDIRINSTALLDIR 控制安装目录,所以可以用下面的命令安装:

make DESTDIR=~/.config/retroarch/database INSTALLDIR= install
make DESTDIR=~/.config/retroarch/assets INSTALLDIR= install

之后又发现在安装内核时, libretro-super 在获取所有内核源码的同时也获取了 assets 和 database ,在 libretro-super/retroarch/media 下。所以应该有更正常的安装方法。

运行

此时可以运行了,图标、数据库都正常,玩了一会2048就收工了。

by SDUST weilinfox

posted @ 2021-03-07 17:18  八衛門狸  阅读(73)  评论(0编辑  收藏