设为首页收藏本站

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

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

  [复制链接]

签到天数: 1933 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html9 B2 E" j4 h/ S+ Q$ \5 C

9 |$ l3 _* i4 ^' h% P4 P0 F火炎纹章776修改笔记8 o  J2 x/ f' [% z1 W" {
2006.1.25
. ?9 P/ o9 h) Y作者:zHAOsILi[EGCG](.zZ~~) 转载请注明0 d: g" Z+ g6 M5 u% h  }0 f
8 E1 i' s7 u2 K: Y
) y3 ?% W5 I4 G! @9 R1 b
修改工具:Geiger’s Snes9x Debugger Mark 9
0 B# B, Y# _% b" g# y
# @* f4 A- w" M, s6 P( x. X4 e1 J  J: r战后升级2 W" x- X  L9 `$ x; h& Y
$ 83/EFDC 90 05       BCC $ 05->EA NOP+ W. B/ J! P1 a0 I
                              EA NOP
3 U0 ?3 }: b* `: B
) g3 J+ a9 \( t战后能力+14 |, ~* d* j5 Q  n
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001; `0 F) ~8 y% [/ d; [$ I
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b9 F3 ~1 t$ o8 |, Q) N
& ^0 y; _! r( _6 p1 D% {7 R
武器熟练直接到A. d8 C6 B8 M8 ]5 Y4 b/ K% M
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP/ y/ ?. q) V* v5 d2 u0 r
                               EA NOP. w+ b- v5 L* }$ Z" ?. c: s
存放所全物品锁定
5 _2 P& m5 {, |" j3 W存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只$ x! T0 i+ }% m4 t6 M7 o, k8 p4 M  Z
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
" ^- {6 ~$ n( Z+ p而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128/ P- l& o4 _  o3 y
件物品,故可以突破存放所128件物品的限制,改出全物品。
+ V# p% [$ A4 ]$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
0 {% |3 u( B+ W5 _$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   $ \2 _. u- I2 t2 P8 Y0 l" [
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
  I: g$ N1 i: x  A$ 85/C78E CA          DEX                     
4 |/ E8 S% q1 x$ 85/C78F CA          DEX                     
4 K3 f. o4 k3 }9 a5 m, }$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
+ ?6 y3 N" C' `* Y+ }$ 85/C792 6B          RTL                     ;返回时X=$ FFFE3 n. ?8 s7 T% D" o$ c
$ 85/C793 A2 FE 00    LDX #$ 00FE              
1 w7 |, r/ k  M1 l" ~) u$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   / T0 Y4 [3 ^! _3 `$ Z: D
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0& {# l: |9 H, Z) H$ G# n% ^
$ 85/C79C CA          DEX                     + u5 `5 L! R8 m9 Q/ H4 }; i* P+ ~
$ 85/C79D CA          DEX                     
9 U5 D2 L9 k& _$ 85/C79E 10 F6       BPL $ F6    [$ C796]      1 _: \: b# ]# P0 J- h- T: C6 d
$ 85/C7A0 6B          RTL                     & x; h9 G# ?9 u
实现全物品的代码如下:
- Y$ B/ M% Y, M6 JStart@ $ 85/C7857 j  l/ Z  T5 K6 W7 |6 ^
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
+ k* h3 C% t+ J7 pLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量7 f! }( z7 y" F. h
@2 STA $ 6FCB,x 9D CB 6F0 F* ~8 {9 `' l4 W8 ?" @
DEC A  3A8 D  t; z8 A# A0 g7 B! p% F* b
DEX  CA
6 |5 w3 R/ \" o4 i$ pDEX  CA
; h" W( a# K' _6 l- s& U: U' qBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间% ~- o' I2 G5 b+ z# }7 J
LDX #$ FFFE A2 FE FF;-|1 ~. r) f; d4 i& ?- e7 K
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序$ S+ r7 T. P+ E
@1 BPL @2 10 F2;循环$ A7次
1 @; l6 w& e' |9 S( Y( ?RTL  6B
: W0 b! {$ s- z7 _3 T/ i最后改完后反汇编出来的结果:* v2 p( p6 g; j5 ^1 S. x7 W
$ 85/C785 A2 4C 01    LDX #$ 014C              $ J9 T2 s5 z$ E! C
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
0 b2 b( z9 |; O- @9 F$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   5 j* K. L7 b# J, S) H% \
$ 85/C78E 3A          DEC A                   7 L+ v% h) y8 }' c( O& b
$ 85/C78F CA          DEX                     + _% b! [, U0 `6 k( _
$ 85/C790 CA          DEX                     - n- f# ^3 V2 Q& K( I4 v5 U2 _
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
. H3 E7 D' m! w$ 85/C793 A2 FE FF    LDX #$ FFFE              ;* O3 m& O* t% m/ c& J; D
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么3 H$ o+ \7 [& p1 H9 E
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
- D0 ^3 P. h. {6 n7 A  g$ 85/C799 6B          RTL                     & a1 {2 V) L% U, Z
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了9 f# ^4 t& X' C/ w. `
$ 85/C79B EA          NOP                     ;. j: |9 E- P6 {& g4 Z" V5 C" @
$ 85/C79C EA          NOP                     ;
' p+ p: A) K: _0 Z$ 85/C79D EA          NOP                     ;" G' }  X' R1 m, x; v' x
$ 85/C79E EA          NOP                     ;$ _+ g; Z% M" Y: T. A6 f
$ 85/C79F EA          NOP                     ;8 c7 y) @; ]; L* p
$ 85/C7A0 6B          RTL                     ;
" |5 V- p* ], ~+ j
& ^! I; v; L+ l5 B! }[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-26 12:35

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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