根据原理的小策略
NVRAM文件(下面简称NV文件)的作用和INP爆炸的原理大约是楼上所说。所以实际上想解决这个问题很简单
只要你录制INP的时候,固定好NV文件上面随机数的种子,再按照你的操作去回放INP,那就一定没有错
也就是保证,你录制,和回放的时候,NV文件是一样的就行了
一.最简单,最通用的办法--删除法
每一次录制INP之前,删除“NVRAM”文件夹下面“ROM名字.nv”的文件(MAME0.160以前的版本)
比如这里我要录19XX的,我就删除19XX.NV文件
0.160之后的版本,MAME把NV文件拆成了几个小文件,放在“NVRAM”文件夹\“ROM名“的文件夹下面
直接把那个文件夹删除就行了
比如我这里要录大复活的,我就把大复活的“ddpdfk”文件夹删掉,再进入游戏录制
你要录制哪个游戏,就把哪个游戏的文件夹删除就行了
这个办法是最通用的,播放INP的时候,你把NV文件删除,再播放就行了
但是缺点是
1.像大复活这样需要调整机台设置才会出现隐藏机,隐藏模式的
你每一次录制的时候,进游戏都要调一次,调出来才能玩
2.每一次都要删除,偶尔忘记删除了,INP可能就坏了,操作上很麻烦
虽然可以通过写BAT批处理的方法,但是总归不好用
二.把NV设置成只读 + 占位文件夹法
对于方法一里面遇到的需要机台设置的比如大复活,可以在调出隐藏机 隐藏模式后,退出游戏
把每一个NV文件,都设置成只读,这样保证每一次录制都是同样的起点
把上面的方法引申一下,一些不需要机台设置的,可以使用占位文件法
这个方法还是利用WINDOWS那个特性,比如我要玩大往生,我在NVRAM文件夹下面建立一个
DDP3.NV 文件夹,这个时候系统会把这个文件夹 视作“DDP3.NV”文件,
然后现在就简单了
直接把文件夹设置成只读就可以了
运行游戏的时候MAME读取不到NV里面的内容(因为实际上文件不存在),等于是删除NV的效果
而关闭游戏的时候因为文件存在,他会试图写入,而不是重新建一个DDP3.NV文件,
然后因为只读,写入失败。。。。这样,你每一次开游戏,都是0状态开始,而不用重复删除
这是用的最多的办法
三.特殊版本的MAME下的备份---还原法
方法二的只读法,对于MAME 0.140以前的MAME,有一定的问题
老版本MAME退出游戏后无法写入NV文件,会直接报错退出,而这样录制的INP算录制不完成无法观看
这样的老版本MAME,如果不需要隐藏机之类,只能每一次录制前删除NV
而像打击者1999这样需要隐藏飞机X36 的,又想在老版本MAME下录制,只能打之前预先备份NV
打完之后,将备份的NV还原回去,再播放。。。
-----------------------------------------
以上3个方法灵活运用可以避免绝大部分录像爆炸的问题
在交流录像的时候,如果有NV文件,必须得把NV文件附上
不然没法在其他人的机子上面正常播放
最后说个抢救措施
很多人的INP录完后才发现NV没删,看不了,这种时候,你可以试着反复看几遍
每一次看,每一次玩都会改变NV文件,运气好搞不好把随机种子给弄对了也说不好
如果运气好,遇到一次能正常播放,播完后,先不要退出游戏(MAME退出游戏后才会写入NV文件)
先把当前的NV文件拷出来,设置成只读,OK这录像就救下来了
然后用以上的3个办法正确播放,破费
-END-