签到天数: 1933 天 [LV.Master]伴坛终老
|
文章来源:http://zsltools.ycool.com/post.1074234.html4 P% i; f! Y B" t9 A2 h2 w
: F- A5 v7 q/ ^" @6 _. F8 h
火炎纹章776修改笔记
; H/ ~/ ^5 E' Y8 ^: @2006.1.25. P' O$ P, {. B+ L
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
+ j _; E5 K% P
8 @4 s1 @( ?' U' h/ j
) ^ ^( I$ F( H5 ?* O修改工具:Geiger’s Snes9x Debugger Mark 9# e5 C+ Q! R, z; Y4 G, u9 b
$ P* O- Z- z* K5 s* {3 [' ]. k/ h
战后升级
J& o8 o" s7 f$ 83/EFDC 90 05 BCC $ 05->EA NOP
8 ~/ G( v: h% N EA NOP
4 X" E6 }; ?0 B. k& I W, v8 e8 s! v! t: X, L: s5 j( E% X
战后能力+1) ]6 u0 A" X1 a7 U* J* J! K; m: Q
$ 83/DFFF 20 B0 E2 JSR $ E2B0 [$ 83:E2B0]->A9 01 00 LDA #$ 0001( r. z' S' g7 h% K- ]" Q' I
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b) v! N4 j( X2 h+ h9 m7 f
: |& Q0 Q: @" ~# G$ m% ^武器熟练直接到A. s( n4 V( }5 W o! C! A, a: b
$ 83/E4E9 90 03 BCC $ 03 ->EA NOP K y' X$ X* E* T
EA NOP
" |8 M. M2 K, \0 ?2 R存放所全物品锁定2 R. e( A% i4 S a) o
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
/ R1 U2 y! @/ F: P% }要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
5 |* A. K- l; q5 |: o而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
; N$ ^7 A3 F% t4 Q1 Z6 N3 ~件物品,故可以突破存放所128件物品的限制,改出全物品。2 O# H3 Y* p4 s; G- g
$ 85/C785 A2 FE 00 LDX #$ 00FE ;X=(128-1)*2" ?( K* z! Q e. j& M+ h9 v) c* j: \
$ 85/C788 BD D0 4F LDA $ 4FD0,x[$ 7E:4FD0] 6 l0 T1 l" O0 d- G. {, o7 h8 ^
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FCB] ;从$ 4FD0存到$ 6FCB
: J' x$ D9 R( ~# s; d; u! V$ 85/C78E CA DEX
: C- L/ k" I6 }5 ?* `$ 85/C78F CA DEX . I" `6 b) ^: M ^+ Y& n
$ 85/C790 10 F6 BPL $ F6 [$ C788] ;循环128次! R2 B/ W4 S; M& [# h
$ 85/C792 6B RTL ;返回时X=$ FFFE
1 n: Q8 Q; m& |0 z8 U$ 85/C793 A2 FE 00 LDX #$ 00FE 5 R4 N3 Z6 a$ ~
$ 85/C796 BD CB 6F LDA $ 6FCB,x[$ 7E:6FCB]
& g+ J! l& G: L3 T- ]; v; }$ 85/C799 9D D0 4F STA $ 4FD0,x[$ 7E:4FD0] ;从$ 6FCB存到$ 4FD0
$ w; F9 l2 Z, g7 o$ 85/C79C CA DEX ) \' P. A- Y: l
$ 85/C79D CA DEX
! N! W$ @" c7 A- U0 B3 X$ 85/C79E 10 F6 BPL $ F6 [$ C796] " F& \5 v! J" a6 i- P
$ 85/C7A0 6B RTL
0 T, M; h9 L1 j8 O4 K j实现全物品的代码如下:
+ S2 \8 l3 h+ q! eStart@ $ 85/C785
5 c7 c. T6 C8 ULDX #$ 014C A2 4C 01;X=($ A7-1)*2 v. h4 y0 o9 s7 r0 }' m4 r8 ]3 ?
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
2 c0 E0 E* w; I' y! j- G@2 STA $ 6FCB,x 9D CB 6F
@ z' I G* K% h& h' {' GDEC A 3A; N, R7 A" K9 l( U
DEX CA
" y+ V6 f- ~& X8 {; c2 fDEX CA
U, }# R2 f8 B5 h' ~& G2 J$ sBRA @1 80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
7 Z& y6 r/ b1 R2 j: ~LDX #$ FFFE A2 FE FF;-|: v# x1 v ?1 p
RTL 6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序% q( z- Y5 S. M3 H w7 N
@1 BPL @2 10 F2;循环$ A7次1 I' e- ?3 y! r4 g4 @( n! _- f0 u* |
RTL 6B
$ E1 t& p( ]; W4 N6 Q5 p' ^最后改完后反汇编出来的结果:7 W6 f" M( v! {
$ 85/C785 A2 4C 01 LDX #$ 014C
6 g5 |/ ~/ m# h6 E+ p9 c9 t$ 85/C788 A9 A7 3C LDA #$ 3CA7 ! Q7 L C5 u: e5 n( a" X b- X
$ 85/C78B 9D CB 6F STA $ 6FCB,x[$ 7E:6FC9] 9 x. z3 W, I0 G4 @2 X
$ 85/C78E 3A DEC A
0 c6 j |+ `0 p$ 85/C78F CA DEX
1 F2 f1 U2 F6 ~3 e$ 85/C790 CA DEX
) b) x& J5 L" F- C3 c# F; U7 }$ 85/C791 80 04 BRA $ 04 [$ C797] ;利用后面的空间7 n2 @+ i4 I& z$ a; D
$ 85/C793 A2 FE FF LDX #$ FFFE ;' s2 B# g% ]6 X1 i2 e
$ 85/C796 6B RTL ;注意一下,看看原来这里是什么
$ f: t' i: i1 Q$ 85/C797 10 F2 BPL $ F2 [$ C78B]
n( G, d; r1 o/ }$ 85/C799 6B RTL / R1 R v- O/ V. w6 m, s( D3 @
$ 85/C79A EA NOP ;避免出错,把多余的都NOP了/ _2 M# b$ `& t( x* r3 I' c/ |
$ 85/C79B EA NOP ;
9 |4 o u# V* l/ U8 l$ 85/C79C EA NOP ;
% g5 S$ O8 x9 m z u$ a- g$ 85/C79D EA NOP ;7 x# {' t7 V) ^4 Z' |) P# A& `
$ 85/C79E EA NOP ;
, t, e' O* d: f0 J$ 85/C79F EA NOP ;
7 |+ t- Q& G% A: x, {. z: Z$ 85/C7A0 6B RTL ; G. Y+ _2 ^+ l9 m8 x
3 A0 q$ R+ D% {0 G/ @# R
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ] |
|