EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1813 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
1 ^4 N5 }0 x- W$ Z, h1 `# O/ X0 q1 j( e! i$ S
火炎纹章776修改笔记8 _: z2 }5 C0 `- ?' L5 H
2006.1.25
7 V1 f9 ^- }8 f* G  g作者:zHAOsILi[EGCG](.zZ~~) 转载请注明' Q9 ]- u* K/ ?( \

4 M. }: Q- ~, O5 `" P& w! `; o' c5 W  P/ h# ?+ n
修改工具:Geiger’s Snes9x Debugger Mark 97 j( s) H/ t# a2 T' g+ O( Q9 [

: U0 [2 |% ^8 Q! @0 c2 R战后升级
' ~" E& y+ _! l% N$ 83/EFDC 90 05       BCC $ 05->EA NOP* I! q8 @  i' _8 f6 R/ |
                              EA NOP
# u; X4 d: ^4 P3 _
" n$ M! A9 h$ u0 X* y  v战后能力+1
" z( _0 ~+ |, R$ v7 z$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001: C/ G' W1 V" W) s5 p; Z  F
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b4 u5 K# J3 o- }
% n. o# v* E0 `+ p
武器熟练直接到A' @4 Q( F' M: h& Q
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP9 [; s/ g" `4 X( _
                               EA NOP
' I/ j/ A9 K" {8 J6 K. u3 l存放所全物品锁定- R0 E  J/ d) g) \2 E2 S
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
  [, \* g- Z/ N' H( x, M% ^+ \要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,+ g2 [8 L  P  g, M  G( e
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
0 d1 `* U1 z) @, [! P/ s* v# h件物品,故可以突破存放所128件物品的限制,改出全物品。8 }% k9 r6 r( ~' _9 [/ t6 v5 @
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2# ~5 r3 X7 j0 W) l
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
7 U: Z5 b& o: I: m6 I" s$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB9 X. I, F* b# ~7 L* o# M# R8 J
$ 85/C78E CA          DEX                     ; u0 I$ q4 i7 U) j' o
$ 85/C78F CA          DEX                     
' U& v) |7 G  |/ p$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
$ G' m: p, r9 i# X7 s7 ?5 [$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
. d5 ~, d: J1 g$ 85/C793 A2 FE 00    LDX #$ 00FE              
* ~5 X2 |. y4 O) F% r3 J4 `$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
+ P% y# H6 M8 h0 f" r9 \( w9 W$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
& g& E6 A* q; Q3 d2 q  L" r$ 85/C79C CA          DEX                     ' B8 P1 P! q+ m- k1 K& Z( i4 z
$ 85/C79D CA          DEX                     
) m4 h' z: f6 y: q# ~* G$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
# f, `* J  ]: |; x( }; g( x( E0 S$ 85/C7A0 6B          RTL                     7 l; _: |( t" ~& M) R2 y0 z0 j
实现全物品的代码如下:  m9 M' H) \0 l* R* @
Start@ $ 85/C7852 g0 j& O! o9 T
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
/ A1 `3 s( G" L6 [1 uLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量) Q& Z" w" ]  I$ ~% m
@2 STA $ 6FCB,x 9D CB 6F
2 t# U- W8 g6 t1 `; i# @DEC A  3A8 u3 h) g: p* ]! K2 _
DEX  CA
5 `  R% b! G" w0 r& g. y( f* Q1 }DEX  CA
" B8 v& F; ]& E! T( d7 c% v# yBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
# t$ I( Q% b, h% @# KLDX #$ FFFE A2 FE FF;-|( o7 o. `: B5 _
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序) o9 y! N2 T. k2 Q- Z. t2 @& ]
@1 BPL @2 10 F2;循环$ A7次
$ e: \. F1 [; t' t+ ]" P' N# lRTL  6B: n3 K2 a. d) H' q5 _
最后改完后反汇编出来的结果:
1 z5 B7 e) P$ J, S) f* ~$ 85/C785 A2 4C 01    LDX #$ 014C              3 R) V* E- N: F" \+ j3 n2 F5 x
$ 85/C788 A9 A7 3C    LDA #$ 3CA7                O1 I- e0 K8 W# u, Z, b
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
6 c' F2 \; `  s) c" H4 R$ 85/C78E 3A          DEC A                   - ?( s  l$ f9 y
$ 85/C78F CA          DEX                     5 b7 O* F4 N0 {, T6 L! `' t
$ 85/C790 CA          DEX                     7 T& v. K" k7 ~4 P
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间; l3 {" ]1 P# @' L+ c
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
" E9 i7 h& N" |' u: w3 V$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
; L& l& g( T0 F# U+ z$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
1 v& i2 g9 Y4 s1 h5 V$ 85/C799 6B          RTL                     
) X% h$ L5 C, s  t$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了, x9 G- m( B# @
$ 85/C79B EA          NOP                     ;
) j( P) h* b4 {) u/ X: B6 c$ 85/C79C EA          NOP                     ;
& h, b+ x& S$ `$ 85/C79D EA          NOP                     ;; q+ \; o$ Z; m  L. I# J6 b" t0 i9 v
$ 85/C79E EA          NOP                     ;. ~7 T+ r4 X! s  X% _! Z! b
$ 85/C79F EA          NOP                     ;7 w, L) S/ U2 S7 Q& h* @+ z$ G- j
$ 85/C7A0 6B          RTL                     ;! C) Q: Q$ g/ ~! p& r7 l
0 B' }4 l3 ~0 u0 E
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2024-12-29 09:10 , Processed in 1.056641 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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