签到天数: 2131 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html2 E4 s$ B4 f' ^: \2 N
+ y4 a2 D, r/ H* m( z: @( z火炎纹章776修改笔记3 j* x2 @) u6 a) w% j7 F3 H( g
2006.1.25
" {3 \6 R) Q* u! @3 M作者:zHAOsILi[EGCG](.zZ~~) 转载请注明$ |. m5 v! d s
# B3 ]. V( H9 o+ x* k0 @# j
( F' v& @5 ?4 ~4 F
修改工具:Geiger’s Snes9x Debugger Mark 9& j; ?) m4 B8 m/ |
# }* n4 x. S9 i' T" g' t S战后升级
# x$ `/ F8 y6 K7 ~5 x- }$ 83/EFDC 90 05 BCC $ 05->EA NOP/ T7 E7 R+ @2 V( y: W
EA NOP# f0 T O: G* n* @8 k
5 R& ^ }1 |5 G2 K8 {7 m# N. {
战后能力+1
, o6 A+ I, |% Z% u0 z1 W7 s0 h$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001: O" v$ n6 r# S9 ^
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b+ X7 h8 S8 j' K3 D' L1 Z
- L- J# c) n& L' R武器熟练直接到A
2 j0 h: u; y7 G1 L K9 g$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
) X. c8 T( A( l, g4 g) r H+ L EA NOP
2 s- Q4 u) t6 |/ @4 l存放所全物品锁定
- O- d3 X. m p+ x& s9 c存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
- v# U, Z9 H6 P8 l+ t/ @要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,7 o' c" _8 \; j7 g4 C6 P9 Z
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128" t8 I# ]4 Z D; r1 j/ s% e r
件物品,故可以突破存放所128件物品的限制,改出全物品。7 z3 f$ u& U) w
$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2
. o8 y( e |, i$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
4 a8 C8 _/ R& m" z$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB
% I) Y& x4 r$ o$ 85/C78E CA DEX & S8 x" T: j7 e: S
$ 85/C78F CA DEX
. d& W3 H0 |2 W8 O s; B/ L$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次
$ X3 P0 ?- O# B% @8 m$ j$ 85/C792 6B RTL ;返回时X=$ FFFE
1 ]- J: k: l- l1 C$ 85/C793 A2 FE 00 LDX #$ 00FE 1 Z q8 Q: V% @ |2 Q$ m; S
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB] / S. U* \. g2 n( r# q5 v
$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0& l! v4 Y' C, Y. K: z% o
$ 85/C79C CA DEX
$ M" I# Z/ F. [3 ] @$ 85/C79D CA DEX
) g. x6 z" i8 G& e. S J$ 85/C79E 10 F6 BPL $ F6 [$ C796]
4 n: U; I5 U/ l" @$ I; A) T% F$ 85/C7A0 6B RTL % a2 z4 O3 d! Q4 c1 d
实现全物品的代码如下:! _2 V& H8 g0 v0 V4 |/ s
Start@ $ 85/C785
* w" h8 ]/ c4 ~LDX #$ 014C A2 4C 01;X=($ A7-1)*2% y7 i ^9 c, O( T
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量# E% k* F4 }* `2 s" V" e! ]
@2 STA $ 6FCB,x 9D CB 6F
. O, z( z. S) o6 |DEC A 3A' W) r6 G- u8 u. S( {7 I2 s
DEX CA
- o7 n- c# L. S, b7 `; M" u6 KDEX CA" n. S) O# a2 h e+ Q; R7 @
BRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间; q2 u! Q' ?# H5 G+ V4 Y* K; ]
LDX #$ FFFE A2 FE FF;-|
" ]5 {$ P" \( u0 XRTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
; f; h s' v1 N& y& ]4 P& p@1 BPL @2 10 F2;循环$ A7次
( e9 B. y, |: x5 O1 [ sRTL 6B
8 Z4 W0 X& {' P3 @$ n最后改完后反汇编出来的结果:7 Z( t" L9 ~/ X! a! U( Y8 A
$ 85/C785 A2 4C 01 LDX #$ 014C
2 z R; T& O% J. u" J9 _$ 85/C788 A9 A7 3C LDA #$ 3CA7 2 c! ]) b* t' e
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9]
* U: k/ P* S H {+ Q6 K* ?! m& |% N7 Y6 p$ 85/C78E 3A DEC A ) k. @0 V' W- e! R7 P5 Y
$ 85/C78F CA DEX
! d8 R0 G4 l' k }1 _- w$ 85/C790 CA DEX
3 U) |" X7 F; g$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间
4 ^4 J% Y8 B; Z8 G! E' @( N& y$ 85/C793 A2 FE FF LDX #$ FFFE ;
1 H- H; X# L% ?! [# [' M8 C8 s# C$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
! _# m0 o* Q& B N9 L' N8 e$ s$ 85/C797 10 F2 BPL $ F2 [$ C78B]
& u* C( N7 ~2 A. I v7 B$ 85/C799 6B RTL
5 e' V7 h9 A- y; j$ 85/C79A EA NOP ;避免出错,把多余的都NOP了
: z# e! L, k4 m( I$ 85/C79B EA NOP ;
; F! v% O% ^) N0 l$ 85/C79C EA NOP ;3 K) C3 r7 O5 h" I/ \4 o
$ 85/C79D EA NOP ;
7 a9 A& {6 ]1 {$ 85/C79E EA NOP ;+ b3 \6 U6 ^5 T9 l
$ 85/C79F EA NOP ;
" W' r/ h# y' n+ L5 k$ 85/C7A0 6B RTL ;
+ W" t! m7 o$ n y/ l9 u+ W
- W" M/ ?! G2 Y( ]' u, x[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|