找回密码
 立即注册

微信扫码登录

使用验证码登录

QQ登录

只需一步,快速开始

查看: 116|回复: 42

ClrMameUI软件功能详解_扫描页面

[复制链接]

47

主题

568

回帖

1420

积分

金牌会员

积分
1420
发表于 6 天前 | 显示全部楼层 |阅读模式
本帖最后由 william 于 2025-7-10 00:55 编辑

ClrMameUI软件有着极简的页面设计,需要用户输入的参数极少,这为使用者提供了极大的便利,本帖对这些参数进行详细解释
扫描页面解读.jpg
图中红字对add path 这个参数解释的并不全面(上图也是我做的,只是发现写不全想写的东西了),实际上,他通常放置每一次版本升级的ROM差异文件,这就是add path,增加的本意。 程序对原rom 和这个增加的rom差异文件进行扫描,拆分,重组
我们要理解ClrMameUI的工作机理,他先从MAME程序获得想当前版本的信息文件,这些信息的组织,我以电子基盘的Machine为例,拷贝到这里进行分析。然后程序根据这些信息从所有你给出的ROM路径里的文件进行拆分,生成他信息文件里想要的所有东东,如果发现缺失,他会报miss错误。
那么为什么这里用 add path 专门给了一个rom的输入路径呢?而不是上面的rom路径,因为那个参数也是支持多路径的。这是因为新添加的ROM文件,程序允许对这些新来的东西进行过滤(如果你勾选 remove matches ,那么会对选出来的(选出来的就是匹配的)东西进行删除,你别怕,程序怕你误删除,强制要求你配置backup path 目录的,误删了,就去这里找回来)。

Filter 参数(文末有对filter对象的数据截取,可以直观看到要过滤的对象),支持正则表达式 和Xpath 语法两种 ,缺省输入程序判断为正则表达式,如果输入Xpath 语句 ,用XP:开头,程序就知道了使用者输入的是Xpath 语句
这个参数的设置是 当使用者想对ROM 文件进行某种程度的过滤,提供的一种支持手段,因为支持Xpath语句,就提供了相当强大的过滤能力 ,关于Xpath常见句型和案例,请参照本圈专门讲解Xpath的帖子。
这个参数的过滤对象就是上面从MAME生成的信息文件里摘抄出来的代码,只是信息文件里有很多这样的代码,一个游戏就是一个machine ,一个machine就会有本文后面这样一段代码来描述这个游戏。(这个作为代码案例尚不充分,因为很多machine还有input描述部分,参见XPath案例那个帖子里摘取的麻将游戏代码的input部分)
因为支持Xpath筛选,因此也可以去掉前作的逻辑取反窗口按钮,因为筛选语句本身已经支持逻辑取反了。

Pattern参数
这个参数的设置是为了生成的ROM可以有效的进行管理,而不是一个路径下平铺。比如你选择 #TYPE#参数 ,生成的ROM会自动创建三个子目录,一个是Device,一个是BIOS ,一个我记得是default ,就是游戏ROM本身。 选择  #YEAR# 生成的ROM就会按照年份创建文件夹,进行分组。
Mode参数
ROM的文件组织形式,FUll是合并模式(即主档和辅档整合在一个文件中),Split分离方式(主档和辅档分别是不同的文件),Standalong(独立模式,文件中有主档,辅档和运行需要的BIOS)

Filter Mode
Soft:程序只是模拟过滤这个动作,实际并不去做
Hard:程序会实际操作过滤,就是去作了
Threads:运行线程选择,这个版本支持多线程处理,通常你选择Auto就行,让程序自行选择运行多少个线程,我运行的时候,程序通常自己选择运行12个线程,达到最高效运行。
LogLevel :可显示不同级别的Log,开始不了解时候就都看,熟悉这个软件之后,就看告警或者错误级别的,常规的信息就可以不看了,因为你看过好多遍了,信息对你无价值,你可能只关心错误,最多关心告警。
FixIssus:如果你勾选,扫猫同时修复问题,这是个强大的功能和选择,如果你不勾选,你会在log窗口看到,一些问题是可修复的,然后你勾选这个选项,程序就会在扫描的时候修复这些问题。非常强大!
Check SHA1:SHA1(安全散列算法的数字签名)这在初期处理的时候,不需要勾选,因为你不关心SHA1(SHA1验证是数据的完整性等,当然你如果非常谨慎,可以现对输入文件验证SHA1,SHA1通过才能证明数据的完整性),你关心的是你要做的事,你可以在做完你的事的时候,核对一下他的SHA1是否有问题,当然,你也可以不去核对。我从来没去核对过这个事。

New Scan:当你第一次配好这些参数,对文件进行扫描,点 New Scan ,实际发生的就是扫描算法运行的更深层次一点,试图发现更多潜在问题。 当你不是第一次运行扫猫(指本次你用这个软件做事),你只需要点击Scan,因为可以在扫猫时候做更少的事,节省时间。
其实呢,因为多线程的采用,即便扫描78.22G这样大的几万个文件,所用时间也不多,你们试试就知道这个版本的ClrMame 运行速度是多么惊人了。

filter过滤对象的片段截取(为了更直观的看到要过滤的东西):

        {下面是从当前版本MAME提取的信息文件的摘抄,去掉了这个machine中间和本讲解无关部分,当程序开始处理电子基盘这个rom,程序会从所有rom路径里去寻找他要的下面的这些东西 ,找到后,如果参数是split,就单独生成文件,如果是full,就合成一个文件,如果是standalong,就把下面文件里写的需要的bios,device也放进文件里.对于程序而言,文件只是数据组织的一种形式,程序需要的是输入数据(比如,每次rom升级就是原ROM和升级的ROM差异文件),他把输入数据按照你的要求整理,按照你要求的方式生成文件,按照你要求的方式对文件进行不同的路径组织}

        <machine name="mjelct3" sourcefile="dynax/dynax.cpp" cloneof="mjelctrn" romof="mjelctrn">  <!--标明相关ROM之间的关系-->
                <description>Mahjong Electron Base (parts 2 & 3, Japan set 1)</description>   <!--ROM名字的文字描述->
                <year>1990</year> <!--ROM的年代->
                <manufacturer>Dynax</manufacturer>  <!--游戏的制作厂商-->

             <!--程序文件列表,如果缺程序文件,就报缺失,然后不执行-->               
                <rom name="se-3010" size="131072" crc="370347e7" sha1="2dc9f1fde4efaaff887722aae6507d7e9fac8eb6" region="maincpu" offset="0"/>  <!--ROM的数字签名 ,文件字节数,CRC校验码-->
                <rom name="eb-01.rom" merge="eb-01.rom" size="1048576" crc="e5c41448" sha1="b8322e32b0cb3d771316c9c4f7be91de6e422a24" region="blitter" offset="0"/><!--ROM的数字签名 ,文件字节数,CRC校验码-->
                <rom name="eb-02.rom" merge="eb-02.rom" size="524288" crc="e1f1b431" sha1="04a612aff4c30cb8ea741f228bfa7e4289acfee8" region="blitter" offset="100000"/><!--ROM的数字签名 ,文件字节数,CRC校验码-->

ROM文件的内部组织如下附件图片)
电子基盘的文件内容拆解.jpg
           <!--需要的设备/BIOS列表,游戏运行时候就按这个表格先检查所需文件完整性,如果缺失设备/bios的名字,就报缺失,然后不执行-->
                <device_ref name="tmpz84c015"/>  
                <device_ref name="z80sio"/>
                <device_ref name="z80sio_channel"/>
                <device_ref name="z80sio_channel"/>
                <device_ref name="z80ctc"/>
                <device_ref name="z80ctc_channel"/>
                <device_ref name="z80ctc_channel"/>
                <device_ref name="z80ctc_channel"/>
                <device_ref name="z80ctc_channel"/>
                <device_ref name="z80pio"/>
                <device_ref name="address_map_bank"/>
                <device_ref name="nvram"/>
                <device_ref name="ls259"/>
                <device_ref name="ls259"/>
                <device_ref name="screen"/>
                <device_ref name="tc17g032ap"/>
                <device_ref name="palette"/>
                <device_ref name="speaker"/>
                <device_ref name="ay8912"/>
                <device_ref name="ym2413"/>
                <device_ref name="msm5205"/>
                <device_ref name="coin_hopper"/>
                <chip type="cpu" tag="maincpu" name="Toshiba TMPZ84C015" clock="5500000"/> <!--此Machine(机台)使用的CPU信息-->
                <chip type="audio" tag="mono" name="Speaker"/> <!--此机台使用的音频信息-->
                <chip type="audio" tag="aysnd" name="AY-3-8912A PSG" clock="1375000"/>
                <chip type="audio" tag="ym2413" name="YM2413 OPLL" clock="3579545"/>
                <chip type="audio" tag="msm" name="OKI MSM5205 ADPCM" clock="384000"/>
                <display tag="screen" type="raster" rotate="180" width="508" height="240" refresh="60.000000" />  <!--此机台缺省的屏幕方向参数和刷新率-->
                <sound channels="1"/>

                <driver status="good" emulation="good" savestate="supported"/> <!--此机台的驱动状态和仿真状态-->
        </machine>


ps:本文全部是原创,码字不易,喜欢的点点赞吧,呵呵
































152

主题

1万

回帖

2万

积分

论坛元老

积分
22711

推广达人最佳新人

发表于 6 天前 | 显示全部楼层
哇,高手呀,进来学习一下!

点评

你把这个软件下来用,以后升级rom库时候会更快更简单  发表于 6 天前
这贴不要灌水啦,我放这里就是严肃一点讨论的  发表于 6 天前

47

主题

568

回帖

1420

积分

金牌会员

积分
1420
 楼主| 发表于 6 天前 | 显示全部楼层
本帖最后由 william 于 2025-7-9 23:08 编辑

这个软件比前作还是有少许功能缺失的,比如前作是可以挑出每个游戏的主档的 ,用  %c=?*  然后逻辑取反,就可以筛选出每个游戏的主档,而这个版本虽然也支持这样的表达式,但取消了逻辑取反按钮,就筛选不出来每个游戏的主档了,也许是我不会弄???
其实对普通玩家而言,一个游戏只需要一个主档,游戏列表中,一个游戏显示那么多版本,占据版面太大。当然前端可以编程设置选项让你一个游戏只看到主档,但哪个前端是这样作了?我没一一去试,另外出于极度精简的需求,筛选并只保留主档也是需要的

47

主题

568

回帖

1420

积分

金牌会员

积分
1420
 楼主| 发表于 6 天前 | 显示全部楼层
一个游戏,一个主档,快成为我的执念了,我现在做不到筛选出来,以后想办法

6

主题

352

回帖

4384

积分

论坛元老

积分
4384

最佳新人

发表于 5 天前 | 显示全部楼层
ClrMameUI扫描ROM,选择分离集时,部分游戏会被整理到合并集并减少游戏数量!
ClrmamePro则一切正常!
Email: Kavs@Msn.Cn

47

主题

568

回帖

1420

积分

金牌会员

积分
1420
 楼主| 发表于 5 天前 | 显示全部楼层
xyzhz 发表于 2025-7-10 10:20
ClrMameUI扫描ROM,选择分离集时,部分游戏会被整理到合并集并减少游戏数量!
ClrmamePro则一切正常! ...

我思考一下,如果能提供操作抓图更有利于分析

6

主题

352

回帖

4384

积分

论坛元老

积分
4384

最佳新人

发表于 5 天前 | 显示全部楼层
william 发表于 2025-7-10 10:30
我思考一下,如果能提供操作抓图更有利于分析

例如用ClrmamePro 扫描整理后游戏数量为10014  克隆游戏为7006
    用ClrMameUI     整理后,游戏数量就变成10010  克隆游戏数量7000

都是分离集选项!
Email: Kavs@Msn.Cn

47

主题

568

回帖

1420

积分

金牌会员

积分
1420
 楼主| 发表于 5 天前 | 显示全部楼层
能把CLrMameUI 扫猫页面抓图么?我看看你的参数选择

47

主题

568

回帖

1420

积分

金牌会员

积分
1420
 楼主| 发表于 5 天前 | 显示全部楼层
本帖最后由 william 于 2025-7-10 11:02 编辑
william 发表于 2025-7-10 10:30
我思考一下,如果能提供操作抓图更有利于分析

我想看你是否 勾选了 fix  issues
CMP是隐含fix的,并没有提供这个勾选,而ClrMameUI是显示的让你去选择是否fix.

6

主题

352

回帖

4384

积分

论坛元老

积分
4384

最佳新人

发表于 5 天前 | 显示全部楼层
本帖最后由 xyzhz 于 2025-7-10 11:03 编辑
william 发表于 2025-7-10 10:57
我想看你是否 勾选了 fix  issues

勾选了! 都是分离集,作者还是同一个人 但是两个软件整理出来的数量不一样?
Email: Kavs@Msn.Cn

QQ|Archiver|手机版|小黑屋|肖琪模拟游戏站 ( 沪ICP备2023018581号-5|沪公网安备31011702888952号 )

GMT+8, 2025-7-15 14:23 , Processed in 0.114009 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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