签到天数: 1934 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html
) \! O) N' P# u8 [3 g5 s) h0 T( k! Y( i) S( Z
火炎纹章776修改笔记
- S/ ]; ~: N% e5 d1 r( c4 o2006.1.25
/ V% R. s0 T6 i! s4 }) ^作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
- @* f; D: c! m, h2 b1 h. N" x/ B/ u5 R
4 y( v( W; [" w修改工具:Geiger’s Snes9x Debugger Mark 9
. d! l1 {; s6 }9 }# k5 z0 T1 f$ U9 X5 \
战后升级
3 l0 |4 z+ g3 I* X! v& u, x |$ 83/EFDC 90 05 BCC $ 05->EA NOP
$ m% S4 z, m+ x& l6 |9 J EA NOP
( F8 G+ X: B8 l! K( u3 E2 U1 n9 z0 {: Z0 {4 F
战后能力+1
% a8 p: |. p* G" s, b" s5 M: n$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001
" B! k# s2 g/ B: {有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
0 }# Z* U+ w/ B) G) Q8 g, g: z; j( |- ]
武器熟练直接到A# R. x, o( a& @& ?/ ]
$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
" E" e8 y) i" ?8 O" W; L EA NOP: X7 o6 ^3 q4 Y8 [
存放所全物品锁定
+ ?4 W7 O4 G. G: `1 `1 n存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
$ i0 `1 H0 A0 I9 {% a' R' ?) @要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,& T- E6 n3 l+ A) ~. E
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
/ r6 Z* L; P; @' y5 x j, V件物品,故可以突破存放所128件物品的限制,改出全物品。
) e, J+ F; N( `3 c$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2
5 m2 t/ D# y6 z/ [6 }' O- t# C' v$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
: z- y2 U v; G" X$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB
& u, b! @; a" F! r# w) T2 m( `$ 85/C78E CA DEX
- K) W7 D l' A$ 85/C78F CA DEX % V. Y; L1 ~9 d, a/ j g
$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次0 B+ p9 L1 M: n% E' u6 n: W& b
$ 85/C792 6B RTL ;返回时X=$ FFFE
+ g" ?" _& C5 E$ 85/C793 A2 FE 00 LDX #$ 00FE 9 D( B, B' g- ?: V
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
( `& E1 I0 c- m1 Q. A$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0
4 {$ L: r. ^& D, e3 u, Q5 L$ 85/C79C CA DEX ; r, P6 k; Q& N# C! a
$ 85/C79D CA DEX
. A* q& v4 J- X9 e+ x$ 85/C79E 10 F6 BPL $ F6 [$ C796]
& N4 k" _% @2 @3 D) g$ 85/C7A0 6B RTL 1 u/ u1 J0 j5 `" S+ m( f7 q, C
实现全物品的代码如下:
) d- o2 t2 W9 ], ], K; E$ s7 H# H4 }Start@ $ 85/C785$ w4 z B! q+ c7 o3 y1 `
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
0 w d0 `# I% A1 w8 LLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
& s0 W- e$ j3 A; A@2 STA $ 6FCB,x 9D CB 6F
8 t7 V. n8 n1 h0 b9 S) MDEC A 3A
# D" e% m8 g( G- Z: [: i" b- f' hDEX CA
, }4 v8 l! a- c8 ODEX CA, T( ?% O4 h' F' M( k+ W0 S
BRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
# s6 y' k% `) J4 MLDX #$ FFFE A2 FE FF;-|
) p; N- h4 x( h4 Y! LRTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
. Y) W' Q3 P5 u& f A) T4 q@1 BPL @2 10 F2;循环$ A7次4 ?7 E5 D7 F6 M/ o) @* \2 L
RTL 6B
) B$ T$ i& P0 h5 T5 r- k" y$ T8 d最后改完后反汇编出来的结果:0 W5 O) t+ ]6 P* g1 p( m
$ 85/C785 A2 4C 01 LDX #$ 014C
9 r! ~/ i, L% k& }4 F$ 85/C788 A9 A7 3C LDA #$ 3CA7
9 _( B$ S% ^7 U/ v6 o4 i! B$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9]
. @5 H4 K: d8 M' w, d0 K$ 85/C78E 3A DEC A
! Z! s% J! U$ q$ d- {8 i1 {7 r9 q$ 85/C78F CA DEX
+ ?9 y9 N! G9 @6 Q4 n6 A$ 85/C790 CA DEX
6 y" l! x5 a1 x) x. R$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间. h8 Q: W9 { \. I7 u2 `6 |8 O' z# ~
$ 85/C793 A2 FE FF LDX #$ FFFE ;3 F' d8 X: J* S3 R9 X
$ 85/C796 6B RTL ;注意一下,看看原来这里是什么. u+ v( C3 r: V( c
$ 85/C797 10 F2 BPL $ F2 [$ C78B] # I' _% p1 Z% K, l& d0 s# l# {7 r
$ 85/C799 6B RTL . ]& _; L% n7 v( u5 b S; K: F
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了' Y4 @; u) g! X( k
$ 85/C79B EA NOP ;) m" u/ h ~( [9 r4 k2 o! R
$ 85/C79C EA NOP ;
7 s0 D* W8 C7 B) \$ 85/C79D EA NOP ;5 e3 N( Y2 j- `6 ~0 O
$ 85/C79E EA NOP ;+ ~4 {1 r- D4 X# h
$ 85/C79F EA NOP ;; f, B' g# ?8 t6 S4 `$ ]$ L9 P
$ 85/C7A0 6B RTL ;
9 x' |2 v& V2 y+ `5 s7 D0 H7 J) U$ ^0 `& S$ a0 [, n+ e; Y
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|