签到天数: 2172 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html
p9 z' n0 `3 B1 {/ S
4 @9 d$ n5 s7 U% J3 `+ q火炎纹章776修改笔记, ?5 K! y% @7 ]4 N3 p
2006.1.25
8 c( A( I4 I/ O7 `7 {' j9 ?: f1 k作者:zHAOsILi[EGCG](.zZ~~) 转载请注明, O4 M- m- ]2 P6 X' R6 O
% ], d6 x) ~* z5 _9 Y3 ]: p: t# ?
修改工具:Geiger’s Snes9x Debugger Mark 9
1 C& s+ g# b+ a! \. i& G0 N) C. S, L8 s
战后升级+ } T4 t4 I! E( t
$ 83/EFDC 90 05 BCC $ 05->EA NOP3 E% l. w2 @9 H, ]
EA NOP/ V) [( P/ u1 h
! ?: M+ O+ g1 \
战后能力+1
$ E) z; k6 W( k! n$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001+ X+ ~& D% S' V
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b6 Y( r" n6 h2 F6 x9 M$ `
. d' I+ O7 D" }; y- u+ J
武器熟练直接到A( z- ]$ g2 M' |: `
$ 83/E4E9 90 03 BCC $ 03 ->EA NOP. i- J1 e7 ~& D! }* m! _* Q
EA NOP. g0 k2 R( r1 k9 Z9 }% R/ d2 q3 D
存放所全物品锁定
" @3 B# M. @( K. f4 r: J: l5 ~8 A存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只" o5 o* n: K1 h& l
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
1 X" r% t- A5 |8 i9 x$ m5 U3 u而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
) D" V& z9 n) Y p" g# B1 ~件物品,故可以突破存放所128件物品的限制,改出全物品。
$ W3 M3 P' }+ y" @- f* _6 T9 i- X$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2) y9 i' A6 s0 F; k8 V
$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0] 2 w2 R) G+ ~( ?4 M% z
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB- x! t6 z7 h( T$ w8 a
$ 85/C78E CA DEX
0 H: h$ v. G" a+ ?$ 85/C78F CA DEX
) H( G1 V7 o! n; @$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次
5 f, e" N5 i$ y9 E; {7 k, d5 X% L$ 85/C792 6B RTL ;返回时X=$ FFFE
( s- U% V6 m2 t$ a5 x$ 85/C793 A2 FE 00 LDX #$ 00FE 7 P* I7 n: ~. O
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB] % Q: f! j. A9 v0 b4 W$ G
$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0* \6 F' q: H( u
$ 85/C79C CA DEX
( v5 L, W& f( X& F; c" K+ H3 T$ 85/C79D CA DEX
# q2 _: C0 |1 S' a" b8 X$ 85/C79E 10 F6 BPL $ F6 [$ C796] ' S9 |8 G2 U6 J! n
$ 85/C7A0 6B RTL ; ~3 X* h; D5 ?/ J2 C
实现全物品的代码如下:4 ~2 N0 m, K5 A/ |( t$ |
Start@ $ 85/C785
' E+ i! o# q. b& O$ B; WLDX #$ 014C A2 4C 01;X=($ A7-1)*2
/ L8 ^, v3 G, O% C5 aLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量) a) ?. f2 P8 l- Z
@2 STA $ 6FCB,x 9D CB 6F
/ X( Z( `6 Y' wDEC A 3A1 [6 N8 a# S8 f/ E" ^: d, Y
DEX CA1 C3 t& A7 ^' T7 s4 T8 ~
DEX CA7 X- ?$ }8 t$ W5 V1 L* b5 c
BRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
2 A3 Z: @3 N$ o$ B1 i$ `( gLDX #$ FFFE A2 FE FF;-|
! m6 u8 ?- a1 [0 kRTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
$ S8 O, l! M; ~* W, [@1 BPL @2 10 F2;循环$ A7次
- ~! U P7 A# g1 d, q7 n& J5 V SRTL 6B! f6 a6 ~; G! A" r8 ~0 W, X
最后改完后反汇编出来的结果:
8 X: ~2 P6 \4 \( K3 {1 z$ 85/C785 A2 4C 01 LDX #$ 014C
7 P7 Q( |- E7 A# H( a) Q$ 85/C788 A9 A7 3C LDA #$ 3CA7
3 [5 K7 _- B1 m" W6 K [$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9]
& @% l- y* q+ b$ 85/C78E 3A DEC A
1 u1 z [4 N# ~. \5 O$ 85/C78F CA DEX
* r* F0 W: o$ p4 o$ g* y7 }$ 85/C790 CA DEX
& E( c% v4 P4 [$ f1 Z$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间
5 A$ r1 i r) p$ 85/C793 A2 FE FF LDX #$ FFFE ;: y5 g+ l! r* X7 h! q* L. }' z
$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
8 L+ }4 }4 \+ g$ s" X$ 85/C797 10 F2 BPL $ F2 [$ C78B] * u0 v" t8 t9 G2 y% R. K# M
$ 85/C799 6B RTL 2 o$ N! d$ j4 i, h" F2 d& s
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了
g+ e( ?% {! w/ G A" f; B. }; P$ 85/C79B EA NOP ; V# [5 i9 [. b" ?
$ 85/C79C EA NOP ;
* z/ t9 d4 ~2 e2 w% g! _$ 85/C79D EA NOP ;: J: @' R4 O6 ~6 G! x- P
$ 85/C79E EA NOP ;9 h4 V. H1 ?8 X5 G5 B7 a5 t/ R
$ 85/C79F EA NOP ;
1 {. f( N* E- v) F! n& n$ 85/C7A0 6B RTL ;
, ^1 l, j2 a) ?
3 G- k7 Y- z& r% D- S7 ~[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|