EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2181 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
) M/ l& ~4 Z' ]2 J% ?; Q$ z9 w
" B2 q' `6 S7 g火炎纹章776修改笔记
5 o4 ~2 y3 N8 g! I2006.1.252 x5 p1 [8 A( i, j
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明/ t0 s9 W8 f  D

, }+ p- E; T8 ], ^8 ^" x4 l) r  F( K4 m; \/ M
修改工具:Geiger’s Snes9x Debugger Mark 9, ~9 a4 s. \5 i6 t+ y# H
8 a6 s9 b* q5 C& u7 {% t
战后升级
$ ~1 y6 R4 c/ t( }) B) W" u; R$ 83/EFDC 90 05       BCC $ 05->EA NOP" y8 d8 W3 ]' q& X; K/ d
                              EA NOP8 D& v1 r( n' s$ k, K

# z4 _& Q0 `0 ^: q8 h( p. j) Z战后能力+18 u; p( f% p4 y/ y- Y" W3 C
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001) V: x) K+ i7 m  f. C
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b6 G8 `# U; o1 G) E; p

9 b5 R0 j' K7 x( D9 b武器熟练直接到A
7 e% h, b# k0 b+ }( g% ]7 f6 [$ 83/E4E9 90 03       BCC $ 03 ->EA NOP( g1 H6 [9 S2 q8 v
                               EA NOP
' r( g5 @& D6 w' X. @5 y! ?6 [存放所全物品锁定
+ ^4 D7 q9 H3 i8 s) b5 A9 m, N存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
, |) b7 g( w  L& b, e6 V$ b. q要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
5 ]1 L. O+ Y: Q) x# P8 w" V  |而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
: U5 l" a. T) O, _  I8 s7 ?件物品,故可以突破存放所128件物品的限制,改出全物品。
; K/ [4 }1 l' r! v4 O3 B$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
# i* C8 w# s$ Z! \6 z$ O$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   , B" e/ [9 `$ o4 k( v+ x+ p
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB. P0 D; f  Q: O4 T  X9 h! h# R
$ 85/C78E CA          DEX                     
7 l: c+ U2 i: D  `$ 85/C78F CA          DEX                     / a8 ^  G( a1 r9 n3 i6 t1 a
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
2 {$ k1 i- r# W5 r- Z$ s/ p$ 85/C792 6B          RTL                     ;返回时X=$ FFFE9 M! a5 O1 P  K
$ 85/C793 A2 FE 00    LDX #$ 00FE              
) P: P: i6 ?) W% L' L! \$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
* M' N2 A! H; W$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0- A; k2 d5 V. ?
$ 85/C79C CA          DEX                     1 g7 ^& P# Z! ~( n
$ 85/C79D CA          DEX                     7 ?+ ~# W" b. N  L$ d
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      ( [3 I2 @& U  l+ s
$ 85/C7A0 6B          RTL                     
0 B% n8 ?1 f! a0 e0 w实现全物品的代码如下:
3 j4 `8 N# |+ A9 i/ W2 z( H/ cStart@ $ 85/C785. y/ T' e( D: E* @; A# P- o  N
LDX #$ 014C A2 4C 01;X=($ A7-1)*2+ ?  w: e  X9 k
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量$ N( J' l+ r. j' T5 z+ P  Q$ ^
@2 STA $ 6FCB,x 9D CB 6F
, G3 I4 N( u: Q) x3 y) f1 ~DEC A  3A5 d: v; W: ?+ d% n
DEX  CA
; J' Z% |. j4 z5 o8 @" [+ QDEX  CA$ P. G: k# Y- T4 A# U3 |* g
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间/ _( _& z5 J4 W1 Q
LDX #$ FFFE A2 FE FF;-|
8 a% m- Z  s; r" RRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
2 \) ~- D8 i2 |7 i5 s0 W9 g# ]7 V/ }& C@1 BPL @2 10 F2;循环$ A7次
! t1 Q6 J/ w- n7 cRTL  6B2 `5 K) q2 V8 t
最后改完后反汇编出来的结果:
9 d0 t; f* y8 _$ 85/C785 A2 4C 01    LDX #$ 014C              0 Z" e/ C' B/ |! Z1 [2 L
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              ( t, T) w- l1 L! A% j& ]
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
' p+ }% j, O; q" H$ 85/C78E 3A          DEC A                   ) y* e0 w& a2 B' N. t, E
$ 85/C78F CA          DEX                     " y- M9 y- M, E+ F6 \  i* s
$ 85/C790 CA          DEX                     , _+ f5 ?1 s4 r2 P
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间+ Y" ?4 ~& V( x2 d  r$ M
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;( j1 u8 l% x! d) s
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么+ }/ l) N9 l! p% s# C' F: I
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      9 S7 q* X! j$ Q
$ 85/C799 6B          RTL                     , q6 G8 q" a6 V0 v) ]) B
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
3 W2 r/ O& g" }) [2 {$ 85/C79B EA          NOP                     ;
# _6 V8 S- B" i1 |# b" C$ 85/C79C EA          NOP                     ;
9 e7 g: }& Z  A; J% c2 p9 p) \; E$ 85/C79D EA          NOP                     ;9 y0 ~( A! h" s/ |4 h, F$ c
$ 85/C79E EA          NOP                     ;" a) h1 b; R& U" t0 G1 L
$ 85/C79F EA          NOP                     ;) o9 k4 x7 J6 c2 z$ M, i
$ 85/C7A0 6B          RTL                     ;
( q$ ?) {  z4 T! e
& K% W& x; _7 d[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

发表于 2009-3-10 12:41:38 | 显示全部楼层
学习了,但是有些专业术语还是不太明白
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-5 15:17 , Processed in 1.074219 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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