签到天数: 2012 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html l* v( ?3 M0 z
+ v& Y: a6 z' a" Y/ l: i9 \3 |
火炎纹章776修改笔记2 a) V9 O1 u9 H+ K O
2006.1.25
. \6 W& T3 M0 x2 R+ l% J作者:zHAOsILi[EGCG](.zZ~~) 转载请注明$ [5 ^/ ^5 |1 g. y; t
8 q# W7 x# O" H# B% z
; O% s$ P" o- N9 \0 g3 ]+ ]修改工具:Geiger’s Snes9x Debugger Mark 9* d" P5 q' }& K" b$ q
1 T5 r2 y6 S- S+ S8 O2 L/ S战后升级' }1 j# u6 M: m' H" A# k, Z: ?
$ 83/EFDC 90 05 BCC $ 05->EA NOP
/ a. @* T) s2 J$ D7 h8 t6 Y# e EA NOP
) ^, }' d' x; i/ X1 H4 Y# l, r8 V! G0 D1 {; ?
战后能力+1
9 H3 N# f, m( _5 b* i2 b2 m$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001, I# t3 s* ] `! v
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
/ Y( G ~, m" V( {% A. A5 ~ T; L7 A) q A% V0 U3 P5 v4 A& c/ t6 R5 G
武器熟练直接到A
: Z a9 J# ?& C: p! B) @6 |) d$ 83/E4E9 90 03 BCC $ 03 ->EA NOP& F7 k& H9 {# I8 m# n
EA NOP
6 J0 ^$ r+ b3 w& {存放所全物品锁定& M5 g' ^: \9 M
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只( j5 F" Y" x: S N% h
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
8 p+ }( M1 B" s1 p% {而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
: n* b. r- I) ^4 h" y& W6 M件物品,故可以突破存放所128件物品的限制,改出全物品。
r% n) ~4 J* Y8 Z* R, z* X$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2: j; ]- r. {( W% @
$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
- `1 W; ~$ a% @4 M$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB0 |4 n0 Q4 }, X& l- t
$ 85/C78E CA DEX
9 _- B! {1 ~! l" Z7 D5 {$ 85/C78F CA DEX
/ l( _% z" \3 V$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次' k, ?2 R5 A* r' y( P& Z
$ 85/C792 6B RTL ;返回时X=$ FFFE6 B' B. t- B! P. i2 a# c) I! Y+ G
$ 85/C793 A2 FE 00 LDX #$ 00FE ) o t: @3 j: D9 O! W% ~+ }' M
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB] 5 `& ^8 N2 h% @& b) A- Z6 Q. j
$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0
, r& O$ t$ v% U; @6 f+ d$ 85/C79C CA DEX
1 q# b$ \5 l% U2 Q* R$ 85/C79D CA DEX 3 y8 C4 o% h/ H) X
$ 85/C79E 10 F6 BPL $ F6 [$ C796] , R2 f8 Z8 l: Y1 B' n- C
$ 85/C7A0 6B RTL
- K% e; N/ j' _+ e& g6 w4 m实现全物品的代码如下:# \. ?# `5 y s0 Q. }
Start@ $ 85/C785- N8 {. J5 e5 a/ M" p
LDX #$ 014C A2 4C 01;X=($ A7-1)*2: M' [% y) V" d+ w, s" L
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
5 f5 Y. E. t8 }6 G@2 STA $ 6FCB,x 9D CB 6F
" n0 m" a5 C- S" d+ N; zDEC A 3A
! C* J9 I9 N q* J. u+ ]DEX CA( g( n, M# D5 P4 \4 {3 S% C
DEX CA5 J* Q( X+ E# I
BRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
; p" Y d }4 E; m; K1 LLDX #$ FFFE A2 FE FF;-|; r5 u" C, r t! E8 A* f* u
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
6 p. ]7 _0 |' b8 e; M5 k@1 BPL @2 10 F2;循环$ A7次' Y) R( }; ] ?: O# `
RTL 6B: a' o N$ u+ D2 B
最后改完后反汇编出来的结果:5 K$ Q0 I* d) Q# z) @. N4 D
$ 85/C785 A2 4C 01 LDX #$ 014C
* Y, D8 `1 G2 {! E5 T5 T% j$ 85/C788 A9 A7 3C LDA #$ 3CA7 ; M8 d m* s, |5 e
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9] 1 _- T( P) \) f& {) `
$ 85/C78E 3A DEC A / O' h: L" p/ e8 m& W' T5 }
$ 85/C78F CA DEX
8 ~; Q4 L9 H7 x, a0 ^& v" r( c$ 85/C790 CA DEX
" c5 v; z [5 |) ?1 c) T$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间
n% w7 h' d, M. J7 S6 k- m6 }$ 85/C793 A2 FE FF LDX #$ FFFE ;
- q/ n8 A* Y/ ]6 b2 _# y- W$ 85/C796 6B RTL ;注意一下,看看原来这里是什么9 P! q3 r0 d/ v7 A2 C4 h
$ 85/C797 10 F2 BPL $ F2 [$ C78B]
" D0 |2 T+ N4 A- b, N$ p$ 85/C799 6B RTL $ ~$ |$ D" R0 T7 p c1 {3 R2 b
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了; E2 I) Y$ B* z1 R
$ 85/C79B EA NOP ;
& Q' B. D( [ |/ d7 P! v$ 85/C79C EA NOP ;
' S! C3 @5 {. m' h$ 85/C79D EA NOP ;1 s& I$ x7 w ~1 k
$ 85/C79E EA NOP ;
) { E y( P/ u+ z. [( m% K$ 85/C79F EA NOP ;
- X# b* [% H4 N( p5 k9 v$ 85/C7A0 6B RTL ;" F: A, t6 f, _- H0 m4 O1 m/ j# @4 f6 W# Z
. D% V3 R& ~- |- d) a8 @7 A. X) ^
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|