EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2185 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
  w  x0 S9 |0 J
) g2 Z4 G  S* u+ k. T' c火炎纹章776修改笔记
8 u: y5 W6 a# C8 ?: u+ W2006.1.25
5 |' r$ c  o$ f作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
" R& @8 l7 _' J( g5 N. t
% E8 U, j: @6 f) R0 [' h) u7 m, b; o1 [2 P5 z: I" V5 S% w
修改工具:Geiger’s Snes9x Debugger Mark 9
. v0 G  c7 D. i
" x/ l& ]9 I$ d- e+ W: D3 F战后升级
  V3 e+ d& k8 N2 d$ 83/EFDC 90 05       BCC $ 05->EA NOP8 c4 G8 x, M$ N3 J
                              EA NOP3 Q3 S8 _6 b8 [9 [: Z( g
( F2 V$ G) Z' g$ o0 `7 d
战后能力+12 K9 M7 ?" A) A7 \2 L
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
1 x/ O* a4 }' Q! M. x有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
- h% ?. o$ y! c4 \8 b6 h1 a
* a/ Z# p% Y& R9 V! @1 F4 h武器熟练直接到A% I9 N9 e0 U7 \
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
; n; Z: M, F1 Q6 J# g) w                               EA NOP
3 H2 F) x# H, x4 g& ~. L存放所全物品锁定
0 y4 X) Z9 {8 p存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
' i/ F7 t( [) C2 X8 Y要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
* q/ P: m! g& R  i( \8 t% j而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128# r( V2 Q" Y+ Z6 l
件物品,故可以突破存放所128件物品的限制,改出全物品。- J# v+ n) a. L! B; E
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*20 w& g* F: N3 Z, y6 f7 R: _! k
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
0 v3 k1 _' H1 C$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
  G9 v$ w3 T; Q$ 85/C78E CA          DEX                     
) h+ W/ B2 T* B7 a* R$ 85/C78F CA          DEX                     - f7 e' J; H, k  p2 A
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次  D: U! y2 z- q! c
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
8 e! G! v( U4 ?' P$ 85/C793 A2 FE 00    LDX #$ 00FE              
$ p8 W2 [' q0 K9 l$ D$ I; `: w5 b$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
  ]2 o$ L6 I. w: s/ |$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0" A' f3 U) \/ \: `! U# s- O
$ 85/C79C CA          DEX                     
: Z* t; c% w& y) h4 E3 q$ 85/C79D CA          DEX                     6 A4 R  C  h. Y1 l2 ]# }
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      1 r' a+ M8 F7 e2 i$ n
$ 85/C7A0 6B          RTL                     ; t* W7 A5 s3 l
实现全物品的代码如下:
& F8 G  H' ]% v/ ~0 `; OStart@ $ 85/C785! G2 D5 J- k+ [
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
' w8 x, U4 I. Q! T# qLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量- ?- H6 y" L' w5 _
@2 STA $ 6FCB,x 9D CB 6F& h6 d) C& D. W" z. g+ P. M
DEC A  3A9 E1 Z/ Q8 r' n
DEX  CA
3 q& {, M: z2 o$ w% BDEX  CA
/ i7 ?+ s' o9 ?7 eBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间# K% M8 t. J7 Y2 P. m
LDX #$ FFFE A2 FE FF;-|
2 z/ O; _/ W/ ~0 z$ wRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
/ B- H: g8 A8 _- D& v@1 BPL @2 10 F2;循环$ A7次
7 G) d6 O& H: ~; a, A: cRTL  6B
* k, F; L1 n( A) V2 e$ d0 J最后改完后反汇编出来的结果:
$ s+ x& ?  H- o9 k$ 85/C785 A2 4C 01    LDX #$ 014C              
0 h0 ]' l# N( Y# O$ 85/C788 A9 A7 3C    LDA #$ 3CA7              0 F( A, N+ t' q
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
) b/ W1 c1 D$ C  b% T7 o0 k$ 85/C78E 3A          DEC A                  
& \, T* |9 @7 _2 w- {: O$ 85/C78F CA          DEX                     , f! u4 y& _& z
$ 85/C790 CA          DEX                     
- J0 e% u7 b$ A9 n$ H  z1 z$ z  C* l$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
7 n7 V8 L& N* w9 k, i; \$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
3 _3 }1 ^2 F* @- o$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么: T7 \0 {  q2 P) e; l! Z
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
& o0 @' h; f& B$ 85/C799 6B          RTL                     0 K  h; k1 L+ E* R$ M
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了! x* T) q" p8 W5 L: j
$ 85/C79B EA          NOP                     ;2 L- {( C5 ?. C4 Q8 \
$ 85/C79C EA          NOP                     ;. p8 c4 N+ Q- @5 w" o6 s7 f! ?
$ 85/C79D EA          NOP                     ;
( V# ?! n% n9 `2 [# w' ?& h5 n: z" Y( T$ 85/C79E EA          NOP                     ;
# g6 C+ B1 {; g0 H$ 85/C79F EA          NOP                     ;
/ k- c9 m" h1 X# M1 n- U+ J$ 85/C7A0 6B          RTL                     ;
3 p) r& t/ O4 M% `% ^2 o; K8 w7 O, _, @& N! X& }
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2026-1-8 08:00 , Processed in 1.093750 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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