黑耀镜の恶魔城

查看: 9876|回复: 25

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

 关闭 [复制链接]
发表于 2006-8-8 23:34:12 | 显示全部楼层 |阅读模式
2016-8-13 04:20 编辑 <br /><br />-原帖作者:MR.WONDERFUL
-原帖转自:EMU-ZONE
《恶魔城晓月圆舞曲》HACK教程(二)开启被屏蔽的Q版娃娃造型(表篇)
前几个月抽空看了下晓月的程序,小有发现,拼凑了几篇HACK教程,拖沓至今,汗^^^
在下是
恶魔城
的FAN,欢迎诸位交流相关剧情,历史,美图及程序.
QQ  17591419

恶魔城
晓月圆舞曲》HACK教程(二)开启被屏蔽的Q版娃娃造型(表篇)
作者:0 DAY-S[EGCG]           转载请注明出处
工具: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,[r7,14h]
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,[r7,0Ah]         ;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,[r0,48h]         ;得到娃娃图象数据基指针
080240D0 684D     ldr     r5,[r1,4h]          ;指针
080240D2 688E     ldr     r6,[r1,8h]          ;指针
080240D4 2180     mov     r1,80h
080240D6 0249     lsl     r1,r1,9h
080240D8 F016FBEA bl      803A8B0h
080240DC 4C44     ldr     r4,=84BCA78h
080240DE 6821     ldr     r1,[r4]
080240E0 4A44     ldr     r2,=131C0h           ;关键内存,0D表示娃娃的图
080240E2 1889     add     r1,r1,r2
080240E4 6008     str     r0,[r1]
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,[r4]
080240F4 4B3F     ldr     r3,=131C0h            ;关键内存
080240F6 18C0     add     r0,r0,r3
080240F8 6802     ldr     r2,[r0]
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,[r7,4h]
0802411C 1C39     mov     r1,r7
0802411E 315C     add     r1,5Ch
08024120 200D     mov     r0,0Dh
08024122 7008     strb    r0,[r1]
08024124 1C3A     mov     r2,r7
08024126 3259     add     r2,59h
08024128 7810     ldrb    r0,[r2]
0802412A 2102     mov     r1,2h
0802412C 4308     orr     r0,r1
0802412E 7010     strb    r0,[r2]
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版娃娃的方法,敬请期待。

发表于 2006-8-9 02:24:02 | 显示全部楼层
2016-8-13 04:20 编辑 <br /><br />本来我应该懂这些的
但是没学好到一点都看不懂……= =||||

发表于 2006-8-9 08:43:44 | 显示全部楼层
2016-8-13 04:20 编辑 <br /><br />LZ暴强.....
   会不会做个补丁出来???期待.....

发表于 2006-8-9 12:16:48 | 显示全部楼层
2016-8-13 04:20 编辑 <br /><br />都用到汇编啦

发表于 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不是你的吧?

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

发表于 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%了,问题还是没能有幸刷出LEVEL  UP和MONEY UP来,为此我耿耿于怀……
数据混乱到某些剧情再度复活,可惜BOSS没一起复活……

剧情复活或者错位出现应该没关系…………但是出城逆走的话有可能导致游戏不能……比如从那个飞装甲后面进去就强制死机…… 也得小心呢

*滑块验证:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|主页

GMT+8, 2024-5-2 06:03

Powered by Discuz! X3.4

Copyright © 2003 CVCV.NET. all rights reserved.

快速回复 返回顶部 返回列表