签到天数: 1992 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html
! g8 K' V" G; N3 L! O
3 P+ W2 j/ z( G, f火炎纹章776修改笔记
9 ~9 X0 B/ z# K2006.1.251 r+ b4 H, X$ l5 Z8 c4 D
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明3 S3 v+ u- j4 R9 |0 k
9 M4 @# B+ L3 P9 u* D% N7 l7 r
0 U/ F' c4 V9 Z7 u) r) W6 m, N修改工具:Geiger’s Snes9x Debugger Mark 9! k" \3 S8 m& ?
; {+ e6 N- D( G" q) g; q战后升级$ _, R5 e* K' K2 R: S
$ 83/EFDC 90 05 BCC $ 05->EA NOP
7 @0 H$ t8 ~# Y* M' I EA NOP
, C: e% b F3 E5 o( a" k
/ o) ^! u% M/ @4 v" u I& X战后能力+1
9 ^. I6 h6 m" U5 d0 \$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001
: r0 m" |5 K- n' w+ d' f t有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
3 L" {; J2 e2 H) X) @' r$ ]& a' A# b! V) S$ l
武器熟练直接到A
9 K9 B) I- N: r& I* r# v; k% T$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
" ~8 \, ^$ ^$ e3 t- h2 M0 T9 k' X EA NOP8 t& O6 J Z, |: I! p# m8 ^
存放所全物品锁定
* s8 ~ a" n) X: _ ]9 ^9 |存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只1 w+ _5 C6 A4 d! V) A4 ~1 p
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
& n# _6 q2 c+ p: O$ v, c而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
, W. i+ D1 V; i. e件物品,故可以突破存放所128件物品的限制,改出全物品。5 L, A2 i1 {! \/ L5 f G
$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2! ]' v. m1 |7 \7 M0 P3 A; K% o. r
$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
' f, s$ ^/ @1 f; {/ U9 ^/ ~7 t3 |* c$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB) L5 J9 R8 S# H4 n; W
$ 85/C78E CA DEX
) p1 q6 c" K$ H3 v, ~$ 85/C78F CA DEX 3 q; W1 E1 v/ N# _
$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次
2 J5 S9 _& _# C6 T$ 85/C792 6B RTL ;返回时X=$ FFFE; a: e) C6 t: u! e4 J! _
$ 85/C793 A2 FE 00 LDX #$ 00FE , Q [" S- F% A$ b
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB] ' }- ]2 m) L2 R/ T
$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0% P3 w( `+ X; ~' m2 o4 _8 \0 k
$ 85/C79C CA DEX 6 b8 J$ L- Z( N' O* u
$ 85/C79D CA DEX
5 u1 w7 Y3 v& o) z# l$ 85/C79E 10 F6 BPL $ F6 [$ C796] + ?3 L9 ?9 K: v9 f8 m8 T! E M
$ 85/C7A0 6B RTL
$ }- q o7 p1 y8 x- m* H实现全物品的代码如下:
4 q2 @+ g( O# g+ sStart@ $ 85/C7856 b2 Y9 p8 ?# g' n1 x+ h8 o; h9 o
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
2 S+ D L+ H( L8 {: b& }LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量0 X9 a2 T3 G) U
@2 STA $ 6FCB,x 9D CB 6F( h0 q$ b" w6 n7 w, K
DEC A 3A/ F# |5 v% O$ y- K" d
DEX CA
i& y S% L- ?+ W$ v2 RDEX CA
2 W9 T" I( B8 ~. }) ^BRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间. Z! A. ^) k4 }7 P" `4 r9 d* n9 Y
LDX #$ FFFE A2 FE FF;-|
0 `8 H0 i i- n" x3 X& _1 d; xRTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
+ ~. O9 F/ X( Y6 A6 Q" z) j: X@1 BPL @2 10 F2;循环$ A7次
: P4 D$ Y" d& ]* JRTL 6B
& {: c f" I" f+ ^最后改完后反汇编出来的结果:
: N5 m" \5 \, `5 B: p8 ^. q$ 85/C785 A2 4C 01 LDX #$ 014C - j7 V& n! X+ B( u
$ 85/C788 A9 A7 3C LDA #$ 3CA7
) j- S8 u7 e7 W: Q0 ?4 }- C) U; h2 J$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9] ) J. B9 m. ^2 |
$ 85/C78E 3A DEC A
$ V8 o b+ Q. y& |( t1 d8 B" p" h& n$ 85/C78F CA DEX
8 j$ }% }0 I5 O' G7 G9 H" B% G. H- o$ 85/C790 CA DEX ( L" z3 E. q6 ~6 j
$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间
) K4 V: }0 \2 X$ 85/C793 A2 FE FF LDX #$ FFFE ;& K( V" a# t: o3 g5 ?7 N
$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
# _9 v4 i5 K) j$ 85/C797 10 F2 BPL $ F2 [$ C78B] 7 s0 j6 T% u: n* F
$ 85/C799 6B RTL
2 k9 P& u0 ?& T, x4 A/ [; `- ]: W$ 85/C79A EA NOP ;避免出错,把多余的都NOP了& Y* N6 y1 d3 }& R
$ 85/C79B EA NOP ;
# e# K6 x0 b$ X: u5 R- C5 Q$ 85/C79C EA NOP ;0 R1 h$ P& G- n
$ 85/C79D EA NOP ;$ K" b' m; ]2 L# T( m
$ 85/C79E EA NOP ;4 O( q/ ]- [, m
$ 85/C79F EA NOP ;, p8 ^$ Z$ Z I6 @5 ?" G7 x
$ 85/C7A0 6B RTL ;
0 u' w5 A, A( S, V4 ~1 q/ b0 a* k, q0 p( J
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|