EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1953 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html8 R" E. p6 s! ~# V# N/ e
) [' G$ z: f, ?4 v$ i& M& C
火炎纹章776修改笔记
) j3 L# b5 o. w$ s) K8 }% m/ C! m) S2006.1.25* q1 N& c; U% H: p9 w4 t. D1 ~
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明9 z# e" t7 c0 a0 o  c/ Y

3 w" e/ Q% b6 R3 d
+ U, S! C9 E* i4 u3 {# X8 }修改工具:Geiger’s Snes9x Debugger Mark 9
: e- ]" {' |+ ^" y3 ^
, L" G7 A* t/ O/ ]; M* y- y战后升级7 p; y& I) z; j8 m0 P; v% D5 p: D: `
$ 83/EFDC 90 05       BCC $ 05->EA NOP' j! G( K$ D: @- T, X
                              EA NOP# J" ?1 B* `4 s" ?+ t6 Z' g
: Z+ T9 e' X) M' J6 T
战后能力+1; l9 T; v/ a( O' s% E4 ^; v. ?
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
, @+ T; }  w2 c+ R9 e4 ?有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b  \1 r7 o' [# f4 w  x+ D5 U# S8 I* N
6 E7 j8 N8 ^' _9 i! ]
武器熟练直接到A, c' w0 s9 `3 F: [* T  n! ^
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
. _6 q0 c5 v& S4 Q- z                               EA NOP
* G3 O0 s5 c- t& g存放所全物品锁定
# z" k, ^% L3 g- T; ?2 M1 y/ m存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
) G; v) ^! n* D  R  f要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
" \' B6 T- {, w  q9 n0 X1 ?而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
+ _# l7 [( [0 u) x( D) S件物品,故可以突破存放所128件物品的限制,改出全物品。, U, b" J6 ]  a+ D8 p+ D$ p( p0 G
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2; p( Z- ~8 K6 U2 m
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
9 o+ P5 K, ]5 c7 F5 V; r- V; ~/ ~$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB2 k, \* Q$ `( A: N" W$ r+ I
$ 85/C78E CA          DEX                     
6 ~8 \0 H. [/ v  n. H7 m+ t$ 85/C78F CA          DEX                     / N, r$ y: U  T  k; a1 i
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次% V* ]1 @5 ^+ u5 S. B
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE- F4 N, U$ \) D7 _7 n  @" P
$ 85/C793 A2 FE 00    LDX #$ 00FE              1 X* E! ^" i3 X  _% g9 X& N
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
/ |% ^1 c( C+ {3 T4 w# l: K  e$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD09 K, @% e: a1 y9 p, `2 {. J. \! t
$ 85/C79C CA          DEX                     
& k' j+ y$ L) n& b$ 85/C79D CA          DEX                     
% O* _& |1 o! Q1 I3 |$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
; P6 Y/ L1 x4 d3 d% R5 H$ 85/C7A0 6B          RTL                     
; a# s( `1 f& D: p/ C实现全物品的代码如下:
) @4 s9 O- j5 H# j2 H7 R- ~2 j% X3 f8 CStart@ $ 85/C785* C8 d1 b, A4 c6 C) w+ A  c% F  g1 t
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
) B$ c1 ~; t. G& ~LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
; @' r7 `( N2 t% z  z( J@2 STA $ 6FCB,x 9D CB 6F. |6 w& C! p3 F0 x' O4 d+ z
DEC A  3A% t7 f8 j( F% u. O% m, `) J
DEX  CA. \$ x7 [% f7 z* e9 s
DEX  CA! q5 }, Q. k5 p( e& S' U( g
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间% y, z, u- \+ {& i6 S, L
LDX #$ FFFE A2 FE FF;-|
5 S% Q; Q0 w! J# f& b4 {- ORTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
2 }& W0 |! ^8 x$ B9 A! ]' x5 P( y. R@1 BPL @2 10 F2;循环$ A7次
" b( j5 U0 s' f) ]RTL  6B
3 i# t! L* T- R3 u9 d最后改完后反汇编出来的结果:
' N# m- W8 z: y5 [$ 85/C785 A2 4C 01    LDX #$ 014C              / u+ w& r/ Q/ ]7 p
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              . s; T  ]8 ]) \. K4 F( E. P
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
% h: A; H1 x% J7 @" L$ 85/C78E 3A          DEC A                  
% m& [5 y* m" T1 R1 c$ 85/C78F CA          DEX                     # O# Z( B# K% `5 t/ Y9 A
$ 85/C790 CA          DEX                     
  }5 w: H+ f/ D5 i, u$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
3 O3 a9 Z) Q2 i! l3 H$ ?8 p6 c; m$ 85/C793 A2 FE FF    LDX #$ FFFE              ;1 W/ r0 M# Z5 f
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
, J" r. k0 T7 l% i3 S+ D  ?$ 85/C797 10 F2       BPL $ F2    [$ C78B]      8 o: G) }. v" M4 Q* O
$ 85/C799 6B          RTL                     
+ D0 I1 `* o8 H+ z2 N, h7 V* o9 I$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了# j& s" q2 q8 D; a1 u1 U
$ 85/C79B EA          NOP                     ;4 T' f2 Z1 w# A! V- L
$ 85/C79C EA          NOP                     ;( J5 P. m( k( _) ^* T0 E
$ 85/C79D EA          NOP                     ;7 o+ p. N& p. n$ [! F5 @
$ 85/C79E EA          NOP                     ;
8 y+ W2 C% c& t7 g: `3 J$ 85/C79F EA          NOP                     ;% e9 h& @( d- W. h
$ 85/C7A0 6B          RTL                     ;
3 h) g7 M0 Z; T5 z' ]9 j# {/ ]" W$ H( r( U" S/ a. c# Y
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-5-19 19:56 , Processed in 1.084961 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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