签到天数: 2172 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html' T6 v4 A7 q/ R7 C
; _; Z' f. M, i/ p2 y火炎纹章776修改笔记
, G8 Q; |3 {/ N+ }: W$ p) P2006.1.25
0 b# P: h5 S. B; i作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
# O7 n* I4 z" E- \3 S/ [7 r
( t+ @0 k) R* k5 u# K$ D5 x4 [; J
& r7 \1 `% h2 V3 z, G& j8 `修改工具:Geiger’s Snes9x Debugger Mark 9
5 a% E4 V# ?6 c. d7 r/ W1 C0 o' Q8 @- V3 `1 }8 C
战后升级
# K! Z- h. L3 W( ^3 P$ 83/EFDC 90 05 BCC $ 05->EA NOP# n, M6 P3 q' w# n0 R
EA NOP1 }2 J3 {& v/ @% E
' g% _2 z( _& s8 Q/ Q战后能力+1& K$ o$ {3 _( a+ O
$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 00018 m. p! b! k, X( e, `: O9 |' p
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b/ v4 @1 l# r6 {4 `3 B
: x ^/ p/ W1 b: T* U/ ?. f
武器熟练直接到A% b# Z6 K0 D6 ~2 n
$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
: r, k: p* \- q EA NOP
) {4 R* m6 d9 `. W存放所全物品锁定4 |9 Z8 Q2 |! S
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只$ m6 v0 D R. d6 y, K7 x# L0 m. f
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,0 Y! t) p/ ?' F! g; T* b
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128. b' c8 B5 |+ c z$ `4 P
件物品,故可以突破存放所128件物品的限制,改出全物品。
! p/ ~" Z/ V* Y$ ~$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2
& s" n" w5 V5 E$ t \8 `/ E6 N, B$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0] 1 F% `7 O6 o* Q6 M2 }4 ?! O
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB( ~& \9 X" w7 R
$ 85/C78E CA DEX # x# L2 Q9 _4 N6 a& L
$ 85/C78F CA DEX ' p, t. I& E& l& I. L+ T9 s# E
$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次
1 r9 e( P" l! t+ H) [, b4 ^, u# ]6 ^9 s$ 85/C792 6B RTL ;返回时X=$ FFFE, P0 {5 [( _9 ~% ?) l" v
$ 85/C793 A2 FE 00 LDX #$ 00FE * C# O0 o3 S! d, [
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
5 l$ l: \1 [6 q$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0$ v: @9 O! v" X( p. d3 X
$ 85/C79C CA DEX
/ i" c0 ^4 d/ F$ 85/C79D CA DEX
. s% n7 j8 y6 ?1 `5 |6 h0 `$ 85/C79E 10 F6 BPL $ F6 [$ C796] 4 `, x+ [5 \* d& k, ]6 n
$ 85/C7A0 6B RTL
4 F' a+ W7 k8 s6 g0 U1 ?( X实现全物品的代码如下:
) `" B1 H+ w' I( V) _4 JStart@ $ 85/C7852 A8 ^- v. ~2 n1 c# I% K- T) @! n" T
LDX #$ 014C A2 4C 01;X=($ A7-1)*2" `" F! C9 d I! ^/ O/ U/ t
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量+ a9 q# l0 r. }/ A; t, E* H
@2 STA $ 6FCB,x 9D CB 6F- \/ g' x5 |8 b2 F* m+ P
DEC A 3A% z$ i: h( l8 f3 q/ P
DEX CA
- l! }) a% t* d3 x) ]$ m+ Q8 dDEX CA
t4 m) V b P# @+ N8 EBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
2 O) o3 K+ l, D5 s% N+ K WLDX #$ FFFE A2 FE FF;-|' y( l$ ~+ w# k* ~
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
/ q/ c, W. B. y, f7 i@1 BPL @2 10 F2;循环$ A7次) V( R* I( x8 d
RTL 6B" ^8 R+ w7 A0 X7 l
最后改完后反汇编出来的结果:" S: j& g3 U" e% U9 B5 L
$ 85/C785 A2 4C 01 LDX #$ 014C
. m2 X4 c9 |0 W5 B. c$ 85/C788 A9 A7 3C LDA #$ 3CA7
; l2 Q- l4 X& L* \* w& B* y5 ^$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9] 3 f9 x7 x; D( ~6 B; f2 D* V
$ 85/C78E 3A DEC A 9 a! g3 l/ q3 W1 C6 N2 a6 g$ f
$ 85/C78F CA DEX + X5 G. r4 v/ C. t! i6 P8 y. X
$ 85/C790 CA DEX
! o! d1 L% c" |( e$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间
) d, x0 Y L8 E+ Y" Z3 k+ F7 a$ 85/C793 A2 FE FF LDX #$ FFFE ;
, {9 }) Q9 K7 W$ 85/C796 6B RTL ;注意一下,看看原来这里是什么% T6 n7 T: Q }) Y2 S2 {( I
$ 85/C797 10 F2 BPL $ F2 [$ C78B]
0 }7 {. Q) I" j. o) k' K$ 85/C799 6B RTL
% @- p) ]" |" A* P5 `- f$ 85/C79A EA NOP ;避免出错,把多余的都NOP了4 u! ?- t$ P8 v
$ 85/C79B EA NOP ;
- _4 R- }( U& ~. I- y- h$ 85/C79C EA NOP ;/ ?8 m/ R& O( {/ {/ \! o: S
$ 85/C79D EA NOP ;
" K o6 [7 o) ]$ 85/C79E EA NOP ;
# {5 c9 ~- o0 Y. _$ 85/C79F EA NOP ;* A, ^) z) v6 Q# s1 L
$ 85/C7A0 6B RTL ;1 Q( w# h4 r+ Y! Z, m. O
* a6 M! [1 \) s. C6 z/ z, c @[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|