签到天数: 1972 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html
! W. g! t! V5 S1 z: P) C
o6 s9 W4 R* i% M* E- [+ d火炎纹章776修改笔记
; c* L8 @) ^. H6 a$ k- v) i2006.1.252 _) q. q2 X( x/ ~0 v6 j5 k
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
_6 h2 b* Y# t; ?" V- f, i- z# P& C! n; i7 l! i; r+ Z X( |+ f
, S; O8 E+ T- x5 I" G修改工具:Geiger’s Snes9x Debugger Mark 9
; ]% i5 a: j/ S T' B8 h* L+ t5 j) T3 h4 W) B0 s& l5 t
战后升级
3 M! I2 \! F0 S) w( A$ 83/EFDC 90 05 BCC $ 05->EA NOP# P& h4 Z1 H$ U# u9 R% j
EA NOP, e+ a; l" G1 x: Z: W4 q) k6 D
1 N* F: x5 e% q; Q
战后能力+1
5 S' C, o7 `8 _1 S/ [) S# z$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 00019 l# s7 V- f6 c5 x
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
0 H: X9 B% e* N b. h+ i" L9 Z4 F, P$ y9 G4 V
武器熟练直接到A' [+ M2 }+ t: H% ] q
$ 83/E4E9 90 03 BCC $ 03 ->EA NOP& I* q- u- W5 c8 j$ t: ^( D" k. b
EA NOP4 |# \, E, w- m1 ]# W0 j
存放所全物品锁定
( j1 X; L7 D# S9 m8 e& P, g2 C存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
5 ]3 Q' i! A6 y# i要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
5 n; l$ L4 y% ~; {1 V# a9 m而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
; B# O8 w/ t9 G! W件物品,故可以突破存放所128件物品的限制,改出全物品。' g" i k/ O; ^. A8 B( P
$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2
' V5 }% I& P5 n$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0] 2 c9 j- r1 ~1 t1 T' f% u# u
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB
, |9 S1 j- `# y% S$ 85/C78E CA DEX
$ g' x) X- k* n) ~' A, Z% p$ { O$ 85/C78F CA DEX
5 Y8 `% z% Y5 e# g$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次
# c) |& k3 p, s1 v. A. R. B$ 85/C792 6B RTL ;返回时X=$ FFFE3 ?8 g* e. V0 Z7 a$ U) w
$ 85/C793 A2 FE 00 LDX #$ 00FE 5 C6 c& s! G7 B
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
) u) O* ^" J8 ^$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0
/ h% G* |" W3 a% T, {( N$ 85/C79C CA DEX 2 x: F# N& W. L8 \" ~) _
$ 85/C79D CA DEX 6 C. b0 ~8 n7 F4 m m; K! o
$ 85/C79E 10 F6 BPL $ F6 [$ C796]
& C. p+ U' s0 q' L: |$ 85/C7A0 6B RTL " H; l7 T9 V- s2 j% z$ c" m W
实现全物品的代码如下:- C# x( k: g" U0 |2 Y4 b; ~8 u5 m
Start@ $ 85/C785% V: B5 M3 }3 c |* L
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
6 B0 x6 T M/ s CLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量: x# Z0 h8 g7 G: M
@2 STA $ 6FCB,x 9D CB 6F
1 d* Z' M. ?9 D3 F3 hDEC A 3A0 y9 U; E" ~, Y v2 i
DEX CA
. {0 T) v9 q+ S3 E. _DEX CA
0 \+ a3 r% V" k% s& N. D4 r# E& dBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间8 i2 G/ H/ ]' F( m+ b0 A% [% `
LDX #$ FFFE A2 FE FF;-|# v T& c7 V$ q/ U5 q
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序( B% K1 R$ x, T) z" O
@1 BPL @2 10 F2;循环$ A7次! e* V8 L9 B/ g( F& p
RTL 6B
* d% G/ x5 R- |: g |最后改完后反汇编出来的结果:- q: v# V( w5 w: P6 G
$ 85/C785 A2 4C 01 LDX #$ 014C - ]3 f3 q7 J: M( H
$ 85/C788 A9 A7 3C LDA #$ 3CA7 # S; Z ~: W% @' w
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9] * J) Y$ U9 x- b1 C7 d
$ 85/C78E 3A DEC A : _* T2 r; O0 h$ E
$ 85/C78F CA DEX
7 C- u% |' o, ?$ 85/C790 CA DEX " Y4 I5 [. b% B; ~
$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间
# f% s( y0 t* ]: ?9 i6 m$ 85/C793 A2 FE FF LDX #$ FFFE ;* b# u# [$ O$ ~( X1 o& g2 d, [
$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
$ _; ^/ }6 O% ]3 H1 D) `$ 85/C797 10 F2 BPL $ F2 [$ C78B]
! `/ [7 E) p# F$ 85/C799 6B RTL : K- U1 Y2 K Y9 _5 J* \
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了( N. H9 S- s" E7 N! ^! P& E$ q' `1 B
$ 85/C79B EA NOP ;
- O4 w! m7 Z" D9 m$ 85/C79C EA NOP ;
( {# }! _8 p/ r5 A$ a, c5 G$ 85/C79D EA NOP ;
$ I* a2 @8 i) t1 Z' x$ 85/C79E EA NOP ;
) I9 j/ S, [) L7 ^- z$ 85/C79F EA NOP ;
+ m7 o+ Z; T- e( o1 F$ 85/C7A0 6B RTL ;
* ~% \) t: o8 ]* |6 O
* D; P* t# e: d! j; }[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|