EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2072 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html1 W1 {7 }8 I  d) r7 d) O9 R
9 i& `( {3 x# L5 {' ?7 }7 |3 }5 u
火炎纹章776修改笔记- A  I, a2 w  z
2006.1.25
+ _" J% z3 {9 i6 G% |# `  s作者:zHAOsILi[EGCG](.zZ~~) 转载请注明, T; p) b7 ]+ H* C9 w  H. `
! }' T" B; w) E
2 j8 p! m1 [( W4 I
修改工具:Geiger’s Snes9x Debugger Mark 9' V. ?0 i( h7 E1 f0 P1 }9 R
& D: I) X& b  G' P; u( d6 z$ r
战后升级1 Z, \( Y. p1 I
$ 83/EFDC 90 05       BCC $ 05->EA NOP9 s+ \" W4 O1 e
                              EA NOP
8 E* I; C5 |2 q. o
% a( L8 m" o; N; B& F4 n( m& q战后能力+1
- n7 Q+ r" r0 W0 J" x$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
$ N6 A. i9 X7 s+ }  s# k5 c有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
! V: T- s( P5 r: \8 z3 X! o& F$ v  z4 R; E- p! m! C
武器熟练直接到A8 \( q2 w, F( e2 X1 r: G/ W
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
, }+ u' m( k4 D  n; z                               EA NOP
& N- N  F+ F# ^7 V6 V存放所全物品锁定
1 |( X% K, K6 |6 w+ J# ?2 R0 Q/ }* Q5 q存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只# L  ^' E* c+ K4 ^( _: g
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
- O0 u" [- I  }4 Y! k而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1286 i  Q  W% U5 G
件物品,故可以突破存放所128件物品的限制,改出全物品。
- v9 l( C0 e0 |$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2/ D% u: h4 B* I3 m& j# Q: R
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   . D6 {* h. x5 Z( \9 }- P! F
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
' V; f: E* |$ n' F4 W" U3 S  c$ 85/C78E CA          DEX                     % h' d4 ?% w9 N- `* V9 n
$ 85/C78F CA          DEX                     
! D6 q6 h( j& ?8 a! Q9 Q$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次( R& a1 O" i# n0 X
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE9 a6 Z" }, q7 s4 i
$ 85/C793 A2 FE 00    LDX #$ 00FE              
0 Z6 E" O0 i$ D  u$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   3 D9 X& k. g9 _% S
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
5 f7 S" A+ l, g, p+ m& R$ 85/C79C CA          DEX                     0 G+ i* E4 X7 g! t; k, Z" k; F
$ 85/C79D CA          DEX                     0 _/ W0 g. C3 t, c$ B
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      $ f. O7 O0 X& D, C/ f8 V
$ 85/C7A0 6B          RTL                     + ?8 L+ H) a  q& g
实现全物品的代码如下:
; ^* o9 p5 F# }8 i. m4 JStart@ $ 85/C785
0 Y9 p0 }* D4 [5 b; _7 r: S+ VLDX #$ 014C A2 4C 01;X=($ A7-1)*2
# C* n: u* [! `! |& cLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
6 w1 e' ]: @! B  R0 H@2 STA $ 6FCB,x 9D CB 6F
/ J" }" z" v0 t4 `' KDEC A  3A
% T9 |: E9 l" q& b. ~DEX  CA% z9 ]( H' y: c2 E0 V; x* j7 m' ^' j
DEX  CA: Q8 P  V* G& J) I
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间/ t# M2 f) h' P7 a! O2 d3 Y
LDX #$ FFFE A2 FE FF;-|
! e" h* s- n6 n# t3 _0 Q, k9 mRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
, L6 n3 v) F8 U@1 BPL @2 10 F2;循环$ A7次
8 ~4 m2 W; x: z4 D% NRTL  6B
) V0 ]2 _6 m- j+ `, R最后改完后反汇编出来的结果:
- \+ z5 C$ v' T5 C$ 85/C785 A2 4C 01    LDX #$ 014C              
8 X& X7 t, v  T$ 85/C788 A9 A7 3C    LDA #$ 3CA7              + b5 ~7 i7 N* R2 Z3 m
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
: T" X6 E: D+ s# ~$ j4 p$ 85/C78E 3A          DEC A                  
8 v6 F  e$ A. l$ 85/C78F CA          DEX                     & i' i5 ~& k$ ~7 {
$ 85/C790 CA          DEX                     : {1 E  J9 L+ b: i' n7 C! }
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间& u3 N6 Y* F. o  ~. i: X# C
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;4 Q$ p: t. q2 l+ v! e, S
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
8 ]& Q3 W6 q. U% m: C: d+ a2 V$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
$ j+ h# H( c4 C% ?$ 85/C799 6B          RTL                     
% C  j7 ?1 i# E. P- ~+ s. P$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
6 X. N- Q. B" @. R% K6 ~4 G$ 85/C79B EA          NOP                     ;
6 r% p6 k- A& k" N" v; ]9 ^. g" c$ 85/C79C EA          NOP                     ;
9 H) M, q; B: O$ 85/C79D EA          NOP                     ;; @: K, W( w: |1 ~9 }1 @8 D. ~: R1 i
$ 85/C79E EA          NOP                     ;
, E' Z. H7 Q0 O( o4 Y5 h% t$ 85/C79F EA          NOP                     ;' {' z% l# @# t! n* N5 y9 c# `! d1 E
$ 85/C7A0 6B          RTL                     ;# [, j) y! c: A+ H- X9 H. Q
' s4 j, e- m% X1 ?
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-9-16 23:40 , Processed in 1.093750 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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