EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2172 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html' T6 v4 A7 q/ R7 C

; _; Z' f. M, i/ p2 y火炎纹章776修改笔记
, G8 Q; |3 {/ N+ }: W$ p) P2006.1.25
0 b# P: h5 S. B; i作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
# O7 n* I4 z" E- \3 S/ [7 r
( t+ @0 k) R* k5 u# K$ D5 x4 [; J
& r7 \1 `% h2 V3 z, G& j8 `修改工具:Geiger’s Snes9x Debugger Mark 9
5 a% E4 V# ?6 c. d7 r/ W1 C0 o' Q8 @- V3 `1 }8 C
战后升级
# K! Z- h. L3 W( ^3 P$ 83/EFDC 90 05       BCC $ 05->EA NOP# n, M6 P3 q' w# n0 R
                              EA NOP1 }2 J3 {& v/ @% E

' g% _2 z( _& s8 Q/ Q战后能力+1& K$ o$ {3 _( a+ O
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00018 m. p! b! k, X( e, `: O9 |' p
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b/ v4 @1 l# r6 {4 `3 B
: x  ^/ p/ W1 b: T* U/ ?. f
武器熟练直接到A% b# Z6 K0 D6 ~2 n
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
: r, k: p* \- q                               EA NOP
) {4 R* m6 d9 `. W存放所全物品锁定4 |9 Z8 Q2 |! S
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只$ m6 v0 D  R. d6 y, K7 x# L0 m. f
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,0 Y! t) p/ ?' F! g; T* b
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128. b' c8 B5 |+ c  z$ `4 P
件物品,故可以突破存放所128件物品的限制,改出全物品。
! p/ ~" Z/ V* Y$ ~$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
& s" n" w5 V5 E$ t  \8 `/ E6 N, B$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   1 F% `7 O6 o* Q6 M2 }4 ?! O
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB( ~& \9 X" w7 R
$ 85/C78E CA          DEX                     # x# L2 Q9 _4 N6 a& L
$ 85/C78F CA          DEX                     ' p, t. I& E& l& I. L+ T9 s# E
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
1 r9 e( P" l! t+ H) [, b4 ^, u# ]6 ^9 s$ 85/C792 6B          RTL                     ;返回时X=$ FFFE, P0 {5 [( _9 ~% ?) l" v
$ 85/C793 A2 FE 00    LDX #$ 00FE              * C# O0 o3 S! d, [
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
5 l$ l: \1 [6 q$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0$ v: @9 O! v" X( p. d3 X
$ 85/C79C CA          DEX                     
/ i" c0 ^4 d/ F$ 85/C79D CA          DEX                     
. s% n7 j8 y6 ?1 `5 |6 h0 `$ 85/C79E 10 F6       BPL $ F6    [$ C796]      4 `, x+ [5 \* d& k, ]6 n
$ 85/C7A0 6B          RTL                     
4 F' a+ W7 k8 s6 g0 U1 ?( X实现全物品的代码如下:
) `" B1 H+ w' I( V) _4 JStart@ $ 85/C7852 A8 ^- v. ~2 n1 c# I% K- T) @! n" T
LDX #$ 014C A2 4C 01;X=($ A7-1)*2" `" F! C9 d  I! ^/ O/ U/ t
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量+ a9 q# l0 r. }/ A; t, E* H
@2 STA $ 6FCB,x 9D CB 6F- \/ g' x5 |8 b2 F* m+ P
DEC A  3A% z$ i: h( l8 f3 q/ P
DEX  CA
- l! }) a% t* d3 x) ]$ m+ Q8 dDEX  CA
  t4 m) V  b  P# @+ N8 EBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
2 O) o3 K+ l, D5 s% N+ K  WLDX #$ FFFE A2 FE FF;-|' y( l$ ~+ w# k* ~
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
/ q/ c, W. B. y, f7 i@1 BPL @2 10 F2;循环$ A7次) V( R* I( x8 d
RTL  6B" ^8 R+ w7 A0 X7 l
最后改完后反汇编出来的结果:" S: j& g3 U" e% U9 B5 L
$ 85/C785 A2 4C 01    LDX #$ 014C              
. m2 X4 c9 |0 W5 B. c$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
; l2 Q- l4 X& L* \* w& B* y5 ^$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   3 f9 x7 x; D( ~6 B; f2 D* V
$ 85/C78E 3A          DEC A                   9 a! g3 l/ q3 W1 C6 N2 a6 g$ f
$ 85/C78F CA          DEX                     + X5 G. r4 v/ C. t! i6 P8 y. X
$ 85/C790 CA          DEX                     
! o! d1 L% c" |( e$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
) d, x0 Y  L8 E+ Y" Z3 k+ F7 a$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
, {9 }) Q9 K7 W$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么% T6 n7 T: Q  }) Y2 S2 {( I
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
0 }7 {. Q) I" j. o) k' K$ 85/C799 6B          RTL                     
% @- p) ]" |" A* P5 `- f$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了4 u! ?- t$ P8 v
$ 85/C79B EA          NOP                     ;
- _4 R- }( U& ~. I- y- h$ 85/C79C EA          NOP                     ;/ ?8 m/ R& O( {/ {/ \! o: S
$ 85/C79D EA          NOP                     ;
" K  o6 [7 o) ]$ 85/C79E EA          NOP                     ;
# {5 c9 ~- o0 Y. _$ 85/C79F EA          NOP                     ;* A, ^) z) v6 Q# s1 L
$ 85/C7A0 6B          RTL                     ;1 Q( w# h4 r+ Y! Z, m. O

* a6 M! [1 \) s. C6 z/ z, c  @[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-12-26 03:48 , Processed in 1.058594 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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