EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2140 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html, X3 q9 a, C5 V

( B2 Z4 @( L" L+ c% A: Q火炎纹章776修改笔记
/ a& c- @: O6 T5 ^2006.1.25
6 b6 t3 a1 w4 F* J+ C作者:zHAOsILi[EGCG](.zZ~~) 转载请注明( }6 C& w: Y5 |/ E* m  J

0 v8 m7 C6 ]0 w  e! P* D4 U& T- p4 ]5 ?4 o) P) g
修改工具:Geiger’s Snes9x Debugger Mark 95 V) v4 L: }5 n, Q  a

6 R, V! F+ `! s; h战后升级. s% P1 A* a& b5 I& E9 }, E
$ 83/EFDC 90 05       BCC $ 05->EA NOP
% J' {7 N; q0 f1 v8 t7 `$ ]                              EA NOP
7 o4 t# ~6 M3 E0 a% Y, R5 ]. l* ]7 Q2 c; y9 E4 v* \' F
战后能力+16 V6 o( S: ^& E- [5 o8 |
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00019 Z0 A$ r0 f+ m
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b" f# O) B2 X5 x$ x. Q

/ a( V, |+ p' S/ e/ c! k武器熟练直接到A
' K" ^8 ]: R9 M$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
- f* r  i% e! X& o                               EA NOP. B8 S, E1 b7 a( r2 s% Y6 r3 Q
存放所全物品锁定
% U4 P. Q5 @  n$ q  x$ `# f0 F4 q) c存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只& V- \% \4 R+ F1 q; q8 O
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
* J- l6 v" m! y; [  y' y0 W而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
: u6 C4 }( [1 Q; R件物品,故可以突破存放所128件物品的限制,改出全物品。
& I+ n* p6 h, s  q$ l$ g% r; C$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
6 i8 C% L* G% J$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]     |, A; C  L2 e- z/ _
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
: V# m  w2 ?* p' Z$ 85/C78E CA          DEX                     
+ F# U$ {& r. l' Y" l$ 85/C78F CA          DEX                     * a) N: v" P4 h' X1 g4 |) u
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
2 [- f; W# U, J7 b, w! d$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
5 j8 u) N/ f: C) g( N: J$ 85/C793 A2 FE 00    LDX #$ 00FE              
/ c7 G: b% k" M0 `& _$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   ) d* R! Q& Q+ L8 z% x
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD04 _8 I5 n! }6 B- v
$ 85/C79C CA          DEX                     ( D5 [$ T# w3 K, t7 ?% f
$ 85/C79D CA          DEX                     # P! R" j. w/ J) r2 N
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
5 w2 }% A" g* w& L$ 85/C7A0 6B          RTL                     ) a1 ~( B* Q8 W- r4 U3 Y
实现全物品的代码如下:
1 {1 K) g/ z' F9 LStart@ $ 85/C785
$ }/ p1 O  W! ?+ D% ~+ x3 RLDX #$ 014C A2 4C 01;X=($ A7-1)*2: g% V- H$ C0 [1 t) {' ?
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
# A" r$ h5 s. W+ k& f@2 STA $ 6FCB,x 9D CB 6F" G3 a$ S& D( e8 o
DEC A  3A/ m6 o6 U; t6 E! r' H/ b2 @
DEX  CA
: J  Y- N' s! p" p& D& A3 [DEX  CA8 v# ^" X+ S' s
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间% o7 {7 M, X% @3 n/ i6 G- U
LDX #$ FFFE A2 FE FF;-|
& Q, a" x, K- mRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
0 n, b- T& Y1 [; A@1 BPL @2 10 F2;循环$ A7次
& \' ~  F% V/ |RTL  6B% H" h1 E% l- G# w
最后改完后反汇编出来的结果:
: `# U9 E* T$ {  b! n1 v$ 85/C785 A2 4C 01    LDX #$ 014C              6 x4 k4 v# V! X5 w- S% Z# W4 u6 K
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
0 i1 M0 l5 z& F) [& A$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   , |$ K3 j' [% P/ j3 _
$ 85/C78E 3A          DEC A                   2 {* _, f) z! _! e4 p7 E- W
$ 85/C78F CA          DEX                     
3 `) K/ w0 c9 r3 l% J: p* q. E$ 85/C790 CA          DEX                     
- q3 i. h6 }0 ^& b& q+ `$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
  K2 P0 g# B: V9 z" V6 Z$ 85/C793 A2 FE FF    LDX #$ FFFE              ;3 b4 M4 L$ E) O9 O0 j, Y
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么# O7 A' T8 E* x' M. f
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
, X( M. p# |- \( n; f" S$ 85/C799 6B          RTL                     ! c! k3 O2 {) e
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了! @& d* O) y  [1 n* N  Q
$ 85/C79B EA          NOP                     ;
, ~- a! D6 j% k6 j$ 85/C79C EA          NOP                     ;4 _, v6 r) t9 ^1 |
$ 85/C79D EA          NOP                     ;% {$ Z7 F$ |' r. j7 V1 o
$ 85/C79E EA          NOP                     ;& d7 G, F! i% z8 F7 g; C
$ 85/C79F EA          NOP                     ;
  _" Z0 @8 E9 q( z  U$ 85/C7A0 6B          RTL                     ;
  A# y4 f2 O+ t2 o" S' X& q) Y7 G
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-11-23 13:13 , Processed in 1.064453 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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