设为首页收藏本站

琵琶行论坛

 找回密码
 注册
查看: 480|回复: 14

[原创] 【批处理执行】类千机变前端解决NES中文列表显示及运行的配置方案

[复制链接]

该用户从未签到

发表于 2018-11-4 00:33:09 | 显示全部楼层 |阅读模式
本帖最后由 青韵花语汉化组 于 2018-11-4 19:57 编辑

通过短暂的实验,利用批处理形式可以配置前端点击NES列表中的游戏实现全屏打开并从手柄关闭,利用这个原理我们可以给前端扩展更多的能力。
譬如:给前端配置网游手游、大型的单机游戏打开指定的辅助软件增加电影播放器游戏直播软件浏览器文件管理器天气显示等等强大的功能,我们所需要用到的只有两样:“软件的主程序”和一段极为简单的bat命令!


前端以千机变为例:

准备工作:修改前端的Config.xml

a.增加ID:6
  1. <gameclassdef>
  2.     <gameclass id="0" name="全部游戏" />
  3.     <gameclass id="1" name="智勇闯关" />
  4.     <gameclass id="2" name="动作格斗" />
  5.     <gameclass id="3" name="飞行射击" />
  6.     <gameclass id="4" name="益智休闲" />
  7.     <gameclass id="5" name="体育竞技" />
  8.     <gameclass id="6" name="FC游戏" />
  9.     <gameclass id="-1" name="历史运行" />
  10.   </gameclassdef>
复制代码
b.增加自定义列表:NesList.xml
  1.   <gamelistxmlfile>
  2.     <xmlfile>GameList.xml</xmlfile>
  3.     <xmlfile>DemulRomList.xml</xmlfile>
  4.     <xmlfile>MameRomList.xml</xmlfile>
  5.     <xmlfile>NesList.xml</xmlfile>
  6.   </gamelistxmlfile>
复制代码




1.将VirtuaNES.exe模拟器放到千机变根目录,这个例子中命名为“Nesplayer”,nes文件和模拟器直接放在这个目录下(那么这个时候使用单文件版的模拟器就是首选了。)


2.在根目录下创建两个文件:NesDict.xml和NesList.xml

NesDict.xml:
  1. <?xml version="1.0"?>
  2. <games version="VirtuaNES 版本 0.97">
  3.   <game name="1.古巴战士无闪烁不死HACK" romof="" args="-run=nes -rom=1.古巴战士无闪烁不死HACK">
  4.     <englishname>1.古巴战士无闪烁不死HACK</englishname>
  5.     <chinesename>1.古巴战士无闪烁不死HACK</chinesename>
  6.     <type>6</type>
  7.   </game>
  8. </games>
复制代码
NesList.xml:
  1. <?xml version="1.0"?>
  2. <mameforeground>
  3.   <common name="" romof="" type="0" runtime="" coindelay="10" playtime="-1" emutype="">
  4.     <enname>
  5.     </enname>
  6.     <cnname>
  7.     </cnname>
  8.     <launcher mainexe="" exitmode="message">.\Nesplayer\VirtuaNES.exe</launcher>
  9.     <rompath>=.\mamep\nes\</rompath>
  10.     <args>
  11.     </args>
  12.     <snappath>.\snaps\</snappath>
  13.     <titlepath>.\titles\</titlepath>
  14.     <iconpath>.\icons\</iconpath>
  15.     <videopath>.\videos\</videopath>
  16.   </common>
  17.   <games>
  18.     <game name="1.古巴战士无闪烁不死HACK" romof="" type="6" runtime="0" coindelay="" playtime="" emutype="">
  19.       <enname>1.古巴战士无闪烁不死HACK</enname>
  20.       <cnname>1.古巴战士无闪烁不死HACK</cnname>
  21.       <launcher mainexe="" exitmode="message">.\NESplayer\古巴战士.bat</launcher>
  22.       <rompath>
  23.       </rompath>
  24.       <args>
  25.       </args>
  26.       <snap>
  27.       </snap>
  28.       <title>
  29.       </title>
  30.       <icon>
  31.       </icon>
  32.       <video>
  33.       </video>
  34.     </game>
  35.   </games>
  36. </mameforeground>
复制代码


3.批处理文件的写法:
  1. start VirtuaNES.exe 1.古巴战士无闪烁不死HACK.nes
复制代码

复制到记事本中保存为bat后缀,可以在前端根目录下创建一个AUTOlist文件夹专门存放,也可以同时放到NESplayer文件夹,那么在NesList.xml中的这一行来修改你存放的路径:
  1. <launcher mainexe="" exitmode="message">.\NESplayer\古巴战士.bat</launcher>
复制代码


打开前端,就会出现“FC游戏”列表,在列表里就出现“1.古巴战士无闪烁不死HACK”了,点击即可运行。


最后在模拟器中设置“运行游戏全屏”就行了。

2018-11-04更新
配置好的案例前端

链接:https://pan.baidu.com/s/15Yqg4rFn_mmDnorxBRSeYw
提取码:bklf


(注明:界面是随便取的一个名字“雷电街机”,是一个框体个性美化案例,该名称与我工作室毫无关系。)


关于二楼的回复,为什么我不写在:
  1. <args>
复制代码
这是有原因的,先说一下在MAME里面这么写,之所以在MAME中,我们不用填写
  1. <args>
  2. </args>
复制代码
就能识别出来,是因为当我们打开MAME之后,它的默认列表就已经包含了我们在前端的游戏名称,点击列表中游戏的名称这一操作就等同于通过游戏名的关键字在列表中寻找到游戏,而在MAME中,NES游戏是不会被安排在默认列表下的,那么通过run命令我们只能打开MAME主程序,而从游戏列表中找不到对应nes游戏名称的,所以run命令在MAME中调用NES是调取不了的。
以下分割线内的说法存在错误!!!

通过置顶楼层回复的<args>路径写法,“VirtuaNES”模拟器是支持直接写路径的。

特此纠正错误!!!

--------------------------------------错误的说法-----------------------------------

之所以我会选择换“VirtuaNES”模拟器,是因为这个模拟器是单纯的NES执行程序,但是这个模拟器是拒绝外部RUN命令的,(可能大多数模拟器都不会像DEMUL一样友好从而接受外部RUN命令。)

--------------------------------------错误的说法-----------------------------------




而我做的以批处理的解决方案只是以NES模拟器为例,是想告诉大家,通过批处理的形式,我们可以让千机变这样的前端发挥出无可限量的强大功能。利用批处理来执行模拟器的方法,我们不仅仅是简简单单地用它来做NES的适配,更值得说的是批处理的配置方案,这才是关键。

全屏设置VirtuaNES:
设置方法:菜单“选项”-“模拟器”-载入ROM后切换成全屏
全屏报错“SetDisplayMode failed”的解决方案:
处理方法:
1.菜单“选项”-“图像”-开启“同步刷新”;
2.分辨率设置为:1280x900以上;
3.勾选“伸展画面至满屏。
从前端退出模拟器的设置:由于自定义添加的模拟器不受前端快捷退出的控制,此时,我们需要给模拟器定义退出的快捷键,点击菜单中的“选项”-“快捷键”-找到“退出”,双击,按下手柄上的按钮就可以从手柄退出模拟器了。

BAT相对路径表达形式:
  1. start ..\NESplaer\VirtuaNES.exe ..\NES\XXX.nes
复制代码
其中  “..\NESplaer\” 和 “..\NES\XXX.nes” 的路径表示的是在前端根目录下的路径,例如:文件夹“千机变Home”是我们的根目录,则在该根目录下创建“NESplaer”目录存放“VirtuaNES.exe”这个模拟器,在根目录下创建“NES”文件夹来存放您的nes后缀的ROM文件,在前端根目录下创建“NESautolist”文件夹来存放BAT批处理文件,在NESList.xml中路径写法如下:
  1.      <launcher mainexe="" exitmode="message">.\NESautolist\xxx.bat</launcher>
复制代码




我会说,用这个方法,你可以实现比Hyperspin更为强大的能力!
按照以上的思路,我们可以做到:
1.加入靠谱助手、夜神等模拟器调用王者荣耀、天龙八部等等联网的安卓游戏,那么您可以想象:联网街机轻松打造,并且一不小心支持了安卓!
2.例如侠盗猎车、刺客信条、暴力摩托等大型的单机游戏我们可以做到列表中去了。


附加福利,自己发挥哈:
千机变1.83老版本的反编译源码,可以研究学习一下







千机变1.83工程文件.zip

148.95 KB, 下载次数: 17

该用户从未签到

 楼主| 发表于 2018-11-4 16:57:31 | 显示全部楼层
P34891 发表于 2018-11-4 15:59
連接百度https://pan.baidu.com/s/15Yqg4rFn_mmDnorxBRSeYw   密碼  謝謝

老方法:CTRL+A


回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2018-11-4 19:25:00 | 显示全部楼层
本帖最后由 青韵花语汉化组 于 2018-11-4 19:50 编辑
zhaoyunchun 发表于 2018-11-4 17:47
"E:\MEL\fc roms\中国象棋.nes"

我要的是相对路径,适应任何盘符和路径,绝对路径有局限性。

刚才尝试了一下,相对路径也写成功了,感谢!但是还是会存在部分游戏报非法头部和无法打开的问题,批处理下又能正常运行。不过至少是可行又简单的,对于单纯配置NES列表还是推荐<args>直接写路径,我主要是昨天尝试的时候魂斗罗这个NES文件老是报错,所以我不得不放弃<args>的写法。
不过以上的批处理方案其实也只是多写了一句DOS命令,应用在功能扩展上是绝佳的方案,所以我还是要使用原来的方法。后续我会运用批处理形式整合夜神或者靠谱模拟器,然后加入电影和游戏直播之类的扩展,开黑语音这些,这样前端就相对强大很多。上面我只是以NES文件的调用为例,证明后续事情的可行性,其实打开NES后缀随便什么方法都是没关系的,主要是一个新思路的展示。再次致谢!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2018-11-4 05:12:53 | 显示全部楼层
求共享你所用的这个前端
回复 支持 反对

使用道具 举报

签到天数: 2 天

[LV.1]初来乍到

发表于 2018-11-4 12:04:33 | 显示全部楼层
把游戏路径写在<args>这行不久行了吗
回复 支持 反对

使用道具 举报

该用户从未签到

 楼主| 发表于 2018-11-4 13:12:44 | 显示全部楼层
zhaoyunchun 发表于 2018-11-4 12:04
把游戏路径写在这行不久行了吗

如果您写出来可以运行,请您分享给我写法,我用了好几种写法,打开时被模拟器拒绝。
回复 支持 反对

使用道具 举报

签到天数: 322 天

[LV.8]以坛为家I

发表于 2018-11-4 15:59:57 | 显示全部楼层
連接百度https://pan.baidu.com/s/15Yqg4rFn_mmDnorxBRSeYw   密碼  謝謝
回复 支持 反对

使用道具 举报

签到天数: 2 天

[LV.1]初来乍到

发表于 2018-11-4 17:47:19 | 显示全部楼层
      <args>"E:\MEL\fc roms\中国象棋.nes"</args>
回复 支持 反对

使用道具 举报

签到天数: 42 天

[LV.5]常住居民I

发表于 2018-11-10 17:06:00 | 显示全部楼层
很費時的工作...
msx.jpg
回复 支持 反对

使用道具 举报

签到天数: 322 天

[LV.8]以坛为家I

发表于 2018-11-26 22:37:01 | 显示全部楼层
<args>XXX/XXX</args>寫法只能用數字或英文字的遊戲名稱(入徑是無法有中文字)

<cnname>中文名稱</cnname>寫法 把遊戲中文名稱寫在這裡就可以在圖片選擇遊戲時有中文名稱!!

小弟的測試!!
回复 支持 反对

使用道具 举报

签到天数: 3 天

[LV.2]偶尔看看I

发表于 2018-11-27 15:47:50 | 显示全部楼层
ea支持扫目录形式,以及中文支持,所以不需要一个个建立bat,另外建立bat最好不要用start,start表示启动以后就退出cmd,不常驻,会有可能不能正确监听到游戏退出。
回复 支持 反对

使用道具 举报

签到天数: 322 天

[LV.8]以坛为家I

发表于 2018-11-27 22:00:32 | 显示全部楼层
如果要推前端 個人推PC版EmulationStation前端  支持RetroArch\所有新版獨立模擬器使用\樹莓EmulationStation主題轉換/中文遊戲名稱 /gamelist.xml檔 ~~缺點 搖桿設定是英文版~~  等中文化選單!!

各GAME主題

各GAME主題

各GAME主題

各GAME主題

各GAME主題

各GAME主題

各GAME主題

各GAME主題

各GAME主題

各GAME主題

缺點 選單目前無中文化

缺點 選單目前無中文化

各GAME主題

各GAME主題

各GAME主題

各GAME主題

小弟目前增加各類遊戲中~

小弟目前增加各類遊戲中~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|琵琶行论坛 ( 赣ICP备12000882号  

GMT+8, 2018-12-12 17:44 , Processed in 0.030218 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表