» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

关于SFC烧录卡对某些汉化游戏兼容性提升的小技巧


以“电精”这个游戏为例,该游戏原版是16Mbit容量,即2M Byte。
而电精汉化版是3M Byte。为什么会比原版容量大?
怀疑有可能是加入了中文字库,使得总的文件尺寸变大。
电精汉化版如果在SFC烧录卡上直接运行,屏幕上是会花版的,汉字不能正常显示。




但是我们可以利用SFC烧录卡内置的特殊功能来解决这个问题。

具体方法是进入烧录卡操作菜单的ROM设置功能“ROM Settings”


手动将ROM Size(ROM尺寸)由2M切换为4M。(2M为烧录卡根据ROM数据自动识别出的尺寸)



然后返回菜单首页重新运行游戏,问题立即解决了。





对于某些在原版尺寸上进行了扩容的汉化版游戏,如果发现什么不正常的现象,可以尝试通过这个方法来解决。


TOP

不错  我还没有SFC烧录卡啊



TOP

火纹几个汉化版通过这方法能不花屏吗?不花屏我就买个


TOP

lz试试修正ROM头部看看,sfc最常见的就是smc格式ROM,方法如下

(注意smc格式也有一个文件头,但是一般模拟器是不识别这个头部的,所以汉化组对电精改了这个smc头部,但是绝大多数模拟器包括烧录卡依然将它认作16Mbit,因为它不是sfc rom的真正头部!!!)

用WinHEX打开ROM,找0x000081c0和0x000101c0(可以用Alt+G直接输入这两个Offset),看这两个地址哪一个是这个游戏名称的文字,这个地址就是Rom头的起始。
----  比如电精的ROM在0x000081c0处找不到游戏名但在0x000101c0处可以找到标题名的ASCII字符串"GHOST CHASER DEN",所以电精的Rom头从0x000101c0开始。

从这个ROM header的起始位置开始,加上0x17个字节(注意是16进制!!),就是ROM的大小类型。
比如电精在0x000101c0+0x17=0x000101d7处可以找到一个值为0x0B的字节,这个0x0B就是ROM大小,具体值参照下表:
0x08:2Mbit
0x09:4Mbit
0x0A:8Mbit
0x0B:16Mbit
0x0C:32Mbit
所以只需要把这个值改为0x0C,电精汉化版就可以被自动识别为32Mbit也就是4兆的ROM了

P.S.注意这样改了以后,会影响到ROM的校验和,所以还要fix checksum,这类工具很多,很容易找,但是是否fix是无所谓的,况且像汉化版的电精,实际ROM是3兆(24Mbit),但是因为任天堂根本没有3兆的ROM类型标志位,我们改用4兆的ROM标志位,这样如果不对电精的ROM作dummy填充,理论上是不能得到真正正确的checksum的,所以这个就不要纠结了

如要深入了解Snes ROM header,看这两篇:
http://romhack.wikia.com/wiki/SMC_header
http://romhack.wikia.com/wiki/SNES_header

TOP

这个SFC烧录卡,在哪里购买, 能提供个链接吗?

TOP

发新话题
     
官方公众号及微博