EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2153 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html6 ^/ |# m* T. W, b8 Q% i

2 `4 u6 N: I1 U3 N& p. v火炎纹章776修改笔记) T; q% q; }  o6 o7 b0 S( R1 w
2006.1.253 M+ n( E; p7 [( o" V
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
$ W/ i  r! w% W5 ~! ]6 ?! s) s
. b& s# P% Q3 @1 Q7 r( i* c& Z5 I! o" f* B6 p, T9 l
修改工具:Geiger’s Snes9x Debugger Mark 9
8 Q- i4 w8 J- `; V
2 S4 q/ |* k+ H9 H) p" M战后升级  Y. S5 e! X7 y! F
$ 83/EFDC 90 05       BCC $ 05->EA NOP6 i6 ]: L2 _" F& G
                              EA NOP
3 R' `1 s3 v0 a) {, K2 h& g* d
3 X  D7 `. A: q; D# u- D战后能力+1
8 a8 H, x% A2 V$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
4 f$ [4 E& |. s% b* _5 R8 V有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
3 U% U" f) Z- R- A" G! O4 y
! o$ {. Q0 F( R& q* X- ?- d4 U武器熟练直接到A
$ z; s" B/ V4 c4 H$ 83/E4E9 90 03       BCC $ 03 ->EA NOP' y% P3 y$ n' ^! z% K
                               EA NOP
% v4 @# I  p5 B存放所全物品锁定
$ ~+ t' L% h, }+ _' M6 ?存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
% F! w7 v: f. v: W6 {7 c1 X1 c要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,: D# K+ }; w; F$ ?/ D  u
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128' ~/ T& n& G: Q9 M" J8 ?
件物品,故可以突破存放所128件物品的限制,改出全物品。
5 j* V' ]* i9 i) ?9 D' D0 m2 s& c$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
/ s1 J8 Z0 |# ^9 `$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
/ ]' m+ P4 {6 k/ @& b8 |0 U$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB& J" t7 H4 g) J8 @1 Z6 E# P
$ 85/C78E CA          DEX                     
) C. H; @2 Z2 J0 A$ 85/C78F CA          DEX                     
: M' H2 Z0 O4 k- I$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次% N7 C: a* W7 b, Q' I4 R  W
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE; H! K& ~, U0 D  s- r
$ 85/C793 A2 FE 00    LDX #$ 00FE              9 w' e0 }2 O2 [1 d% |
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   ( x, r+ }' p/ t, ^. C
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0; \, s  f; Q$ L$ N; M, s
$ 85/C79C CA          DEX                     
3 W( a; I5 I/ m4 e! v, U1 ?$ 85/C79D CA          DEX                     
) o% [4 A+ L7 m$ X$ 85/C79E 10 F6       BPL $ F6    [$ C796]      # b# u/ y' Q  o8 E+ i# j
$ 85/C7A0 6B          RTL                     * }' V9 s% G  G( N! M( c/ p7 a- f
实现全物品的代码如下:0 t# t! d" c; W  T* P
Start@ $ 85/C785
; r+ \6 T0 o; v! @5 X: _) _LDX #$ 014C A2 4C 01;X=($ A7-1)*2( o) D0 G* L; m/ ~# q2 K! O1 P; }
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量" l# s- C3 U, ?
@2 STA $ 6FCB,x 9D CB 6F
& R  c& D: i8 O+ v3 Z# O& ]DEC A  3A
! \, i' A; w; Q0 `* xDEX  CA
6 I' R- l! d6 QDEX  CA
* X$ H+ M  C$ FBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
# S, i# r* k2 LLDX #$ FFFE A2 FE FF;-|
, s6 Q& B) z* eRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
+ J7 ~9 [8 ^0 q. L@1 BPL @2 10 F2;循环$ A7次' B$ I) f3 j; C  z3 O
RTL  6B' o+ a1 _; K+ @- l' ]& C0 T3 B
最后改完后反汇编出来的结果:/ e9 S9 G0 n1 M  `- C& I
$ 85/C785 A2 4C 01    LDX #$ 014C              " y! O1 |% E: U9 p/ D; j2 m
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
; e- W: d) I! }9 d" o" r7 {  {$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   : d1 |* l, |9 h2 S. p3 j4 O
$ 85/C78E 3A          DEC A                   0 p3 p+ Q+ b; m# w  h, f5 d
$ 85/C78F CA          DEX                     7 ]7 P( Q/ {7 h8 w( e' G( C- i
$ 85/C790 CA          DEX                     % k4 d( i) z. |7 M  {9 K
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
$ a2 `  c# F" J! S5 _; `& q$ 85/C793 A2 FE FF    LDX #$ FFFE              ;" _! h/ T* P6 I: f, D
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么% D7 q' g# m; B4 v
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      5 L( ~' |$ G6 _0 a; e% r* m  c9 j1 e
$ 85/C799 6B          RTL                     ! {5 A+ W7 s/ M; M4 f
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
* s* s! |, X8 W9 Z$ 85/C79B EA          NOP                     ;) z' X9 l1 f, F% E/ i1 c- c
$ 85/C79C EA          NOP                     ;
8 f6 L( v0 }1 e, M" G$ 85/C79D EA          NOP                     ;
, o! S& w6 T2 |' ^  @% r$ 85/C79E EA          NOP                     ;
& p9 V0 _6 g9 o" I( E$ 85/C79F EA          NOP                     ;
0 z8 C% j: q, c: f$ 85/C7A0 6B          RTL                     ;$ L+ D+ c$ U4 n! u$ i. _  H' A$ j
) x3 ~) S6 c4 k% M
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-12-8 00:08 , Processed in 1.090820 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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