wayi 发表于 2006-8-8 23:34:12

[转帖]《晓月》开启被屏蔽的Q版娃娃造型

2016-8-13 04:20 编辑 <br /><br />-原帖作者:MR.WONDERFUL
-原帖转自:EMU-ZONE
《恶魔城晓月圆舞曲》HACK教程(二)开启被屏蔽的Q版娃娃造型(表篇)
前几个月抽空看了下晓月的程序,小有发现,拼凑了几篇HACK教程,拖沓至今,汗^^^
在下是
恶魔城
的FAN,欢迎诸位交流相关剧情,历史,美图及程序.
QQ17591419

恶魔城
晓月圆舞曲》HACK教程(二)开启被屏蔽的Q版娃娃造型(表篇)
作者:0 DAY-S         转载请注明出处
工具:NO$ GBA,晓月中文版(基于日版汉化)
在晓月中,当装备第51号红魂“杀人玩偶”时,按上B会随机丢出Q版娃娃,但只有苍真和弥娜的坐姿。
(见图一,二)通过查看VRAM图(见图三),发现娃娃有未调用的图。这说明可能存在被屏蔽的娃娃程序。
   图一                  图二
              
                图三
               
如何找到该程序呢?思路有两种,一是对装备红魂的内存地址(201325D)设置写断点,按上B中断
后往下跟,注意寄存器中的程序指针;二是对丢出娃娃的声音程序设断(详细见教程(一))。两种
方法均可找到以下程序:       Q版娃娃OBJ基址:20005EC
子程序段共3段
00   娃娃初始化程序
01   丢出娃娃程序
02   娃娃消失程序
///////////////////////////////////////////// 0802409C B5F0   push    r4-r7,lr
0802409E 464F   mov   r7,r9
080240A0 4646   mov   r6,r8
080240A2 B4C0   push    r6,r7
080240A4 1C07   mov   r7,r0
080240A6 6978   ldr   r0,
080240A8 4680   mov   r8,r0
080240AA 2180   mov   r1,80h
080240AC 0049   lsl   r1,r1,1h
080240AE 4689   mov   r9,r1
080240B0 7AB8   ldrb    r0,         ;Q版娃娃的程序指针控制
080240B2 2801   cmp   r0,1h               ;ID等于1
080240B4 D063   beq   802417Eh            ;跳
080240B6 2801   cmp   r0,1h
080240B8 DC02   bgt   80240C0h            ;ID大于1
080240BA 2800   cmp   r0,0h         
080240BC D004   beq   80240C8h            ;ID等于0
080240BE E10F   b       80242E0h
080240C0 2802   cmp   r0,2h               
080240C2 D100   bne   80240C6h
080240C4 E0EC   b       80242A0h            ;ID等于2
080240C6 E10B   b       80242E0h            ;ID大于2
080240C8 4848   ldr   r0,=80DF904h      ;该地址为一图象指针
080240CA 1C01   mov   r1,r0
080240CC 3148   add   r1,48h
080240CE 6C80   ldr   r0,         ;得到娃娃图象数据基指针
080240D0 684D   ldr   r5,          ;指针
080240D2 688E   ldr   r6,          ;指针
080240D4 2180   mov   r1,80h
080240D6 0249   lsl   r1,r1,9h
080240D8 F016FBEA bl      803A8B0h
080240DC 4C44   ldr   r4,=84BCA78h
080240DE 6821   ldr   r1,
080240E0 4A44   ldr   r2,=131C0h         ;关键内存,0D表示娃娃的图
080240E2 1889   add   r1,r1,r2
080240E4 6008   str   r0,
080240E6 1C28   mov   r0,r5
080240E8 2100   mov   r1,0h
080240EA 2201   mov   r2,1h
080240EC 2302   mov   r3,2h
080240EE F017FBEB bl      803B8C8h
080240F2 6820   ldr   r0,
080240F4 4B3F   ldr   r3,=131C0h            ;关键内存
080240F6 18C0   add   r0,r0,r3
080240F8 6802   ldr   r2,
080240FA 1C38   mov   r0,r7
080240FC 1C31   mov   r1,r6
080240FE 2302   mov   r3,2h
08024100 F016FC68 bl      803A9D4h
08024104 F7DCFCC2 bl      8000A8Ch            ;随机数生成程序   
08024108 1C01   mov   r1,r0               ;r0返回随机数
0802410A 2001   mov   r0,1h               ;(只有0,1。2,3被屏蔽)
0802410C 4001   and   r1,r0
0802410E 1C38   mov   r0,r7
08024110 2200   mov   r2,0h
08024112 2301   mov   r3,1h
08024114 F01AF962 bl      803E3DCh            ;Q版娃娃动作调用
08024118 4837   ldr   r0,=803AA81h      ;娃娃动作和坐标处理程序
0802411A 6078   str   r0,
0802411C 1C39   mov   r1,r7
0802411E 315C   add   r1,5Ch
08024120 200D   mov   r0,0Dh
08024122 7008   strb    r0,
08024124 1C3A   mov   r2,r7
08024126 3259   add   r2,59h
08024128 7810   ldrb    r0,
0802412A 2102   mov   r1,2h
0802412C 4308   orr   r0,r1
0802412E 7010   strb    r0,
08024130 20E5   mov   r0,0E5h             ;丢娃娃的声音
08024132 F0B1FED9 bl      80D5EE8h            ;声音调用
注意这里:
08024104 F7DCFCC2 bl      8000A8Ch            ;随机数生成程序   
08024108 1C01   mov   r1,r0               ;r0返回随机数
0802410A 2001   mov   r0,1h               ;(只有0,1。2,3被屏蔽)
0802410C 4001   and   r1,r0               ;
0802410E 1C38   mov   r0,r7
08024110 2200   mov   r2,0h
08024112 2301   mov   r3,1h
08024114 F01AF962 bl      803E3DCh            ;Q版娃娃动作调用
很显然随机数生成程序靠r0返回结果,并且靠and运算控制范围。
这里的随机数作为Q版娃娃图象数据和程序的寻址参数。
那么我们将0802410A 2001   mov   r0,1h   改为   mov   r0,3h就可以返回0-3的随机数了。
回到游戏中,经测试果然随机增加了两种娃娃造型,一种是Q版苍真的站姿(见图四),一种
是Q版苍真出剑。(见图五)Y^0^Y
    图四                  图五
预告:在里篇中我会记录讲解新的Q版娃娃的方法,敬请期待。

kokolo 发表于 2006-8-9 02:24:02

2016-8-13 04:20 编辑 <br /><br />本来我应该懂这些的
但是没学好到一点都看不懂……= =||||

hulu520 发表于 2006-8-9 08:43:44

2016-8-13 04:20 编辑 <br /><br />LZ暴强.....
   会不会做个补丁出来???期待.....

jn1105 发表于 2006-8-9 12:16:48

2016-8-13 04:20 编辑 <br /><br />都用到汇编啦

AHHA 发表于 2006-8-9 12:28:13

2016-8-13 04:20 编辑 <br /><br />弓虽..................

约儿西姆 发表于 2006-8-9 12:30:43

2016-8-13 04:20 编辑 <br /><br />wayi 大哥,转贴里的QQ不是你的吧?

wayi 发表于 2006-8-9 12:56:39

2016-8-13 04:20 编辑 <br /><br />QQ号是原作者的……
正好问问公主,我苍月挖墙角到298%了,问题还是没能有幸刷出LEVELUP和MONEY UP来,为此我耿耿于怀……
数据混乱到某些剧情再度复活,可惜BOSS没一起复活……

Messi 发表于 2006-8-9 13:03:18

2016-8-13 04:20 编辑 <br /><br />当年汇编语言没好好学……现在只能CJ滴飘过……

西蒙·贝尔蒙特 发表于 2006-8-9 14:30:57

2016-8-13 04:20 编辑 <br /><br />有意思~~~~~~~~~

约儿西姆 发表于 2006-8-9 14:41:14

2016-8-13 04:20 编辑 <br /><br />原帖由 wayi 于 2006-8-9 12:56 发表
QQ号是原作者的……
正好问问公主,我苍月挖墙角到298%了,问题还是没能有幸刷出LEVELUP和MONEY UP来,为此我耿耿于怀……
数据混乱到某些剧情再度复活,可惜BOSS没一起复活……
剧情复活或者错位出现应该没关系…………但是出城逆走的话有可能导致游戏不能……比如从那个飞装甲后面进去就强制死机…… 也得小心呢

页: [1] 2 3
查看完整版本: [转帖]《晓月》开启被屏蔽的Q版娃娃造型