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


发新话题
打印

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

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

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