签到天数: 2153 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html6 ^/ |# m* T. W, b8 Q% i
2 `4 u6 N: I1 U3 N& p. v火炎纹章776修改笔记) T; q% q; } o6 o7 b0 S( R1 w
2006.1.253 M+ n( E; p7 [( o" V
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
$ W/ i r! w% W5 ~! ]6 ?! s) s
. b& s# P% Q3 @1 Q7 r( i* c& Z5 I! o" f* B6 p, T9 l
修改工具:Geiger’s Snes9x Debugger Mark 9
8 Q- i4 w8 J- `; V
2 S4 q/ |* k+ H9 H) p" M战后升级 Y. S5 e! X7 y! F
$ 83/EFDC 90 05 BCC $ 05->EA NOP6 i6 ]: L2 _" F& G
EA NOP
3 R' `1 s3 v0 a) {, K2 h& g* d
3 X D7 `. A: q; D# u- D战后能力+1
8 a8 H, x% A2 V$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001
4 f$ [4 E& |. s% b* _5 R8 V有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
3 U% U" f) Z- R- A" G! O4 y
! o$ {. Q0 F( R& q* X- ?- d4 U武器熟练直接到A
$ z; s" B/ V4 c4 H$ 83/E4E9 90 03 BCC $ 03 ->EA NOP' y% P3 y$ n' ^! z% K
EA NOP
% v4 @# I p5 B存放所全物品锁定
$ ~+ t' L% h, }+ _' M6 ?存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
% F! w7 v: f. v: W6 {7 c1 X1 c要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,: D# K+ }; w; F$ ?/ D u
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128' ~/ T& n& G: Q9 M" J8 ?
件物品,故可以突破存放所128件物品的限制,改出全物品。
5 j* V' ]* i9 i) ?9 D' D0 m2 s& c$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2
/ s1 J8 Z0 |# ^9 `$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
/ ]' m+ P4 {6 k/ @& b8 |0 U$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB& J" t7 H4 g) J8 @1 Z6 E# P
$ 85/C78E CA DEX
) C. H; @2 Z2 J0 A$ 85/C78F CA DEX
: M' H2 Z0 O4 k- I$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次% N7 C: a* W7 b, Q' I4 R W
$ 85/C792 6B RTL ;返回时X=$ FFFE; H! K& ~, U0 D s- r
$ 85/C793 A2 FE 00 LDX #$ 00FE 9 w' e0 }2 O2 [1 d% |
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB] ( x, r+ }' p/ t, ^. C
$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0; \, s f; Q$ L$ N; M, s
$ 85/C79C CA DEX
3 W( a; I5 I/ m4 e! v, U1 ?$ 85/C79D CA DEX
) o% [4 A+ L7 m$ X$ 85/C79E 10 F6 BPL $ F6 [$ C796] # b# u/ y' Q o8 E+ i# j
$ 85/C7A0 6B RTL * }' V9 s% G G( N! M( c/ p7 a- f
实现全物品的代码如下:0 t# t! d" c; W T* P
Start@ $ 85/C785
; r+ \6 T0 o; v! @5 X: _) _LDX #$ 014C A2 4C 01;X=($ A7-1)*2( o) D0 G* L; m/ ~# q2 K! O1 P; }
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量" l# s- C3 U, ?
@2 STA $ 6FCB,x 9D CB 6F
& R c& D: i8 O+ v3 Z# O& ]DEC A 3A
! \, i' A; w; Q0 `* xDEX CA
6 I' R- l! d6 QDEX CA
* X$ H+ M C$ FBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
# S, i# r* k2 LLDX #$ FFFE A2 FE FF;-|
, s6 Q& B) z* eRTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
+ J7 ~9 [8 ^0 q. L@1 BPL @2 10 F2;循环$ A7次' B$ I) f3 j; C z3 O
RTL 6B' o+ a1 _; K+ @- l' ]& C0 T3 B
最后改完后反汇编出来的结果:/ e9 S9 G0 n1 M `- C& I
$ 85/C785 A2 4C 01 LDX #$ 014C " y! O1 |% E: U9 p/ D; j2 m
$ 85/C788 A9 A7 3C LDA #$ 3CA7
; e- W: d) I! }9 d" o" r7 { {$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9] : d1 |* l, |9 h2 S. p3 j4 O
$ 85/C78E 3A DEC A 0 p3 p+ Q+ b; m# w h, f5 d
$ 85/C78F CA DEX 7 ]7 P( Q/ {7 h8 w( e' G( C- i
$ 85/C790 CA DEX % k4 d( i) z. |7 M {9 K
$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间
$ a2 ` c# F" J! S5 _; `& q$ 85/C793 A2 FE FF LDX #$ FFFE ;" _! h/ T* P6 I: f, D
$ 85/C796 6B RTL ;注意一下,看看原来这里是什么% D7 q' g# m; B4 v
$ 85/C797 10 F2 BPL $ F2 [$ C78B] 5 L( ~' |$ G6 _0 a; e% r* m c9 j1 e
$ 85/C799 6B RTL ! {5 A+ W7 s/ M; M4 f
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了
* s* s! |, X8 W9 Z$ 85/C79B EA NOP ;) z' X9 l1 f, F% E/ i1 c- c
$ 85/C79C EA NOP ;
8 f6 L( v0 }1 e, M" G$ 85/C79D EA NOP ;
, o! S& w6 T2 |' ^ @% r$ 85/C79E EA NOP ;
& p9 V0 _6 g9 o" I( E$ 85/C79F EA NOP ;
0 z8 C% j: q, c: f$ 85/C7A0 6B RTL ;$ L+ D+ c$ U4 n! u$ i. _ H' A$ j
) x3 ~) S6 c4 k% M
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|