群里有人問,於是就試着編了編。在這特殊的日子里,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