EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2180 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html1 J! q* V& j5 P/ C5 e3 f! H! v
7 F2 Z8 C- C2 b( i' E7 S
火炎纹章776修改笔记
9 G: `# ~, q0 x+ r( ?% |$ B2006.1.25& V1 I. f- J# K* c
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明2 Q* f% l% p1 u( f

1 @/ x! m4 Q6 w6 L9 U" @% U  ^! ]: y3 R% c3 `3 r
修改工具:Geiger’s Snes9x Debugger Mark 9
% t0 I/ D; p' R( y' J) H+ x7 l9 i1 B3 y- j; c3 R! n: r* ]
战后升级+ G3 F/ O) c3 R! H) K! X
$ 83/EFDC 90 05       BCC $ 05->EA NOP1 V: a2 Q7 b) z
                              EA NOP- c( y' F8 R( S3 w* \5 C' [/ I

+ W# j& d& \, e' j战后能力+1
4 T9 D' f7 E3 Y7 A7 n6 b9 E$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001/ ^5 |* B) G9 S7 ^# }: t$ G6 |
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b. l; ?; t8 H7 k$ H: J# a. ~
( H+ V1 ]6 n; a) h. M0 ^0 q* R( {; D
武器熟练直接到A
# w8 v, ~1 w2 U. d0 C! _$ 83/E4E9 90 03       BCC $ 03 ->EA NOP  K" v4 s! i: k
                               EA NOP( r1 a! W6 |4 @4 L
存放所全物品锁定
! e$ d- U3 |" R. K  f, ~% n存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只' H7 Y  F+ F* u9 L4 M; E
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,! \. l* J1 i/ @
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
( j! u3 P  h$ x; j( i, V. x* |件物品,故可以突破存放所128件物品的限制,改出全物品。
; O! K- d" A5 [& c8 z1 r% L$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
* T1 H3 l4 j9 L) a. `$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   8 s5 Z0 a% O+ t7 J9 ~  H3 _; F7 O
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB" y2 L7 j0 j; B
$ 85/C78E CA          DEX                     
% j1 M- y( J  A) W$ 85/C78F CA          DEX                     
3 ]8 O8 |- g+ N2 H; v- ]3 y$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
0 I4 j, ?5 z7 Q4 W8 l+ M$ 85/C792 6B          RTL                     ;返回时X=$ FFFE$ T7 A  t+ S, y4 t' U  F
$ 85/C793 A2 FE 00    LDX #$ 00FE              
( [. j$ V6 K8 e% m! i) \5 n9 R5 Q) {1 p$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   $ b- H+ c7 A$ f& K4 u/ S$ E
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0- c9 O! i+ ~- H
$ 85/C79C CA          DEX                     - ^" ~. K) J0 ?3 c0 l+ }7 ?, A
$ 85/C79D CA          DEX                     6 f6 ?: _( Y; }" u7 i; y' W% P
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
0 J( p/ Y. B: p- o$ 85/C7A0 6B          RTL                     - ^  ]% C4 x4 f5 a
实现全物品的代码如下:7 I( q. [' ]1 d" Q2 C* ^) [5 l
Start@ $ 85/C7857 T' b/ x6 c: i+ Q
LDX #$ 014C A2 4C 01;X=($ A7-1)*28 w. L% Q- a4 [5 L: @
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
0 `; y5 p2 K% ^1 ]3 @3 a8 I( a@2 STA $ 6FCB,x 9D CB 6F1 _1 I# e& ?, w9 o4 }9 p( m
DEC A  3A
0 a9 \* L  x- H) N. X: K/ P# oDEX  CA
* }; D: o, u- b; t% h0 p: ?5 VDEX  CA
* b+ p4 ~7 {& h* k4 A% ]BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间: M- Z/ C" B4 t) o
LDX #$ FFFE A2 FE FF;-|
5 [1 i  V% R- Q2 x9 i) SRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序, u) }4 Q1 |3 A1 x; ~! P% ]4 w
@1 BPL @2 10 F2;循环$ A7次
( k: F' ?# z) D. H% h" B( W$ Y  lRTL  6B
3 D( y: x/ A! B' {9 ^9 I2 e3 [最后改完后反汇编出来的结果:
& F  o2 e8 q4 {$ 85/C785 A2 4C 01    LDX #$ 014C              ) x  ^! `0 R8 |1 W
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
0 B! o7 c( J/ W3 o3 n0 y$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
0 W" b/ r. [' H+ o, P$ 85/C78E 3A          DEC A                   . f# x. x" S; a1 q; l# o
$ 85/C78F CA          DEX                     ; y6 ^5 [! h6 b  W
$ 85/C790 CA          DEX                     
* j0 M& g# t7 {# K0 o: @$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
9 E7 p. I7 r7 W' w5 t! V  z3 k, f% Y$ 85/C793 A2 FE FF    LDX #$ FFFE              ;4 O$ Y* x6 k4 y) K
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
# ]2 \2 T0 c3 V$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
# o( \6 \6 r0 f1 C! {* k$ 85/C799 6B          RTL                     
4 ]2 J0 ?! v& W$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
, _. g. |7 a& J9 I$ 85/C79B EA          NOP                     ;: O1 f; g( N2 N0 D
$ 85/C79C EA          NOP                     ;# R# l8 d" C7 ]- `' f9 r& l
$ 85/C79D EA          NOP                     ;
8 |# P" y& G$ J$ 85/C79E EA          NOP                     ;/ _2 A9 _$ z- \
$ 85/C79F EA          NOP                     ;
4 c( }1 [/ [! O* h! J$ 85/C7A0 6B          RTL                     ;
! t/ h2 [9 N1 {3 k' ]9 N' q' ]0 w2 p; L# r
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2026-1-3 10:42 , Processed in 1.082032 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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