设为首页收藏本站

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

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

  [复制链接]

签到天数: 2032 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
7 j; _. b" Z( m8 n3 ^8 |. N: v9 w  j2 @4 }; U  M
火炎纹章776修改笔记4 ]1 P! E+ M& S
2006.1.25
& Q' j0 _1 N4 z3 C作者:zHAOsILi[EGCG](.zZ~~) 转载请注明( ~) m- B0 b0 x% g8 S0 M

4 y: {6 Y$ x. M5 A7 z) s! E# w' X+ \( o* F2 ]6 v
修改工具:Geiger’s Snes9x Debugger Mark 90 [8 {: q" A4 E) H9 Q
1 G: b) p: f& V  a+ F
战后升级" C: `* W  @9 s+ ?9 R
$ 83/EFDC 90 05       BCC $ 05->EA NOP
0 S; m$ r1 L; Y2 c, ~                              EA NOP5 K) B0 v4 v& j3 R3 m( J( f) r

: d% O6 `0 N& X7 ?5 u% d+ n6 f战后能力+1
2 d# [& O0 i4 r+ _) |# @$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
$ t  y. U7 w6 @) f有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
( Q: P4 g3 Y* v$ r0 C. b! Q2 L4 Q  w( p
武器熟练直接到A) \, T0 }& f2 A* b+ u
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
( v1 @& j* q( \* R                               EA NOP  I! k1 G" @' \
存放所全物品锁定- l- W9 {" }- X
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只( e6 O( l+ g$ Q) z
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,$ S& H9 p2 e1 U% a
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128; h$ ^2 _1 G, Y0 ]3 `2 U
件物品,故可以突破存放所128件物品的限制,改出全物品。
% V  V$ Q3 p7 D/ D$ a- P$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
) s# z8 |# \- v0 n5 T8 O9 D# f4 b$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
0 ~; R% ]( [! D9 g; _$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB& ^7 D) d. i6 A
$ 85/C78E CA          DEX                     * j, \( Q* z( ^4 n7 i$ _
$ 85/C78F CA          DEX                     
) W  z1 M, Z9 v: I, n1 K" Z2 S& r$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
! p/ u: n3 k# S! h8 v0 T1 g4 L$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
6 N! z4 h9 r1 ]7 Z" ?$ 85/C793 A2 FE 00    LDX #$ 00FE              + |: \& r; @, b6 E& n/ b
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   * Y, `# u3 M- x: q- C
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
7 [0 |6 h& q& G" q2 d" f2 Q9 \$ 85/C79C CA          DEX                     
5 |  Z  D/ I2 ]5 e' s8 J$ 85/C79D CA          DEX                     
9 }( K3 q& ]* G$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
# @. \$ g' t& `9 p1 \8 _! L$ l$ 85/C7A0 6B          RTL                     - t* O% `' x$ l/ E* y4 h* T7 C
实现全物品的代码如下:0 M% \& N5 [$ u9 g  Q7 [6 |
Start@ $ 85/C785
! o3 `7 D  g. e% n+ j; q% |LDX #$ 014C A2 4C 01;X=($ A7-1)*2
: N7 R: |3 d3 ^LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
+ c0 `3 }8 i" G. D  f@2 STA $ 6FCB,x 9D CB 6F: d" t! n; @* {8 p2 E! _" a
DEC A  3A
5 d: H# S% Z2 J$ {DEX  CA1 E2 J& V) T& l  N! a9 J3 H# S
DEX  CA
6 @# |: u! v+ OBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
% s7 P% ]( }1 H; w1 z' pLDX #$ FFFE A2 FE FF;-|! Y1 H- z6 r) d7 z* y( \
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
2 ^# P2 n" r* K@1 BPL @2 10 F2;循环$ A7次  p  I  K4 u8 ]0 P( A. ]
RTL  6B
2 x8 Y2 t$ e) o2 ^最后改完后反汇编出来的结果:
! N% g2 o) e& V/ j# a2 h, K$ 85/C785 A2 4C 01    LDX #$ 014C              
( M9 H) u* D3 A% ]" \4 F$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
2 T& z% ~) E3 _% ]2 E5 p$ \$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   5 T( C) Y' Z' o4 ]. H" C" |
$ 85/C78E 3A          DEC A                   " [" Z6 j! a; x( ~! i
$ 85/C78F CA          DEX                     8 D/ z& \1 G) k% N
$ 85/C790 CA          DEX                     5 }! p5 g! ^0 O
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间( O- |. c% X" w# ^
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
, z/ v5 i: a# z! I* J: e9 B: ]$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么4 ~1 M) L& m7 @
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
4 u& y. m6 k" s' j- {, X$ 85/C799 6B          RTL                     
$ [# i7 \0 s, }! p5 I, s$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
. ]- K) h) ]6 f+ r0 D+ t$ 85/C79B EA          NOP                     ;
3 N% z: `2 G; h! Y+ s5 ]3 J  M. g$ 85/C79C EA          NOP                     ;& D. [- K, {( Z/ C9 K/ V0 c2 J
$ 85/C79D EA          NOP                     ;9 `/ H6 @( d1 u/ f% j
$ 85/C79E EA          NOP                     ;) P0 Y& H" M0 ?+ I9 X' S7 D
$ 85/C79F EA          NOP                     ;
' N1 l2 R0 T6 W$ 85/C7A0 6B          RTL                     ;. h2 h/ T8 {! z- H' D# \' C% q
* k2 W, m; A5 p8 `( X4 P0 N$ Z
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-5 02:15

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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