编译运行龙芯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-devel
和 SDL2-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\_directory
和 libretro\_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 中可以发现使用了 DESTDIR
和 INSTALLDIR
控制安装目录,所以可以用下面的命令安装:
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