设为首页收藏本站

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

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

  [复制链接]

签到天数: 1972 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html) c1 u" Z+ _7 B3 ^* i* X" Y
2 i  ~- _0 ^9 ?7 X# A5 e8 q
火炎纹章776修改笔记5 d; W. U, z/ S& J% l  W
2006.1.25% J5 t' W3 g, S, H2 V
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明, {7 U" U0 O9 T5 Z! P7 C

, X) f, j4 {6 T# L; c
3 _: h2 f4 o+ ]( c( {/ H; U修改工具:Geiger’s Snes9x Debugger Mark 9
1 O& }, m' S/ r% G" u5 D
5 K' y  _# w' R战后升级8 a6 |% i( J3 E4 Y, Y8 D/ S
$ 83/EFDC 90 05       BCC $ 05->EA NOP8 e  Y* a& G- F+ L) i6 `+ V, E, P
                              EA NOP' W/ }* u( V3 _6 b& M' M$ a9 _
4 a/ ^# m% N: f* y
战后能力+18 A. u$ L. Z( f& {: v
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00013 z, j; |9 c  a2 `' |
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b0 D; i7 B1 U" Y- b% u1 r

5 V# a* A  A% ]2 G0 x武器熟练直接到A% z) N7 y  Q  u! O6 E( r
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
7 X# p8 m1 \- U. _$ d9 H                               EA NOP' s! [/ O+ c1 v; ]9 U
存放所全物品锁定7 W2 P, d" f' W
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
+ L/ J* Y9 _( R9 h" [5 b) E2 v要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
: d1 Z) I+ w2 q而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
1 A& y3 `  s6 K% s- `4 q件物品,故可以突破存放所128件物品的限制,改出全物品。$ w" i2 q! ~- v" [: i8 U
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
. b& D) i% W" {+ F6 y$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
$ L: s9 d1 |9 s  }2 o$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB9 J. d: ]. a9 b, \) K4 g
$ 85/C78E CA          DEX                     & g7 ?' \) C5 `
$ 85/C78F CA          DEX                     
- K  i3 b+ Y" w! {) ?6 o( K$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
9 {/ X! Q5 F$ R$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
2 T6 x; n5 f7 l6 s" D$ 85/C793 A2 FE 00    LDX #$ 00FE              
/ g; p2 ?  X: i1 H$ O( U9 j$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   1 e) e3 C/ E9 u- C; a* d* B
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0  L- l5 Q9 z. D$ Y: `3 o0 _, V
$ 85/C79C CA          DEX                     
( R3 ~0 `4 _0 E/ _& ^4 ?$ 85/C79D CA          DEX                     
7 U3 D7 J8 M! {" ~5 o7 ~$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
6 L; t% R: Z) @$ 85/C7A0 6B          RTL                     
5 I6 l" H4 D6 P. ~( ]7 ]/ i实现全物品的代码如下:- S6 z, v% r6 j+ k1 \/ g4 Z' e
Start@ $ 85/C785! ?% M4 ], ^" U1 f8 S$ A
LDX #$ 014C A2 4C 01;X=($ A7-1)*2& t# C- S# ~, ^4 m0 O
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
4 s  P' k+ W( r& F; G- C@2 STA $ 6FCB,x 9D CB 6F
: U. S& U: r1 u9 I; z0 u! dDEC A  3A
, s! {) k# i9 i$ K4 \8 mDEX  CA+ y2 A# _, a7 m
DEX  CA
" _: m, G6 p' TBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
# B, B/ |) c7 F& j# [3 {4 F- Y1 JLDX #$ FFFE A2 FE FF;-|" N% \7 R- M! @* }1 M9 F
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序- v6 X8 d$ K5 Q8 h1 ]" M; J
@1 BPL @2 10 F2;循环$ A7次
7 _9 _* o7 N3 e1 C8 h5 y3 WRTL  6B. \: Z2 a7 u: h6 m
最后改完后反汇编出来的结果:
4 h: ^4 t' A8 `( V. l  u  C$ P$ 85/C785 A2 4C 01    LDX #$ 014C              4 I7 ~: A9 n. O$ ]1 i. {( G# S1 {9 B
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              6 r, w/ l7 p) d- E7 k
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
# S: l0 }- l& Z0 ^$ 85/C78E 3A          DEC A                  
  [% H1 T6 j$ l: `8 ^7 ~$ 85/C78F CA          DEX                     
# W, M) J3 _4 R7 Q/ a7 n$ 85/C790 CA          DEX                     
8 n- T# B3 ?$ M6 s$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间- P8 `5 [6 h$ {
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
0 p, d* S3 ?9 v8 a  z5 \$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么) C4 W2 L# h# _0 C0 {
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      , c: V2 d0 ?- V9 f' K
$ 85/C799 6B          RTL                     , z; c: ^$ s, R% P4 u* F: F# w4 c
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
: G! c$ U8 c6 s8 N) [) S& J$ 85/C79B EA          NOP                     ;
* f* j, _- F$ }  C, l9 R, [5 _$ 85/C79C EA          NOP                     ;2 b+ q. K5 R; q: J, \. G$ M
$ 85/C79D EA          NOP                     ;
: h, U3 l: z' s0 |' V- h$ R$ 85/C79E EA          NOP                     ;
4 V: E& G8 W& d6 A5 H$ 85/C79F EA          NOP                     ;
; b; O' c& F3 r. k9 U$ r" u% `$ 85/C7A0 6B          RTL                     ;
, ^4 k9 t6 G; Q- X8 C8 Q3 [% }, L- a/ s5 d4 [) @( T' o$ y. o( W6 ~
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-5 19:06

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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