签到天数: 2091 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html' T9 ~8 ~, F; ]& u- k6 I
+ c! I( J6 e1 p- l
火炎纹章776修改笔记
* E) R# E" j" {. i B2006.1.25
9 o9 M; B2 A: y8 N8 i8 C+ Z/ B作者:zHAOsILi[EGCG](.zZ~~) 转载请注明/ r' ~! x$ @4 Q B' p6 M8 o
% J/ t7 [8 e+ O) D
1 ]% [' s9 d0 u7 |7 D修改工具:Geiger’s Snes9x Debugger Mark 9
) `3 I1 j$ c5 b3 x: A1 l J% l: c( F8 _; K+ Z
战后升级
6 M1 ]) u; j: ~# J% P& @# y$ 83/EFDC 90 05 BCC $ 05->EA NOP
0 B$ u" K( f0 V, D6 a7 m EA NOP4 q$ U h1 u; g; d
& N4 M/ k# |/ r- `) ^# D战后能力+15 F9 K4 s1 r# K1 C& G) o5 X
$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001& d: r) x+ V- V& `* m& m5 }9 f: _
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
4 h, z: ~1 ^) R# c; p1 R0 O: P
武器熟练直接到A# b0 P$ R& ^9 _- R
$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
2 o4 ?; \0 R3 x( E& @ EA NOP
1 q- Y: e, d/ D# U9 v+ G3 z. A' {/ j5 [8 F存放所全物品锁定
4 Q/ z) ]0 I, `; y; G2 Y3 }存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
0 r# w% R8 |. T& s要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,' `9 a; D" @0 o" ?5 {6 U) l
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1288 m0 p* ~7 F/ t% T7 |
件物品,故可以突破存放所128件物品的限制,改出全物品。' i% p7 G" e7 a# w5 w9 \, t F& C
$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2 M/ Y0 w# `# e. w# P/ c! h& Y
$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0] ; m9 V" E- z% L! g
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB
$ }: q( k9 B! L3 |6 d! K; g9 |$ 85/C78E CA DEX / G# [2 j+ }2 O8 C; ]
$ 85/C78F CA DEX
- w% e* x/ V: `* r* v1 s9 y$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次# K2 w5 t, s9 Z, D0 H: a: I
$ 85/C792 6B RTL ;返回时X=$ FFFE1 x0 c5 O x) Q0 B* n6 B
$ 85/C793 A2 FE 00 LDX #$ 00FE $ q3 ^, }5 n2 t/ @3 |
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
- e L/ F0 x S$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0
- T+ L/ a6 Y5 T& ?! A: K: W8 {# e- J$ 85/C79C CA DEX ! ]. e* O* ^ [+ a8 W
$ 85/C79D CA DEX 6 `4 j6 \* g+ |$ k
$ 85/C79E 10 F6 BPL $ F6 [$ C796]
_" L5 H( G" {' J# F. `$ 85/C7A0 6B RTL
" B$ {3 }& p q2 Z' O5 Y/ A实现全物品的代码如下:- r9 d( X f2 |# r# R8 G
Start@ $ 85/C785
, w, y2 u' p9 _9 k+ {LDX #$ 014C A2 4C 01;X=($ A7-1)*2 K0 E2 y3 H( z6 n( o, D
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量" ~* d, N2 \: b: f. Y0 ~9 M
@2 STA $ 6FCB,x 9D CB 6F
; D8 W6 b5 \6 ?DEC A 3A
: A- Z: b( ]8 rDEX CA( S$ |/ A4 p) T* }! C: T. h( j
DEX CA
4 @& P E9 c" HBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
+ E* y8 O, r, E- DLDX #$ FFFE A2 FE FF;-|2 ^* _; |6 N7 }( s+ c4 a. j
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序5 h0 {5 l. d5 \$ S" _1 b
@1 BPL @2 10 F2;循环$ A7次! E: i3 s; g4 {' E$ r
RTL 6B! c8 J* L Q* A( A* ~
最后改完后反汇编出来的结果:% q2 L- C) n' T7 n9 \
$ 85/C785 A2 4C 01 LDX #$ 014C ) o6 E% J0 G/ L, I5 Q# S
$ 85/C788 A9 A7 3C LDA #$ 3CA7
: p, L, H2 L: v3 ?: A! }8 ?$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9] : P& B% C3 I6 w- j: |+ O
$ 85/C78E 3A DEC A 5 E: S2 D- l: R4 `% z- M
$ 85/C78F CA DEX 9 \. @, M ?$ Z3 c" K. L
$ 85/C790 CA DEX 6 _1 Q. \, F# j5 C, C, E
$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间* K+ S; C9 R) J4 [ h4 N) B( r
$ 85/C793 A2 FE FF LDX #$ FFFE ;- o. T5 x9 h, w8 k
$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
W1 k. U. Y5 A7 z$ 85/C797 10 F2 BPL $ F2 [$ C78B] ; D( y% J0 e1 {
$ 85/C799 6B RTL - z" {8 q$ ^& F- `' e9 B7 c6 U
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了# J+ e3 {, K+ O# e6 R' @& c! M
$ 85/C79B EA NOP ;* l% F5 f; N" f3 B9 p/ p: y: I
$ 85/C79C EA NOP ;
* w* n/ W% Z3 r8 v1 a& Q6 b$ 85/C79D EA NOP ;
+ T" ^! ^# m3 a. c$ 85/C79E EA NOP ;) I, I3 |6 v7 `$ p: D
$ 85/C79F EA NOP ;% r. x# `; S2 a) |: `4 g' d
$ 85/C7A0 6B RTL ;
5 t/ [/ f0 i3 L* }4 {, Q4 h$ V# ~0 Z5 Q$ t4 f
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|