EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2172 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
  p9 z' n0 `3 B1 {/ S
4 @9 d$ n5 s7 U% J3 `+ q火炎纹章776修改笔记, ?5 K! y% @7 ]4 N3 p
2006.1.25
8 c( A( I4 I/ O7 `7 {' j9 ?: f1 k作者:zHAOsILi[EGCG](.zZ~~) 转载请注明, O4 M- m- ]2 P6 X' R6 O

% ], d6 x) ~* z5 _9 Y3 ]: p: t# ?
修改工具:Geiger’s Snes9x Debugger Mark 9
1 C& s+ g# b+ a! \. i& G0 N) C. S, L8 s
战后升级+ }  T4 t4 I! E( t
$ 83/EFDC 90 05       BCC $ 05->EA NOP3 E% l. w2 @9 H, ]
                              EA NOP/ V) [( P/ u1 h
! ?: M+ O+ g1 \
战后能力+1
$ E) z; k6 W( k! n$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001+ X+ ~& D% S' V
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b6 Y( r" n6 h2 F6 x9 M$ `
. d' I+ O7 D" }; y- u+ J
武器熟练直接到A( z- ]$ g2 M' |: `
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP. i- J1 e7 ~& D! }* m! _* Q
                               EA NOP. g0 k2 R( r1 k9 Z9 }% R/ d2 q3 D
存放所全物品锁定
" @3 B# M. @( K. f4 r: J: l5 ~8 A存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只" o5 o* n: K1 h& l
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
1 X" r% t- A5 |8 i9 x$ m5 U3 u而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
) D" V& z9 n) Y  p" g# B1 ~件物品,故可以突破存放所128件物品的限制,改出全物品。
$ W3 M3 P' }+ y" @- f* _6 T9 i- X$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2) y9 i' A6 s0 F; k8 V
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   2 w2 R) G+ ~( ?4 M% z
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB- x! t6 z7 h( T$ w8 a
$ 85/C78E CA          DEX                     
0 H: h$ v. G" a+ ?$ 85/C78F CA          DEX                     
) H( G1 V7 o! n; @$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
5 f, e" N5 i$ y9 E; {7 k, d5 X% L$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
( s- U% V6 m2 t$ a5 x$ 85/C793 A2 FE 00    LDX #$ 00FE              7 P* I7 n: ~. O
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   % Q: f! j. A9 v0 b4 W$ G
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0* \6 F' q: H( u
$ 85/C79C CA          DEX                     
( v5 L, W& f( X& F; c" K+ H3 T$ 85/C79D CA          DEX                     
# q2 _: C0 |1 S' a" b8 X$ 85/C79E 10 F6       BPL $ F6    [$ C796]      ' S9 |8 G2 U6 J! n
$ 85/C7A0 6B          RTL                     ; ~3 X* h; D5 ?/ J2 C
实现全物品的代码如下:4 ~2 N0 m, K5 A/ |( t$ |
Start@ $ 85/C785
' E+ i! o# q. b& O$ B; WLDX #$ 014C A2 4C 01;X=($ A7-1)*2
/ L8 ^, v3 G, O% C5 aLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量) a) ?. f2 P8 l- Z
@2 STA $ 6FCB,x 9D CB 6F
/ X( Z( `6 Y' wDEC A  3A1 [6 N8 a# S8 f/ E" ^: d, Y
DEX  CA1 C3 t& A7 ^' T7 s4 T8 ~
DEX  CA7 X- ?$ }8 t$ W5 V1 L* b5 c
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
2 A3 Z: @3 N$ o$ B1 i$ `( gLDX #$ FFFE A2 FE FF;-|
! m6 u8 ?- a1 [0 kRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
$ S8 O, l! M; ~* W, [@1 BPL @2 10 F2;循环$ A7次
- ~! U  P7 A# g1 d, q7 n& J5 V  SRTL  6B! f6 a6 ~; G! A" r8 ~0 W, X
最后改完后反汇编出来的结果:
8 X: ~2 P6 \4 \( K3 {1 z$ 85/C785 A2 4C 01    LDX #$ 014C              
7 P7 Q( |- E7 A# H( a) Q$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
3 [5 K7 _- B1 m" W6 K  [$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
& @% l- y* q+ b$ 85/C78E 3A          DEC A                  
1 u1 z  [4 N# ~. \5 O$ 85/C78F CA          DEX                     
* r* F0 W: o$ p4 o$ g* y7 }$ 85/C790 CA          DEX                     
& E( c% v4 P4 [$ f1 Z$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
5 A$ r1 i  r) p$ 85/C793 A2 FE FF    LDX #$ FFFE              ;: y5 g+ l! r* X7 h! q* L. }' z
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
8 L+ }4 }4 \+ g$ s" X$ 85/C797 10 F2       BPL $ F2    [$ C78B]      * u0 v" t8 t9 G2 y% R. K# M
$ 85/C799 6B          RTL                     2 o$ N! d$ j4 i, h" F2 d& s
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
  g+ e( ?% {! w/ G  A" f; B. }; P$ 85/C79B EA          NOP                     ;  V# [5 i9 [. b" ?
$ 85/C79C EA          NOP                     ;
* z/ t9 d4 ~2 e2 w% g! _$ 85/C79D EA          NOP                     ;: J: @' R4 O6 ~6 G! x- P
$ 85/C79E EA          NOP                     ;9 h4 V. H1 ?8 X5 G5 B7 a5 t/ R
$ 85/C79F EA          NOP                     ;
1 {. f( N* E- v) F! n& n$ 85/C7A0 6B          RTL                     ;
, ^1 l, j2 a) ?
3 G- k7 Y- z& r% D- S7 ~[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-12-26 02:04 , Processed in 1.081055 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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