设为首页收藏本站

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

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

  [复制链接]

签到天数: 2052 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html% |1 f1 T2 ]1 l4 Y' U

3 K5 o$ p- i( y+ f" E  o. V火炎纹章776修改笔记" p- ]7 p1 ^& X0 z3 o9 x
2006.1.255 h* h2 s; g4 H. U$ K8 z
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明7 r& `9 F0 @& y4 s, t

3 }' g9 W# R1 Z- @
; e, n& ^! t3 J! i7 J* b修改工具:Geiger’s Snes9x Debugger Mark 9, y9 V2 n+ H9 L  X' G( z

) {5 P. B- |" D* v) b3 T战后升级
0 `7 W0 f6 |0 I! {4 Z$ 83/EFDC 90 05       BCC $ 05->EA NOP+ y& ^. s$ b' K4 R0 |6 Y. b# U
                              EA NOP
; d" l6 ~* b3 A4 F0 k/ I
5 z' s) c/ r, w% X% }, ^战后能力+1  y$ o' n+ J1 n) g7 `2 p  y
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
! k2 v+ [2 Y& t8 ?5 @有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b( C0 w4 |1 `, U6 j1 _" m- d
, v8 P3 @) z  P  l
武器熟练直接到A! t8 f% n! G6 h* J' k
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
& y6 x" x1 f- C& [0 R& Q" D                               EA NOP. |! l9 v9 n& F% y
存放所全物品锁定1 G! M6 t+ N# h# s
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只$ w! H# U, A% m  I2 G' Y( ]
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
: i4 |6 _0 X' i/ T而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1285 j) [! ]) j4 g) w5 K' O/ a
件物品,故可以突破存放所128件物品的限制,改出全物品。
, j1 k7 C) p- c" M# h: J' w$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
! L2 ]  t, _/ c0 [5 o$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   " G; I6 j( p+ M4 U2 N0 N- t) C
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
4 J" Q2 N. l1 c  Q& i6 j- K* v9 m1 L$ 85/C78E CA          DEX                     3 U1 K; l6 X2 C2 ~; T
$ 85/C78F CA          DEX                     
* P/ p/ N: H2 J  {; {; \6 B$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
  t9 [+ ]8 Y1 Y, O$ 85/C792 6B          RTL                     ;返回时X=$ FFFE, _3 d2 v( ?: V! E/ ~& y$ p5 ?
$ 85/C793 A2 FE 00    LDX #$ 00FE                N. O8 N& N. w" g9 M: }! R
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
0 B7 _$ }( `8 c. Z5 ~$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0' c6 r+ D  O% J7 X7 c7 f& F0 l
$ 85/C79C CA          DEX                     
$ ]# [( D) S# ~7 r* u* o4 k3 ], c$ 85/C79D CA          DEX                     # G3 K- G1 _. w( D5 f6 _+ V
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      ' v0 a, s" W+ j8 ^
$ 85/C7A0 6B          RTL                     
. n2 ?. h1 L6 g; ?: S7 `% Z实现全物品的代码如下:
; v9 J- P2 h2 z  L/ ZStart@ $ 85/C7858 Q- S( l! D4 L, |  n: }0 N5 t, P
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
2 |# i; m% _4 hLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
3 l7 b6 l9 K4 h# {/ B@2 STA $ 6FCB,x 9D CB 6F: f# k! h. m& A/ r4 A
DEC A  3A
* Q6 N, e  h8 K4 z  @. `0 `# \DEX  CA
! V4 |; D! f/ H( d1 r  C0 B' R4 bDEX  CA
! R& v( {/ v' ?0 hBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间# u. q# E  v. }3 L! n% \
LDX #$ FFFE A2 FE FF;-|
$ n) @! X" ?! H( ?+ [8 i, LRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
# [" W. K' t, U7 Z; L7 y" ~@1 BPL @2 10 F2;循环$ A7次( }; c: S9 v; {. Y9 B7 ?: J5 w
RTL  6B1 g8 Y) y- F" ]  v0 w
最后改完后反汇编出来的结果:2 w5 g' t# ^* w; ?
$ 85/C785 A2 4C 01    LDX #$ 014C              
% ^& g$ n) j) Y  j$ 85/C788 A9 A7 3C    LDA #$ 3CA7              . O3 \# K, f  X. L  M
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   9 T, ^# F$ F; W, t; w
$ 85/C78E 3A          DEC A                  
( ^! J4 |7 h0 q* P& C3 u7 G. u$ 85/C78F CA          DEX                     8 Q4 [( S& _5 m
$ 85/C790 CA          DEX                     
7 K' l0 {- A- i+ c- Y( L0 _$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
% h1 r) v' c0 O1 _+ K4 F$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
) l6 w$ ]" y9 |4 O' `3 ?4 t$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
  E# `2 w! b# V( ]' F7 N0 |$ 85/C797 10 F2       BPL $ F2    [$ C78B]      5 Q0 G% s' S2 _8 P( f  u
$ 85/C799 6B          RTL                     . {7 A7 _- p* u
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
# i8 X% j6 w( o' R: t& g/ [! W# w" U$ 85/C79B EA          NOP                     ;
! B8 [6 M0 g1 N# p$ 85/C79C EA          NOP                     ;' Z, y6 Y+ ]$ a, c% ]& S( B0 H
$ 85/C79D EA          NOP                     ;
( U' Y# G5 W3 W! a3 k: u$ 85/C79E EA          NOP                     ;
# ~& w( O' B: Q6 g4 G; ^- M/ m$ 85/C79F EA          NOP                     ;
; `- Z# F+ d0 H- A$ R$ 85/C7A0 6B          RTL                     ;
9 s% _) Y8 ]- x' y% _+ k+ A8 P$ f; t2 m9 U& v
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-25 22:59

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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