汉化日记(4)—-《热血EX》文本单字节to双字节 by funlove
暗黑兔 发表于 2009-10-10 16:39 | 来源: | 阅读
汉化日记(4)
—-《热血EX》文本单字节to双字节
by funlove (funslove@163.com)
2004.03.18
《热血EX》ROM名称1400 – River City Ransom EX (J).gba
这是我们千岛组下一个汉化目标,先做个宣传。
前面还是繁琐的跟踪和读代码,不写了。这里大致描述一下这个游戏的文本格式和显示方式:
文本集中存在一个区域,每句话用00结尾。每句话的开头都有个指针,所有的指针集中存放在一个区域。显示时,每次读取一个字节计算字库偏移,再读取字库进行显示。
方法很简单,所以改动也很简单。经过分析:
ldrb r0,[r0]
这句是在ROM文件中读取一个字节。改为:
ldrh r0,[r0]
就每次读两个字节了。
至于指针的移动数目,在这个ROM里是自动的,不用改了。
lsl r0,r0,18h
lsr r4,r0,18h
读取的数据要经过这样左移右移的操作,目的是得到最低字节的数据,其他的赋0。改为:
lsl r0,r0,14h
lsr r4,r0,14h
这样留下的就是2个低字节的内容了。很简单吧
剩下的工作是由于改成了双字节,文本区要扩容,而且文本区每句话的指针也要随之改变。这些已经不存在什么技术上的问题了。
这次改动很顺利,不需要添加更多的语句。如果碰到麻烦的ROM,也许就要采用我的汉化日记(3)中的方法,用跳转的方法添加代码了。
关键字:

