主页 | 旧版主页 | 博客 | 相册 | 下载中心 | 视频展区 | 图片中心 | 月下专区 | NEW 白夜专区 |[加入收藏
外站 内站
打印

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

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

-原帖作者: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版娃娃的方法,敬请期待。

TOP

本来我应该懂这些的
但是没学好到一点都看不懂……= =||||
坟墓中爬出来的人……  

TOP

LZ暴强.....

   会不会做个补丁出来???期待.....

当你的判断对象叫 KOBE  BRYANT 的时候,正常的逻辑通通无效!!!

TOP

都用到汇编啦
晴天好心情*^_^*

TOP

弓虽..................
TREVOR>CHRISTOPHER>SIMON>>>>>>其他非BELMONT主角...........................................


TOP

wayi 大哥,转贴里的QQ不是你的吧?

TOP

QQ号是原作者的……

正好问问公主,我苍月挖墙角到298%了,问题还是没能有幸刷出LEVEL  UP和MONEY UP来,为此我耿耿于怀……

数据混乱到某些剧情再度复活,可惜BOSS没一起复活……

TOP

当年汇编语言没好好学……现在只能CJ滴飘过……

TOP

有意思~~~~~~~~~
KONAMI
↑↑↓↓←→←→BA

TOP

引用:
原帖由 wayi 于 2006-8-9 12:56 发表
QQ号是原作者的……

正好问问公主,我苍月挖墙角到298%了,问题还是没能有幸刷出LEVEL  UP和MONEY UP来,为此我耿耿于怀……

数据混乱到某些剧情再度复活,可惜BOSS没一起复活……
剧情复活或者错位出现应该没关系…………但是出城逆走的话有可能导致游戏不能……比如从那个飞装甲后面进去就强制死机…… 也得小心呢

TOP