EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1995 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html0 r  ]) [8 z/ z

: t/ g$ ?- t' ^3 i# I* y8 b火炎纹章776修改笔记
* I  c) H, Y. f. K! e# e: ]8 }2006.1.252 D3 H+ a* L" b5 i7 \
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
; K% l$ o3 z1 ?
& e8 ^/ _  d# h# J/ D  v' g- O5 Z
! U) R" |# O% E" q修改工具:Geiger’s Snes9x Debugger Mark 9: Y& U+ J0 H" ?" C7 P! v0 o. t* x

6 @5 e# z+ B( _) ?$ S% x战后升级8 w9 |; J, t) ?7 U* {" _
$ 83/EFDC 90 05       BCC $ 05->EA NOP
: ?5 ~- I6 ?& h                              EA NOP( G9 L( i, N% f+ b4 ~% C, `

( o0 S( m% ^, U: ?+ i( P/ t战后能力+1
( |/ g* U/ `  c( h& G0 P$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001  ?* ^4 d$ T0 V7 L
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b, j0 Q4 E5 Y  f+ m! C

" J; O$ y, ^9 J0 D武器熟练直接到A
6 ]" ~- X0 f! f1 s$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
3 `6 N  |! ]7 F! H7 ]3 R$ l' x9 ^4 L                               EA NOP2 i. f, a* n: f0 Q! J6 _
存放所全物品锁定
( @1 C: m- g$ [0 F! ]2 E. n存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
2 [. O- s" G. S, g要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,* {8 D" H2 X9 D& S
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
7 e/ C5 R! u! `7 W件物品,故可以突破存放所128件物品的限制,改出全物品。
# l' W7 x& S8 {$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2  T! W% ~  ]8 y
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
& g6 F3 ?+ `" K, S, h( E$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
- [) J% m& @, X/ q) g, }! n8 ^$ 85/C78E CA          DEX                     " c7 z# u* Q. I
$ 85/C78F CA          DEX                     
/ p3 |+ V- V3 o$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次  k0 Y- V! R7 S. c! z2 D6 M1 A
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE& L1 ~- _, c  H6 |9 v
$ 85/C793 A2 FE 00    LDX #$ 00FE              
9 Y& d: a) P- U; g! r7 H: R$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
, Y: @/ n. f# t5 `$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
9 w# _  T& U, \! A' f" Y! f. }$ 85/C79C CA          DEX                     
+ \( l& i# U; N. v) ~5 u$ 85/C79D CA          DEX                     
, E/ ]6 [# S0 T; i+ M3 l+ L) O$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
& X; s: t8 h* X* }3 r+ W( X$ 85/C7A0 6B          RTL                     + i7 K& S. c! Z6 _$ ]
实现全物品的代码如下:  N- u7 Q# C# n# y+ H6 a9 O3 ]% ^7 I
Start@ $ 85/C7856 W0 h  ]/ n, L+ Z1 k
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
- \, i: y9 Z7 g2 L" b8 w- S, l; PLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量# V4 C7 Z" p3 s3 Y7 b
@2 STA $ 6FCB,x 9D CB 6F
0 j, D# M. k, V7 q0 ZDEC A  3A
" o% u8 O$ I' s6 \" u5 `4 vDEX  CA& I+ [9 W" X# T" n
DEX  CA7 o% W* C  {; u* d' V( F
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间9 L+ _7 C+ k- @6 C: r
LDX #$ FFFE A2 FE FF;-|* _1 o- _* L& j5 z: \* H
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
/ D8 W1 p2 ~' N* M@1 BPL @2 10 F2;循环$ A7次8 D4 Q( [# S  q9 ?: a0 \
RTL  6B0 L1 }6 f/ i4 O& ^  n5 G
最后改完后反汇编出来的结果:
, n  V6 U: U* Z( B; c  r$ 85/C785 A2 4C 01    LDX #$ 014C              
+ m8 @% n" e& k' Y' S1 V$ 85/C788 A9 A7 3C    LDA #$ 3CA7              , C+ Q5 m7 r0 E4 j$ o
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   $ c( k$ \! A: B3 P* Z
$ 85/C78E 3A          DEC A                   1 {* J0 [& e9 Q$ J
$ 85/C78F CA          DEX                     
- G7 @  D- j5 V3 n8 o+ N+ q$ 85/C790 CA          DEX                     
6 j) p" @/ L: \' @- s! b- K$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间' }9 O) Y$ f- x+ N9 V- Y; _
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
' F$ `- W' w! H9 X0 ~. Y! a. ~$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么% W8 i$ O- Y8 V  W8 P3 x% V- J2 W
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      : I/ m" i" D& K. S0 F
$ 85/C799 6B          RTL                     
( j$ W7 P' _/ X  s3 t$ s$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了0 t3 }# a1 l( S
$ 85/C79B EA          NOP                     ;
) t' ]  K/ z. ^$ 85/C79C EA          NOP                     ;
8 [/ |; K9 s0 N/ T- C$ ]+ |2 |$ 85/C79D EA          NOP                     ;9 Z% w3 K1 a, V0 x( v6 h& ]
$ 85/C79E EA          NOP                     ;
" Z- V- B4 W( l$ \. Z$ 85/C79F EA          NOP                     ;
( F0 a- V( o& Z! [* B4 v% r* w, N9 J$ a$ 85/C7A0 6B          RTL                     ;& u6 t* L3 v5 z/ j9 J

: }9 j( l  t6 U! G8 t[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-7-2 09:48 , Processed in 1.080078 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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