EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2151 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
% g0 K( o7 i* f6 b0 v
  C) l7 G1 u5 X: t  @% A, Y, n火炎纹章776修改笔记( A1 C5 Y+ L4 X6 u- }5 a# O# D
2006.1.25
3 x* M! U7 J; B( T% ]) X# g" f作者:zHAOsILi[EGCG](.zZ~~) 转载请注明# ]- P; |( m; |3 u) |
& Q( d# Q# W4 @2 O% t2 u# R
9 X) t5 S) B  ?& P) f1 C0 y
修改工具:Geiger’s Snes9x Debugger Mark 9& N. t& b8 V) F1 S

* a# G3 Y: e0 _& Z, U战后升级) g; {) z: ^; s: Z
$ 83/EFDC 90 05       BCC $ 05->EA NOP* k6 m3 g! ]3 G$ t3 I& x
                              EA NOP2 }, j, Q2 [3 f/ h4 ?; l
  g; z3 h9 l9 E$ J. u0 L
战后能力+1
1 p2 @! b! N( l0 O' _$ a$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00010 `7 I; M: F5 r
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
$ O  u4 Y2 j  B  X: c, [7 }! L/ |3 j, O6 Y' M! ~
武器熟练直接到A! x- l1 h" f- d, m
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
9 `3 n/ M# y$ i! n9 {( F                               EA NOP! ^; q# n* H, B; h
存放所全物品锁定
0 k1 l" m& x' S9 q( _" r0 M存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只1 _! P3 {+ }3 a5 o: ^
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,' ?# V4 K/ Y" a; U
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128. Q& h& w6 C3 L  a7 {% \/ Y' [( u
件物品,故可以突破存放所128件物品的限制,改出全物品。
3 w7 }/ x4 H  N' W% X6 P$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*29 N! _, f  m9 b. @+ v
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   ) m# e/ j) Z. P$ \+ w% f
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB% [: J' J8 z/ x/ T1 J
$ 85/C78E CA          DEX                     # z: I6 G2 E0 ], W7 X/ [2 N0 y
$ 85/C78F CA          DEX                     
3 R# l+ D5 `8 _) A& D4 u) }$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次. l. Z9 b3 ?2 R# X
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE( _1 N0 P% |5 R/ f6 B3 Y$ w
$ 85/C793 A2 FE 00    LDX #$ 00FE              
+ {# v& ~  C3 @& m# \# v5 O$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
) _: U* J& u7 o# s- `; ]3 l$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
- f/ m8 w. k' L6 s3 X$ 85/C79C CA          DEX                     
- E* u# n2 G& {$ 85/C79D CA          DEX                       R+ ~6 p4 H5 K+ m+ C" I
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      ) ?  u2 C7 I# H( b
$ 85/C7A0 6B          RTL                     4 @% y: G$ e9 e  i- o1 W: \4 W6 c
实现全物品的代码如下:0 ~5 i* k& [: L5 H
Start@ $ 85/C7857 D7 q# k, u. o' h. I- v0 w* a% X
LDX #$ 014C A2 4C 01;X=($ A7-1)*2; B. x0 |& D8 V% F5 O$ Q
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量; d0 b* G2 l4 R$ ^
@2 STA $ 6FCB,x 9D CB 6F
! z7 o$ ?; q* F$ r" vDEC A  3A) f( ]: M5 @4 F
DEX  CA
/ i9 `0 Y+ `# i1 RDEX  CA) K4 n8 \. f4 u% g* n3 m
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
; W9 o5 a7 U' u! b. ]& m: {, kLDX #$ FFFE A2 FE FF;-|
/ A+ j6 a0 d6 K  p! _( V0 aRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序1 @1 c  V' Z4 X/ v6 R( p7 x
@1 BPL @2 10 F2;循环$ A7次! m2 s" n0 N& _* ]3 c. C* ~& R8 Q
RTL  6B
* N9 ?5 [$ u# b/ \2 V4 I- }1 J最后改完后反汇编出来的结果:
4 C; v# U8 Q- i, J* Q' E& f0 S$ 85/C785 A2 4C 01    LDX #$ 014C              ! z: w# o* K7 ^$ Z) P; C
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
6 W# L# `. u* g% s4 @; u$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   + B0 |5 r7 D) C+ m' Y4 |
$ 85/C78E 3A          DEC A                  
# R, P) g$ B3 x- e4 k$ 85/C78F CA          DEX                       N4 v, Q/ h2 S
$ 85/C790 CA          DEX                     / X' x' J/ q2 D$ y- b, Y7 B: C! \; S
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
- V4 g- v( M1 O& m5 v$ j6 S$ 85/C793 A2 FE FF    LDX #$ FFFE              ;  Y- ^/ O/ h* c- T# N& s
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
* n& {3 s8 g9 I$ G9 V& m$ i! `$ g$ 85/C797 10 F2       BPL $ F2    [$ C78B]        a# P$ d* u+ K. i: `! |
$ 85/C799 6B          RTL                     
% E0 a9 R! A0 f# P- `$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了' e( T1 g2 t( X) n9 t
$ 85/C79B EA          NOP                     ;
0 s6 W& \' y2 ^) I  G' y9 r$ 85/C79C EA          NOP                     ;
! J+ t8 \% H+ D3 F$ 85/C79D EA          NOP                     ;
. D$ g* |5 i# o7 b9 [$ 85/C79E EA          NOP                     ;# x  d" }; l4 f7 N6 F
$ 85/C79F EA          NOP                     ;$ n$ I& m1 e3 |' ~' C; F6 t, v" w
$ 85/C7A0 6B          RTL                     ;
. ]+ Q- b! e; {& H' D4 E2 F1 O; w- A# a/ {+ v
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-12-5 21:49 , Processed in 1.101563 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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