EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2180 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html0 N: \* I7 t+ U3 x

' A; ~% r6 a) x% b火炎纹章776修改笔记
! e# y! C3 O- a) k, w* s2006.1.25, W6 s! v( j& b) ]) @3 n0 ]
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
- B0 _+ e  Q, o; _6 n4 I7 ^
, c4 F% [; P1 F3 T4 J0 E- N" [1 T" Y) k5 u1 Z- Y4 }% p0 @
修改工具:Geiger’s Snes9x Debugger Mark 9
  S) Q' P! P0 R9 n( Q8 Y1 x* u1 F5 Z
* |0 i6 ~6 Z$ T9 |战后升级& {; `$ m3 [7 i5 T: u! s+ {
$ 83/EFDC 90 05       BCC $ 05->EA NOP
. b9 e9 S2 {; d# W  k; c: A                              EA NOP
& y  R- J) T2 J7 u. C
- {+ }5 J3 s" h+ k战后能力+1; i6 g- Y8 u* n8 _
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00017 @4 {! T- x! i1 Y( T" F
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
/ d$ I# j. M" ~% ?! h; S1 l# l$ R7 W5 O+ w. d2 d
武器熟练直接到A/ M, y2 m* K9 j+ J: Z
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP. g( R( U  U6 }  {
                               EA NOP1 N- }* P/ a" q0 ]
存放所全物品锁定! \# C! N& f, B
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只! c  O9 u. N/ z
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,( g. M5 h( G; Y+ g
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1288 \$ a+ l/ `  z5 V( Y' I: j0 x" l
件物品,故可以突破存放所128件物品的限制,改出全物品。
; f+ b8 g& _2 }1 n3 a& u$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
1 {: s! x- g/ p4 e* p$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
* H% S' m3 _9 ~0 `! g) N$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB( [) A7 g* n1 J" t2 }* E. z2 O
$ 85/C78E CA          DEX                     
) ~7 ?4 H/ R3 ?+ {$ U8 e$ 85/C78F CA          DEX                     
0 O% T/ N- L. Q) V$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
% m* g6 f5 @; M/ ~  U5 v: u) F$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
* X( x% u$ W6 j3 L: Z9 e9 e$ 85/C793 A2 FE 00    LDX #$ 00FE              
& }; c4 a( ~6 E+ G- m8 f# n' o$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
; ~4 ]  H6 z+ k  g7 l& P! @$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
; k: P* |+ q2 r! y$ 85/C79C CA          DEX                     
) u( x8 w. @$ y/ b( J2 J- K+ q$ 85/C79D CA          DEX                     + I4 F* C1 c$ i% U$ B% p
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      / F9 ?' Q0 {& N" |
$ 85/C7A0 6B          RTL                     + P8 o0 _0 H) n& W: L" c/ i7 G
实现全物品的代码如下:
/ d3 [/ x* i- s/ Z; [4 P* }) @Start@ $ 85/C785
* L+ X3 N' G2 C7 l$ mLDX #$ 014C A2 4C 01;X=($ A7-1)*2
( r. j" i& T2 ~  ]LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量* n/ h' d( d, i% i" ]7 o+ R9 M% B0 x
@2 STA $ 6FCB,x 9D CB 6F0 U% G0 b9 m$ Z
DEC A  3A
' j6 I, M% B4 p! c8 L! y3 q$ W  wDEX  CA
, e' ]) @* p8 h5 J5 @* G5 R- QDEX  CA
; j0 K/ s, |  `* l( kBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
: T* N1 T0 H( [+ {) y3 SLDX #$ FFFE A2 FE FF;-|7 Y8 t. @5 s8 u! \% Z2 s" V
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
' v& c" U4 z' R/ R@1 BPL @2 10 F2;循环$ A7次
( o6 x( q6 `( k/ N) L, N3 ]0 v/ LRTL  6B
/ y2 D1 q. c9 }- N最后改完后反汇编出来的结果:
3 L2 F$ u0 V' O$ 85/C785 A2 4C 01    LDX #$ 014C              ; a2 O5 S% D) `8 T/ a% r
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              ' p8 s8 _( [& e8 W0 @# T8 P
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   6 E! V5 _: h& z9 j6 `7 w3 w% ~' A6 i
$ 85/C78E 3A          DEC A                  
- u, B$ ?% Q5 }7 p5 g% s. q% c9 c% ~- h$ 85/C78F CA          DEX                     5 y1 ?( E" T/ K" ~  T! H
$ 85/C790 CA          DEX                     $ p6 t, N- c; z: k# |
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间5 n$ I6 J4 D, h( w  [! _4 f$ s( S2 I
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;, |6 c! d: i8 S6 v) d
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么; N  N7 O, W* f* v+ {( ?; @) ~
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
2 T- v2 I. I6 }% V0 J$ 85/C799 6B          RTL                     0 i, G) ~# A4 I3 U0 f$ N
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了) z& J! A3 {9 i
$ 85/C79B EA          NOP                     ;) [$ p( D( L6 O/ H. r' a; k! r
$ 85/C79C EA          NOP                     ;! r3 e" d5 h$ Y& D
$ 85/C79D EA          NOP                     ;; v4 B- ]4 Q  k5 i& ]
$ 85/C79E EA          NOP                     ;
; x' ~& m/ O/ d$ 85/C79F EA          NOP                     ;
' s* a, }' I+ J  x; a8 c, T$ 85/C7A0 6B          RTL                     ;
: E3 K! X5 V1 t0 P7 f" ^; w) L, i- \' D; ?5 F9 W
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2026-1-3 22:29 , Processed in 1.084961 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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