EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1925 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html. s  S/ A! z% R6 E4 l; W

1 T; h7 L/ C! E7 m# i火炎纹章776修改笔记
! r2 i) V+ y( K  w5 L/ }5 ?) S2006.1.25- t! r+ y# Y, h
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明: q" x% h) u/ @6 P) J! K. a8 K: u$ R

- R) {9 ^6 ?+ V
8 h* Z/ f; w0 S+ R) P9 g修改工具:Geiger’s Snes9x Debugger Mark 9
, [% }: B; R; d, q& E9 p2 K3 o7 E  Q# m4 ]  I
战后升级
4 ?8 S! W& _# A$ 83/EFDC 90 05       BCC $ 05->EA NOP5 f% _( v9 B) ~3 D" ?
                              EA NOP3 L  u6 y- g1 d- L5 N% M: u; j
. i! ^; h  }" u+ {1 \: L) ~& U% X
战后能力+11 T5 p. k; X7 P& r6 h5 |
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
7 V( r5 q, y9 x- {有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
* w0 S4 R# M$ {
' ^- G. G% E1 h9 `武器熟练直接到A
. b# j/ H$ J& f$ 83/E4E9 90 03       BCC $ 03 ->EA NOP9 r; k5 G5 `! E$ m5 H8 j- J  f
                               EA NOP5 `1 ]7 l" N- q7 z
存放所全物品锁定
- @6 u) f' y8 L- C存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只/ D, a2 Y0 x6 ?* S8 F( p. [
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
! D% R( x4 k6 ?$ S9 R而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1284 T( Q. p$ H5 @& l& m
件物品,故可以突破存放所128件物品的限制,改出全物品。9 k5 M. B9 H/ g  n4 c& s
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
9 C2 ~5 f, Y* S  ^) Z$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   / a# r" f3 o% E4 ]. I$ |
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
7 A5 n3 ?5 r. H: m6 _. p4 Q+ |  m2 h$ 85/C78E CA          DEX                     . Q$ I% ?( b# I  T* |; ^( V8 B
$ 85/C78F CA          DEX                     
* I2 S1 j+ \. ^# ?6 a2 w0 |; i" u: I$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次* y6 A( S7 Q4 x' l
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE! Q  i: m1 T" g5 ]: z) o7 W
$ 85/C793 A2 FE 00    LDX #$ 00FE              
8 O( R; @0 p6 @5 T$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   , p9 F& E6 s- x5 F$ V
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD00 l3 G/ `& U3 n: l& _+ X( Q0 n
$ 85/C79C CA          DEX                     
* d' K! H* e6 ~/ `8 D- e$ 85/C79D CA          DEX                       K0 G- G! z2 n, v4 v
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
- K$ Z# |$ r9 ?$ 85/C7A0 6B          RTL                     : U- U5 V  b6 _$ l: ^
实现全物品的代码如下:$ ^6 s- t9 G' e. n3 @* T6 n/ n0 R
Start@ $ 85/C785  x  {6 _# {5 z& r* d4 }
LDX #$ 014C A2 4C 01;X=($ A7-1)*2! z, K4 V/ h" Z! Z  U% N
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量2 f" r, }5 ^5 n7 d/ I8 L3 G
@2 STA $ 6FCB,x 9D CB 6F
& U2 _: G5 T% L' x, m+ E; MDEC A  3A: o. u* z0 v4 p$ t  U# g
DEX  CA4 H& a" V/ T, c3 l
DEX  CA% ]% \4 V  Y6 `8 k4 A0 X  j: x
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
. O/ }" h: e; s/ Q3 e- ILDX #$ FFFE A2 FE FF;-|% B$ Q' M9 v+ u: a: A
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
( J4 L* V7 E0 w" a; ?3 E5 J; v@1 BPL @2 10 F2;循环$ A7次
/ z8 U2 X+ w) k* v9 j' sRTL  6B
3 C9 X7 M) k* p2 y$ O1 C; ~3 s最后改完后反汇编出来的结果:
4 [+ |: x; H( l: c  Y; U$ [- V4 E$ 85/C785 A2 4C 01    LDX #$ 014C              
) ?0 r$ [5 }% }( _& M3 y$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
  a8 E5 f6 |4 b% y7 E$ \  ~+ N$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
1 C; L5 X$ u! y$ 85/C78E 3A          DEC A                   ! b! D# ~# T$ \- F; _7 P
$ 85/C78F CA          DEX                     
4 Q- W% ]* S5 s# L$ 85/C790 CA          DEX                     % o4 [5 o, x, A8 w* V! X( m$ G
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
) ?( n7 U. f% O! I: F+ I& f$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
6 c0 C, w5 B/ }" k( i$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么# V* W6 X9 ~1 }5 D) ?# \
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
- B& @" O: S$ }8 |$ 85/C799 6B          RTL                     
) |( V" T  [! d: W! h$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了4 Q" q* M* d- _# F& X& N: d' }2 C" f
$ 85/C79B EA          NOP                     ;  L9 T' n, ?$ D: B& C4 p1 I
$ 85/C79C EA          NOP                     ;; s: r3 {8 j9 {. i
$ 85/C79D EA          NOP                     ;0 q& G' T" r% r+ w$ G0 P# e# _  I
$ 85/C79E EA          NOP                     ;8 h: O3 [) i' r' ?6 q9 w0 c
$ 85/C79F EA          NOP                     ;) E' Z1 M  k- A! m
$ 85/C7A0 6B          RTL                     ;
. O! L8 l  d" r, s5 I) v6 W4 D" o2 A9 S; X
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-4-20 04:54 , Processed in 1.140625 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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