设为首页收藏本站

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

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

  [复制链接]

签到天数: 1913 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
4 T9 R/ `8 z: U, U( l, O: s0 K$ G: }6 f. K2 d4 R1 j. d
火炎纹章776修改笔记; x4 |0 L, O0 T. f' s: F& q
2006.1.25
* ^: Q4 n% s- N- o' t# [作者:zHAOsILi[EGCG](.zZ~~) 转载请注明( {9 ?4 t# V5 [) }- b$ x: q

# p% T" K$ S0 _: Z; j& A+ e5 I$ m; u: y! x
修改工具:Geiger’s Snes9x Debugger Mark 92 r) k0 e1 q4 V
+ C. m# d- P; B% m
战后升级
1 z$ o8 y  p4 m8 Z6 a- K$ 83/EFDC 90 05       BCC $ 05->EA NOP8 n/ \' h( {" o2 ]
                              EA NOP) V. G7 U! |' L# F% q

' U7 ]' H7 L  L0 u9 S# `战后能力+1$ u' j  k# y+ \
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001# ]7 @/ s4 W0 R/ r  E8 G
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
4 n8 c+ P- _9 V3 J% d% F% b
/ f4 U5 v3 r% e  S" R+ E/ K武器熟练直接到A
: H  J5 j% K) y: @; r/ `9 y# w& Y! c$ 83/E4E9 90 03       BCC $ 03 ->EA NOP5 X- k8 D# Q! U- u8 ]3 x4 @
                               EA NOP; C& C. Q6 j' m4 X1 O
存放所全物品锁定
( C0 Q( X  W* Z+ `+ O  Y& I$ Y存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只! C' \! C' e9 `3 {4 B
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
" U. J& b2 S2 O2 |' B* t而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128! R3 K; a  m' _
件物品,故可以突破存放所128件物品的限制,改出全物品。
0 X  x- g! s; `. T4 ~5 U$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*25 t, q3 B' D4 Y1 \& h- \, D- L
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   6 E" C: |. F: y  r: M
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
/ R. |7 i/ t+ A* g1 z  }6 x$ 85/C78E CA          DEX                     
8 i3 @7 B0 P$ k* l; T$ 85/C78F CA          DEX                     
% T* \! Q& m" c$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次. t% u& P7 I1 |9 v4 d6 V
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
, t9 n: y# a5 H' x) z$ 85/C793 A2 FE 00    LDX #$ 00FE              
( o$ W7 m% I$ ^* R% ~! C& a* T! w$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
+ {" ]; r9 R2 @( t1 u$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD01 }" d4 n# O6 Y% p
$ 85/C79C CA          DEX                     - N  O7 W* S( H# R# i3 c+ |
$ 85/C79D CA          DEX                     
1 y$ w6 w: r+ m  _$ 85/C79E 10 F6       BPL $ F6    [$ C796]      ' `3 C/ ?0 d- r( t
$ 85/C7A0 6B          RTL                     2 c* Y+ p* @" ~) g/ w- b
实现全物品的代码如下:0 z. R( j# [' g; G
Start@ $ 85/C785
6 P/ N( \! o& M; V2 CLDX #$ 014C A2 4C 01;X=($ A7-1)*2
+ d' \: {7 D& d7 X: Z6 ULDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
, P+ _! d+ o! [@2 STA $ 6FCB,x 9D CB 6F
; R2 w0 X# k: W+ _: ^, o; bDEC A  3A
, n% t; U. n3 C3 [  F" @DEX  CA
7 u1 E4 x2 ^! P) u( {8 qDEX  CA
6 i; F: s  G1 A* b2 Q! pBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
! Y- ]# ~/ E( j- J* g! x" CLDX #$ FFFE A2 FE FF;-|
5 U# U+ q0 v9 S0 `4 S0 vRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序9 `* j8 f: k1 P# S! v
@1 BPL @2 10 F2;循环$ A7次0 g( J* W6 f3 z8 q+ i
RTL  6B+ Y& z* S, X1 @+ P8 n# L" h3 H0 S
最后改完后反汇编出来的结果:
3 w/ |1 X4 ~- C$ [: Z! Z$ V$ 85/C785 A2 4C 01    LDX #$ 014C              
, `& t3 c, ^1 X+ @/ D0 r$ 85/C788 A9 A7 3C    LDA #$ 3CA7              ) A/ B" h! d2 J" V! k, z
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   4 B& Y8 K# c& c6 l( G
$ 85/C78E 3A          DEC A                   + w' s+ h7 l3 Z0 g* E
$ 85/C78F CA          DEX                     
% L) i2 s& d+ o1 a: q7 y2 r8 N$ 85/C790 CA          DEX                     
! H/ X2 `! V/ A( z' K- n$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间) f/ E% V0 ^2 c& \3 O: J
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
( c9 |$ @. v# K6 e$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么# F2 ~& j* H& h
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
2 E- ~( O0 V8 S/ H$ 85/C799 6B          RTL                     
. I& h7 T' n7 A' l* a" d$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了( ?, S; s; t7 P
$ 85/C79B EA          NOP                     ;
$ h* p2 [' ^6 p7 V0 _0 c8 Q$ 85/C79C EA          NOP                     ;) v  s, }! G7 X5 V, w
$ 85/C79D EA          NOP                     ;  Z4 I; }# f/ ^6 }  ^* N8 a
$ 85/C79E EA          NOP                     ;
' m) _, F* @  I$ 85/C79F EA          NOP                     ;, v0 U: r; V3 ]. N, A. H. b1 r
$ 85/C7A0 6B          RTL                     ;
8 J5 E3 A4 h' ~  q/ Y' b, G7 `
7 t/ z3 M5 K/ t+ Z' @2 P[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-6 04:30

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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