EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2119 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html7 N2 w& M; F3 d' x0 n

; F; l5 V" K/ ]( ~9 {! C, v( ]火炎纹章776修改笔记
3 v: X. I7 M* g+ l% g$ p& Y9 @2006.1.25
# o' f! Y1 `- N2 d1 c9 s& v* w# D作者:zHAOsILi[EGCG](.zZ~~) 转载请注明* P  l: M2 |: J. ?0 I- B+ T! t
8 a, |0 H" P. O7 R1 [. }

2 i& l; c7 N3 }4 n! v修改工具:Geiger’s Snes9x Debugger Mark 9* C% T: c3 E7 f# j

* N& g- t$ ~8 Z$ J战后升级
/ [( v" _9 e0 \1 I! K$ 83/EFDC 90 05       BCC $ 05->EA NOP
3 q3 k% ]8 U- P6 s                              EA NOP4 s* f5 u# f2 `7 @6 g, G9 g+ A- U4 K

9 a% B: K% H* t0 j, x9 ~战后能力+1
! S5 p- ~; X4 W( |0 g' k- B' Q& [$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00014 |6 ^: A7 E8 i; I* |5 `; V$ O1 a
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
' P5 T" \2 c0 }0 s! v1 `, e
/ r+ Y9 Q* t. H8 R$ T7 u: F武器熟练直接到A+ z% g4 ?+ d6 O  s3 m4 \+ T
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
4 C/ o8 z5 L6 [: U# P- [* C                               EA NOP  L- O. q% _7 T+ r; D; [; V& U
存放所全物品锁定
5 q6 m& f, E* {2 }2 ^存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只/ @" l8 ~" v: W" R0 v
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所," Z; M4 H3 P7 M! u1 t" H' j/ _' }  O
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
3 j# s1 j' @% X4 K7 K3 H1 S9 v. G2 V  ^件物品,故可以突破存放所128件物品的限制,改出全物品。
3 B# M6 Y8 n/ q$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
* p9 L/ R/ ]/ ?6 N- R: X$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   9 {& f* F2 T" U; Y, u
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB4 u8 P6 p& K5 I- o7 b" d
$ 85/C78E CA          DEX                     
  @9 t, J5 q7 l8 R+ W* N1 n$ 85/C78F CA          DEX                     
/ W4 T( A2 z5 Y; h6 ?9 U$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
* T; o1 A2 r, N7 G' e) h( H$ 85/C792 6B          RTL                     ;返回时X=$ FFFE- Y5 b  C6 E* e% O3 s: c: p1 |
$ 85/C793 A2 FE 00    LDX #$ 00FE              
+ s, y5 U) [/ X0 W7 K; l8 l$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
! Y- H& Y: ]4 b. K$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD06 p: w4 \& p8 w( C
$ 85/C79C CA          DEX                     
8 @, X1 I8 M) V8 I% a- o$ 85/C79D CA          DEX                     
2 o: U) u$ {9 z" ~$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
) H% h  o& J4 ^7 F& W' n. H7 |* x: o! ~$ 85/C7A0 6B          RTL                     
! r, W# v" z1 {: }实现全物品的代码如下:9 @, S7 D# a5 }2 T' ]( U1 U1 o2 Q' r3 {
Start@ $ 85/C7859 e5 o) n9 o$ _, G
LDX #$ 014C A2 4C 01;X=($ A7-1)*22 W  W: p8 H5 w1 o/ W
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量# |# I4 `& i1 {
@2 STA $ 6FCB,x 9D CB 6F
+ v7 P; H* r& pDEC A  3A
, u6 }) F; s$ b$ |% u5 F* dDEX  CA( r: ^$ d" z$ N9 i
DEX  CA: p4 I: Y- c  h2 h, {+ G/ a# H) j) W
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
/ O7 M0 E" H6 N& o; ?LDX #$ FFFE A2 FE FF;-|
% }$ C1 H6 i# q2 X$ t3 S' xRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序2 _: H3 D) A) `7 o1 G! s
@1 BPL @2 10 F2;循环$ A7次1 p( c% S% l  ~- J+ p
RTL  6B4 I2 l; S9 W3 I/ ~1 l/ |& U
最后改完后反汇编出来的结果:8 ]! z. W+ r4 W1 L7 @4 Y8 _* K
$ 85/C785 A2 4C 01    LDX #$ 014C              ) s! n+ e7 S. e, C
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
8 S9 A; j  r0 L1 P$ E4 v$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
( {4 U. y$ e: D& U; D  @+ }$ 85/C78E 3A          DEC A                   ; r7 V4 q, o7 K: g
$ 85/C78F CA          DEX                     
! o2 @4 u$ V- W3 i8 V% Y5 r# g$ 85/C790 CA          DEX                     
( |8 ^7 v9 D3 s/ Z+ _- Y$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
5 u8 g; n7 E' i$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
5 @6 @( ~! S( M" E$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么# v: f$ ?. A5 E# ~9 C
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      ' o7 w  v% ~1 J! k5 ?
$ 85/C799 6B          RTL                     
( B( Z, ]# U) Q9 `% E$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了6 Y+ I7 j$ X/ [( D. `- i# l: i' V. B5 u
$ 85/C79B EA          NOP                     ;
: @: C6 N/ ^6 y+ T6 W$ 85/C79C EA          NOP                     ;! m7 E. _, \4 P8 U5 M9 G) x9 K, C: h
$ 85/C79D EA          NOP                     ;2 q  d  V) g& Y/ E5 S( [" p& N
$ 85/C79E EA          NOP                     ;! x! B) h, N) A! ~
$ 85/C79F EA          NOP                     ;0 z! J( Y/ z$ @' d
$ 85/C7A0 6B          RTL                     ;
. ^4 ^6 S' O3 a8 {  |
9 ]) G& W$ q7 P% l+ L" V' `7 u: ^[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-11-2 11:45 , Processed in 1.085937 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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