签到天数: 1803 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html9 L1 d q( v+ i4 U) a
8 ?( C+ {4 \- V火炎纹章776修改笔记
0 @3 R |6 ~# m& w2006.1.25
+ o. h. ?' j' H7 M# Z作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
; {$ _$ _0 B# l" f4 j+ w
% H s4 [# Q3 o1 v
9 Z# t: @' x* F7 L+ o修改工具:Geiger’s Snes9x Debugger Mark 9
~# Q2 l; h. ]* y" Z. b: c/ L# O4 N/ l% [2 c/ |
战后升级
3 f/ |/ H! O1 ?$ 83/EFDC 90 05 BCC $ 05->EA NOP
9 Q6 q8 _ m8 d# r- T0 H* g EA NOP
' r+ i! N8 O+ L2 a P9 @4 b2 i& q1 K2 a! k: D+ I# ?/ [6 N
战后能力+13 `- I d/ R' F# ?2 I
$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001
' r5 ^& T; ?' k) z有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b8 P: A" S) c. V' d; d# n' \; a
& `+ S7 V7 r! E6 {0 I& _; g5 g" C武器熟练直接到A0 p! U7 h# u) W: {) N+ l
$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
! K0 z# V$ Y& G) G2 t* f4 J EA NOP
; H* q: \4 o9 F' d6 Y9 g2 u存放所全物品锁定( ?+ S, S0 P1 o/ A2 B* b
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只 g/ \8 H, E& M5 h+ L. X% g" t
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
) x5 h& w9 @4 c7 u2 R; }( ?" p而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128, v$ M- V8 t% B' |
件物品,故可以突破存放所128件物品的限制,改出全物品。
+ C' e' W. D) W" Z. M9 G1 Y$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2
+ z, E8 m* [; @: [* A8 K% t) U+ ^8 g$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
: K4 C* p( N% d$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB3 [8 @4 H: L0 Z. t l2 R
$ 85/C78E CA DEX " Z. t' M1 S2 m
$ 85/C78F CA DEX
# k3 {1 W7 s$ S# j/ F1 @( S$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次
/ O ^3 H3 {8 n( W1 I$ 85/C792 6B RTL ;返回时X=$ FFFE
; U! Z5 j* @% u' c& L2 i* O$ 85/C793 A2 FE 00 LDX #$ 00FE ( q; r. G2 E; R; j5 M
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
* I: C6 v$ m9 s2 O! a$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0) u( V+ g- G1 q6 H
$ 85/C79C CA DEX , [, ?- ^; _) {) h1 A
$ 85/C79D CA DEX
8 I" t' Q2 c! I- s$ 85/C79E 10 F6 BPL $ F6 [$ C796] 0 U2 g, u7 j! I" ^$ N
$ 85/C7A0 6B RTL
. | s: |4 U, M. }; {/ L实现全物品的代码如下:6 I) o8 X' X' u" _1 I2 w
Start@ $ 85/C785+ i* ]- X* c8 H, S u
LDX #$ 014C A2 4C 01;X=($ A7-1)*2% o: U3 u4 E1 O8 n: k7 H9 a
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
4 G+ ?8 S2 ?3 h% G% F@2 STA $ 6FCB,x 9D CB 6F
6 m9 G" H8 Y$ h# I' }) b, B* O+ BDEC A 3A
* K' j6 w1 c% q% ~" |DEX CA5 h r2 r6 S8 n$ z
DEX CA
) L3 ?$ O0 }9 b$ D) kBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
6 d% t% D$ @. D3 Q, QLDX #$ FFFE A2 FE FF;-|; {4 T5 _) b+ \& p% P- X5 \
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
6 {" ]1 i# X4 z7 C) I@1 BPL @2 10 F2;循环$ A7次
. S" O8 C8 M$ P8 U# S0 J7 ^5 BRTL 6B
4 P1 X$ U- E" F" e最后改完后反汇编出来的结果:8 j3 F. R! r6 ]. }2 B; g# S; b; w
$ 85/C785 A2 4C 01 LDX #$ 014C
0 W1 ?" {# y) u) O$ 85/C788 A9 A7 3C LDA #$ 3CA7
* S5 N: a+ _8 f' i) ~$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9]
* e# R2 b% _0 |* R' M8 u$ 85/C78E 3A DEC A + t+ {/ ], q& ~' \
$ 85/C78F CA DEX
8 w! O. F7 i7 q7 R+ ?$ 85/C790 CA DEX
4 u3 s0 |. X) x/ N9 y$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间! J& X2 Z, |& _$ F
$ 85/C793 A2 FE FF LDX #$ FFFE ;: G% H4 B6 ]5 E# Q3 l B
$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
4 m0 B+ s* y* [+ ?3 b+ @$ 85/C797 10 F2 BPL $ F2 [$ C78B] 6 U2 G& o6 X% U7 e
$ 85/C799 6B RTL & y8 Z8 W1 p% ^ `/ ?8 b n
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了
* }0 h. o# V% j/ { ~6 e0 a) l; K$ 85/C79B EA NOP ;
3 J K- P$ r; J: }* m! r. C$ 85/C79C EA NOP ;
1 L F0 s& M* y9 \$ 85/C79D EA NOP ;* Q8 M( J8 e. ~3 S
$ 85/C79E EA NOP ;. R7 W3 O6 k- c# D; @2 S
$ 85/C79F EA NOP ;, O4 r; t9 G( R- x; K# }4 ]
$ 85/C7A0 6B RTL ;& x4 P% p% l" G
5 P7 ~, K1 F2 q; }. H7 b( D
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|