EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2133 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html* [. a7 K3 E9 t) d

6 R0 g. Y9 c2 t- k  i火炎纹章776修改笔记
1 |% D5 w' a/ X! Y2006.1.25
+ {' g  ^! ]+ ~, O4 D作者:zHAOsILi[EGCG](.zZ~~) 转载请注明" i& O$ I! Q: z0 D* o" F

) K1 m  D; v: ]# A$ \' O9 r* H9 G' p/ x7 K1 a9 u4 ?
修改工具:Geiger’s Snes9x Debugger Mark 9
; Q! X; X, Z3 ^" P- @$ h+ x1 z$ l* e9 \/ w
战后升级
+ X3 J2 n1 S$ Y3 a1 t% y) R* l5 Y$ 83/EFDC 90 05       BCC $ 05->EA NOP7 W$ J8 A* I9 |. e
                              EA NOP
- h) j9 o0 r! U8 p
& ~7 `9 }  U* a$ `" r4 l3 s7 K战后能力+11 {3 D, E; k; b# t8 z
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001& R( [7 j+ v& o; G
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
: F4 T+ J4 D& r/ u0 p' I5 g) {# @$ U! _0 p9 V
武器熟练直接到A! F4 g/ Y! v( _3 T
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP, [! g& m4 h$ k; E" }
                               EA NOP
  w( l+ i5 ?0 [! y) j. `" h0 U存放所全物品锁定8 [+ Z5 k) _: }5 B! j, I
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
. d/ k+ e5 Z( g) _. S& X要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
0 X# C- D2 y: V' f) M3 P而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1288 E: j, O! K& D8 ~! G3 d9 C( S: j& s
件物品,故可以突破存放所128件物品的限制,改出全物品。
) ]- u; e) G5 W/ V" x, |# X1 b& D$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2) w: `& Y9 }* F6 q& x: W# ^3 u+ U
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
! l% T, F5 k# t4 u$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
6 Q: E! l" R( A" ?" [$ 85/C78E CA          DEX                     
5 x# E, u/ x! G2 p8 t9 R( B$ 85/C78F CA          DEX                     
% k7 T: D3 T1 l  P1 Z$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次' }% n) Q, a3 f' e6 _' x
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
9 q0 i( E; }. Y) T$ 85/C793 A2 FE 00    LDX #$ 00FE              
( P0 [) e: @' t; t  m, p$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   + k4 N/ P$ \& |" Q8 B2 X
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD05 x1 Z+ _0 ?& [2 Z5 V
$ 85/C79C CA          DEX                     
% S2 Q: f: U, U5 O! P& n- q$ 85/C79D CA          DEX                     # X. x' N9 z+ s- y- F! t: J3 \
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
! R2 x, |, ?% w, v" |9 \$ 85/C7A0 6B          RTL                     
3 _6 b/ q! N; r8 A# C( H- {3 @实现全物品的代码如下:
8 u5 j9 z% B8 Z% j2 \7 _Start@ $ 85/C785
; s* j8 K8 ~3 f. u( Q, ALDX #$ 014C A2 4C 01;X=($ A7-1)*2
+ a: {% |* e: m$ K3 u" A8 @LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量& E* s# t. b6 q, i( ^" }
@2 STA $ 6FCB,x 9D CB 6F
% |" h6 c$ K$ T3 B* r, N7 m1 XDEC A  3A9 A/ D# L+ E" a( V( `5 c3 J! o
DEX  CA8 J4 M: I* h* f
DEX  CA
3 s: q* V8 U( u! s) ?+ |' u! rBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
' ]) D" Z" z* b! J  S2 XLDX #$ FFFE A2 FE FF;-|
) I$ F/ z8 @: k9 M( q0 Q$ Y  Q! p  r1 y/ NRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序* U: x! \% T; [
@1 BPL @2 10 F2;循环$ A7次% y5 C1 r' s9 j5 d* W  j8 n. w/ W. _/ Y
RTL  6B
  w; {6 \$ w+ I+ W3 j* s最后改完后反汇编出来的结果:4 a# X% `% T) I2 E: Z% k
$ 85/C785 A2 4C 01    LDX #$ 014C              
  a: z0 l$ V' Z) b$ 85/C788 A9 A7 3C    LDA #$ 3CA7              $ `0 d1 f- t1 K6 m% e! f3 C6 y
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
/ P# {9 A# O& M8 p0 v* J/ j$ 85/C78E 3A          DEC A                   * d& y. H1 D9 r! w! Z1 ?0 G
$ 85/C78F CA          DEX                     
9 A8 a- b9 z7 v; M, b, g9 Z$ 85/C790 CA          DEX                     . x8 |! h  v! z$ \! E: ?
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间* ~7 y1 k  f* D
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;. D8 S" s4 K" {. t% f
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么: N8 u( T, c3 G$ m  F# w! u
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
5 a1 B6 T0 B5 [$ b7 R! J$ 85/C799 6B          RTL                     
# w7 v1 E& v3 t1 \3 W$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
+ P% G# R+ A8 e" n& x& {  C7 @$ 85/C79B EA          NOP                     ;
* p: B# P, r7 W3 z; P5 i$ 85/C79C EA          NOP                     ;
# W( A. e! {& j' ]/ g/ e$ 85/C79D EA          NOP                     ;) e2 `+ P9 E; n
$ 85/C79E EA          NOP                     ;
2 k4 ^, ^$ o0 V2 v$ 85/C79F EA          NOP                     ;
. m* P3 M5 d' v; j5 S2 G$ 85/C7A0 6B          RTL                     ;
; ~0 |! M, j) N
7 G) w% V% |7 t2 X* J% l5 l( s[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-11-16 13:04 , Processed in 1.067383 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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