2.字库破解难点
主要有以下三点:
2.1. 如何hack游戏程序,使之能从ROM里面读取字库数据?
2.2. 既然烧录卡都有着自己独特的IO那读字库的时候如何去调用这些IO?
2.3. 字库IO是一个额外附加的过程,很有可能与正常读取ROM文件IO发生冲突,如何避免冲突?
第一个难点我花了两周的时间来处理,还算很顺利的解决了。
第二个难点足足问题花了我和j一个多月的时间。因为内核只能在NDS上运行,没法在PC上debug,很多东西我们只能靠现象去猜测,然后设计方案在NDS上实验,根据运行结果再猜测,再修正方案……不断往复上述过程直到得出正确的运行结果。这个破解过程很累,很枯燥,很辛苦。刚开始都是无限黑屏,什么烧录卡都进不去游戏。折腾了半个月R4终于可以运行,真激动死我了;又折腾了三周终于让市面上的主流卡都可以运行了。
第三个难点就是导致汉化版DQ9随机死机的本质原因。NDS是单线程的,不存在操作系统的概念,一旦CPU发生冲突那必定死机。解决这个问题很难,因为涉及的烧录卡IO在底层的实现,这个只有厂商才知道了。如果有厂商的协助解决起来到是很方便的:我可以根据提供的资料做出适合该卡的IO调用方案,或者厂商根据我的IO调用特点修正内核。
我联系了多个厂商,遗憾的是只有一家厂商友好地跟我们合作了,并且解决了问题。更可贵的是他们选择了自己更新内核,没有麻烦我出手。
反观某烧录卡的技术人员,竟然以烧录卡在国内销量少、卖利润低,市场主要在国外为理由拒绝协助解决问题!AK、M3、R4、EZ等厂家则像从人间蒸发了一样杳无音信。