签到天数: 2032 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html0 w0 w$ f, x' w" y( ]& G8 C
5 A* E; T) Z! j+ D3 g& U, k, |1 [火炎纹章776修改笔记
+ z, b' K4 M6 z6 M* P {3 E2006.1.25- [+ Y% {( G9 T+ {0 w6 d
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明+ G1 t. C1 A" `0 ]4 R& ]* E
& n* Z8 A7 F- B! _
M# I( v) S3 y5 V3 x# K
修改工具:Geiger’s Snes9x Debugger Mark 9- ~: w# ^4 V; I% e4 F, F
9 O: \ R0 p5 k% c, m
战后升级
. ]; Z7 g& ]( v, s, _* V+ ?$ 83/EFDC 90 05 BCC $ 05->EA NOP$ ?1 x1 d2 g% g+ d/ s
EA NOP O/ A! w8 [0 Z* F9 r
5 o' H# v ] _# C. V' D
战后能力+18 e; Q6 @) m4 I9 k9 P2 V+ Q
$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 00017 {! r" f8 b2 A! {
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
2 W7 P8 A' j& O/ @+ R+ Z5 K7 b9 I
6 q6 o5 ?4 N/ @武器熟练直接到A
& Z! E# `$ _& M8 y$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
# J1 h) i# q" _* y, E1 x+ m EA NOP
, E0 @# c; H: F0 Q存放所全物品锁定( j4 U$ Q, P; |1 q! h+ J( u7 `
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
$ ?0 j7 h( b6 u2 r9 n- s. v要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
9 m* B6 c4 |, p而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
* z6 B' x! _+ [: R, J+ W/ {件物品,故可以突破存放所128件物品的限制,改出全物品。
x1 V) h/ ~% r/ K4 a Y$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*23 a( o, v( S1 H8 @
$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
$ h* z8 ^' K" u) a( _* m' H$ O$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB
0 p1 \& i) D8 C' K) e$ 85/C78E CA DEX ; g/ @4 q7 f9 o) Z& `
$ 85/C78F CA DEX * p4 e4 D6 i) k+ j/ }* L
$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次) P9 B: Y$ [ j" T
$ 85/C792 6B RTL ;返回时X=$ FFFE
4 q" p: a. {6 ?! x% i4 R$ 85/C793 A2 FE 00 LDX #$ 00FE 7 D3 ~" O U! A4 h* u
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
; A% B( k; z$ Q- i; m$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0
5 s6 v5 X/ }8 o+ H$ 85/C79C CA DEX
6 N4 _' t: x8 r, ?$ k$ 85/C79D CA DEX
6 r6 n( _' [4 F1 [5 z0 l6 C$ 85/C79E 10 F6 BPL $ F6 [$ C796]
& d. q3 e2 l, f) G# M& p$ 85/C7A0 6B RTL 2 t* T; N; J" |3 H4 ~3 p6 y
实现全物品的代码如下:
k7 |9 X4 i# W A- E, x! rStart@ $ 85/C7855 N( \# O/ I0 k, r
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
3 ] d8 W2 D8 b! T$ p7 @' E6 XLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量* Z1 i) J% _' _ t! ^# N. \
@2 STA $ 6FCB,x 9D CB 6F. _; r, r3 ] Z% G- l( C4 d5 Y/ c
DEC A 3A0 ~8 x: L) g5 }- T, T+ H! T, u- O9 e
DEX CA# V* U4 t" [" X) n% i/ ?6 S
DEX CA
6 z# g- O- E( ^+ L2 j6 bBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间4 q& s: Q8 j* j8 c/ o8 \
LDX #$ FFFE A2 FE FF;-|9 f- c8 `2 l# H N0 |! M3 R
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
* y0 m3 H( R1 V" E" i@1 BPL @2 10 F2;循环$ A7次& o9 E1 ^' c9 b+ a# B
RTL 6B
4 V+ t a1 Y X( a最后改完后反汇编出来的结果:$ W" c, v2 R3 v& k2 Y
$ 85/C785 A2 4C 01 LDX #$ 014C ! P7 H* M- \& }2 }" ~
$ 85/C788 A9 A7 3C LDA #$ 3CA7 2 J0 X# s% t% t' }
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9] ' H# r# H+ Q+ |/ G! K4 ?
$ 85/C78E 3A DEC A : M3 i- z: H0 d7 J7 i3 C: |. E0 O
$ 85/C78F CA DEX + j1 J2 t* t, v4 A1 R }' G
$ 85/C790 CA DEX 0 p* g/ v& o( J" |+ b3 Q3 \
$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间5 C3 ^ X7 w: p
$ 85/C793 A2 FE FF LDX #$ FFFE ;
! r; ]5 W" e' _/ G8 l3 B: b+ [+ a5 d) c$ 85/C796 6B RTL ;注意一下,看看原来这里是什么4 b" J% x$ H! q: u& |" |& U4 O
$ 85/C797 10 F2 BPL $ F2 [$ C78B] ; d9 f4 {* ?: Y# r4 W& \7 B- ~, W& K
$ 85/C799 6B RTL
. N3 R/ m2 u% C$ 85/C79A EA NOP ;避免出错,把多余的都NOP了
3 ]8 k/ P( g1 {' ?: b( z& {8 A$ 85/C79B EA NOP ;
5 _ N6 J1 ~. H- y( Z$ 85/C79C EA NOP ;
7 l0 r. ?( c1 k% c4 |$ 85/C79D EA NOP ;
, u* Y% H( N L; d# E! D$ 85/C79E EA NOP ;' |% Q$ E+ j* r/ L, f
$ 85/C79F EA NOP ;0 Y# O: t: p+ o9 b+ i+ j
$ 85/C7A0 6B RTL ;* G7 A E6 h* ?! R
z! b" C% A! o b
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|