EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1590 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
2 x. L; O; Y, X: B3 Z- D; j
- u  ~" n3 p+ _# {$ R+ r* d火炎纹章776修改笔记
  R2 ]' e( ?9 o3 m1 t7 s5 b2006.1.25, r% L! v( X* v, v2 C  z
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
2 H( j! [1 S2 C* x& @8 S
$ |4 ~  j2 h4 n- H$ `1 S
$ ?* \$ c) @5 C, m修改工具:Geiger’s Snes9x Debugger Mark 9
1 j. z0 Y3 m: M% n* d6 h  m4 r* ^) d! h6 Q  J  b& q/ |
战后升级% O8 v# ]1 \! F% Q9 Q
$ 83/EFDC 90 05       BCC $ 05->EA NOP
- d/ E4 P9 m# L4 n7 [. |" H8 J                              EA NOP
! \1 \5 G8 }7 q/ O1 r, U! Y% Z5 D) l1 V$ n. _  j! {
战后能力+1
, K' v4 H* D; k. Q$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
, L9 y5 }. O, C' q  e! b/ f有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
3 B' n/ ~8 Z2 K- K& e8 ^( x& X) ^3 ]* K  H& d8 Y7 a
武器熟练直接到A; g( R% f, j' m) }( |0 O3 t
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
1 H& p3 C; L8 i! A$ ^9 o( W                               EA NOP( l. r! L, G9 E! {' B
存放所全物品锁定
  g" I* j  G' k1 q$ ]存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
* s: f& T: e3 L- d- b3 F1 Y) c要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
4 h7 @! \0 L- }! s& A; [而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128' B: |3 D9 r8 |+ _# O
件物品,故可以突破存放所128件物品的限制,改出全物品。3 {" l3 W1 i& h- r( S
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2. d3 u. `( Z8 k1 H
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   $ y: b( g0 J" ]$ C% {" S* O
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB' z/ P4 \# G9 T2 H7 }
$ 85/C78E CA          DEX                     & J2 O# b) V1 `0 ^$ m9 a) d6 a
$ 85/C78F CA          DEX                     
. S) y( _7 D: _9 U* e6 |/ W$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
1 b# A1 D& c" \( b: ?0 q5 i$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
2 F3 q8 [& U6 n$ 85/C793 A2 FE 00    LDX #$ 00FE              & t" ]9 N: B) {" f8 x: B
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   " t+ j* K. O8 M4 g$ a) F: j1 Q! S
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
9 X% A. i8 U2 o* C* A! R1 u$ 85/C79C CA          DEX                     4 W# R7 A) ~( F3 ^$ k' ~& `
$ 85/C79D CA          DEX                     
: i. D" P% S1 ]# m$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
8 G8 }2 |+ p! U' ]8 W' Q8 H$ 85/C7A0 6B          RTL                     # d7 T( ^& p: J# m5 w* ]
实现全物品的代码如下:) D( F7 b/ _. j
Start@ $ 85/C7857 q- y9 b! P/ q: P. h
LDX #$ 014C A2 4C 01;X=($ A7-1)*22 f" ~' W. j( n/ H( b$ i
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
0 B6 w$ _& G2 z/ `/ W! z@2 STA $ 6FCB,x 9D CB 6F
0 g9 e$ l2 p$ y' d" k- zDEC A  3A
2 V- ^3 F: P, K7 @# }. a9 \7 _0 PDEX  CA8 D2 r: c( M+ M5 U* J
DEX  CA6 v0 X$ V" Y# {1 _( Y& E. b$ L( O% W4 \
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间. U( U6 Q3 R( W
LDX #$ FFFE A2 FE FF;-|
) [6 @5 r- b2 y' n$ K4 tRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序. _, ~, m" A9 I$ m$ W; @
@1 BPL @2 10 F2;循环$ A7次
( K3 p7 l, H5 `  p2 B1 yRTL  6B" I+ C- e4 P& {5 Z8 d8 f
最后改完后反汇编出来的结果:
4 r2 O% Z+ k0 A2 Q$ 85/C785 A2 4C 01    LDX #$ 014C              ' e3 K+ G! x5 S; i8 l7 F
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
* D( c) _+ v! H* R* x$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
6 Z3 P9 H! b9 G! c5 a. c$ 85/C78E 3A          DEC A                   + z& j' c5 j4 J# j/ {$ j6 a  k
$ 85/C78F CA          DEX                       u8 s$ i. x! n8 e! x% i% c7 _7 w
$ 85/C790 CA          DEX                     
& A  C+ ^+ \: q$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
7 U& a7 a+ ?; s% W0 w$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
9 \9 c; n! V4 O4 I( o4 c+ g& W$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么! y$ Z5 S2 ~3 h
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
& {3 Q. S. E& _, l2 P$ 85/C799 6B          RTL                     
& f1 `  w2 ~: Q, u$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
: x4 K0 z3 x6 v2 `4 q' i% {$ 85/C79B EA          NOP                     ;* x  O; \: l! w; d
$ 85/C79C EA          NOP                     ;
) d6 G2 I; @% i9 p* e9 g$ 85/C79D EA          NOP                     ;  ^3 j, ?/ ?. I& E4 g
$ 85/C79E EA          NOP                     ;
4 U  Z- f, ^2 V( y$ 85/C79F EA          NOP                     ;+ L7 v) @# p: k
$ 85/C7A0 6B          RTL                     ;) K( @, i9 X  T6 `+ m

' m+ e" H9 j  r: z[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2024-5-20 12:07 , Processed in 1.078125 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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