设为首页收藏本站

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

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

  [复制链接]

签到天数: 1952 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html, @; T0 G4 C* p; X7 t0 X; |

: a! t4 m% P: W1 t" @+ J3 x. {+ Q( s火炎纹章776修改笔记
$ }& S7 q+ n" W% N- Y, K& h2006.1.25
8 m# B: Y5 W' {+ p作者:zHAOsILi[EGCG](.zZ~~) 转载请注明8 v2 i7 `5 q  s) n( w
/ j# f2 z; T& h& m; u

9 |. A" o1 ^, l7 p6 l# @' F) j修改工具:Geiger’s Snes9x Debugger Mark 9, h# }! s  @- f3 x, g2 N

0 G) ?1 D4 X+ {  m# v. F战后升级% w; A5 i" a* }! V: A
$ 83/EFDC 90 05       BCC $ 05->EA NOP
! d' L' D; M+ ]( H                              EA NOP
$ c5 T$ |% R5 H; n
1 S5 s( q% r8 L% v# N% c战后能力+1# m4 `/ a, e- ^! f! O; q% _* F: d
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
- e7 O- }2 E' \! D% @8 s有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
6 P$ R6 B* G2 H! _- S2 _
( Q! K& S- P- ^, U* L武器熟练直接到A
  A! j) Q$ D+ i, c$ 83/E4E9 90 03       BCC $ 03 ->EA NOP$ j, f+ x. P# Q8 I
                               EA NOP- r0 t$ w1 I3 K, g) R% u0 ^+ Q
存放所全物品锁定
" r  f* p% @6 H" y存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
% j4 ~$ h5 q! W7 g要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
" e% N- m( L6 S; k3 w而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
" @3 I( i0 e* R/ A# M件物品,故可以突破存放所128件物品的限制,改出全物品。
  a. p2 C/ q9 K( }/ K% X) @" t$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
( M) }3 P" `- k* r: O4 y$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
! ^3 @4 r0 W# V$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
0 R- V$ x1 L7 \& l3 h  P$ 85/C78E CA          DEX                     
6 A1 W- G0 f) C1 h9 c5 a- x1 K$ 85/C78F CA          DEX                     
3 c1 o4 c# w/ i4 ^0 L$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次# O: a! m- s* e! d' ~: W7 r
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
4 y, }5 t+ M  R3 A7 u. N$ 85/C793 A2 FE 00    LDX #$ 00FE              
/ Q5 [. W" L; a* N* Y$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   # D; b4 [2 Y: J! G! J
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
8 v# R, X( E8 A3 ]( [5 c$ 85/C79C CA          DEX                     3 A% ?  {# g4 C
$ 85/C79D CA          DEX                     ; M8 |# F3 \5 @
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      $ }* U' N% Y( f! X/ d- _& I6 h
$ 85/C7A0 6B          RTL                     * ^4 F) r/ a2 M) Y& R, T! d
实现全物品的代码如下:
7 N' a' _8 K( zStart@ $ 85/C7853 F+ x' ~+ S- g4 f; [+ R
LDX #$ 014C A2 4C 01;X=($ A7-1)*2& a- Q$ r9 J5 N! w
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
! O4 Z: X. \8 i" i- q, G@2 STA $ 6FCB,x 9D CB 6F4 P2 n9 A5 s& e$ k! ^# c$ m0 x
DEC A  3A  Y/ Z; S2 t3 }: L
DEX  CA* {: b4 Z- s4 ]# X# @
DEX  CA, v) \" R* [* u0 }/ b" [5 f# e4 F' N
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
2 v8 G0 I) ~! U) A4 X, @# G$ e3 [- z, DLDX #$ FFFE A2 FE FF;-|; v  q& o7 z  \4 M
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序4 p' f% e1 C* i# t4 e8 L" [
@1 BPL @2 10 F2;循环$ A7次+ d( w' J& k( @% C
RTL  6B/ `% E3 p: T" M
最后改完后反汇编出来的结果:5 F+ S( z& N. v" _
$ 85/C785 A2 4C 01    LDX #$ 014C              
# U4 W5 `$ b& i( a% d$ 85/C788 A9 A7 3C    LDA #$ 3CA7              : h& x, B" e! {5 t3 z
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   $ n) ]3 m3 T& b8 @+ }, j+ i* j, D
$ 85/C78E 3A          DEC A                   & Q3 e; E4 |; B- _" W
$ 85/C78F CA          DEX                     : S, ]0 `5 b, \
$ 85/C790 CA          DEX                     2 F4 U1 N6 Y9 A
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
0 g! K4 I' q( F- C+ o, G0 U5 `4 R9 R) }' O$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
( ^& m; f( Z" R$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么) s" o" j! ~' k
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      ) C6 ]: H; i  H5 r+ X2 [- V6 F
$ 85/C799 6B          RTL                     
; p9 h6 m) f6 Q9 j$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
+ K+ @% x& T- W! W( u- c1 A$ B$ 85/C79B EA          NOP                     ;
+ H6 j% c2 [% J) I6 E$ 85/C79C EA          NOP                     ;' |# \1 C' u- V
$ 85/C79D EA          NOP                     ;
  X0 ?4 o& N5 C) e$ 85/C79E EA          NOP                     ;
. ]9 P3 a2 }0 s' t# Z5 b' G$ 85/C79F EA          NOP                     ;8 b3 b4 x- ]! c2 I0 g2 {
$ 85/C7A0 6B          RTL                     ;/ _9 u0 U( a. F
8 y6 [( t8 v1 g6 t
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-16 13:52

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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