签到天数: 2070 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html. |+ a- Z- T% k) l" u+ d
$ P2 e( U; w7 H5 C3 J( \1 ]4 ?; e
火炎纹章776修改笔记" K+ d: ]! M- @5 ~+ i
2006.1.25
; n8 j% {9 Z" I6 v" X5 C Z作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
& r- u2 i+ Y2 ^3 s0 F7 W, c( N* ^' j5 I
; M5 f# A! O) C c% k7 x* ]修改工具:Geiger’s Snes9x Debugger Mark 9
" f% n, ?/ }3 {! u0 |0 W. p. W0 N1 Q8 F$ c
战后升级
* L/ @/ Q6 e# T- Z$ 83/EFDC 90 05 BCC $ 05->EA NOP# N# N* c; Z5 M# @' F+ e, N
EA NOP
/ y# g9 b/ L; f: ]3 a) Y1 D
- X9 P N1 g# Q/ d4 ~2 L+ a战后能力+1) o( [. E- |, o' F) D! J/ A- K
$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001- z7 \; M1 i* O) k; B) x1 G
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b& x- t7 _5 M. Q2 b; E3 T
7 W1 L% k2 Y6 u5 W5 N& h武器熟练直接到A& V( G4 I0 G) w
$ 83/E4E9 90 03 BCC $ 03 ->EA NOP2 P& F# u$ i( L- f' N) ^' u
EA NOP0 r! X7 v! R# }
存放所全物品锁定! B* K* S2 ~3 R: I
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
% x2 \, G! p2 g2 m& Q5 w+ i: ?7 Y要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
' i. L& ?4 j- O9 o/ w而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128# w5 V1 D: I: }. j _/ |
件物品,故可以突破存放所128件物品的限制,改出全物品。
4 L/ \# T \6 @$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2
# ^: f/ @. ?4 S3 O, |8 J$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0] % s" f* {& q: m% E, {
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB6 {4 `! T$ Q6 X, T) E* N' a
$ 85/C78E CA DEX ) x) z; \% `; v9 [$ p- l/ x, `
$ 85/C78F CA DEX 8 E# U( v2 Y3 O/ ^- w
$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次4 s" P* `: N/ m3 x! i
$ 85/C792 6B RTL ;返回时X=$ FFFE- P; L5 E8 U6 X! g
$ 85/C793 A2 FE 00 LDX #$ 00FE $ X4 _0 r9 K5 N
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
7 x C, ?: v* u D4 \# X* G. }: a$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0
/ |9 F8 ?; i- o. c, p$ 85/C79C CA DEX ( F1 h* V) { `) B0 R: R
$ 85/C79D CA DEX . X; {3 }6 `, K. {9 E. `5 e- k
$ 85/C79E 10 F6 BPL $ F6 [$ C796] $ n% q7 j. v) J! N: P
$ 85/C7A0 6B RTL , n' ?- F/ W) _$ V; c& u( U& U' ~
实现全物品的代码如下: O/ Z, I2 v* y/ p
Start@ $ 85/C785( Y6 |. L/ X0 Z/ M. O* `+ j7 x
LDX #$ 014C A2 4C 01;X=($ A7-1)*2+ Y& {$ n i' k
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量5 z6 B9 L* v4 {, s# Y
@2 STA $ 6FCB,x 9D CB 6F
8 Z4 a( V* x* ]2 ODEC A 3A p8 U6 M3 D& X9 F7 i5 }- ~+ }
DEX CA" J6 O. U% j8 b: \' E
DEX CA
5 Q1 P- {) r8 x+ [2 HBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
& ?5 d* R4 b" h( q7 Q- M5 I/ sLDX #$ FFFE A2 FE FF;-|. U6 s( z+ m. }0 ]9 X- P: y h
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
: q' I' N% l" {3 a+ D& m$ s/ i@1 BPL @2 10 F2;循环$ A7次2 X+ @5 J* A+ ?$ a) }
RTL 6B
* |0 \! |* z/ ]# m3 }最后改完后反汇编出来的结果:
2 R+ x3 L9 l. E/ P$ 85/C785 A2 4C 01 LDX #$ 014C 5 P1 f% C+ d$ ^. Z' v
$ 85/C788 A9 A7 3C LDA #$ 3CA7
. M& f3 w; T7 J$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9]
1 ~ L$ p Y0 _4 {1 Z$ 85/C78E 3A DEC A . C% n8 |* U( ?. u
$ 85/C78F CA DEX 0 l; a' w' j- W. n* A% j
$ 85/C790 CA DEX " x; a, L- o2 O
$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间
9 D7 @- B$ P! b5 k9 h3 L5 d$ 85/C793 A2 FE FF LDX #$ FFFE ; H- q1 G" O6 m
$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
+ T! N2 Q4 H. W2 \$ 85/C797 10 F2 BPL $ F2 [$ C78B] : w% L7 o/ s; n8 T$ ~$ P4 [
$ 85/C799 6B RTL % f2 |" I F6 v1 j6 R6 g% l- h
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了
1 j' B" G9 Y4 f' Z1 `$ 85/C79B EA NOP ;) _* \' l* R; _% f
$ 85/C79C EA NOP ;* p$ i8 \9 D2 ^* [+ s# G
$ 85/C79D EA NOP ;
9 S! a4 u- q I N5 u$ E: b5 w$ 85/C79E EA NOP ;) k: A2 f, b: s6 Y6 O1 U( M
$ 85/C79F EA NOP ;
+ G8 U+ y4 p( O9 ~6 ]$ 85/C7A0 6B RTL ;
, m. M- C9 p8 A$ i5 J
' T" t) I6 P4 H; T: _[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|