设为首页收藏本站

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

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

  [复制链接]

签到天数: 1934 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
) \! O) N' P# u8 [3 g5 s) h0 T( k! Y( i) S( Z
火炎纹章776修改笔记
- S/ ]; ~: N% e5 d1 r( c4 o2006.1.25
/ V% R. s0 T6 i! s4 }) ^作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
- @* f; D: c! m, h2 b1 h. N" x/ B/ u5 R

4 y( v( W; [" w修改工具:Geiger’s Snes9x Debugger Mark 9
. d! l1 {; s6 }9 }# k5 z0 T1 f$ U9 X5 \
战后升级
3 l0 |4 z+ g3 I* X! v& u, x  |$ 83/EFDC 90 05       BCC $ 05->EA NOP
$ m% S4 z, m+ x& l6 |9 J                              EA NOP
( F8 G+ X: B8 l! K( u3 E2 U1 n9 z0 {: Z0 {4 F
战后能力+1
% a8 p: |. p* G" s, b" s5 M: n$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
" B! k# s2 g/ B: {有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
0 }# Z* U+ w/ B) G) Q8 g, g: z; j( |- ]
武器熟练直接到A# R. x, o( a& @& ?/ ]
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
" E" e8 y) i" ?8 O" W; L                               EA NOP: X7 o6 ^3 q4 Y8 [
存放所全物品锁定
+ ?4 W7 O4 G. G: `1 `1 n存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
$ i0 `1 H0 A0 I9 {% a' R' ?) @要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,& T- E6 n3 l+ A) ~. E
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
/ r6 Z* L; P; @' y5 x  j, V件物品,故可以突破存放所128件物品的限制,改出全物品。
) e, J+ F; N( `3 c$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
5 m2 t/ D# y6 z/ [6 }' O- t# C' v$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
: z- y2 U  v; G" X$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
& u, b! @; a" F! r# w) T2 m( `$ 85/C78E CA          DEX                     
- K) W7 D  l' A$ 85/C78F CA          DEX                     % V. Y; L1 ~9 d, a/ j  g
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次0 B+ p9 L1 M: n% E' u6 n: W& b
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
+ g" ?" _& C5 E$ 85/C793 A2 FE 00    LDX #$ 00FE              9 D( B, B' g- ?: V
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
( `& E1 I0 c- m1 Q. A$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
4 {$ L: r. ^& D, e3 u, Q5 L$ 85/C79C CA          DEX                     ; r, P6 k; Q& N# C! a
$ 85/C79D CA          DEX                     
. A* q& v4 J- X9 e+ x$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
& N4 k" _% @2 @3 D) g$ 85/C7A0 6B          RTL                     1 u/ u1 J0 j5 `" S+ m( f7 q, C
实现全物品的代码如下:
) d- o2 t2 W9 ], ], K; E$ s7 H# H4 }Start@ $ 85/C785$ w4 z  B! q+ c7 o3 y1 `
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
0 w  d0 `# I% A1 w8 LLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
& s0 W- e$ j3 A; A@2 STA $ 6FCB,x 9D CB 6F
8 t7 V. n8 n1 h0 b9 S) MDEC A  3A
# D" e% m8 g( G- Z: [: i" b- f' hDEX  CA
, }4 v8 l! a- c8 ODEX  CA, T( ?% O4 h' F' M( k+ W0 S
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
# s6 y' k% `) J4 MLDX #$ FFFE A2 FE FF;-|
) p; N- h4 x( h4 Y! LRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
. Y) W' Q3 P5 u& f  A) T4 q@1 BPL @2 10 F2;循环$ A7次4 ?7 E5 D7 F6 M/ o) @* \2 L
RTL  6B
) B$ T$ i& P0 h5 T5 r- k" y$ T8 d最后改完后反汇编出来的结果:0 W5 O) t+ ]6 P* g1 p( m
$ 85/C785 A2 4C 01    LDX #$ 014C              
9 r! ~/ i, L% k& }4 F$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
9 _( B$ S% ^7 U/ v6 o4 i! B$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
. @5 H4 K: d8 M' w, d0 K$ 85/C78E 3A          DEC A                  
! Z! s% J! U$ q$ d- {8 i1 {7 r9 q$ 85/C78F CA          DEX                     
+ ?9 y9 N! G9 @6 Q4 n6 A$ 85/C790 CA          DEX                     
6 y" l! x5 a1 x) x. R$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间. h8 Q: W9 {  \. I7 u2 `6 |8 O' z# ~
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;3 F' d8 X: J* S3 R9 X
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么. u+ v( C3 r: V( c
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      # I' _% p1 Z% K, l& d0 s# l# {7 r
$ 85/C799 6B          RTL                     . ]& _; L% n7 v( u5 b  S; K: F
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了' Y4 @; u) g! X( k
$ 85/C79B EA          NOP                     ;) m" u/ h  ~( [9 r4 k2 o! R
$ 85/C79C EA          NOP                     ;
7 s0 D* W8 C7 B) \$ 85/C79D EA          NOP                     ;5 e3 N( Y2 j- `6 ~0 O
$ 85/C79E EA          NOP                     ;+ ~4 {1 r- D4 X# h
$ 85/C79F EA          NOP                     ;; f, B' g# ?8 t6 S4 `$ ]$ L9 P
$ 85/C7A0 6B          RTL                     ;
9 x' |2 v& V2 y+ `5 s7 D0 H7 J) U$ ^0 `& S$ a0 [, n+ e; Y
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

发表于 2009-3-10 12:41:38 | 显示全部楼层
学习了,但是有些专业术语还是不太明白
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-26 16:00

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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