签到天数: 1894 天 [LV.Master]伴坛终老
|
文章来源: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 编辑 ] |
|