EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2049 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
6 o5 }& q" {$ N. {- W. d+ j: q! ~8 ]- q* e/ p
火炎纹章776修改笔记3 d; i# j; f7 x* D) z2 T' _4 Y
2006.1.25& B1 h# D+ ~7 e$ b7 N# d1 N5 r+ V" N7 k
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
* b5 g" d6 c$ Q4 x1 U: A/ o' [1 ?- ~# j2 k4 x

  G2 n( V  E) P  z; R6 `5 c0 ?" C修改工具:Geiger’s Snes9x Debugger Mark 9
+ o4 _* r4 R3 f& C, q7 m
- a+ X/ M3 @2 ~2 s战后升级6 z% C& v1 e$ T' O" D& V
$ 83/EFDC 90 05       BCC $ 05->EA NOP3 _! m8 q4 l1 A# m: i# w1 p
                              EA NOP% h6 q+ ]( N* W# x% e
* B# p( P0 i3 i: `, s5 V
战后能力+1/ e3 N% V0 K' D) o) U  I3 L/ a
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001. F6 C" i0 Y. U- h
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b) J0 W8 V/ C1 q8 O  q/ r
8 t9 i9 @1 L0 K: s
武器熟练直接到A5 h/ x/ H# x8 E! n
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
. {2 I3 U2 }) s; Q/ r                               EA NOP$ f/ E: M& S0 C. F* w
存放所全物品锁定
5 [  Q$ L% _  k& b! K存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只: V* J% U* {( w4 u% ]
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,1 _$ w# p$ O" t' G$ P; b3 P
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128) `) {3 s- p4 h
件物品,故可以突破存放所128件物品的限制,改出全物品。
; f6 a! e; {" S+ A$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
" ^" f+ M+ ^; S) T2 h! \$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
/ [$ G; |' U% w5 o- a$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB8 I3 V4 a0 c8 P4 n3 N! x5 Z
$ 85/C78E CA          DEX                     2 @1 S- Y1 c% n4 R
$ 85/C78F CA          DEX                     
6 S" B: d) x* O" x* m$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次% _% V6 v& x6 w. M
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE' h; O+ ~% R1 @, a3 C# I
$ 85/C793 A2 FE 00    LDX #$ 00FE              
8 c! v/ Y* k1 b5 \$ s$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   % p' N4 l" M$ W1 G- U8 ~
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
2 h7 E1 u- I; b% Y' \$ 85/C79C CA          DEX                     % e3 x4 @/ h) r6 @. f
$ 85/C79D CA          DEX                     
0 i, g5 n! F  h$ 85/C79E 10 F6       BPL $ F6    [$ C796]      9 ^7 }! P! D& A7 A* S' q- L
$ 85/C7A0 6B          RTL                     
- b  C5 P7 l( x% L: A9 ^  n+ @* K2 @实现全物品的代码如下:5 z4 ]6 C6 D8 W4 f7 C- R$ b
Start@ $ 85/C785
$ m$ a3 N) ]" F, oLDX #$ 014C A2 4C 01;X=($ A7-1)*2( E: u. a8 o/ R* t+ v
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量! m# e5 U1 w$ U
@2 STA $ 6FCB,x 9D CB 6F7 A* ^( o3 @2 b2 o6 {! Z& ~
DEC A  3A
, x4 D/ a5 m: b) NDEX  CA* r8 Y0 R# v/ N) s& c
DEX  CA
7 e3 n3 y( B, }# m3 n/ xBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间. e$ `# A% w* b5 a- H
LDX #$ FFFE A2 FE FF;-|
3 U5 m" w" g% ]: k3 Q: H8 }) QRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
- C; H5 J# _  S4 e! B@1 BPL @2 10 F2;循环$ A7次
! F! b4 @; L0 Q* }; s; @RTL  6B
( |& n1 E8 a% d3 B  e5 P  A最后改完后反汇编出来的结果:
: p+ x# u+ d' _' v$ 85/C785 A2 4C 01    LDX #$ 014C              * @! q: ?5 ^  w
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
* `1 i4 t6 P  S0 T$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   9 D' H/ t) W1 v2 Q- x2 q
$ 85/C78E 3A          DEC A                   - w$ S" ]& C  Q$ [. q
$ 85/C78F CA          DEX                     ! t9 @, S/ y2 A$ Z4 u8 _
$ 85/C790 CA          DEX                     
; p. x1 v) {! c$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
' |) B! K& s+ x4 `+ e- Y7 H" g/ w$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
1 @7 t2 U- Y. ]7 x" \) j6 g& k; \$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
! }2 @% K" h9 z5 a4 r) C% M$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
- }6 W: F2 h+ m- S$ 85/C799 6B          RTL                     
6 T4 L- L# k1 u  d4 d" c; ?$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
5 z0 v- n) w' E- B$ 85/C79B EA          NOP                     ;
5 c$ u. b# b& g% n4 A) z$ 85/C79C EA          NOP                     ;
! Z5 ~- E* p6 v! P- J8 o: I7 F$ k$ 85/C79D EA          NOP                     ;
# {9 }7 z; `6 H- e" o$ ^$ 85/C79E EA          NOP                     ;
+ f1 M) ?" `; o4 q# j$ 85/C79F EA          NOP                     ;
+ H) B5 \$ `* z3 M& t: ?. K$ 85/C7A0 6B          RTL                     ;( t4 A; o2 h1 W; I- ?5 a8 v

6 u% F: ^/ c, \0 |[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-8-24 05:07 , Processed in 1.066406 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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