EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1865 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html8 i9 o5 o9 |# D- t8 h: |

+ R9 z0 I8 F& S; Z! `火炎纹章776修改笔记' A8 O$ L4 ?4 A  _* ]( L) a* n
2006.1.25
/ Z" q+ |" Z/ X! |7 S6 C$ ^" Q作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
! I7 y% ~% o, P' E) D5 U$ D3 l. Q0 r( N" H2 b0 F
3 r; q1 G0 R- }( y$ o( l5 n
修改工具:Geiger’s Snes9x Debugger Mark 9* y( ^! j8 Y  x

6 n5 H/ ]' r, N: O战后升级6 U- C3 b& W) j  r; o- o
$ 83/EFDC 90 05       BCC $ 05->EA NOP5 b$ M; E$ Q0 O+ m, e. d
                              EA NOP) j, h! e5 ?% Z

* I5 k, [5 c: E战后能力+16 ^+ F: _5 ?2 w( v! \' r
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00019 h; j/ h% U( I8 ?' e4 v7 `( P9 E
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
! W( I& }" H1 a' V# D8 n2 H7 \& q9 I$ k# S
武器熟练直接到A3 w. t# F+ I: j" a) u" P( F
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
* t# b3 \1 h! n' b; U6 C; W4 W" N                               EA NOP
+ f' f3 Z: F* X3 R  x, ], r存放所全物品锁定" Q+ z9 T- p& D6 d1 u
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
6 n3 @7 x* }! e9 {% }4 K要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,8 L' e8 ?9 p: [* z* z
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128' Q. s% A  E, ~8 v
件物品,故可以突破存放所128件物品的限制,改出全物品。2 x0 n8 x: \5 p5 M
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
2 ?1 w& o5 K0 O$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   1 E5 i1 v% K' l5 V8 {
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
+ \  ~( X6 g/ T& Z$ A; u0 I$ 85/C78E CA          DEX                     
2 w5 F# b- [' {$ 85/C78F CA          DEX                     
+ A' l/ D0 E$ P; g$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
6 M/ f2 H0 t' D. A0 s1 R$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
, ~* o+ N* c& R7 t$ 85/C793 A2 FE 00    LDX #$ 00FE              7 t$ I, ~0 L$ n# ]. O; e' p
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   : h7 I+ B; ~5 ^5 o, v# n, U
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
4 V( t5 d  Z% ]( ~+ @$ 85/C79C CA          DEX                     
1 @$ z+ _3 X+ l$ 85/C79D CA          DEX                     
- X  ?+ B( T" {3 _$ 85/C79E 10 F6       BPL $ F6    [$ C796]      & |7 Z7 O; L' Q- v
$ 85/C7A0 6B          RTL                     1 X! L, q+ V& z" {
实现全物品的代码如下:
8 X; X& V/ n1 u2 a5 s# qStart@ $ 85/C785
$ K* t, A: S0 Y- r# o! n0 n+ z3 g3 FLDX #$ 014C A2 4C 01;X=($ A7-1)*22 \1 s. X# N, g* w' k
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
6 r  U3 t! B% r+ E@2 STA $ 6FCB,x 9D CB 6F
( u3 D: P7 w5 K5 |8 oDEC A  3A, i% C$ B/ s4 ^1 I. j2 E% f, S
DEX  CA4 u' a! k* P# Y& ]1 z) `/ G  m
DEX  CA# Z: q; `% R! c& W+ O4 X
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
+ n8 s( Z# w+ u8 _6 X6 d. r3 y9 rLDX #$ FFFE A2 FE FF;-|( t3 i; h4 b* c' Y* p
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序; z9 j( U! [# M
@1 BPL @2 10 F2;循环$ A7次  J# O1 f8 n/ D9 w
RTL  6B
' d7 n0 z0 |, E; g1 [% M4 F. w& Q2 H$ d最后改完后反汇编出来的结果:
) C. r& v& h: U* n# O$ 85/C785 A2 4C 01    LDX #$ 014C              
" [' D, O/ @  B- _4 @" Q$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
5 h# `- |3 C8 _  f" q& q$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   6 A4 H, M4 V# c# t4 X( n
$ 85/C78E 3A          DEC A                  
+ Y9 A$ _9 T" @( D$ 85/C78F CA          DEX                     / b# A5 `" m2 A# J5 @. n8 a
$ 85/C790 CA          DEX                     
  P5 {/ G: p- o. E8 r, L$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
6 ]6 j  t& c/ E$ j7 b4 g; E$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
5 D* l# \3 I8 P$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
% a8 S% u9 G9 u$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
( x( `9 [& n/ }$ 85/C799 6B          RTL                     # T, a, |+ ~3 c9 m" o, n1 P
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了+ k# H' |1 h+ x- C* ~. b) r: o9 @
$ 85/C79B EA          NOP                     ;
7 I; t& J9 H1 E; X1 W& a. [$ 85/C79C EA          NOP                     ;
, h0 {4 b5 }1 j3 _7 p  M  r! `$ 85/C79D EA          NOP                     ;5 b2 ?: k% K0 L# |8 g  j  j
$ 85/C79E EA          NOP                     ;
# S0 s2 v" \- s" o- H$ U: J$ 85/C79F EA          NOP                     ;
+ V8 y* N  ~: d4 P# S$ c' @$ 85/C7A0 6B          RTL                     ;* r+ ?& n! ~. B# d+ U  T; N6 s

, Q& ?* t' z5 ~$ X! Z[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-2-19 05:55 , Processed in 1.088867 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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