EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2135 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html; ?3 g6 \. @8 {
. Z' w9 ~1 r# ^% l0 X" K9 K, _
火炎纹章776修改笔记
, }% Y8 g) h& s% R4 J! |2006.1.256 U" t3 }" p. Q- f) c& j
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
" p# |$ O* T4 L: j- @9 ^5 Q: N' A0 e) W7 Q

* O$ a$ C. \+ P0 E修改工具:Geiger’s Snes9x Debugger Mark 94 [8 T+ A* Q+ Z4 ]* ]

0 A- h% L) U  D- ~" k战后升级8 R6 V, Z# V, V2 S5 z8 Z- _6 M+ {+ E+ l+ a
$ 83/EFDC 90 05       BCC $ 05->EA NOP
( b' Q. R, }3 @" R& I* Q2 a# _  X                              EA NOP' b0 a% E- i; |! h0 r% C/ p6 ]2 q
& U9 o; c7 U7 A( j6 @" t
战后能力+14 l( v6 W: A7 D1 o+ \" _
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00011 p% `% o; W! Y% W: n
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
1 H2 h3 \+ w1 b& W$ s
5 r$ ]4 {+ \, K( ~  [' ~武器熟练直接到A  P  C! g7 [" D& x  ]8 n2 X) l
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP4 J/ V6 F2 t. m! }: W" j
                               EA NOP4 @* u' e3 Y  R4 U
存放所全物品锁定* p" o9 C$ g" Z0 {% c: Y
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只; Z. g( f/ m& A" a" s! u$ Z0 Z5 S
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
9 _& B; O/ Z9 n+ g: p! A而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1282 ~6 ]" N' n( t
件物品,故可以突破存放所128件物品的限制,改出全物品。" b4 z1 p, p3 y3 t3 C5 G' }2 K
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2! A: C: z& }7 O0 K' ]
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
  e" Y& Y1 o1 d; s' J1 m% r3 i2 k; d$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
! Q, H' u/ G2 y, K0 |- y& L9 R$ 85/C78E CA          DEX                     
- Z& e: a' Q  q( C# k9 r# x$ 85/C78F CA          DEX                     
' p6 p) C5 U6 l$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
7 s9 O: ?& b" B8 T% ?9 E; e. z1 \$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
. |% I% d0 ~$ ]! E5 V) |& t$ 85/C793 A2 FE 00    LDX #$ 00FE              / c* Z5 b3 C3 }9 T1 @
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
$ C) ^7 r+ Y: j$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
6 v% c  u+ j% j/ I/ o$ 85/C79C CA          DEX                       `! D, v% [% b2 `- t
$ 85/C79D CA          DEX                     & j6 r' k3 Y8 W0 {( N" ?
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
) ]9 f) p" v  w) u! y$ 85/C7A0 6B          RTL                     
9 M# P8 s5 g2 M0 r6 V5 N. d3 ?实现全物品的代码如下:$ [1 X5 G3 }- h. C
Start@ $ 85/C785! A/ P4 W* l7 J
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
; \" o- A0 F! m# m; m7 U+ G! m! i6 t: kLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
, A6 B1 N6 f% U# ~2 C4 E@2 STA $ 6FCB,x 9D CB 6F
) n+ g6 c  ~# ~/ r4 RDEC A  3A- x2 F% I5 N; d) v$ f+ V* g* z
DEX  CA
" h* ~6 {" w. p8 E! z; CDEX  CA. M4 t1 t" Y& \& P
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
( c& Q3 ~; f- A( u9 j3 H* bLDX #$ FFFE A2 FE FF;-|
# u- G/ G# g$ R' mRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
1 Z! h) |8 ?" ~/ \) F* [. c@1 BPL @2 10 F2;循环$ A7次
& }9 D3 B5 U+ s9 N/ n' ?4 Z0 j; PRTL  6B
, G/ Z1 g0 ?# p1 P, i最后改完后反汇编出来的结果:( c: B; Q3 m9 A! W; h) J
$ 85/C785 A2 4C 01    LDX #$ 014C              
' }  E) \- i2 ~. v" g' Z$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
9 f2 x. a( L( W, z$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   1 m4 e% C2 g& X  O! [! H0 Z
$ 85/C78E 3A          DEC A                  
  t6 e2 }' L% s2 l5 e) L5 B$ 85/C78F CA          DEX                     # S8 r( Q) F2 M8 c, V; |5 y9 b- e
$ 85/C790 CA          DEX                     2 t/ v; p3 Z& O2 a, U
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
" I& B9 N$ W' `" j2 x. I$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
3 O5 Q9 a6 _2 S- ~7 m$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么. v2 e$ u* [1 p6 L
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
9 O5 F; l" `5 Y' c; v2 e$ 85/C799 6B          RTL                     9 o, G2 i! s! u" r, v' l2 s
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
$ W4 F( M$ e6 Z% @* `- ~& s% x/ m$ 85/C79B EA          NOP                     ;
' P* c2 I% c2 v- i$ f$ 85/C79C EA          NOP                     ;& Z! I$ v" p% p  `/ e/ ?
$ 85/C79D EA          NOP                     ;* ^$ I& Q/ m. P; j' N
$ 85/C79E EA          NOP                     ;
" c4 k; C- {  A& ^$ 85/C79F EA          NOP                     ;
2 |6 s( z$ z0 c  `* N- V$ 85/C7A0 6B          RTL                     ;
$ ?1 A4 f3 a$ u; F3 w. \. E+ E2 M9 Z$ z! X$ \% M3 x
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-11-18 11:07 , Processed in 1.075195 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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