EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1720 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
  E8 Z$ B/ X! \9 `9 e+ j+ O
9 x0 ^8 E" q, W- m1 H; [火炎纹章776修改笔记3 Z' i- R+ l! Z4 z- v4 I: r
2006.1.25
1 u' R& e$ w* ~9 K, o8 f作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
5 ^" _% l9 D! x- J; }4 V0 }
# W' H, _' O/ e; x' U% f6 }8 k
: v# M- `) a$ I/ q修改工具:Geiger’s Snes9x Debugger Mark 9. q4 ?7 u+ q8 h8 N' S# p4 ~
" |) q+ o+ w( M5 f$ C% B3 s
战后升级
# r: n: b' L& J0 \  P$ 83/EFDC 90 05       BCC $ 05->EA NOP
! q* |# N) N: p                              EA NOP7 o7 V! |" O+ _7 j

3 Z/ T/ x! x" T- w) {战后能力+1
& l) E5 W+ j5 _  u2 s: ~. X$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00014 }2 T  B5 Q* n
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b* N" s+ n; j7 J& f' b
" t" k: E% d6 g5 y( J
武器熟练直接到A8 b/ @; O0 r5 M: I# w/ M
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP0 \! c- m/ n) `8 q" X* t9 p, R
                               EA NOP8 e8 `+ W, Q+ v
存放所全物品锁定
" }; I# G) W; Z( L' A存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
+ N3 Y3 ^/ p4 p% e+ S要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
& o$ z3 a7 r: V# t' o# ]0 `0 e  k% |而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
, M0 e9 L: k3 P  z件物品,故可以突破存放所128件物品的限制,改出全物品。
  E  _- m7 ?$ j) x5 Y9 t$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2- V, [( p5 K! P% z9 t
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
* }( M. y, w. ~, {$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB6 J. e4 F2 d7 Y) T1 k% n
$ 85/C78E CA          DEX                     4 A& X; V7 c8 S0 ?/ l3 d" C
$ 85/C78F CA          DEX                     3 a& @% ]  ?0 k  N
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次5 X2 b6 t( J9 H  R8 E( a
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE' R* }4 l6 `; ]4 M2 N
$ 85/C793 A2 FE 00    LDX #$ 00FE              
6 {  e$ f' |' {# X$ |8 Z4 t/ f$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
( I8 K8 \- n) G1 U$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD04 E3 L+ g0 C  p4 y
$ 85/C79C CA          DEX                     
  o# y; [9 P7 a" u$ 85/C79D CA          DEX                     * n" J  t" Z7 R
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
, C: R1 R. w, C0 m$ 85/C7A0 6B          RTL                     , O2 p* B- e# k/ G2 l% O1 q, P
实现全物品的代码如下:4 k$ B! X+ X, O
Start@ $ 85/C785
1 G$ ^4 E/ W- DLDX #$ 014C A2 4C 01;X=($ A7-1)*2# j' L  d- l5 L; T, _( i* X5 l
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
% E+ J  m5 T( _& j2 W@2 STA $ 6FCB,x 9D CB 6F+ s8 `: D, k' U0 D3 ~
DEC A  3A1 M8 r1 }! {. d. r6 A9 y6 ^
DEX  CA- W7 \& Z9 N2 q9 f* w
DEX  CA4 a: q5 Y& t8 }$ Y  C
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
/ M8 B" p3 z4 y$ fLDX #$ FFFE A2 FE FF;-|
1 d% [" d5 Q$ n6 `- }  h* JRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序! x% U( f3 i; u7 s5 A1 y% j
@1 BPL @2 10 F2;循环$ A7次
8 a5 l! {* F5 x, A! S; Q/ @0 F2 JRTL  6B
! i2 G' @8 G! t  L最后改完后反汇编出来的结果:( ~! }  ?! x, x  c! R" @6 d
$ 85/C785 A2 4C 01    LDX #$ 014C              * @) J/ x1 e7 f1 W) t& H
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
# V  T, M$ V2 y' j0 [$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
% p4 S2 s, N2 s3 b5 }$ 85/C78E 3A          DEC A                   ; o2 c. ?: K, C9 b, F% f
$ 85/C78F CA          DEX                     : _7 m' J* ^& q4 U3 U
$ 85/C790 CA          DEX                     8 Q" o0 y) e; p. X/ v2 y
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间( @( Y! M7 w& I
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
1 b6 l2 V. Q; N! A8 X) C2 B$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
' V0 h. e2 p( g( o+ {1 w$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
: G6 ~- ]; a% U$ x0 s1 H- I$ 85/C799 6B          RTL                     
8 t+ a! h6 G2 e$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了+ Q$ n8 }  X: g3 d/ E8 ]
$ 85/C79B EA          NOP                     ;
( S3 i# A1 Q2 Z  D- U+ a8 D$ 85/C79C EA          NOP                     ;8 X8 U* G" h  x
$ 85/C79D EA          NOP                     ;
9 K* `& g0 U$ K: S6 W  o0 ?$ 85/C79E EA          NOP                     ;/ S2 G2 [! _) n' @  k9 `% P
$ 85/C79F EA          NOP                     ;* l6 r! f3 r* [
$ 85/C7A0 6B          RTL                     ;
2 }. |4 ^4 W& k" u4 D! \$ _% Y" [0 S& B& H9 a. d5 `9 L
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2024-9-27 05:37 , Processed in 1.079102 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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