EMU618社区

 找回密码
 立即注册
搜索
查看: 2385|回复: 1

[转载HACK教程] 火炎纹章776修改笔记(作者:zHAOsILi[EGCG](.zZ~~) )

 关闭 [复制链接]

签到天数: 2072 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html. Y: C, W/ T! X+ K9 {" S* F% ?

( s6 V; g- k7 I- {% g. N火炎纹章776修改笔记) F3 u, c* a* Q
2006.1.25% `6 e/ _! g8 S. @( }( w
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
- R) d1 K6 x1 h, q9 t3 Z9 V. X- ~7 Q
% T$ P& e1 D4 l
/ j- z# m  |9 A修改工具:Geiger’s Snes9x Debugger Mark 9/ e' w! M( V0 Z& Q

# \9 K* z6 V6 r1 G3 i战后升级
( {  Y- c6 ~4 ~2 t; }+ n$ 83/EFDC 90 05       BCC $ 05->EA NOP. j9 ~  n( B( ]$ H. e  l) K
                              EA NOP
8 X) H; l" o9 d+ |# V3 j! L, b* n% N' w$ ]/ h0 T4 P
战后能力+1' t! ?; f9 ^6 f/ n6 b
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
% ]/ y# a9 _* J: b有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
9 ^' u$ R# M/ m  P0 Z2 |8 I3 S) E) o' i, d7 f, G6 l2 X; O$ R
武器熟练直接到A  @% Y" \/ O! z1 C
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
8 R+ |0 P! I2 ]' y: n" E. y                               EA NOP3 C: @# j4 q+ g$ a" S; Z4 D
存放所全物品锁定
! \0 u4 H/ X, O; n存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
  X' P( I( s) u. Z: U要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,# l" S# j; h) g! `  H+ Q- J, r# V
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1286 L. N1 P: l) K) J) M( l: w& P: k
件物品,故可以突破存放所128件物品的限制,改出全物品。$ V; m  Q* C7 ~3 C
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
% ]  A6 ~# c5 E7 N0 L$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
% ]2 ~7 s5 H1 q* `# d2 H2 B3 q$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
9 q' Q* o. i: a$ 85/C78E CA          DEX                     : L1 _  R1 o; c" l
$ 85/C78F CA          DEX                     
1 W! I1 i/ v6 u8 W0 }$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
% J( R9 i$ Y7 ^! `3 K0 P: l$ 85/C792 6B          RTL                     ;返回时X=$ FFFE4 _' {7 [  L- g
$ 85/C793 A2 FE 00    LDX #$ 00FE              
+ q: R* _  E' S# L# \+ {$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
" J9 I8 P* T$ P& p: D: @+ V$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD01 J! ~# o3 t. X8 K. f1 I
$ 85/C79C CA          DEX                       b- W; v7 D7 X9 |/ Q9 g" B
$ 85/C79D CA          DEX                     
, _* W$ i8 `' ?+ Y" a$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
* I3 c  J3 E6 Y2 x/ L$ 85/C7A0 6B          RTL                     
, N+ r& ~, A) n3 N: I: i实现全物品的代码如下:
& W, u) Z4 R5 |4 ^3 ?Start@ $ 85/C785* _* [( j; G% c5 b
LDX #$ 014C A2 4C 01;X=($ A7-1)*2% w$ b; K: z7 L; _. k# n
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量2 T, L8 _$ h( r' i9 E! g  Z$ U
@2 STA $ 6FCB,x 9D CB 6F! ?  X" ]# X0 ]2 {. {& \$ P8 G: }
DEC A  3A) L4 |$ V, p& N" M' b" z
DEX  CA3 o7 {, C. b. {9 N( L; L
DEX  CA/ `+ ~5 k9 k! j
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间2 N' q& |* h' o! q& S" c( K5 }
LDX #$ FFFE A2 FE FF;-|
/ G( T# G/ X' i& K( n) j+ _RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
) k9 }% D1 B. ~+ i, }@1 BPL @2 10 F2;循环$ A7次
6 ~4 V# ~0 k- yRTL  6B
9 S2 I% K& G" d$ |2 V最后改完后反汇编出来的结果:
; \/ E, d1 J/ b8 p1 m& g$ 85/C785 A2 4C 01    LDX #$ 014C              
, C; |: W/ Q9 I+ f" G6 C$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
8 R8 `. U1 _3 N  Z$ K* H" X8 u: ]$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   2 E* Z8 S4 y6 G6 ?  }+ a  E9 U$ j
$ 85/C78E 3A          DEC A                  
$ [1 f( g: E; P; y$ 85/C78F CA          DEX                     
) |7 X0 p) `1 U/ A1 U2 ~4 G7 y$ 85/C790 CA          DEX                     2 e% A' T! u, d9 s" G/ m2 u) Y
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
' r# C# g- A+ b4 H$ 85/C793 A2 FE FF    LDX #$ FFFE              ;8 \8 `, o& }6 g4 A& F0 Y2 q
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
) y# V0 ~" ?: o$ 85/C797 10 F2       BPL $ F2    [$ C78B]      / t. r+ F4 c# c! _0 ], n
$ 85/C799 6B          RTL                     3 {5 H" \+ U5 D. y' s1 C
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
7 I8 c  X* Y+ z0 Q; S& @. z" l! Y$ 85/C79B EA          NOP                     ;9 T4 r) \  }* f, g; l* g
$ 85/C79C EA          NOP                     ;  X0 @, i' [1 p! y: _8 t4 M6 D3 S
$ 85/C79D EA          NOP                     ;% v  N. |" K6 q' R% P& q2 a3 e
$ 85/C79E EA          NOP                     ;9 G8 s$ u7 k/ s/ Z+ k
$ 85/C79F EA          NOP                     ;
! v9 W4 E# p0 k$ d/ U$ 85/C7A0 6B          RTL                     ;  u( v% i; h4 f: q; z6 S' E& Z0 O

" m3 u6 g; A4 F$ P. R$ u- o[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

发表于 2009-3-10 12:41:38 | 显示全部楼层
学习了,但是有些专业术语还是不太明白
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2025-9-16 22:04 , Processed in 1.069336 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表