设为首页收藏本站

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

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

  [复制链接]

签到天数: 1992 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
! g8 K' V" G; N3 L! O
3 P+ W2 j/ z( G, f火炎纹章776修改笔记
9 ~9 X0 B/ z# K2006.1.251 r+ b4 H, X$ l5 Z8 c4 D
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明3 S3 v+ u- j4 R9 |0 k
9 M4 @# B+ L3 P9 u* D% N7 l7 r

0 U/ F' c4 V9 Z7 u) r) W6 m, N修改工具:Geiger’s Snes9x Debugger Mark 9! k" \3 S8 m& ?

; {+ e6 N- D( G" q) g; q战后升级$ _, R5 e* K' K2 R: S
$ 83/EFDC 90 05       BCC $ 05->EA NOP
7 @0 H$ t8 ~# Y* M' I                              EA NOP
, C: e% b  F3 E5 o( a" k
/ o) ^! u% M/ @4 v" u  I& X战后能力+1
9 ^. I6 h6 m" U5 d0 \$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
: r0 m" |5 K- n' w+ d' f  t有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
3 L" {; J2 e2 H) X) @' r$ ]& a' A# b! V) S$ l
武器熟练直接到A
9 K9 B) I- N: r& I* r# v; k% T$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
" ~8 \, ^$ ^$ e3 t- h2 M0 T9 k' X                               EA NOP8 t& O6 J  Z, |: I! p# m8 ^
存放所全物品锁定
* s8 ~  a" n) X: _  ]9 ^9 |存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只1 w+ _5 C6 A4 d! V) A4 ~1 p
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
& n# _6 q2 c+ p: O$ v, c而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
, W. i+ D1 V; i. e件物品,故可以突破存放所128件物品的限制,改出全物品。5 L, A2 i1 {! \/ L5 f  G
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2! ]' v. m1 |7 \7 M0 P3 A; K% o. r
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
' f, s$ ^/ @1 f; {/ U9 ^/ ~7 t3 |* c$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB) L5 J9 R8 S# H4 n; W
$ 85/C78E CA          DEX                     
) p1 q6 c" K$ H3 v, ~$ 85/C78F CA          DEX                     3 q; W1 E1 v/ N# _
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
2 J5 S9 _& _# C6 T$ 85/C792 6B          RTL                     ;返回时X=$ FFFE; a: e) C6 t: u! e4 J! _
$ 85/C793 A2 FE 00    LDX #$ 00FE              , Q  [" S- F% A$ b
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   ' }- ]2 m) L2 R/ T
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0% P3 w( `+ X; ~' m2 o4 _8 \0 k
$ 85/C79C CA          DEX                     6 b8 J$ L- Z( N' O* u
$ 85/C79D CA          DEX                     
5 u1 w7 Y3 v& o) z# l$ 85/C79E 10 F6       BPL $ F6    [$ C796]      + ?3 L9 ?9 K: v9 f8 m8 T! E  M
$ 85/C7A0 6B          RTL                     
$ }- q  o7 p1 y8 x- m* H实现全物品的代码如下:
4 q2 @+ g( O# g+ sStart@ $ 85/C7856 b2 Y9 p8 ?# g' n1 x+ h8 o; h9 o
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
2 S+ D  L+ H( L8 {: b& }LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量0 X9 a2 T3 G) U
@2 STA $ 6FCB,x 9D CB 6F( h0 q$ b" w6 n7 w, K
DEC A  3A/ F# |5 v% O$ y- K" d
DEX  CA
  i& y  S% L- ?+ W$ v2 RDEX  CA
2 W9 T" I( B8 ~. }) ^BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间. Z! A. ^) k4 }7 P" `4 r9 d* n9 Y
LDX #$ FFFE A2 FE FF;-|
0 `8 H0 i  i- n" x3 X& _1 d; xRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
+ ~. O9 F/ X( Y6 A6 Q" z) j: X@1 BPL @2 10 F2;循环$ A7次
: P4 D$ Y" d& ]* JRTL  6B
& {: c  f" I" f+ ^最后改完后反汇编出来的结果:
: N5 m" \5 \, `5 B: p8 ^. q$ 85/C785 A2 4C 01    LDX #$ 014C              - j7 V& n! X+ B( u
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
) j- S8 u7 e7 W: Q0 ?4 }- C) U; h2 J$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   ) J. B9 m. ^2 |
$ 85/C78E 3A          DEC A                  
$ V8 o  b+ Q. y& |( t1 d8 B" p" h& n$ 85/C78F CA          DEX                     
8 j$ }% }0 I5 O' G7 G9 H" B% G. H- o$ 85/C790 CA          DEX                     ( L" z3 E. q6 ~6 j
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
) K4 V: }0 \2 X$ 85/C793 A2 FE FF    LDX #$ FFFE              ;& K( V" a# t: o3 g5 ?7 N
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
# _9 v4 i5 K) j$ 85/C797 10 F2       BPL $ F2    [$ C78B]      7 s0 j6 T% u: n* F
$ 85/C799 6B          RTL                     
2 k9 P& u0 ?& T, x4 A/ [; `- ]: W$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了& Y* N6 y1 d3 }& R
$ 85/C79B EA          NOP                     ;
# e# K6 x0 b$ X: u5 R- C5 Q$ 85/C79C EA          NOP                     ;0 R1 h$ P& G- n
$ 85/C79D EA          NOP                     ;$ K" b' m; ]2 L# T( m
$ 85/C79E EA          NOP                     ;4 O( q/ ]- [, m
$ 85/C79F EA          NOP                     ;, p8 ^$ Z$ Z  I6 @5 ?" G7 x
$ 85/C7A0 6B          RTL                     ;
0 u' w5 A, A( S, V4 ~1 q/ b0 a* k, q0 p( J
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

发表于 2009-3-10 12:41:38 | 显示全部楼层
学习了,但是有些专业术语还是不太明白
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-25 21:36

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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