EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1803 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
1 P8 B6 T2 b- g9 n/ z
8 n' E# o, p( Q8 g& L! j0 Z火炎纹章776修改笔记3 h- i4 L. l0 `! a5 p
2006.1.25: U/ K+ e* N! P9 x; P
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
& T) z5 h" x, B
+ ~) j0 ~# R, R, }# Q1 E& K* X0 _, ?+ S  _
修改工具:Geiger’s Snes9x Debugger Mark 9
+ u1 L. F) F: q6 \# O  d1 \. r  x, l: ~0 X- j# i+ t" K* S9 i
战后升级* E, r1 z+ n/ g+ n) L
$ 83/EFDC 90 05       BCC $ 05->EA NOP
. e' D' G; O! S* k                              EA NOP
% u( X% q7 O1 z  L5 t
2 F7 ?4 W" f6 b0 [. @; s战后能力+1' a1 A' B( I6 n
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
" ~' `4 |- R+ |& j) @有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b% V" y, t8 q7 A* R! \2 @: e
: }& W) Q9 }# h7 }7 J1 [; L4 f
武器熟练直接到A
* Q$ E7 s" l0 {% E) T: q, g$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
2 ?% j/ ~( v1 u) U7 f" Y                               EA NOP- [% x9 o7 ~! t& x
存放所全物品锁定$ {  N  o' y% d1 P) V% P
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只3 \1 J. k# l" o: n
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,  f, [+ k6 R# I% p1 r5 L
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
8 j) Q4 H1 h8 M+ M* C* m件物品,故可以突破存放所128件物品的限制,改出全物品。* a6 [' [! K$ V) G2 L. S$ F# {) u
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
8 b. \3 w* c2 w$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
' g3 e1 K' S- R" o9 y$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
4 Q5 n! H0 k* v* i- f1 `2 N$ 85/C78E CA          DEX                     6 f1 ]: i# `* c  Y! `7 P" G) k- V
$ 85/C78F CA          DEX                     ; J. N' E% @# _8 c3 C0 j
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
+ R6 G4 M0 N* _. o1 A/ X5 M$ 85/C792 6B          RTL                     ;返回时X=$ FFFE( n. b) g9 E* W1 ?$ q) A
$ 85/C793 A2 FE 00    LDX #$ 00FE              / a  x5 ~6 ?7 m1 g& f3 o
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
  x/ R2 o* k' f3 W$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
, H0 p' Y8 ^, q( F$ 85/C79C CA          DEX                     % T, E2 |2 X, j+ {! ^
$ 85/C79D CA          DEX                     + {6 O1 u* K6 @1 K7 A
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      " d( h4 \. S3 `* ]3 w
$ 85/C7A0 6B          RTL                     
: }3 g) V: {+ a) N实现全物品的代码如下:
" U! Z4 v  _9 h3 _# JStart@ $ 85/C785
. a( |4 h9 v" _" V+ M  @LDX #$ 014C A2 4C 01;X=($ A7-1)*2
& S4 F8 ^# k' ULDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
) q/ I/ m1 U6 U* I@2 STA $ 6FCB,x 9D CB 6F3 v" U1 U/ c4 k8 p+ S- N8 I, q
DEC A  3A
, P& Y7 S0 s$ t# ~# p( n, cDEX  CA
3 G& Q; T  `- u! A# J) \0 T* JDEX  CA
+ S8 _9 O- i1 Q' Y. W. x5 uBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
# G( d1 W% Z8 [" X( F5 ZLDX #$ FFFE A2 FE FF;-|6 T" B5 Q3 ^: I0 i5 v2 z
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序9 V7 ^! n3 u3 s& F+ B. A, r* e, B
@1 BPL @2 10 F2;循环$ A7次
/ p( b8 l; B3 ~% G- X" uRTL  6B
" L& |8 e$ U7 J. ~8 ~* s最后改完后反汇编出来的结果:+ a2 _1 O* f7 `" C( I
$ 85/C785 A2 4C 01    LDX #$ 014C              
- F+ F& z  N2 o% M4 {. c$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
" {; E7 g! |  a: ?  J9 s) A$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
9 Q8 ^% L5 R( K" k$ 85/C78E 3A          DEC A                   6 n3 I, m  ]2 I8 A  `
$ 85/C78F CA          DEX                     
1 T3 e  S+ O! d% \( {! B# b* |9 c5 L: C6 R$ 85/C790 CA          DEX                     
. R3 A& i4 o! o$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间8 K) P2 V1 K' z) s4 D
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
( B; X' u2 q! l- t0 Y( Z- e) m" F$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
! C" A9 Y1 C9 ]: m$ 85/C797 10 F2       BPL $ F2    [$ C78B]      ' H/ J2 J- ~' n: P5 e8 ?# G) ^
$ 85/C799 6B          RTL                     
6 t4 t, {% P+ H" ]6 u7 H$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
, M: b2 h: a+ H: ]- ?* |: |4 A8 Y$ 85/C79B EA          NOP                     ;
8 O4 g4 e2 \' A! m/ g5 W$ 85/C79C EA          NOP                     ;' }) h# c3 U6 H
$ 85/C79D EA          NOP                     ;  B# b8 _5 U+ F) y/ A- D0 q/ y
$ 85/C79E EA          NOP                     ;
( l- f. f' [' @* d  ]- ~* C- n$ 85/C79F EA          NOP                     ;: w  k% T9 K8 j9 o- J' y' x
$ 85/C7A0 6B          RTL                     ;
3 L) X2 m2 e, q6 K( V4 D
5 ]4 p7 N( n& c' h) K7 ^[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2024-12-19 01:07 , Processed in 1.097657 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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