EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1894 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
! V4 x9 r, ~" p  u: c9 h) e) H3 a/ k4 o, f: E  r
火炎纹章776修改笔记
1 t, [# {! C  ]9 m6 T) ]7 r2006.1.25
) {& I# w4 @8 Y/ t" h$ Y) L  n作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
: B9 e7 @, ?0 d5 }! Z: Z* `+ u1 ?; D6 ?6 |
7 a% R9 h% r; U7 {: J9 f
修改工具:Geiger’s Snes9x Debugger Mark 9
0 \. x: l  h* S9 D; ?0 v. v; o+ r
, ?# I6 D. _1 m5 D1 G. q0 r' g# y/ g战后升级* _9 y2 p7 T+ Q% N
$ 83/EFDC 90 05       BCC $ 05->EA NOP4 W. X. X0 s: s8 v9 Q( C
                              EA NOP
# H. Y0 g, A+ n4 h. R! ^8 Z+ P( \* }2 y7 _8 i; w7 l1 A9 z
战后能力+1  [1 j& m( W7 H4 ~# B: y
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001; ?1 _2 x" D& q8 u+ W7 n
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
7 f1 x0 m  \  r" r' p+ H. @3 C! S
武器熟练直接到A. \" y4 F1 K& B1 Y9 S
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP3 B2 u: b  V% X% C' s5 I# q6 }# h
                               EA NOP
+ i% K% e. u2 Z1 ~# Z存放所全物品锁定
' q) v9 O0 k' {; ?" u存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只; [7 z% v$ z4 A% y
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
7 R* |1 d# d, s% N而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128; P& X, a+ s+ ?( X3 r1 x8 ^- X
件物品,故可以突破存放所128件物品的限制,改出全物品。
0 m3 W9 L7 k! H! b/ J6 C$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
5 s1 P3 a  P' t% O4 G5 u. n$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   3 V1 h  r' W8 e  p( Y; i/ H5 H
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB/ P8 X! {: L( y* ~
$ 85/C78E CA          DEX                     + G% X2 a/ F; [  _: A+ A
$ 85/C78F CA          DEX                     2 \8 T& p# S  N; @( M$ G3 X
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次% p8 U: U9 W& ]$ s3 L) d$ q
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE9 [" _3 l, L) N, Z. }1 e) X
$ 85/C793 A2 FE 00    LDX #$ 00FE              7 H6 e4 s3 p# E, j
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
2 c6 \" T0 ]# Q; d$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
+ h8 _( p! L+ X1 x; `: j& X! `$ 85/C79C CA          DEX                     ! N% {0 R9 B. \. b) k
$ 85/C79D CA          DEX                     
3 Q. Z  d$ E. @, X% G$ 85/C79E 10 F6       BPL $ F6    [$ C796]      % [; K; L! A3 v( |' o% r# N7 h' G* q, T
$ 85/C7A0 6B          RTL                     & j, h1 S0 |, a- I0 v
实现全物品的代码如下:" W; X# n9 t# ^$ }$ p1 Y
Start@ $ 85/C785
+ N, i4 `" Q5 i% k' CLDX #$ 014C A2 4C 01;X=($ A7-1)*2
5 {; e7 k' K/ v; s- {LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量5 ]) ^1 ?! r0 o
@2 STA $ 6FCB,x 9D CB 6F. n! ^5 @# g7 r, I( v
DEC A  3A; @4 v  h( m0 L6 p  S% q
DEX  CA3 ]0 e  z1 n$ A8 z
DEX  CA
  v  p1 B# @2 H( t; J+ t# GBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
4 v6 D1 O3 Q3 q4 mLDX #$ FFFE A2 FE FF;-|3 U  P  L5 T# n, g: j
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
$ ~# E; i+ w7 A@1 BPL @2 10 F2;循环$ A7次
" f8 \7 Q# x/ \: l' ]RTL  6B
" M: }9 z2 Y1 w最后改完后反汇编出来的结果:
5 E$ B% _5 t8 {0 W8 n$ 85/C785 A2 4C 01    LDX #$ 014C              
6 h9 m) y9 Y* n& Z$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
) i7 c; T1 h# \! N6 F. K5 u$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   8 \4 [3 u9 Y' ]; c
$ 85/C78E 3A          DEC A                   % H( ?$ M: @! s7 J+ ^
$ 85/C78F CA          DEX                     
& X4 P% a( w. V# b$ 85/C790 CA          DEX                     / v9 z- m: ?1 O( [
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
8 h& A0 C, p4 x- P6 R" m0 e8 W$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
) J5 [! b" h" y; c" T$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么- H2 D' r$ h4 f, t# x9 A
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      " r# J9 P  [0 n/ Y! }
$ 85/C799 6B          RTL                     
) M, M$ d" L/ E7 Y% K  u! e$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了0 U+ J" J0 O$ M0 u
$ 85/C79B EA          NOP                     ;
1 I2 U& Q! ~; j' c3 U* c$ 85/C79C EA          NOP                     ;
4 H% \& |) R# Y+ x7 Y) x0 t$ 85/C79D EA          NOP                     ;7 M: I* o* f1 }
$ 85/C79E EA          NOP                     ;
, {& G4 b1 Y4 m) v$ 85/C79F EA          NOP                     ;' G3 C. `4 d& ^$ x$ O- ^
$ 85/C7A0 6B          RTL                     ;% J9 V! J/ t# j! q) ^" t/ V

# {& Y  J$ {  G" G[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2026-2-24 11:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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