设为首页收藏本站

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

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

  [复制链接]

签到天数: 1933 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html4 P% i; f! Y  B" t9 A2 h2 w
: F- A5 v7 q/ ^" @6 _. F8 h
火炎纹章776修改笔记
; H/ ~/ ^5 E' Y8 ^: @2006.1.25. P' O$ P, {. B+ L
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
+ j  _; E5 K% P
8 @4 s1 @( ?' U' h/ j
) ^  ^( I$ F( H5 ?* O修改工具:Geiger’s Snes9x Debugger Mark 9# e5 C+ Q! R, z; Y4 G, u9 b
$ P* O- Z- z* K5 s* {3 [' ]. k/ h
战后升级
  J& o8 o" s7 f$ 83/EFDC 90 05       BCC $ 05->EA NOP
8 ~/ G( v: h% N                              EA NOP
4 X" E6 }; ?0 B. k& I  W, v8 e8 s! v! t: X, L: s5 j( E% X
战后能力+1) ]6 u0 A" X1 a7 U* J* J! K; m: Q
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001( r. z' S' g7 h% K- ]" Q' I
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b) v! N4 j( X2 h+ h9 m7 f

: |& Q0 Q: @" ~# G$ m% ^武器熟练直接到A. s( n4 V( }5 W  o! C! A, a: b
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP  K  y' X$ X* E* T
                               EA NOP
" |8 M. M2 K, \0 ?2 R存放所全物品锁定2 R. e( A% i4 S  a) o
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
/ R1 U2 y! @/ F: P% }要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
5 |* A. K- l; q5 |: o而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
; N$ ^7 A3 F% t4 Q1 Z6 N3 ~件物品,故可以突破存放所128件物品的限制,改出全物品。2 O# H3 Y* p4 s; G- g
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2" ?( K* z! Q  e. j& M+ h9 v) c* j: \
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   6 l0 T1 l" O0 d- G. {, o7 h8 ^
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
: J' x$ D9 R( ~# s; d; u! V$ 85/C78E CA          DEX                     
: C- L/ k" I6 }5 ?* `$ 85/C78F CA          DEX                     . I" `6 b) ^: M  ^+ Y& n
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次! R2 B/ W4 S; M& [# h
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
1 n: Q8 Q; m& |0 z8 U$ 85/C793 A2 FE 00    LDX #$ 00FE              5 R4 N3 Z6 a$ ~
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
& g+ J! l& G: L3 T- ]; v; }$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
$ w; F9 l2 Z, g7 o$ 85/C79C CA          DEX                     ) \' P. A- Y: l
$ 85/C79D CA          DEX                     
! N! W$ @" c7 A- U0 B3 X$ 85/C79E 10 F6       BPL $ F6    [$ C796]      " F& \5 v! J" a6 i- P
$ 85/C7A0 6B          RTL                     
0 T, M; h9 L1 j8 O4 K  j实现全物品的代码如下:
+ S2 \8 l3 h+ q! eStart@ $ 85/C785
5 c7 c. T6 C8 ULDX #$ 014C A2 4C 01;X=($ A7-1)*2  v. h4 y0 o9 s7 r0 }' m4 r8 ]3 ?
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
2 c0 E0 E* w; I' y! j- G@2 STA $ 6FCB,x 9D CB 6F
  @  z' I  G* K% h& h' {' GDEC A  3A; N, R7 A" K9 l( U
DEX  CA
" y+ V6 f- ~& X8 {; c2 fDEX  CA
  U, }# R2 f8 B5 h' ~& G2 J$ sBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
7 Z& y6 r/ b1 R2 j: ~LDX #$ FFFE A2 FE FF;-|: v# x1 v  ?1 p
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序% q( z- Y5 S. M3 H  w7 N
@1 BPL @2 10 F2;循环$ A7次1 I' e- ?3 y! r4 g4 @( n! _- f0 u* |
RTL  6B
$ E1 t& p( ]; W4 N6 Q5 p' ^最后改完后反汇编出来的结果:7 W6 f" M( v! {
$ 85/C785 A2 4C 01    LDX #$ 014C              
6 g5 |/ ~/ m# h6 E+ p9 c9 t$ 85/C788 A9 A7 3C    LDA #$ 3CA7              ! Q7 L  C5 u: e5 n( a" X  b- X
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   9 x. z3 W, I0 G4 @2 X
$ 85/C78E 3A          DEC A                  
0 c6 j  |+ `0 p$ 85/C78F CA          DEX                     
1 F2 f1 U2 F6 ~3 e$ 85/C790 CA          DEX                     
) b) x& J5 L" F- C3 c# F; U7 }$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间7 n2 @+ i4 I& z$ a; D
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;' s2 B# g% ]6 X1 i2 e
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
$ f: t' i: i1 Q$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
  n( G, d; r1 o/ }$ 85/C799 6B          RTL                     / R1 R  v- O/ V. w6 m, s( D3 @
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了/ _2 M# b$ `& t( x* r3 I' c/ |
$ 85/C79B EA          NOP                     ;
9 |4 o  u# V* l/ U8 l$ 85/C79C EA          NOP                     ;
% g5 S$ O8 x9 m  z  u$ a- g$ 85/C79D EA          NOP                     ;7 x# {' t7 V) ^4 Z' |) P# A& `
$ 85/C79E EA          NOP                     ;
, t, e' O* d: f0 J$ 85/C79F EA          NOP                     ;
7 |+ t- Q& G% A: x, {. z: Z$ 85/C7A0 6B          RTL                     ;  G. Y+ _2 ^+ l9 m8 x
3 A0 q$ R+ D% {0 G/ @# R
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-26 14:22

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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