EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1972 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html& s; ]' }& N# ~' [
. ~) h6 s0 `# j. y$ ?# t" ~
火炎纹章776修改笔记; j: ^5 ?  N6 H* V; b' W# w
2006.1.25
3 V. f2 j- k9 \* K+ _3 z$ E作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
$ M4 K& p5 }$ f9 Q1 A' D3 D5 F. P4 t& D/ O: X0 q8 E0 S9 w
7 i7 z, E$ Z  ]1 f$ ~% I
修改工具:Geiger’s Snes9x Debugger Mark 9
4 [& F1 J6 C# w. N
% r- }! }0 V+ q$ c战后升级
, C' V' r" O( O2 r4 H/ H$ ?, p7 w$ 83/EFDC 90 05       BCC $ 05->EA NOP6 I. |* b- J6 W0 L" o
                              EA NOP/ v2 ^, g2 V- A% X1 D. g

' X( Q5 {4 J# ]6 I: \战后能力+1  v! A* J9 d4 w6 }: g6 u$ s
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00016 [$ Y+ W5 v$ [& e
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
5 W' ~* M- Z9 u5 I, c
5 }8 C; O  f- ]1 ?6 `武器熟练直接到A) q% g$ |5 P' {
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP+ s" M- l! w+ G# N9 O& Y
                               EA NOP9 a+ b% Z* \" I; |6 w
存放所全物品锁定
8 X- l5 C3 Z2 w存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
( O$ q* w$ d6 m要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,8 e1 j% h$ }/ t  i: F) v6 H- k% H
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
- q5 E8 d4 _  E. I' M件物品,故可以突破存放所128件物品的限制,改出全物品。
- y# l) U; o! i9 l! [, u  B! V$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
3 R# @: O9 B( s* o. _$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
3 w2 g' N9 d  d0 C3 ~( m# R$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB0 ~" W2 n/ s, H& v
$ 85/C78E CA          DEX                     
4 u' j. U( y; e- Q  F  |$ 85/C78F CA          DEX                     
0 S7 X! q& J3 W+ E, z$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次8 Z! s) M2 t/ }* H
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE4 [' H( T6 |0 ]; X8 x( s
$ 85/C793 A2 FE 00    LDX #$ 00FE              * `/ O/ R7 _5 ?* U. y
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
) Y/ [( K7 U7 Q' h4 D% S2 M( Y$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
' m5 o0 M7 u* p$ 85/C79C CA          DEX                     
- s% i7 k( K4 L/ n2 K+ S4 U. Q! w$ 85/C79D CA          DEX                     ( U6 W/ G. q+ c$ g/ x$ W9 I- `
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
( `; p& m' C2 x- S: [5 F$ 85/C7A0 6B          RTL                     ' C$ e7 U- `/ j- a4 I" |
实现全物品的代码如下:
0 N/ ?$ y" l% i& g" B9 LStart@ $ 85/C785( h2 _8 I2 P2 s3 ?
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
) }( d/ Y! R) Q1 h9 PLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
: i: ?$ j' U+ q8 G2 Z( D. W@2 STA $ 6FCB,x 9D CB 6F$ E/ k* O8 [( J
DEC A  3A
! |9 j  k7 p( oDEX  CA
8 s: p$ _9 M5 `# m- sDEX  CA. |5 @* \7 S& ]; Q3 P' Y
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间6 R. f# i: _. S- _, p# m4 u4 u
LDX #$ FFFE A2 FE FF;-|
7 A2 ~" S$ J* t( D* I+ YRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
! h- b4 F( J3 O9 K/ W@1 BPL @2 10 F2;循环$ A7次( S# i& h' t' W2 o3 j+ A6 S  Y
RTL  6B! A+ T1 b/ f% s4 Q
最后改完后反汇编出来的结果:9 j* X8 D( E0 i' i; k! _
$ 85/C785 A2 4C 01    LDX #$ 014C              
' N% d( h8 M" e1 ]$ 85/C788 A9 A7 3C    LDA #$ 3CA7              & q- q8 l. D9 T2 h& E8 Q3 C
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   + R' ?0 J. q8 }' T* Z, j
$ 85/C78E 3A          DEC A                  
$ Y7 q( I0 O! r$ 85/C78F CA          DEX                     ' k* Q2 F, g2 j
$ 85/C790 CA          DEX                     
" K: d( I+ Y' _! e2 e7 z& l$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间8 L$ E; Y; g  A! \
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;4 S/ n) ~: K5 p
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
  l+ q, ~# r3 t! ?( Q$ 85/C797 10 F2       BPL $ F2    [$ C78B]      * D  t! R; s7 _
$ 85/C799 6B          RTL                     ( G5 D9 S6 L* H0 D* G# b6 L. g
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
' R' B* F9 A2 j& C: g8 X$ 85/C79B EA          NOP                     ;
( k# y+ T) l0 j% V% K& G$ 85/C79C EA          NOP                     ;
& \$ N. T! _6 n7 `6 E  `, a$ 85/C79D EA          NOP                     ;6 v. M* ^1 V! Z$ m7 t
$ 85/C79E EA          NOP                     ;) W# K6 h! Q) S7 X9 Z
$ 85/C79F EA          NOP                     ;
& f2 N  O, w5 V4 Z& w$ 85/C7A0 6B          RTL                     ;' h- |. m$ B: N' C& [  s# y
& m& r* d0 H* V5 V8 |# ^8 O
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-6-9 00:56 , Processed in 1.065429 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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