设为首页收藏本站在线充值

电玩龙资讯台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 937|回复: 2
打印 上一主题 下一主题

GBA1727哈姆太郎彩虹救援汉化教学BYflyeyes

[复制链接]
  • TA的每日心情
    慵懒
    2015-2-27 12:27
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]初来乍到

    51

    主题

    63

    帖子

    300

    积分

    龙骑队长

    Rank: 4

    积分
    300
    跳转到指定楼层
    楼主
    发表于 2015-2-27 12:41:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    汉化流程攻略(一)——1727_哈姆太郎-彩虹救援(E)
    flyeyes
    2007-8-10这个的难度可能有点大,希望里面的一些方法能够对大家有用吧。

    PS.这个可是可爱的耗子游戏啊~~~

    新手拿到这个rom可能会无法下手,因为。。。根本找不到字库,把能想到的格式都用了估计也找不到,字库没有压缩,就好好地放在rom里,只是格式太特殊了,后面再说。

    一、寻找字库

    寻找字库的方法很多,用得比较多的有下面几个

    1、用tile查看器在rom里直接寻找。

    最麻烦 也是最常用 同时也往往是最有效 的方法。
    虽然是个“笨”办法,不过也是有好多技巧的。比如事先观察游戏中显示的字的大小 来确定字模的大小,是显示在16色下还是256色下等等。有一定机会能减少工作量,尽快找到字库位置。
    要提醒的一点是,找到之后要在rom搜索下字库地址,看看自己找的首地址是不是正确。一般来说,字库的首地址一定会原样保存在rom,除了极个别的BT rom,呵呵。

    2、搜索字库

    这个方法是有限制的。
    先说过程,让游戏运行到显示对话的地方,打开Tile查看器,找到字模所在tile的地址,再打开内存查看器,看对应字模的数据。在其中选取一段比较特别的数据(为了搜索时得到的结果尽量少),在rom里搜索,搜索到的位置就可能是字库。
    这个方法看起来比第一个简单,不过成功率不是很高,一方面只有字库是GBA 4bpp或GBA 8bpp时才可能搜索到,另一方面有些游戏有文字变色的功能,内存里的数据未必和rom里一样,虽然显示出来的字形是一样的。

    3、跟踪代码

    为找到字库所作的跟踪一般是比较简单的。通常的做法是监视显存改动,以这个游戏为例。



    设中断:[0600E510]!
    继续运行,中段的位置为




    这里可能有点技术难度,看一下代码段,还有寄存器内容,尤其是r2,r7,r14。
    如果你曾经跟踪破解过《旋律天国》你就会发现这里的程序和他的显示过程是一样的。。。这个,算是经验优势吧。。。
    再注意寄存器r10,r11,显然是rom里的地址,又在显示字符的时候出现,没错,那里是字库。
    用ct2打开rom,转到那个地址,格式选旋律天国,高宽都是16,字库的大体样子看到了吧~

    好了,今天就到这里,下次继续。
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    道上红尘,江中白浪,饶他南面百城;花间明月,松下凉风,输吾北窗一枕。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2015-2-27 12:27
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]初来乍到

    51

    主题

    63

    帖子

    300

    积分

    龙骑队长

    Rank: 4

    积分
    300
    沙发
     楼主| 发表于 2015-2-27 12:42:30 | 只看该作者
    二、字库处理
    1、怎样看清
    经过上一节,我们成功看到了字库,虽然看到了字,可是有没有觉得有些乱呢?让我们看一下。

    显然,字符在每个tile里的位置不同,越到后面越乱了,怎么让它显示好呢?在跳过字节里填上4,再调整看看。

    这个效果好多了。一个16x16的1bpp Tile占用的大小是32字节,加上跳过的4字节。一个字占用了36字节,为什么要用这么大呢,我们先按下不表,往后看。
    2、加密
    是不是觉得字库已经找到并解决了呢?那么往下看看,看到了什么?

    日文假名显示得很奇怪,是哪里出了问题呢 ?
    如果你观察力够好或者从代码读下去,就会发现问题了,字模的存放顺序不对!
    旋律天国模式下,基本的tile单元是宽8高4的一块,相当于别的显示格式下像素的地位。因此在使用这个模式时,宽和高都必须有一个倍数要求:宽是8的倍数,高是4的倍数。
    我们把36个字节这样划分

    咳咳。。。可能有点杂乱,不过应该能看清。
    我们现在看到的字库部分就是1~8这些,9是跳过的那4字节。
    仔细观察不难发现,135显示的都没问题,而246一直是空白的,789中有时有一小块字。(9中的内容,把跳过字节去掉,仔细对着看一下就知道了)
    好了,大概你也能猜到了,246根本是没有用的!
    实际游戏的字模是宽16高12的,组成方式如下

    根据这个变化关系去写程序,来显示出完整的字库吧~
    注:之所以说是加密,是因为246的存在毫无意义,除非是程序员一时脑子进水。。。好在这个所谓加密的变化并不复杂,否则字库会很难寻找。
    转换好的字库:

    道上红尘,江中白浪,饶他南面百城;花间明月,松下凉风,输吾北窗一枕。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2015-2-27 12:27
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]初来乍到

    51

    主题

    63

    帖子

    300

    积分

    龙骑队长

    Rank: 4

    积分
    300
    板凳
     楼主| 发表于 2015-2-27 12:43:02 | 只看该作者
    三、文本结构
    有了字库,再用差值搜索,很容易确定码表。
    01=A
    02=B
    03=C
    04=D
    05=E
    06=F
    07=G
    。。。。。。


    然后搜索一下文本,文本都存放在同一一块区域,很容易找到,再搜索一下文本指针,指针表也能找到。
    不过这个游戏的5种语言的文本是混在一起放的,要研究下指针表才能完好导出。
    这个大家可以自己去看了,不算复杂。
    四、杂项
    再回到字库,也许有人发现了,字库首地址搜索不到。
    怎么回事呢?
    那么,在16进制下,看看字库的前面,一段数据,有什么发现没有?
    提示一下,游戏里字符的宽度不是固定的,而tile大小都是一样的,显示程序是怎么知道每个字的宽度的呢?
    对了,这里就是字库宽度表,这个表被作为字库的一部份,所以字库首地址应该是宽度表的首地址。
    数据33h是字库标志,首地址知道了吧,搜索一下吧~
    宽度表以4位保存一个宽度,不过顺序和字库有些不同,至于是什么不同呢,大家自己比较一下就知道了。
    其实破解有时并不需要太高深的知识,只要善于观察,一样可以破解游戏。
    至于编码扩容,这个游戏相对于其他游戏是非常简单的,没多少讲的价值,呵呵。
    第一篇也不能太难,这篇攻略就到此为止了~~感谢你能坚持看下来~~
    最后是广告~
    我的群44386481
    只是探讨gba汉化的地方,愿意学习gba破解的或者翻译美工等等喜欢gba的人就加吧。不过,希望加之前先确定自己有足够的耐心和毅力,坚持不下来变成沉默的潜水员的会被清掉欧~
    道上红尘,江中白浪,饶他南面百城;花间明月,松下凉风,输吾北窗一枕。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|天空联盟- SKY LEAGUE    

    GMT+8, 2017-5-26 23:28 , Processed in 0.068552 second(s), 34 queries , Xcache On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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