签到天数: 1803 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html
1 P8 B6 T2 b- g9 n/ z
8 n' E# o, p( Q8 g& L! j0 Z火炎纹章776修改笔记3 h- i4 L. l0 `! a5 p
2006.1.25: U/ K+ e* N! P9 x; P
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
& T) z5 h" x, B
+ ~) j0 ~# R, R, }# Q1 E& K* X0 _, ?+ S _
修改工具:Geiger’s Snes9x Debugger Mark 9
+ u1 L. F) F: q6 \# O d1 \. r x, l: ~0 X- j# i+ t" K* S9 i
战后升级* E, r1 z+ n/ g+ n) L
$ 83/EFDC 90 05 BCC $ 05->EA NOP
. e' D' G; O! S* k EA NOP
% u( X% q7 O1 z L5 t
2 F7 ?4 W" f6 b0 [. @; s战后能力+1' a1 A' B( I6 n
$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001
" ~' `4 |- R+ |& j) @有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b% V" y, t8 q7 A* R! \2 @: e
: }& W) Q9 }# h7 }7 J1 [; L4 f
武器熟练直接到A
* Q$ E7 s" l0 {% E) T: q, g$ 83/E4E9 90 03 BCC $ 03 ->EA NOP
2 ?% j/ ~( v1 u) U7 f" Y EA NOP- [% x9 o7 ~! t& x
存放所全物品锁定$ { N o' y% d1 P) V% P
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只3 \1 J. k# l" o: n
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所, f, [+ k6 R# I% p1 r5 L
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
8 j) Q4 H1 h8 M+ M* C* m件物品,故可以突破存放所128件物品的限制,改出全物品。* a6 [' [! K$ V) G2 L. S$ F# {) u
$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2
8 b. \3 w* c2 w$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0]
' g3 e1 K' S- R" o9 y$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB
4 Q5 n! H0 k* v* i- f1 `2 N$ 85/C78E CA DEX 6 f1 ]: i# `* c Y! `7 P" G) k- V
$ 85/C78F CA DEX ; J. N' E% @# _8 c3 C0 j
$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次
+ R6 G4 M0 N* _. o1 A/ X5 M$ 85/C792 6B RTL ;返回时X=$ FFFE( n. b) g9 E* W1 ?$ q) A
$ 85/C793 A2 FE 00 LDX #$ 00FE / a x5 ~6 ?7 m1 g& f3 o
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
x/ R2 o* k' f3 W$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0
, H0 p' Y8 ^, q( F$ 85/C79C CA DEX % T, E2 |2 X, j+ {! ^
$ 85/C79D CA DEX + {6 O1 u* K6 @1 K7 A
$ 85/C79E 10 F6 BPL $ F6 [$ C796] " d( h4 \. S3 `* ]3 w
$ 85/C7A0 6B RTL
: }3 g) V: {+ a) N实现全物品的代码如下:
" U! Z4 v _9 h3 _# JStart@ $ 85/C785
. a( |4 h9 v" _" V+ M @LDX #$ 014C A2 4C 01;X=($ A7-1)*2
& S4 F8 ^# k' ULDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
) q/ I/ m1 U6 U* I@2 STA $ 6FCB,x 9D CB 6F3 v" U1 U/ c4 k8 p+ S- N8 I, q
DEC A 3A
, P& Y7 S0 s$ t# ~# p( n, cDEX CA
3 G& Q; T `- u! A# J) \0 T* JDEX CA
+ S8 _9 O- i1 Q' Y. W. x5 uBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
# G( d1 W% Z8 [" X( F5 ZLDX #$ FFFE A2 FE FF;-|6 T" B5 Q3 ^: I0 i5 v2 z
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序9 V7 ^! n3 u3 s& F+ B. A, r* e, B
@1 BPL @2 10 F2;循环$ A7次
/ p( b8 l; B3 ~% G- X" uRTL 6B
" L& |8 e$ U7 J. ~8 ~* s最后改完后反汇编出来的结果:+ a2 _1 O* f7 `" C( I
$ 85/C785 A2 4C 01 LDX #$ 014C
- F+ F& z N2 o% M4 {. c$ 85/C788 A9 A7 3C LDA #$ 3CA7
" {; E7 g! | a: ? J9 s) A$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9]
9 Q8 ^% L5 R( K" k$ 85/C78E 3A DEC A 6 n3 I, m ]2 I8 A `
$ 85/C78F CA DEX
1 T3 e S+ O! d% \( {! B# b* |9 c5 L: C6 R$ 85/C790 CA DEX
. R3 A& i4 o! o$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间8 K) P2 V1 K' z) s4 D
$ 85/C793 A2 FE FF LDX #$ FFFE ;
( B; X' u2 q! l- t0 Y( Z- e) m" F$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
! C" A9 Y1 C9 ]: m$ 85/C797 10 F2 BPL $ F2 [$ C78B] ' H/ J2 J- ~' n: P5 e8 ?# G) ^
$ 85/C799 6B RTL
6 t4 t, {% P+ H" ]6 u7 H$ 85/C79A EA NOP ;避免出错,把多余的都NOP了
, M: b2 h: a+ H: ]- ?* |: |4 A8 Y$ 85/C79B EA NOP ;
8 O4 g4 e2 \' A! m/ g5 W$ 85/C79C EA NOP ;' }) h# c3 U6 H
$ 85/C79D EA NOP ; B# b8 _5 U+ F) y/ A- D0 q/ y
$ 85/C79E EA NOP ;
( l- f. f' [' @* d ]- ~* C- n$ 85/C79F EA NOP ;: w k% T9 K8 j9 o- J' y' x
$ 85/C7A0 6B RTL ;
3 L) X2 m2 e, q6 K( V4 D
5 ]4 p7 N( n& c' h) K7 ^[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|