设为首页收藏本站

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

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

  [复制链接]

签到天数: 2032 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html0 w0 w$ f, x' w" y( ]& G8 C

5 A* E; T) Z! j+ D3 g& U, k, |1 [火炎纹章776修改笔记
+ z, b' K4 M6 z6 M* P  {3 E2006.1.25- [+ Y% {( G9 T+ {0 w6 d
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明+ G1 t. C1 A" `0 ]4 R& ]* E
& n* Z8 A7 F- B! _
  M# I( v) S3 y5 V3 x# K
修改工具:Geiger’s Snes9x Debugger Mark 9- ~: w# ^4 V; I% e4 F, F
9 O: \  R0 p5 k% c, m
战后升级
. ]; Z7 g& ]( v, s, _* V+ ?$ 83/EFDC 90 05       BCC $ 05->EA NOP$ ?1 x1 d2 g% g+ d/ s
                              EA NOP  O/ A! w8 [0 Z* F9 r
5 o' H# v  ]  _# C. V' D
战后能力+18 e; Q6 @) m4 I9 k9 P2 V+ Q
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00017 {! r" f8 b2 A! {
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
2 W7 P8 A' j& O/ @+ R+ Z5 K7 b9 I
6 q6 o5 ?4 N/ @武器熟练直接到A
& Z! E# `$ _& M8 y$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
# J1 h) i# q" _* y, E1 x+ m                               EA NOP
, E0 @# c; H: F0 Q存放所全物品锁定( j4 U$ Q, P; |1 q! h+ J( u7 `
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
$ ?0 j7 h( b6 u2 r9 n- s. v要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
9 m* B6 c4 |, p而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
* z6 B' x! _+ [: R, J+ W/ {件物品,故可以突破存放所128件物品的限制,改出全物品。
  x1 V) h/ ~% r/ K4 a  Y$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*23 a( o, v( S1 H8 @
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
$ h* z8 ^' K" u) a( _* m' H$ O$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
0 p1 \& i) D8 C' K) e$ 85/C78E CA          DEX                     ; g/ @4 q7 f9 o) Z& `
$ 85/C78F CA          DEX                     * p4 e4 D6 i) k+ j/ }* L
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次) P9 B: Y$ [  j" T
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
4 q" p: a. {6 ?! x% i4 R$ 85/C793 A2 FE 00    LDX #$ 00FE              7 D3 ~" O  U! A4 h* u
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
; A% B( k; z$ Q- i; m$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
5 s6 v5 X/ }8 o+ H$ 85/C79C CA          DEX                     
6 N4 _' t: x8 r, ?$ k$ 85/C79D CA          DEX                     
6 r6 n( _' [4 F1 [5 z0 l6 C$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
& d. q3 e2 l, f) G# M& p$ 85/C7A0 6B          RTL                     2 t* T; N; J" |3 H4 ~3 p6 y
实现全物品的代码如下:
  k7 |9 X4 i# W  A- E, x! rStart@ $ 85/C7855 N( \# O/ I0 k, r
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
3 ]  d8 W2 D8 b! T$ p7 @' E6 XLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量* Z1 i) J% _' _  t! ^# N. \
@2 STA $ 6FCB,x 9D CB 6F. _; r, r3 ]  Z% G- l( C4 d5 Y/ c
DEC A  3A0 ~8 x: L) g5 }- T, T+ H! T, u- O9 e
DEX  CA# V* U4 t" [" X) n% i/ ?6 S
DEX  CA
6 z# g- O- E( ^+ L2 j6 bBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间4 q& s: Q8 j* j8 c/ o8 \
LDX #$ FFFE A2 FE FF;-|9 f- c8 `2 l# H  N0 |! M3 R
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
* y0 m3 H( R1 V" E" i@1 BPL @2 10 F2;循环$ A7次& o9 E1 ^' c9 b+ a# B
RTL  6B
4 V+ t  a1 Y  X( a最后改完后反汇编出来的结果:$ W" c, v2 R3 v& k2 Y
$ 85/C785 A2 4C 01    LDX #$ 014C              ! P7 H* M- \& }2 }" ~
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              2 J0 X# s% t% t' }
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   ' H# r# H+ Q+ |/ G! K4 ?
$ 85/C78E 3A          DEC A                   : M3 i- z: H0 d7 J7 i3 C: |. E0 O
$ 85/C78F CA          DEX                     + j1 J2 t* t, v4 A1 R  }' G
$ 85/C790 CA          DEX                     0 p* g/ v& o( J" |+ b3 Q3 \
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间5 C3 ^  X7 w: p
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
! r; ]5 W" e' _/ G8 l3 B: b+ [+ a5 d) c$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么4 b" J% x$ H! q: u& |" |& U4 O
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      ; d9 f4 {* ?: Y# r4 W& \7 B- ~, W& K
$ 85/C799 6B          RTL                     
. N3 R/ m2 u% C$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
3 ]8 k/ P( g1 {' ?: b( z& {8 A$ 85/C79B EA          NOP                     ;
5 _  N6 J1 ~. H- y( Z$ 85/C79C EA          NOP                     ;
7 l0 r. ?( c1 k% c4 |$ 85/C79D EA          NOP                     ;
, u* Y% H( N  L; d# E! D$ 85/C79E EA          NOP                     ;' |% Q$ E+ j* r/ L, f
$ 85/C79F EA          NOP                     ;0 Y# O: t: p+ o9 b+ i+ j
$ 85/C7A0 6B          RTL                     ;* G7 A  E6 h* ?! R
  z! b" C% A! o  b
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-5 01:25

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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