EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1972 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
! W. g! t! V5 S1 z: P) C
  o6 s9 W4 R* i% M* E- [+ d火炎纹章776修改笔记
; c* L8 @) ^. H6 a$ k- v) i2006.1.252 _) q. q2 X( x/ ~0 v6 j5 k
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
  _6 h2 b* Y# t; ?" V- f, i- z# P& C! n; i7 l! i; r+ Z  X( |+ f

, S; O8 E+ T- x5 I" G修改工具:Geiger’s Snes9x Debugger Mark 9
; ]% i5 a: j/ S  T' B8 h* L+ t5 j) T3 h4 W) B0 s& l5 t
战后升级
3 M! I2 \! F0 S) w( A$ 83/EFDC 90 05       BCC $ 05->EA NOP# P& h4 Z1 H$ U# u9 R% j
                              EA NOP, e+ a; l" G1 x: Z: W4 q) k6 D
1 N* F: x5 e% q; Q
战后能力+1
5 S' C, o7 `8 _1 S/ [) S# z$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00019 l# s7 V- f6 c5 x
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
0 H: X9 B% e* N  b. h+ i" L9 Z4 F, P$ y9 G4 V
武器熟练直接到A' [+ M2 }+ t: H% ]  q
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP& I* q- u- W5 c8 j$ t: ^( D" k. b
                               EA NOP4 |# \, E, w- m1 ]# W0 j
存放所全物品锁定
( j1 X; L7 D# S9 m8 e& P, g2 C存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
5 ]3 Q' i! A6 y# i要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
5 n; l$ L4 y% ~; {1 V# a9 m而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
; B# O8 w/ t9 G! W件物品,故可以突破存放所128件物品的限制,改出全物品。' g" i  k/ O; ^. A8 B( P
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
' V5 }% I& P5 n$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   2 c9 j- r1 ~1 t1 T' f% u# u
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
, |9 S1 j- `# y% S$ 85/C78E CA          DEX                     
$ g' x) X- k* n) ~' A, Z% p$ {  O$ 85/C78F CA          DEX                     
5 Y8 `% z% Y5 e# g$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
# c) |& k3 p, s1 v. A. R. B$ 85/C792 6B          RTL                     ;返回时X=$ FFFE3 ?8 g* e. V0 Z7 a$ U) w
$ 85/C793 A2 FE 00    LDX #$ 00FE              5 C6 c& s! G7 B
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
) u) O* ^" J8 ^$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
/ h% G* |" W3 a% T, {( N$ 85/C79C CA          DEX                     2 x: F# N& W. L8 \" ~) _
$ 85/C79D CA          DEX                     6 C. b0 ~8 n7 F4 m  m; K! o
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
& C. p+ U' s0 q' L: |$ 85/C7A0 6B          RTL                     " H; l7 T9 V- s2 j% z$ c" m  W
实现全物品的代码如下:- C# x( k: g" U0 |2 Y4 b; ~8 u5 m
Start@ $ 85/C785% V: B5 M3 }3 c  |* L
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
6 B0 x6 T  M/ s  CLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量: x# Z0 h8 g7 G: M
@2 STA $ 6FCB,x 9D CB 6F
1 d* Z' M. ?9 D3 F3 hDEC A  3A0 y9 U; E" ~, Y  v2 i
DEX  CA
. {0 T) v9 q+ S3 E. _DEX  CA
0 \+ a3 r% V" k% s& N. D4 r# E& dBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间8 i2 G/ H/ ]' F( m+ b0 A% [% `
LDX #$ FFFE A2 FE FF;-|# v  T& c7 V$ q/ U5 q
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序( B% K1 R$ x, T) z" O
@1 BPL @2 10 F2;循环$ A7次! e* V8 L9 B/ g( F& p
RTL  6B
* d% G/ x5 R- |: g  |最后改完后反汇编出来的结果:- q: v# V( w5 w: P6 G
$ 85/C785 A2 4C 01    LDX #$ 014C              - ]3 f3 q7 J: M( H
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              # S; Z  ~: W% @' w
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   * J) Y$ U9 x- b1 C7 d
$ 85/C78E 3A          DEC A                   : _* T2 r; O0 h$ E
$ 85/C78F CA          DEX                     
7 C- u% |' o, ?$ 85/C790 CA          DEX                     " Y4 I5 [. b% B; ~
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
# f% s( y0 t* ]: ?9 i6 m$ 85/C793 A2 FE FF    LDX #$ FFFE              ;* b# u# [$ O$ ~( X1 o& g2 d, [
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
$ _; ^/ }6 O% ]3 H1 D) `$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
! `/ [7 E) p# F$ 85/C799 6B          RTL                     : K- U1 Y2 K  Y9 _5 J* \
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了( N. H9 S- s" E7 N! ^! P& E$ q' `1 B
$ 85/C79B EA          NOP                     ;
- O4 w! m7 Z" D9 m$ 85/C79C EA          NOP                     ;
( {# }! _8 p/ r5 A$ a, c5 G$ 85/C79D EA          NOP                     ;
$ I* a2 @8 i) t1 Z' x$ 85/C79E EA          NOP                     ;
) I9 j/ S, [) L7 ^- z$ 85/C79F EA          NOP                     ;
+ m7 o+ Z; T- e( o1 F$ 85/C7A0 6B          RTL                     ;
* ~% \) t: o8 ]* |6 O
* D; P* t# e: d! j; }[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-6-8 14:40 , Processed in 1.063476 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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