EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2074 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html- _7 J  a4 f7 {/ }  ?3 r
1 t9 c  o& g0 V; `% l* P! u3 t" D
火炎纹章776修改笔记  M, A4 H( L+ Y2 C
2006.1.25# b+ m, n  M) _: L; ~6 l
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
! n$ ]5 f' ?; h7 m7 y7 Q3 k
, _2 d' e# d5 d/ o) X& M6 J% s  |! m: A2 x1 C  ?' S* l+ s( O
修改工具:Geiger’s Snes9x Debugger Mark 9: \5 q% z( Y* _9 m/ s  T, k. E  B
% ~2 E# _) x. S! q$ u
战后升级( Q2 R8 K( a: I6 H! {
$ 83/EFDC 90 05       BCC $ 05->EA NOP
5 ?8 {, C, x5 O9 P                              EA NOP
: B1 P! N* @2 ]* M( E
; ~5 c2 p/ s  n0 v0 x战后能力+18 I5 ?' @6 K% X. q
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001: u" m3 f/ q2 Q+ F
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b  j# v% v0 V+ g6 r6 }9 p6 g
2 y. i8 E9 I: F) ]4 I
武器熟练直接到A) ^% _0 L; v4 b& X2 A8 Q, i9 f
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP8 y- b6 p$ u. B# s5 R! v' i
                               EA NOP, ~; I& I( T* r  ~
存放所全物品锁定
  I. T. g/ Q! A4 Z2 S! w  E; ~存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只3 w+ r! M8 z9 X6 m1 i4 {7 u
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
$ h& M& f- p5 T而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
4 s* n% t, V: v' d件物品,故可以突破存放所128件物品的限制,改出全物品。
3 b% K3 s9 T$ w$ ^# ~* C$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2/ O8 k5 X+ L5 h; r
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
' U* v5 `) h" k0 I$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
& L; _5 ~. V) |; z/ E) k5 z1 a$ s$ 85/C78E CA          DEX                       }4 ?& ?# |: a; i  k; {& q
$ 85/C78F CA          DEX                     
; ?; k0 {) g2 [$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
4 d$ o% o. I, D/ }  Y$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
' o! x* g( [, ^$ 85/C793 A2 FE 00    LDX #$ 00FE              
4 O& W# ~8 A1 U9 q, i( b$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
6 K; }3 i# j2 F% l* k$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
+ y: K/ J. `1 ^& g$ 85/C79C CA          DEX                     
- P6 S4 m) Q7 x. \" r$ 85/C79D CA          DEX                     # w9 `  V6 D% `% @- I
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      & O, z7 R9 M8 o  k# t
$ 85/C7A0 6B          RTL                     & h( j+ i( e' n
实现全物品的代码如下:7 I1 s& x. ?8 [* L; W8 s! @+ _
Start@ $ 85/C785
& I. n  H( ~0 Y* f* A9 t5 o( WLDX #$ 014C A2 4C 01;X=($ A7-1)*26 s* S' j, Z+ J# }, Q- E, w1 i& s! Q
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量0 b$ r( Z# _# _: u
@2 STA $ 6FCB,x 9D CB 6F
- k) n3 c( b7 V* f# @9 FDEC A  3A
) N4 R" c2 c( n8 E* W1 W# x  V" K% eDEX  CA- [9 _+ E% u, q8 d( N6 J) z
DEX  CA+ Q: u) A1 E1 y
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
6 }# J5 W' c# B% {LDX #$ FFFE A2 FE FF;-|8 H2 r& p( P! S& t( r: N
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序  _( _% L. Y$ M; @* X: w
@1 BPL @2 10 F2;循环$ A7次
2 p) o- G; I9 e6 y+ CRTL  6B% b) {1 L- r# \
最后改完后反汇编出来的结果:
5 b0 p+ y# y- r  m8 }# ]$ 85/C785 A2 4C 01    LDX #$ 014C              ; f+ b  L1 M- U6 g! w4 c4 g
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
* V: X$ m4 q: ^! ]$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   ( [% {0 n) X2 _- L2 ?, H3 `
$ 85/C78E 3A          DEC A                  
0 A# X/ j; _0 f, n$ 85/C78F CA          DEX                     
1 f7 |% N- Q# w4 u1 [$ 85/C790 CA          DEX                     ' z, z& x  K5 u3 P, W( i' _8 h5 _
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间6 A2 T" ~" ]/ P0 h) U
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
! i9 K8 Y9 A6 Z9 x1 O7 P0 v$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
7 E8 V) r3 l4 E5 D2 K& x+ B0 F$ 85/C797 10 F2       BPL $ F2    [$ C78B]      * f: D* h! V! t
$ 85/C799 6B          RTL                     
& ~6 j( r1 P4 o+ W3 O) }; V$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
; {( k4 b3 G+ ~$ 85/C79B EA          NOP                     ;
) v" S/ R; {- V+ B$ 85/C79C EA          NOP                     ;
, _! A( q$ F* |  y: q$ 85/C79D EA          NOP                     ;" G) {5 M% L' `0 O+ O
$ 85/C79E EA          NOP                     ;0 d6 w/ z! j4 q! o  [
$ 85/C79F EA          NOP                     ;7 H/ {: [! \& R8 ?
$ 85/C7A0 6B          RTL                     ;: Y, ]- X& |5 [! V7 s( i
3 j5 C# @" B* n3 s. s/ \
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-9-18 15:58 , Processed in 1.065430 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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