EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1803 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html9 L1 d  q( v+ i4 U) a

8 ?( C+ {4 \- V火炎纹章776修改笔记
0 @3 R  |6 ~# m& w2006.1.25
+ o. h. ?' j' H7 M# Z作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
; {$ _$ _0 B# l" f4 j+ w
% H  s4 [# Q3 o1 v
9 Z# t: @' x* F7 L+ o修改工具:Geiger’s Snes9x Debugger Mark 9
  ~# Q2 l; h. ]* y" Z. b: c/ L# O4 N/ l% [2 c/ |
战后升级
3 f/ |/ H! O1 ?$ 83/EFDC 90 05       BCC $ 05->EA NOP
9 Q6 q8 _  m8 d# r- T0 H* g                              EA NOP
' r+ i! N8 O+ L2 a  P9 @4 b2 i& q1 K2 a! k: D+ I# ?/ [6 N
战后能力+13 `- I  d/ R' F# ?2 I
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
' r5 ^& T; ?' k) z有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b8 P: A" S) c. V' d; d# n' \; a

& `+ S7 V7 r! E6 {0 I& _; g5 g" C武器熟练直接到A0 p! U7 h# u) W: {) N+ l
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
! K0 z# V$ Y& G) G2 t* f4 J                               EA NOP
; H* q: \4 o9 F' d6 Y9 g2 u存放所全物品锁定( ?+ S, S0 P1 o/ A2 B* b
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只  g/ \8 H, E& M5 h+ L. X% g" t
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
) x5 h& w9 @4 c7 u2 R; }( ?" p而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128, v$ M- V8 t% B' |
件物品,故可以突破存放所128件物品的限制,改出全物品。
+ C' e' W. D) W" Z. M9 G1 Y$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
+ z, E8 m* [; @: [* A8 K% t) U+ ^8 g$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
: K4 C* p( N% d$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB3 [8 @4 H: L0 Z. t  l2 R
$ 85/C78E CA          DEX                     " Z. t' M1 S2 m
$ 85/C78F CA          DEX                     
# k3 {1 W7 s$ S# j/ F1 @( S$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
/ O  ^3 H3 {8 n( W1 I$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
; U! Z5 j* @% u' c& L2 i* O$ 85/C793 A2 FE 00    LDX #$ 00FE              ( q; r. G2 E; R; j5 M
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
* I: C6 v$ m9 s2 O! a$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0) u( V+ g- G1 q6 H
$ 85/C79C CA          DEX                     , [, ?- ^; _) {) h1 A
$ 85/C79D CA          DEX                     
8 I" t' Q2 c! I- s$ 85/C79E 10 F6       BPL $ F6    [$ C796]      0 U2 g, u7 j! I" ^$ N
$ 85/C7A0 6B          RTL                     
. |  s: |4 U, M. }; {/ L实现全物品的代码如下:6 I) o8 X' X' u" _1 I2 w
Start@ $ 85/C785+ i* ]- X* c8 H, S  u
LDX #$ 014C A2 4C 01;X=($ A7-1)*2% o: U3 u4 E1 O8 n: k7 H9 a
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
4 G+ ?8 S2 ?3 h% G% F@2 STA $ 6FCB,x 9D CB 6F
6 m9 G" H8 Y$ h# I' }) b, B* O+ BDEC A  3A
* K' j6 w1 c% q% ~" |DEX  CA5 h  r2 r6 S8 n$ z
DEX  CA
) L3 ?$ O0 }9 b$ D) kBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
6 d% t% D$ @. D3 Q, QLDX #$ FFFE A2 FE FF;-|; {4 T5 _) b+ \& p% P- X5 \
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
6 {" ]1 i# X4 z7 C) I@1 BPL @2 10 F2;循环$ A7次
. S" O8 C8 M$ P8 U# S0 J7 ^5 BRTL  6B
4 P1 X$ U- E" F" e最后改完后反汇编出来的结果:8 j3 F. R! r6 ]. }2 B; g# S; b; w
$ 85/C785 A2 4C 01    LDX #$ 014C              
0 W1 ?" {# y) u) O$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
* S5 N: a+ _8 f' i) ~$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
* e# R2 b% _0 |* R' M8 u$ 85/C78E 3A          DEC A                   + t+ {/ ], q& ~' \
$ 85/C78F CA          DEX                     
8 w! O. F7 i7 q7 R+ ?$ 85/C790 CA          DEX                     
4 u3 s0 |. X) x/ N9 y$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间! J& X2 Z, |& _$ F
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;: G% H4 B6 ]5 E# Q3 l  B
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
4 m0 B+ s* y* [+ ?3 b+ @$ 85/C797 10 F2       BPL $ F2    [$ C78B]      6 U2 G& o6 X% U7 e
$ 85/C799 6B          RTL                     & y8 Z8 W1 p% ^  `/ ?8 b  n
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
* }0 h. o# V% j/ {  ~6 e0 a) l; K$ 85/C79B EA          NOP                     ;
3 J  K- P$ r; J: }* m! r. C$ 85/C79C EA          NOP                     ;
1 L  F0 s& M* y9 \$ 85/C79D EA          NOP                     ;* Q8 M( J8 e. ~3 S
$ 85/C79E EA          NOP                     ;. R7 W3 O6 k- c# D; @2 S
$ 85/C79F EA          NOP                     ;, O4 r; t9 G( R- x; K# }4 ]
$ 85/C7A0 6B          RTL                     ;& x4 P% p% l" G
5 P7 ~, K1 F2 q; }. H7 b( D
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2024-12-19 01:15 , Processed in 1.083984 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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