【技术】Z80反汇编实战之口袋红美版字库破解
本帖最后由 jiangzhengwenjz 于 2019-6-23 13:13 编辑好久没有发原创的技术研究了,这次来做一个基于口袋红版的字库破解,因为以前的D商汉化实在有点。。。
先让我抱怨一下,GBA改版研究的越来越透彻,搞得现在越来越无聊了,除了在贡献老外反编译项目,其他没有太多有意思的东西,基本抄抄弄弄就能写出程序。所以暂时搞一下gb,过一把反汇编瘾。
当然目前的代码只是一个初步的轮廓,不说无穷无尽的bug,至少肉眼可见的可改进之处就有不少,
要测试的话,需要先修改header数据,把卡带升级成MBC 5,ROM 8MB,RAM 128KB,以及对应计算checksum
然后还要把字库拆分插入到bank $80 ~ bank $92的$4540位置(原版字库放在$92),其实可以用INCBIN了,但是我真的懒得写。。。
编译可以使用就用rgbds和自己写的insert程序。但是编译了也没有什么用,看代码就好了。
代码放在github:**** Hidden Message *****
bug还很多 请不要用,问题:
1. 战斗没测过,但明显有大问题。。。
2. 返回START菜单时混乱
3. 初始tile借用了这个文字函数(也就只有GB这种奇葩会出这种情况了吧)
4. 。。。 GB的难度可比GBA高太多了~ 海のLUGIA 发表于 2019-6-23 10:37
GB的难度可比GBA高太多了~
个人第一次做的感觉,一个是bank switching很烦,尤其递归的时候很容易出问题要极度小心
一个是寄存器太少,导致栈被大量摧残
一个是本身游戏就用asm编写,条理相对编译器生成的要来的差
最最麻烦的是游戏直接用暴力方法把所有字母数字符号都预先写到显存,之后直接改tilemap缓冲区,然后明显这对中文不合适,导致必须做系统性修改
厉害,这都是大神们专用 jiangzhengwenjz 发表于 2019-6-23 11:03
个人第一次做的感觉,一个是bank switching很烦,尤其递归的时候很容易出问题要极度小心
一个是寄存器太 ...
这个最最麻烦我倒是不知道…寄存器太少之类的是早期的通病吧,板子就那样- -||| 有点牛批啊 高级,虽然字库破解什么的不是很懂,但还是后排支持一下!{:5_doge03:} 最后把prism汉化……
页:
[1]