EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2091 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html' T9 ~8 ~, F; ]& u- k6 I
+ c! I( J6 e1 p- l
火炎纹章776修改笔记
* E) R# E" j" {. i  B2006.1.25
9 o9 M; B2 A: y8 N8 i8 C+ Z/ B作者:zHAOsILi[EGCG](.zZ~~) 转载请注明/ r' ~! x$ @4 Q  B' p6 M8 o

% J/ t7 [8 e+ O) D
1 ]% [' s9 d0 u7 |7 D修改工具:Geiger’s Snes9x Debugger Mark 9
) `3 I1 j$ c5 b3 x: A1 l  J% l: c( F8 _; K+ Z
战后升级
6 M1 ]) u; j: ~# J% P& @# y$ 83/EFDC 90 05       BCC $ 05->EA NOP
0 B$ u" K( f0 V, D6 a7 m                              EA NOP4 q$ U  h1 u; g; d

& N4 M/ k# |/ r- `) ^# D战后能力+15 F9 K4 s1 r# K1 C& G) o5 X
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001& d: r) x+ V- V& `* m& m5 }9 f: _
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
4 h, z: ~1 ^) R# c; p1 R0 O: P
武器熟练直接到A# b0 P$ R& ^9 _- R
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
2 o4 ?; \0 R3 x( E& @                               EA NOP
1 q- Y: e, d/ D# U9 v+ G3 z. A' {/ j5 [8 F存放所全物品锁定
4 Q/ z) ]0 I, `; y; G2 Y3 }存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
0 r# w% R8 |. T& s要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,' `9 a; D" @0 o" ?5 {6 U) l
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1288 m0 p* ~7 F/ t% T7 |
件物品,故可以突破存放所128件物品的限制,改出全物品。' i% p7 G" e7 a# w5 w9 \, t  F& C
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2  M/ Y0 w# `# e. w# P/ c! h& Y
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   ; m9 V" E- z% L! g
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
$ }: q( k9 B! L3 |6 d! K; g9 |$ 85/C78E CA          DEX                     / G# [2 j+ }2 O8 C; ]
$ 85/C78F CA          DEX                     
- w% e* x/ V: `* r* v1 s9 y$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次# K2 w5 t, s9 Z, D0 H: a: I
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE1 x0 c5 O  x) Q0 B* n6 B
$ 85/C793 A2 FE 00    LDX #$ 00FE              $ q3 ^, }5 n2 t/ @3 |
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
- e  L/ F0 x  S$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
- T+ L/ a6 Y5 T& ?! A: K: W8 {# e- J$ 85/C79C CA          DEX                     ! ]. e* O* ^  [+ a8 W
$ 85/C79D CA          DEX                     6 `4 j6 \* g+ |$ k
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
  _" L5 H( G" {' J# F. `$ 85/C7A0 6B          RTL                     
" B$ {3 }& p  q2 Z' O5 Y/ A实现全物品的代码如下:- r9 d( X  f2 |# r# R8 G
Start@ $ 85/C785
, w, y2 u' p9 _9 k+ {LDX #$ 014C A2 4C 01;X=($ A7-1)*2  K0 E2 y3 H( z6 n( o, D
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量" ~* d, N2 \: b: f. Y0 ~9 M
@2 STA $ 6FCB,x 9D CB 6F
; D8 W6 b5 \6 ?DEC A  3A
: A- Z: b( ]8 rDEX  CA( S$ |/ A4 p) T* }! C: T. h( j
DEX  CA
4 @& P  E9 c" HBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
+ E* y8 O, r, E- DLDX #$ FFFE A2 FE FF;-|2 ^* _; |6 N7 }( s+ c4 a. j
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序5 h0 {5 l. d5 \$ S" _1 b
@1 BPL @2 10 F2;循环$ A7次! E: i3 s; g4 {' E$ r
RTL  6B! c8 J* L  Q* A( A* ~
最后改完后反汇编出来的结果:% q2 L- C) n' T7 n9 \
$ 85/C785 A2 4C 01    LDX #$ 014C              ) o6 E% J0 G/ L, I5 Q# S
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
: p, L, H2 L: v3 ?: A! }8 ?$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   : P& B% C3 I6 w- j: |+ O
$ 85/C78E 3A          DEC A                   5 E: S2 D- l: R4 `% z- M
$ 85/C78F CA          DEX                     9 \. @, M  ?$ Z3 c" K. L
$ 85/C790 CA          DEX                     6 _1 Q. \, F# j5 C, C, E
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间* K+ S; C9 R) J4 [  h4 N) B( r
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;- o. T5 x9 h, w8 k
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
  W1 k. U. Y5 A7 z$ 85/C797 10 F2       BPL $ F2    [$ C78B]      ; D( y% J0 e1 {
$ 85/C799 6B          RTL                     - z" {8 q$ ^& F- `' e9 B7 c6 U
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了# J+ e3 {, K+ O# e6 R' @& c! M
$ 85/C79B EA          NOP                     ;* l% F5 f; N" f3 B9 p/ p: y: I
$ 85/C79C EA          NOP                     ;
* w* n/ W% Z3 r8 v1 a& Q6 b$ 85/C79D EA          NOP                     ;
+ T" ^! ^# m3 a. c$ 85/C79E EA          NOP                     ;) I, I3 |6 v7 `$ p: D
$ 85/C79F EA          NOP                     ;% r. x# `; S2 a) |: `4 g' d
$ 85/C7A0 6B          RTL                     ;
5 t/ [/ f0 i3 L* }4 {, Q4 h$ V# ~0 Z5 Q$ t4 f
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-10-5 07:53 , Processed in 1.088867 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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