EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1772 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html* J; b1 p4 O3 {. D+ W4 e

+ E0 I3 i' s' _, u( ?" W火炎纹章776修改笔记% H" G" G' v+ M/ S* X9 J+ K
2006.1.25
2 Q: U% m8 e% }7 C4 Y作者:zHAOsILi[EGCG](.zZ~~) 转载请注明2 I7 x; [! o- F& p# X

; j1 ]5 \' U3 H/ K  g! [' S9 Y; y. J6 E  C  ]/ d' r
修改工具:Geiger’s Snes9x Debugger Mark 9
# c7 S" R- a* D9 h3 ?% r2 ~/ W: k; d4 k6 V
; I; [* e& q% @9 r' u' V6 t战后升级
8 D2 q0 h& K) A( ?6 J7 Q$ 83/EFDC 90 05       BCC $ 05->EA NOP8 W6 y9 r' _8 [  e8 R' \1 i' k8 J* u
                              EA NOP) D- N7 Y! c+ ?8 S
4 |3 o# f0 V5 C5 |+ a
战后能力+1/ P8 m% F) X. o. E( L
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00016 l& N& n6 u+ w7 x2 R5 N
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b! ~$ w$ H6 |, }+ |
0 z, n6 K) ~" Y" L' z& e* b
武器熟练直接到A
  s. K2 `+ _' }: \/ n* L9 O$ o2 P7 M" y  E$ 83/E4E9 90 03       BCC $ 03 ->EA NOP' W. X' R! R2 V5 R5 @
                               EA NOP2 V% t$ {) H; X8 h; y
存放所全物品锁定2 S8 Z7 c1 ?2 m
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
* ^" o" S8 {- L9 I7 b要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
& n+ ^/ k- I4 F& _6 R% L1 b/ o而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
+ ?9 F, m" Y1 U% R  _, {# m件物品,故可以突破存放所128件物品的限制,改出全物品。
. Y+ |" I( N7 ~/ f$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2+ |, p6 A2 y5 L( m  L; ]3 z
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
& t% w; A. c; l' V) {2 i$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB$ V* _" n% k0 w! x4 T" Y7 z; ^2 A
$ 85/C78E CA          DEX                     * _5 E: z5 c" x& f( Q  e
$ 85/C78F CA          DEX                     2 ?+ s7 ^7 U& O" g* V2 E2 l
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
/ t8 f! T; i3 s: K$ 85/C792 6B          RTL                     ;返回时X=$ FFFE3 v1 p* u2 F, u4 O) C! j# y
$ 85/C793 A2 FE 00    LDX #$ 00FE              * g8 P* n0 m% _# @2 |# ^" @) c
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   , D3 s: A2 u( g: ^
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD00 r5 q5 s# k5 y, H
$ 85/C79C CA          DEX                     - g' F6 G. h! R: j
$ 85/C79D CA          DEX                     
$ n9 L2 h& N7 l/ n$ |" J# j+ O$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
  _+ P0 N% K* M" ?5 U/ A) G+ {* h$ 85/C7A0 6B          RTL                     
% v- N  s9 I: ]8 E! f- r6 |; u. M9 l实现全物品的代码如下:
( f* \! j# P/ F" eStart@ $ 85/C785& y2 ?+ R) g  |
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
+ W5 S) C1 N0 p9 k6 fLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量+ a0 G: K5 e2 g
@2 STA $ 6FCB,x 9D CB 6F
1 G3 O$ E$ l6 \3 lDEC A  3A
5 P! u/ c2 a$ N& ^DEX  CA  z5 u& N, V; h. P
DEX  CA
9 K3 N: i0 ^4 n, \* s7 H# |: eBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
" p! I  n" _' Q0 a; r' d3 Y& x/ RLDX #$ FFFE A2 FE FF;-|
" {5 V+ Z- L: A5 sRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序2 p% ?6 n% ]5 U. N6 L  w1 u, Y
@1 BPL @2 10 F2;循环$ A7次
. Q1 E5 P0 k: u3 |6 CRTL  6B
4 A- a. U5 x8 A最后改完后反汇编出来的结果:
- ]  F8 |7 v! O' d+ a9 R- s. K) g$ 85/C785 A2 4C 01    LDX #$ 014C              
5 Y# R0 w# B+ c; v$ d+ h$ 85/C788 A9 A7 3C    LDA #$ 3CA7              * d6 b6 T; }. T; d/ N/ B( V
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   % L9 K1 t1 A: O! m6 I6 E+ l; P
$ 85/C78E 3A          DEC A                  
7 E/ S7 h. w6 k2 B6 w) F5 s$ 85/C78F CA          DEX                     
1 S' C9 @, S6 A% Z; y9 X$ 85/C790 CA          DEX                     " L8 I- i! H% x9 g# W
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
* o! m/ [: h. ?+ p8 _! J- d3 Y; B  |$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
& d" S4 t2 I7 F' d7 p) n$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
6 T( N+ |6 |2 D1 L$ 85/C797 10 F2       BPL $ F2    [$ C78B]      ( F% L7 {( t1 d  t. k
$ 85/C799 6B          RTL                     ( l% u9 t! s2 |+ T5 ]  Z
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
! q5 j  e' D8 [: T7 c$ 85/C79B EA          NOP                     ;
+ o% X9 v" y! S8 s$ 85/C79C EA          NOP                     ;
* P* J% K7 f: X+ {$ 85/C79D EA          NOP                     ;0 o1 j% O8 f2 Z' q. h) D9 o
$ 85/C79E EA          NOP                     ;
$ A! }2 U$ H6 V1 I$ 85/C79F EA          NOP                     ;% \- i) ]' J. S, Y" E& M9 V7 ~
$ 85/C7A0 6B          RTL                     ;
( V+ U5 a$ D8 r2 V( ~) H
+ a2 I0 o0 ^' p6 O$ k[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2024-11-18 06:14 , Processed in 1.072266 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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