»
首页
|
手机数码
|
汽车资讯
|
游戏硬件
|
评测专题
|
手机壁纸
|
海淘值得买
|
度假
|
求职招聘
|
广告联系
» 您尚未登录:请
登录
|
注册
|
标签
|
帮助
|
小黑屋
|
TGFC Lifestyle
»
主机&掌机游戏讨论区
» 关于SFC烧录卡对某些汉化游戏兼容性提升的小技巧
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
关于SFC烧录卡对某些汉化游戏兼容性提升的小技巧
SONIC3D
版主
日均500行
帖子
11908
精华
1
积分
27355
激骚
3263 度
爱车
11路环保化学能车
主机
一穷二白
相机
Olympus C730
手机
来自
地球村
注册时间
2009-4-24
发短消息
加为好友
当前离线
1
#
大
中
小
发表于 2011-12-29 02:17
显示全部帖子
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
UID
127964
帖子
11908
精华
1
积分
27355
交易积分
0
阅读权限
100
来自
地球村
在线时间
9305 小时
注册时间
2009-4-24
最后登录
2024-11-7
查看个人网站
查看详细资料
TOP
控制面板首页
密码修改
积分交易
积分记录
公众用户组
基本概况
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计