零. 前言一. 硬软件清单二. EmuELEC安装流程三. Emulation Station (R
全能怀旧游戏机 中篇 EmuELEC 高度定制计划
排骨在初篇给大家介绍了在N1上EmuELEC的安装和初始设置,
这次中篇排骨给大家再介绍一下 EmuELEC的前端界面的定制方法。
怀旧游戏千千万,一个个游戏浏览一遍那记忆中的名字和截图,就仿佛回到了过去。如同翻阅着自己的那份童年的热血和欲望(啥?你童年的欲望是看JAV?).
EmuELEC带的EmulationStation(ES)和RetroArch(RA)是两个独立的模拟器前端程序。两者关系如下图。
ES是纯粹的前端,通过外调RA或其它独立的模拟器运行游戏。
RA是自带前端的整合型模拟器,通过调用不同的Libre模拟内核运行游戏。
准备一张png,尺寸最好1920x1080,保存为oemslpash.png(必须是png格式!拿.jpg等改名.png 无法显示!)
然后把oemslpash.png复制到EmuELEC的引导分区根目录。
下次重启时就能看到新的启动画面了.
EmuELEC内置的ES主题是RetroPie项目中的ComicBook(见下图)。
RetroPie目前有公布100多个主题,可以在EmuELEC系统的/storage/.config/emuelec/scriptmodules/supplementary/esthemes.sh文件中找到。
排骨以ES默认的Simple主题为例(见下图), 演示下如何更换ES的主题。
首先从gayhub下载Simple主题包,会得到一个es-theme-simple-master.zip。
然后解压出es-theme-simple-master文件夹并将其改名为Simple。
最后将Simple文件夹复制到EmuELEC系统的/storage/.emulationstation/themes文件夹中,这样你会看到ComicBook和Simple两个主题包在一起了。
现在打开ES主菜单,进入UI SETTINGS,就可以将THEME SET切换为Simple了。
ES可以在启动游戏时显示指定的启动图,可以给每个ROM指定启动图(ROM文件名匹配),也可以给每个主机平台指定启动图(主机名匹配)。如果不自己指定E,muELEC会用默认选择下图作为启动图。
启动图加载脚本位于/storage/.config/emuelec/scripts/show_splash.sh。
排骨找了一张ComicBook作者做的街机启动图(splash.png)和一张街机双截龙II(ddragon2.png)启动图来给演示。
首先创建/storage/roms/mame文件夹,将1943和双截龙I/II的ROM(文件名为1943,ddragon.zip, ddragon2.zip)复制到mame中。
然后再创建/storage/overlays/splash/ARCADE文件夹,可能需要先建splash再建ARCADE(大写)。(为什么是ARCADE而不是MAME?去看show_splash.sh的第10行)
最后将街机启动图和双截龙II启动图分别命名为splash.png和ddragon2.png,一起复制到/storage/overlays/splash/ARCADE中。
现在依次启动1943/双截龙I/双截龙II,你会看到下图三种启动画面。
1943的 没有匹配的启动图,用了splash.png代替,双截龙I用不完全匹配的ddragon2.png启动,算是BUG。可以修改show_splash.sh的第31行解决,双截龙II完全匹配ddragon2.png启动。
可以通过RA的屏幕图层功能给每个游戏添加一个边框图用,于消除黑边或者提供游戏提示。
下面两张双截龙II的截图,下面那张就是增加了边框图的效果。
添加游戏边框图的方法与添加启动图类似,同样以双截龙II为例,创建/storage/overlays/bezels/ARCADE文件夹,放入ddragon2.cfg和ddragon2.png两个文件。
注:游戏边框图功能只对RetroArch的Libretro模拟器有效,需要更多游戏边框图请搜索thebezelproject。
ES是纯粹的前端提,供用户体验很好的界面,支持任何模拟器。
ES默认会查找/storage/roms下的主机目录(见下表),从每个主机目录中读取游戏列表 (gamelist.xml文件),再与主机目录下的ROM文件名(去掉后缀)匹配后显示出游戏列表结果。
如果没找到gamelist.xml或者gamelist.xml中没有相关ROM文件的记录,ES的游戏列表只会列出ROM的文件名(后后续)。
通过添加并完善gamelist.xml文件可以让游戏列表的内容丰富起来。
上图的游戏列表不但显示了ROM的中文名称/游戏简介/发布日期/游戏类型/开发公司,还显示了游戏的标题截图。
下图更是在上面的基础了增加了演示视频!
游戏列表文件gamelist.xml(注意文件名小写)的结构很简单,其中包含一个根节点gameList和多个 子节点game。
下图中的火焰之纹章-纹章之迷就是个比较完整的示例。
下图是游戏列表的在ComicBook和Simple主题下的显示效果,Simple主题比ComicBook显示的信息更详细)
游戏描述不用担心内容过长,它会滚动显示。游戏列表最重要的是path/name/image三个属性,其它的只是画蛇点睛而已。
看看下图这个oldroom主题的游戏列表是不是帅炸了?!
老外做的ES主题都不支持中文的游戏列表,比如ComicBook主题的默认字体Shaka Pow不能显示中文,会把中文显示成方块,我们需要用中文字体替换它。找一个喜欢的中文字体改名为Shaka_Pow.ttf并复制到/storage/.emulationstation/themes/ComicBook/art文件夹中,重启ES后就可以正确的显示中文游戏列表了。(排骨在网上找了个二字元心游手绘B简字体代替了Shaka Pow)
建议在ES主菜单的UI SETTINGS中将GAMELIST VIEW STYLE设置成AUTOMATIC,这样可以让游戏列表呈现最好的效果。
EmuELEC中的RA是基于Libretro核心的整合型模拟器,可以脱离ES独立使用。同时也提供了漂亮的用户界面和游戏列表。RA默认使用仿PS/PSP的xmb主题。
RA的菜单支持多语言,也是需要替换字体来保证中文显示正常。字体文件路径为/storage/assets/xmb/monochrome/font.ttf,排骨找了个华康金刚黑字体替换了。
RA的游戏列表效果(xmb主题)如下面两张图。主机名称在左上。有单独的主机图标,游戏名称和图片。
RA的游戏列表文件(lpl)的默认存放位置是**/storage/playlists**,文件名格式为平台名.lpl,如果游戏列表文件不在下面列表中,将无法获取对应的主机图标,会被一个默认小火箭图标代替。
RA的游戏列表文件有新旧两种格式,如下图。旧格式为六行一组的纯文本,新格式是JSON。
RA会把旧格式的lpl保存为新的JSON格式,可以把lpl改成只读文件来避免被RA修改。
游戏列表文件中的path/label/core_path/core_name/crc32/db_name分别表示ROM路径/游戏显示名称/模拟器内核路径/模拟器内核名称/ROM校验码/列表文件名。
path:建议用完整路径(绝对路径)指向ROM文件的位置。
label:不要在名称中使用\ / : * ? " < > |字符,因为RA会用这个label去匹配游戏图片。如果label是1943(?),对应的图片文件名1943?.png不是有效的文件名(文件名不能包含?号)。
core_path/core_name:填DETECT就行了。
crc32/db_name:留空就行了。
lpl文件完成后,就能在RA中看到游戏列表和ROM名称了,而游戏相关图片还需要一些额外的步骤。
RA默认从/storage/thumbnails下读取游戏图片,需要给每个lpl文件建一个名字相当的文件夹。每个文件夹下面再建议名为Named_Boxarts/Named_Snaps/Named_Titles的三个文件夹,用来存储游戏的包装图/标题图/游戏截图。
将游戏的包装图/标题图/游戏截图都成之前lpl文件中对应的label,后缀必须是.png,最终效果如下图。
RA还有个ozone主题也不错,风格比较简明紧凑(如下图)。由于RA的主题不能自制,所以本文不再继续讨论。
鉴于平台对外部网站连接的限制,游戏列表中与ROM文件对应的相关游戏信息和图片视频等信息请大家自行搜索。
以下是排骨用到的一些平台。