EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2070 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html. |+ a- Z- T% k) l" u+ d
$ P2 e( U; w7 H5 C3 J( \1 ]4 ?; e
火炎纹章776修改笔记" K+ d: ]! M- @5 ~+ i
2006.1.25
; n8 j% {9 Z" I6 v" X5 C  Z作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
& r- u2 i+ Y2 ^3 s0 F7 W, c( N* ^' j5 I

; M5 f# A! O) C  c% k7 x* ]修改工具:Geiger’s Snes9x Debugger Mark 9
" f% n, ?/ }3 {! u0 |0 W. p. W0 N1 Q8 F$ c
战后升级
* L/ @/ Q6 e# T- Z$ 83/EFDC 90 05       BCC $ 05->EA NOP# N# N* c; Z5 M# @' F+ e, N
                              EA NOP
/ y# g9 b/ L; f: ]3 a) Y1 D
- X9 P  N1 g# Q/ d4 ~2 L+ a战后能力+1) o( [. E- |, o' F) D! J/ A- K
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001- z7 \; M1 i* O) k; B) x1 G
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b& x- t7 _5 M. Q2 b; E3 T

7 W1 L% k2 Y6 u5 W5 N& h武器熟练直接到A& V( G4 I0 G) w
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP2 P& F# u$ i( L- f' N) ^' u
                               EA NOP0 r! X7 v! R# }
存放所全物品锁定! B* K* S2 ~3 R: I
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
% x2 \, G! p2 g2 m& Q5 w+ i: ?7 Y要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
' i. L& ?4 j- O9 o/ w而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128# w5 V1 D: I: }. j  _/ |
件物品,故可以突破存放所128件物品的限制,改出全物品。
4 L/ \# T  \6 @$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
# ^: f/ @. ?4 S3 O, |8 J$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   % s" f* {& q: m% E, {
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB6 {4 `! T$ Q6 X, T) E* N' a
$ 85/C78E CA          DEX                     ) x) z; \% `; v9 [$ p- l/ x, `
$ 85/C78F CA          DEX                     8 E# U( v2 Y3 O/ ^- w
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次4 s" P* `: N/ m3 x! i
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE- P; L5 E8 U6 X! g
$ 85/C793 A2 FE 00    LDX #$ 00FE              $ X4 _0 r9 K5 N
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
7 x  C, ?: v* u  D4 \# X* G. }: a$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
/ |9 F8 ?; i- o. c, p$ 85/C79C CA          DEX                     ( F1 h* V) {  `) B0 R: R
$ 85/C79D CA          DEX                     . X; {3 }6 `, K. {9 E. `5 e- k
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      $ n% q7 j. v) J! N: P
$ 85/C7A0 6B          RTL                     , n' ?- F/ W) _$ V; c& u( U& U' ~
实现全物品的代码如下:  O/ Z, I2 v* y/ p
Start@ $ 85/C785( Y6 |. L/ X0 Z/ M. O* `+ j7 x
LDX #$ 014C A2 4C 01;X=($ A7-1)*2+ Y& {$ n  i' k
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量5 z6 B9 L* v4 {, s# Y
@2 STA $ 6FCB,x 9D CB 6F
8 Z4 a( V* x* ]2 ODEC A  3A  p8 U6 M3 D& X9 F7 i5 }- ~+ }
DEX  CA" J6 O. U% j8 b: \' E
DEX  CA
5 Q1 P- {) r8 x+ [2 HBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
& ?5 d* R4 b" h( q7 Q- M5 I/ sLDX #$ FFFE A2 FE FF;-|. U6 s( z+ m. }0 ]9 X- P: y  h
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
: q' I' N% l" {3 a+ D& m$ s/ i@1 BPL @2 10 F2;循环$ A7次2 X+ @5 J* A+ ?$ a) }
RTL  6B
* |0 \! |* z/ ]# m3 }最后改完后反汇编出来的结果:
2 R+ x3 L9 l. E/ P$ 85/C785 A2 4C 01    LDX #$ 014C              5 P1 f% C+ d$ ^. Z' v
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
. M& f3 w; T7 J$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
1 ~  L$ p  Y0 _4 {1 Z$ 85/C78E 3A          DEC A                   . C% n8 |* U( ?. u
$ 85/C78F CA          DEX                     0 l; a' w' j- W. n* A% j
$ 85/C790 CA          DEX                     " x; a, L- o2 O
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
9 D7 @- B$ P! b5 k9 h3 L5 d$ 85/C793 A2 FE FF    LDX #$ FFFE              ;  H- q1 G" O6 m
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
+ T! N2 Q4 H. W2 \$ 85/C797 10 F2       BPL $ F2    [$ C78B]      : w% L7 o/ s; n8 T$ ~$ P4 [
$ 85/C799 6B          RTL                     % f2 |" I  F6 v1 j6 R6 g% l- h
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
1 j' B" G9 Y4 f' Z1 `$ 85/C79B EA          NOP                     ;) _* \' l* R; _% f
$ 85/C79C EA          NOP                     ;* p$ i8 \9 D2 ^* [+ s# G
$ 85/C79D EA          NOP                     ;
9 S! a4 u- q  I  N5 u$ E: b5 w$ 85/C79E EA          NOP                     ;) k: A2 f, b: s6 Y6 O1 U( M
$ 85/C79F EA          NOP                     ;
+ G8 U+ y4 p( O9 ~6 ]$ 85/C7A0 6B          RTL                     ;
, m. M- C9 p8 A$ i5 J
' T" t) I6 P4 H; T: _[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-9-14 23:32 , Processed in 1.234375 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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