EMU618社区

 找回密码
 立即注册
搜索
查看: 2286|回复: 1

[转载HACK教程] 火炎纹章776修改笔记(作者:zHAOsILi[EGCG](.zZ~~) )

 关闭 [复制链接]

签到天数: 1894 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
2 p% }9 A3 s1 o8 Z5 \% N
! {  U/ e9 Y4 ^6 b: R火炎纹章776修改笔记
! o; i: }) i; W* ?" {2006.1.25
7 D4 @0 S+ e% B1 {3 `作者:zHAOsILi[EGCG](.zZ~~) 转载请注明. k3 N1 Y( K* J$ o) T3 A3 u' J3 e: W

3 H7 d& T" K7 r# v* N% L: H3 ~. |2 Z
修改工具:Geiger’s Snes9x Debugger Mark 9
( \2 O7 N6 s  j3 s# z6 @. o+ V: [0 ?0 M1 A
战后升级$ d0 L5 d. m0 O) k* i
$ 83/EFDC 90 05       BCC $ 05->EA NOP
1 K* \& x9 P) a                              EA NOP% ^: T6 g& Z$ p7 W6 O  l% P' R+ R! o% Y
: {8 ~! {  X, k# Z; p4 w4 g; K0 P
战后能力+1
/ D3 ]( f4 V; F  N, X$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
7 i: b* c6 X8 Y5 a有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b) Y/ z, U% ]& w) r, s
) d$ a1 A3 D# w2 J
武器熟练直接到A" m( r7 V- t3 }5 H$ V' r
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP  H1 {; B- T! ?  F0 H. I+ `3 _
                               EA NOP
& `) f* e" h0 Y  H: M- p1 }3 q存放所全物品锁定
* N  b- r9 C4 c  @/ T4 c存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
7 X. n9 a: h2 F( ^要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
2 Z7 g3 F7 J# W- g% f9 d而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
9 R* K4 q* M7 Z1 J0 t件物品,故可以突破存放所128件物品的限制,改出全物品。
" _* ~2 }, X- v# O. x. D$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2& s5 q: q: a# ~' N1 J( v
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   : i2 ?  _. a+ M8 A8 R
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB1 r2 ?( D, ?! i6 G" E- Z
$ 85/C78E CA          DEX                     ; m/ ]4 K' I1 \4 D, C8 _
$ 85/C78F CA          DEX                     * ^2 A: p$ V6 X" g; G. h9 o/ d
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次- G. v( i' C6 A- C2 ^, }$ l4 O
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE& H. V+ s4 [" P! _6 ^
$ 85/C793 A2 FE 00    LDX #$ 00FE              * F2 E/ M1 M' ~9 w# a* r; C8 w
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]     R0 r" S& P5 E, }
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0& W5 |5 i. U" A& q3 Z9 i
$ 85/C79C CA          DEX                     
9 b. e/ j% w% ]) u0 F9 `2 W$ 85/C79D CA          DEX                     2 H) t. r# k0 J/ p# C$ G5 e; J& l
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
' @  a+ Y& w# ]3 K7 U& @$ 85/C7A0 6B          RTL                     
: D+ e) Y: o- c: u, z3 Q实现全物品的代码如下:, a( a& q) P: a9 }+ K+ q) T; c
Start@ $ 85/C785- v0 \  b# [* g+ h1 D
LDX #$ 014C A2 4C 01;X=($ A7-1)*2" c1 h# S9 Z7 M7 o- |* m7 y
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量4 B- l5 T& E7 n% A
@2 STA $ 6FCB,x 9D CB 6F+ {  Q9 o  y* O7 u/ p- I
DEC A  3A6 p. M, Y" ^3 {$ S) \2 M! J* O& Q
DEX  CA. r. `9 G7 r. W! o, F7 K4 I
DEX  CA
" S5 @. x- v3 f; c# m* P4 }" iBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间9 E! H* W# ~: J
LDX #$ FFFE A2 FE FF;-|% m8 e" j) k9 f) Y3 \$ l0 L
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序( o; M" W  n3 P' I/ I
@1 BPL @2 10 F2;循环$ A7次* _& O9 b+ R- b  W
RTL  6B9 v/ N4 e* \# x/ P
最后改完后反汇编出来的结果:' ~0 m) T0 k9 t1 z& v1 Y
$ 85/C785 A2 4C 01    LDX #$ 014C              5 _. S7 n+ D( l) B  y
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
. ~" s& ?/ J: y3 f5 d$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   9 W( ^  d6 G7 N& @! f" I0 i2 P. _6 Z
$ 85/C78E 3A          DEC A                  
- P( M4 w+ ?, I. f6 @8 e+ Z$ 85/C78F CA          DEX                     
9 B1 P: O3 d2 |- G6 q- e% p8 {$ 85/C790 CA          DEX                     
4 [; r$ G, n6 O8 c- o6 x  y  _$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
* L) Z. e- Q, k( {; f1 F' J. u$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
& Z0 B) c8 f# [8 s7 r4 A$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
2 z0 k& n; ^# W. @1 j; V$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
4 I% I/ W8 n( v% L9 B$ 85/C799 6B          RTL                     
1 V" ^/ B8 Y% ]3 o: ^" w* L8 Y$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
8 I! ?1 E6 D/ D$ 85/C79B EA          NOP                     ;
8 S4 u8 Y1 N: i* w2 i& [- I$ 85/C79C EA          NOP                     ;& Z$ d+ K' J  E. v1 {5 F
$ 85/C79D EA          NOP                     ;
) V! h% U  u" t; q' u7 U$ 85/C79E EA          NOP                     ;! ?5 {+ ]! Z8 R# @: L
$ 85/C79F EA          NOP                     ;
# [7 t4 E2 P) U( z! Z$ w/ g& a+ w$ 85/C7A0 6B          RTL                     ;
5 S$ }, R; {, [
1 s$ R) y7 o4 H8 S- F[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

发表于 2009-3-10 12:41:38 | 显示全部楼层
学习了,但是有些专业术语还是不太明白
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2026-2-24 15:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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