签到天数: 1897 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html
8 [; [0 K0 O2 Z: N* H
5 {) Q; p; K3 n X' T( H火炎纹章776修改笔记
+ H) Q* _" m: ?6 N% U; a2006.1.25
7 z; @( ]# h* j( ~" n作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
+ G/ [/ `: s9 m9 a' L' ^& j+ w9 Q2 c5 V+ @
! N0 ?+ t( }, Y/ Y; t
. q6 R2 |9 h; Q: P3 b8 U* A修改工具:Geiger’s Snes9x Debugger Mark 9& j! x' m# J1 L0 p) X
9 T, ^; k; t/ l, t* x6 _战后升级
/ q% V5 Y; y6 B. u; t$ 83/EFDC 90 05 BCC $ 05->EA NOP
) f5 Z1 m3 `8 ^ \* W EA NOP
! o0 C3 f5 K" g6 Z8 o) f5 \% g ]8 T8 \! ]3 e4 H* p
战后能力+1
, N0 ~7 @: [" s% e2 g9 ]0 v! k$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001& H; t4 m# f# [8 w
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b7 c8 G: n+ w: H- M7 u/ O
* b- A; V9 d- ~. {& G' m1 j0 l8 r武器熟练直接到A
( ?1 ~0 a( e- b9 o9 K$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
+ F/ F$ I7 T2 J EA NOP
# b3 V* K% W; e7 n存放所全物品锁定
$ O+ @2 x, H9 T% A% j( _$ b+ s8 _# A存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
9 t! F' h* B+ \ d9 v5 A0 |7 s0 R9 l! ~要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,8 w" p4 p( a2 f7 d
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128( C0 o9 S+ F0 U1 c
件物品,故可以突破存放所128件物品的限制,改出全物品。0 a, F$ \" h6 T: X
$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2
+ L, `8 Z, G5 ?( U$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
+ q5 o0 ]+ z4 Z$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB
; x; z+ G/ b$ O1 y" D: s; B$ 85/C78E CA DEX
# R2 _( U! z5 d$ ]* ^" D$ 85/C78F CA DEX
1 e4 J+ v! W3 E, X* O; Q/ @$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次
1 I% ^/ j1 G4 A$ 85/C792 6B RTL ;返回时X=$ FFFE
% O$ q5 E' [* N8 k* y9 \) h$ 85/C793 A2 FE 00 LDX #$ 00FE
$ j a. Z) l3 x5 [$ l$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
2 H- E% i) B) E# I. w, \- V' q$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0& `2 V" ]' y& {- O7 U9 G/ |4 k3 b8 L
$ 85/C79C CA DEX - a+ E O2 \& R- z- i7 g% w
$ 85/C79D CA DEX 0 {& F3 @* p# _3 A
$ 85/C79E 10 F6 BPL $ F6 [$ C796] , v8 b q0 u/ O/ s. u# s- @
$ 85/C7A0 6B RTL
/ ]2 `7 l; p# t; r. f: l/ d实现全物品的代码如下:# f7 [- T6 P+ h
Start@ $ 85/C785
' L2 s/ B6 v ], c7 q# p) zLDX #$ 014C A2 4C 01;X=($ A7-1)*2
$ p- B; p2 d' w" N5 A0 fLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
" N5 W: N/ E! H( A- w@2 STA $ 6FCB,x 9D CB 6F
; D! Q9 ^4 y5 b' Y- F' d5 wDEC A 3A E/ Q+ x; m1 _& D2 s F
DEX CA
! W* r! V! @; vDEX CA
+ Z' ~7 ~9 f, I0 G2 uBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间* Q& x+ T4 J& Q. B
LDX #$ FFFE A2 FE FF;-|
5 I' t$ e. V& I# G5 ^/ J MRTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
3 ?/ y9 y. m- A% V/ v@1 BPL @2 10 F2;循环$ A7次# M9 f2 z. ~4 ]5 K$ b& L0 s
RTL 6B
: n- ^, U$ X. O. T( [最后改完后反汇编出来的结果: [5 F) N( M% @4 g9 w
$ 85/C785 A2 4C 01 LDX #$ 014C $ \) d& _1 [+ I7 f% j8 H/ e7 |9 ^
$ 85/C788 A9 A7 3C LDA #$ 3CA7
' i; w0 S& y: x1 l' A$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9] 9 i* P1 A1 @* K# J2 p
$ 85/C78E 3A DEC A
7 @* H4 V' Y$ \ W! z$ 85/C78F CA DEX 2 x9 b J( f+ Z/ x' [8 D+ v
$ 85/C790 CA DEX * y" W5 L( }; n/ @
$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间. l3 M% Q' m5 u" w5 u- ~% v! i1 I
$ 85/C793 A2 FE FF LDX #$ FFFE ;
2 u$ l& s( G. ^$ 85/C796 6B RTL ;注意一下,看看原来这里是什么8 e( T0 g, G! C: R. p, Z: h
$ 85/C797 10 F2 BPL $ F2 [$ C78B] 5 \1 ^% S* z s' W" @
$ 85/C799 6B RTL
" [2 ^6 z$ K- V: {* N; H5 F$ 85/C79A EA NOP ;避免出错,把多余的都NOP了
4 L7 `% C6 s, U5 N7 U$ 85/C79B EA NOP ;2 F0 d5 w- v8 W+ d. |* q+ k
$ 85/C79C EA NOP ;. x$ W; M3 I% o/ P) f
$ 85/C79D EA NOP ;
& [- P+ G; l7 K* j$ z' g$ 85/C79E EA NOP ;7 u( R" g6 O! u N, F
$ 85/C79F EA NOP ;0 R* V* A4 a; ^2 U! N8 x
$ 85/C7A0 6B RTL ;
% |( D! B( ?. Z( T! }% n* [0 L
' h4 E4 |" T4 W+ ?[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|