EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1894 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
, T8 Q# }9 N; b$ D9 z9 d- ]6 ]* h$ a# a2 d& h/ w+ y- v- M
火炎纹章776修改笔记
% g. P4 y. I2 \% A& O2006.1.25
$ W/ v  f* z7 K, S5 ]) n. o作者:zHAOsILi[EGCG](.zZ~~) 转载请注明, f/ ~7 l' ~# X; j! Y# P( p# l( c! X

8 Q9 t0 X( K" S
8 Z" f9 I4 @$ z& Y  \6 U4 l修改工具:Geiger’s Snes9x Debugger Mark 9& V* y% q+ ^. g3 z% T& f* r
! K! D1 t, o( B' i# q* p# n! K
战后升级
- @% n5 U$ y6 n$ 83/EFDC 90 05       BCC $ 05->EA NOP% O0 L3 z) {: |8 b6 e" R
                              EA NOP$ U9 I: V( J, C2 q. n
& }" A2 E* n; U6 n# q
战后能力+1
6 ?0 W) m( o$ G; j$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00013 ]1 x& x: c, }, `9 b
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b. z1 w9 D6 Z2 J! T- p
) S( @  ^1 K; J8 S5 g" W) T8 v5 F9 X
武器熟练直接到A
) k/ b6 D4 O0 W; R% e$ 83/E4E9 90 03       BCC $ 03 ->EA NOP, U; W! W# S0 }4 P
                               EA NOP
& q; x' K+ E8 a0 g: e存放所全物品锁定+ a. A6 ^- M) x
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
, @8 x$ D# H. }! T& a8 y要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
5 O$ ~% u; s, O; {- Q+ G而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128) ~! {2 w2 [  m8 o, D$ L
件物品,故可以突破存放所128件物品的限制,改出全物品。" t* s& v+ k. g' a/ j# ~
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
# ~! N% W; d+ U! J$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   & ?" y0 n( j  ~" S* M) X
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB6 i& C5 ~7 \* t; d3 Z: b% g6 B5 |
$ 85/C78E CA          DEX                     
# `5 f( o7 J) |8 h7 ?$ 85/C78F CA          DEX                     # \+ D8 b: Q4 b; t
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
% C; {' K: ]2 v$ i! g$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
1 x8 l% P6 T' ]5 ?* [  T$ 85/C793 A2 FE 00    LDX #$ 00FE              ' M% P+ C; g+ u1 k- p! a7 w3 P# m( g; A
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
. J0 V. M; ^8 Z$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0$ B, V, _! ^$ q4 y6 v% Y
$ 85/C79C CA          DEX                     
( P, D! A$ e* T$ k0 X+ l5 \/ B$ 85/C79D CA          DEX                     
8 d# ~6 m$ Q& E& D! n2 y$ 85/C79E 10 F6       BPL $ F6    [$ C796]      2 Q  g) [6 l7 q* E8 [
$ 85/C7A0 6B          RTL                     
0 o$ Q4 P, ]* k! G1 m0 J. G实现全物品的代码如下:
: i6 P. a" O% e" jStart@ $ 85/C785
$ v$ }5 d" `& rLDX #$ 014C A2 4C 01;X=($ A7-1)*2
4 j- ]+ c' Q9 }$ _2 XLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
/ J9 T* y* g) ^@2 STA $ 6FCB,x 9D CB 6F
" f) c  S0 D( I9 A6 {# Z4 Z: T- ?DEC A  3A
5 X! |) y  g" H  j, j' d& u- UDEX  CA9 |4 i6 x3 m+ g* G) u6 w
DEX  CA
5 g4 W/ D8 W- R& X, n, f: fBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
# Z6 n& h$ C* y% DLDX #$ FFFE A2 FE FF;-|
9 `0 g0 M) O6 ~5 s- z$ C: t# xRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序* d9 O4 F" v, R6 L- j6 o
@1 BPL @2 10 F2;循环$ A7次
$ c' h% |7 b% z5 KRTL  6B
3 k, z+ f! N( i最后改完后反汇编出来的结果:
3 c# O* a& ?1 N( w8 f$ 85/C785 A2 4C 01    LDX #$ 014C              & j& `. b& P5 |8 I2 M3 @
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              9 S& x. d: p: b- x% }
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   & o* o! }! o5 ^/ W! M
$ 85/C78E 3A          DEC A                  
7 H5 A4 e3 E9 d- P$ d+ ]$ 85/C78F CA          DEX                     
9 t, R1 J' B7 r7 C$ 85/C790 CA          DEX                     
- c! j+ O. w) H1 x/ r; l* b5 @$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
! `) z$ {* x8 n1 `1 c  C1 G$ 85/C793 A2 FE FF    LDX #$ FFFE              ;2 t$ f( }+ ]: ~
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
- ~) c# B0 ?$ l5 X* u1 Q! _$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
, g4 W, o( t3 `% {) r$ 85/C799 6B          RTL                     3 G/ F# k$ g# u* [, ^1 y
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了/ U0 q; [7 J% D/ U% K; Y
$ 85/C79B EA          NOP                     ;6 F& M; R" m! \
$ 85/C79C EA          NOP                     ;4 h, S) T! S7 k( \% T
$ 85/C79D EA          NOP                     ;
2 y' w. K& _' w- K" V9 z$ 85/C79E EA          NOP                     ;
/ a$ g& u# [5 a  o6 ~: W0 S$ 85/C79F EA          NOP                     ;! u2 x  t5 W5 E0 y4 R& C' z
$ 85/C7A0 6B          RTL                     ;  P  D) u6 u! `/ _7 t1 d

0 a6 J; _& w1 g0 d[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2026-2-24 12:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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