EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1772 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html2 l+ m! g1 R2 [4 c" z/ k8 ]
$ z5 o* o6 `; v7 i# [
火炎纹章776修改笔记! N) x# E! d% ?# u: H
2006.1.25+ g) p) X3 q& Y' d
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
! J. J) M2 X" }8 t! H( j' i1 O  F  [  u7 R6 ]6 {( P/ s

9 q! k( H3 e$ Q2 z/ W# b. h6 l0 Y; @修改工具:Geiger’s Snes9x Debugger Mark 9
' S# Z! a& x5 W, X! E0 s& ~9 f) ]8 h9 y# T- c
战后升级$ l7 ]' K) K% c4 J* U0 ]" j; E
$ 83/EFDC 90 05       BCC $ 05->EA NOP
/ G8 v" o, R# }3 a                              EA NOP' p  q( F7 b% r7 y- L! y) R

. I, X" S6 Y, F7 S( u: M战后能力+1& }6 E& ~1 m# b
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001% ^' b+ |0 W/ [3 {0 `4 ^# v1 L' n
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
) |0 ?- O, U5 b1 b! t/ X
" b6 Z0 T, z/ ~( J武器熟练直接到A6 R* X- z# c" s, j! S
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP  \9 {: e/ w$ O: D, b3 q# @
                               EA NOP6 W( Y: o  t8 M
存放所全物品锁定$ ~' G4 A. }" `6 D) k
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
( n8 ^. O7 p5 q, d要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
8 K1 u1 L: l% P( D% v而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128( A" c; A" m" D
件物品,故可以突破存放所128件物品的限制,改出全物品。
2 J$ c$ O3 M/ L' h) j$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2! K8 `- r' A3 s) A9 O3 G6 o& c
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
; h* A9 U( B: Y& H. F, C$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
* T. q* z& h! E% X6 S6 V$ 85/C78E CA          DEX                     - O0 `) Q' G7 u
$ 85/C78F CA          DEX                     7 p0 c! }' N( s* }6 m) m7 z
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
8 p6 I6 h4 U' B: ^- U$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
; y$ u+ |/ m5 ]* ^1 Q6 R0 x% u$ 85/C793 A2 FE 00    LDX #$ 00FE              
# ^4 o" g8 I9 ]$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   0 h, D! S* W( n2 ^, f
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0& k# p, ]1 G2 E5 Y- i
$ 85/C79C CA          DEX                     ; o3 J2 a& R' Z5 j9 ?
$ 85/C79D CA          DEX                     4 ]% V" b. d/ i3 v, E, q) r6 J
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
1 V) @4 G, T- P# o$ 85/C7A0 6B          RTL                     
9 Y4 l. Q4 i, R3 W" \% J6 O5 w实现全物品的代码如下:
4 \1 m$ u0 ?7 Z5 \2 c( R* [6 {Start@ $ 85/C785
# A+ m" M- m; w6 z( n3 SLDX #$ 014C A2 4C 01;X=($ A7-1)*2
( \) \  \# E  _4 ^; iLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量2 R/ \; n( V- q! M5 c
@2 STA $ 6FCB,x 9D CB 6F
! b9 p, K+ y5 _, S6 x2 _& mDEC A  3A8 @4 H" l: ^  ^/ m/ }
DEX  CA1 J! H1 }, L# U% b5 b
DEX  CA( p% E. D; Y' m. j( ]
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间# H/ t8 z2 N$ g/ G( O5 K% h9 E! f! k
LDX #$ FFFE A2 FE FF;-|
8 y" m: Y* f/ F: ~RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序3 m' S& w" c% t5 }6 ~, f
@1 BPL @2 10 F2;循环$ A7次; ?; c; j8 `) @1 a5 S6 D
RTL  6B/ P! w) L2 j4 L$ n
最后改完后反汇编出来的结果:
' s4 u4 ]9 v; B$ 85/C785 A2 4C 01    LDX #$ 014C              5 d- N) n" w: Z9 v
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              / _( Y# h6 Q. i: A& I. C6 g8 J: y2 z% C
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
% Y4 \, t, q  ^- C; N$ 85/C78E 3A          DEC A                   . H6 X7 r0 S7 I% ~* s- @
$ 85/C78F CA          DEX                     % [* h6 z) _% K' b- L
$ 85/C790 CA          DEX                     . c! z* E6 d- O
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
' ~% }( @8 E) L; G5 \& T$ 85/C793 A2 FE FF    LDX #$ FFFE              ;3 f7 W; @# `- O  ?) t4 f
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么: z  X. \: D' D3 P" y3 h% ^
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
9 E8 T- ], m2 \( G0 x8 [( Y$ e$ 85/C799 6B          RTL                     
% g6 ^; N1 y( [$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了+ V# c* H  x6 }7 N5 k
$ 85/C79B EA          NOP                     ;, T+ L6 r3 g  l+ T* e1 N$ K% t
$ 85/C79C EA          NOP                     ;( {8 {  r' V( p6 f  ?4 _
$ 85/C79D EA          NOP                     ;$ d1 T0 f/ ]$ W/ ?* w
$ 85/C79E EA          NOP                     ;4 B1 O, ?% o& }/ u' V" P: v
$ 85/C79F EA          NOP                     ;
3 ~; k0 n9 i% y! f9 H1 \7 A$ 85/C7A0 6B          RTL                     ;* }2 f+ U* t, |

/ X# C& G7 a$ e8 c9 B. E[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2024-11-18 06:40 , Processed in 1.076172 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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