《龙珠2DS》的字库破解过程

本文详细记录了《龙珠2DS》游戏字库的破解过程,通过CT2和ASM分析,揭示了字库的JIS编码、OAM显示方式及DMA4复制原理。通过断点调试,找到了解密字库的关键代码,并解释了解密算法,包括r1&0x33和(r1&0xCC)>>2的操作,以及12*14的字模解密过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

半年前写的文章了,原本是发表在兔友论坛上的,还是在自己的blog上也保留一份吧。

 

图片有些不能显示,点我去看原帖 (不需要注册)

---------------------------------------------------------------------------------------------------------------------------------------------------------

CT2打开 rom后很容易发现文本是标准 JIS编码,粗看了下文本在根目录下的 msg/jpn下。字库也很容易找到,在 /font/jpn下,但是用 CT2无法看到。这里需要 ASM 了。
1.jpg


在存档处可以看到这里的文本显示是以 OAM 的形式存在的, OAM 可以理解是用 sprite 的方式,所以在第一个 OAM 那里 0x0660000 那里设断点: [06600000.. 06600004]! ,关于如何在 No$gba 里设置断点,请看 No$gba help 文档里的 Debugging 部分。
这里停下来:
2.jpg


  可以看到最后停在 strr4,[r3,8h]。而 r3=0x040000D4。这里用到了 DMA4,关于 NDS DMA请看 gbatek http://nocash.emubase.de/gbatek.htm
0x040000D4,存的是源地址,是 0x2273440
0x040000D8,是目标地址,可以看到上图右下角这个值下就是我们刚才设置的地址。
0x040000DC,是复制的字节数
  可以去 0x2273440看到里面确实是可以直接显示(这里主要是为了区分前面无法直接显示)的字模了。这时候你可以 dump memory然后用 CT2看一下。这里说一下 No&gba

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值