EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2151 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
( S/ y& W- z2 e# o$ t% D0 Q( W
/ t% J( K7 P" d0 r- _* s8 h火炎纹章776修改笔记9 b( c% b1 T  e4 P3 N1 o
2006.1.25
) @- r5 y# }) ~2 ~作者:zHAOsILi[EGCG](.zZ~~) 转载请注明9 W' f" u6 l7 s3 c+ p# M

9 C( |% c! L! q3 v7 z, ^7 a! T: n; U2 q& }
修改工具:Geiger’s Snes9x Debugger Mark 9& d3 V! [8 L1 e) {3 ~- O
/ f# \& k, J; M/ D
战后升级
5 @, ]0 u4 u, K- M& A! b) g" q( S$ 83/EFDC 90 05       BCC $ 05->EA NOP( f0 p6 X$ [' U
                              EA NOP+ f( j: o5 M" g3 h7 C
( Y  t  E! D. _. V/ X
战后能力+1
0 W- ?& J, \, f  m- `7 E5 u$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00012 g9 y9 r1 A. y4 ?! |7 o' K
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b# ~9 a% v; j; [7 ^6 k5 b/ g

- f/ o! B+ Z$ B  L  a" [6 }武器熟练直接到A
: B. E! \% f2 v$ 83/E4E9 90 03       BCC $ 03 ->EA NOP, A+ K$ t' Y( I/ S
                               EA NOP
# e4 j; k: t$ ~( J' ?# W存放所全物品锁定; D" |$ A/ O- C1 ^$ e3 Y" t
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只" d2 i) O* c& E, ^3 E! U6 t
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
: g, E7 f- ]2 y6 X& B' @而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
% a" z; x1 L, A5 m" `) N9 L件物品,故可以突破存放所128件物品的限制,改出全物品。
" d* Q7 R& J7 X" [$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*21 h1 n7 C! g% l8 O$ I! _7 x* v6 \
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
: \/ z4 c- Q; Y$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
4 Y1 S) S+ _! M2 ~$ k$ 85/C78E CA          DEX                     ( |, t' q# z+ |7 E) }0 h+ e
$ 85/C78F CA          DEX                     
: a1 j* @+ K7 L) H$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
+ ^* R$ l2 G6 Z$ 85/C792 6B          RTL                     ;返回时X=$ FFFE) i/ e- t9 z- h; s( F- k" y
$ 85/C793 A2 FE 00    LDX #$ 00FE              ( L% z1 W8 {. \- [/ ]2 ^1 J
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   . h: M) n1 B) N' Q' G2 i' A: z9 i# z  q
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0# o2 }/ ~2 k3 k- @( L+ T- ?
$ 85/C79C CA          DEX                     . X7 F: l$ J1 r6 b8 x+ y# G( O
$ 85/C79D CA          DEX                     
' r4 X" {. e4 i+ C$ c$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
5 c# J. n  b, i: j  K1 \$ 85/C7A0 6B          RTL                     
0 l5 S, ]$ M4 Z实现全物品的代码如下:* U7 p- Y. h# x' p0 t1 Z
Start@ $ 85/C785
$ w0 _* e+ ^) `# cLDX #$ 014C A2 4C 01;X=($ A7-1)*27 d" K6 ]" `" o) l9 G, D, y
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
, q1 I7 [) N: F3 h: J7 N@2 STA $ 6FCB,x 9D CB 6F+ e1 Y) r$ H/ @* b5 m* j: i% o
DEC A  3A
$ o2 t- _7 }' N7 D! Q, NDEX  CA
. X. @! N3 \3 k; {& K) BDEX  CA
4 I( Z/ N) o, L* u5 FBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间# }5 R: F6 ~! u+ Q
LDX #$ FFFE A2 FE FF;-|
5 Q& l  V, x- b: Y% fRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序0 H& v& q" u( g0 m2 h7 I7 ~
@1 BPL @2 10 F2;循环$ A7次2 x5 i/ S1 a- I
RTL  6B
8 z$ k( Q' r. _8 W3 K3 E最后改完后反汇编出来的结果:
9 m' z2 i6 ~8 M1 B, y2 C/ v$ 85/C785 A2 4C 01    LDX #$ 014C              
" F8 e. D$ @- h0 N$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
* C7 |9 P. H; g0 q0 t5 T; U) E$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   , I8 S, w& P0 C  j2 o  y: R; n3 x
$ 85/C78E 3A          DEC A                   / c2 _, O9 B: E* H1 u8 D: L
$ 85/C78F CA          DEX                     
0 V1 W- h& @% e& L  I2 q$ 85/C790 CA          DEX                     - N) w) U" }: H/ o3 x$ r7 C
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间6 _, B: g$ n; _
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
4 A" Z7 B. V  y4 @3 f$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
* T. T( a/ q6 W$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
  s' F& t& Y7 S8 ^% K4 T8 T6 x$ 85/C799 6B          RTL                     
7 R3 }% i0 J  b' }; x2 w$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
6 z. v) ~- O- E8 |- B$ 85/C79B EA          NOP                     ;
. e& K! f, ~0 i2 L$ 85/C79C EA          NOP                     ;
! }1 Q: V5 ^; G4 z$ 85/C79D EA          NOP                     ;
: |2 L( B* k! g" y* g5 F% ]5 }$ 85/C79E EA          NOP                     ;
8 D! A% N! p9 z8 A6 K  v$ 85/C79F EA          NOP                     ;% n. f4 Q) |: o3 F3 z# t$ p
$ 85/C7A0 6B          RTL                     ;& n6 Z8 j1 Q. }/ i6 |) v7 Q2 s
2 S) Z: v, L! R) _( e# u2 V5 m
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-12-5 22:45 , Processed in 1.075195 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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