EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2192 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
* x* S, R- l/ q) \+ Q
' ?4 e( }  v; X1 f" ?, y$ `: P火炎纹章776修改笔记
; w* [$ T7 J6 t! r3 r+ l& F0 ]2006.1.25
$ b4 Q1 C7 L" d7 P- F( g! y作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
$ b9 d: v2 a! Z! C: r3 p" G' f' L  d, `1 D5 y9 C

6 j, L+ F. B9 x8 y% j& d$ @, H修改工具:Geiger’s Snes9x Debugger Mark 9
( P* ], V6 r* P8 c: f( P# F4 h4 Y9 D8 ?
战后升级
; l- E+ b! |6 Z# w. h7 ^' T5 m$ 83/EFDC 90 05       BCC $ 05->EA NOP
! p9 ~' q; F; s  K2 P8 P                              EA NOP
# I, o& s4 ^$ P
5 y# `! E4 T5 R: V战后能力+1
+ v+ n! `$ ^) J1 r$ v$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
$ ?8 H' z% t3 q) Q有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
, ^6 y$ M' g* v
( u8 |* j- U" u武器熟练直接到A6 G0 y1 Y5 N$ o! A
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP+ W( N8 S6 _' P  T6 T
                               EA NOP
2 g( _- b6 f) E6 d9 w" Q. w4 f存放所全物品锁定
$ u+ v( z  v0 h% Z+ w) D1 u# m存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只/ C/ S: a# r5 x1 q+ u
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
$ q8 A+ ?& u' w# d. A5 k0 y而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128, t( o, d8 h# `9 P: V7 u$ e& A9 ~
件物品,故可以突破存放所128件物品的限制,改出全物品。
2 C2 C& e# c5 u4 K) T6 k  ^) V  X$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
# @7 c1 Q; W) Q9 [: z$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   ) v% K0 [$ U9 D9 g7 v7 F
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
( ^0 J: C2 V, P- O8 e' H$ 85/C78E CA          DEX                     
. T* i' `4 s' _4 L/ H' e& j$ 85/C78F CA          DEX                     
2 X% `- k  {0 U1 Y$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
, b4 ]& U+ A+ U: p" J& S0 B$ 85/C792 6B          RTL                     ;返回时X=$ FFFE% m$ w9 }1 q7 P% G( v% {+ O
$ 85/C793 A2 FE 00    LDX #$ 00FE              
6 I1 F+ w: x" R/ b1 c  a, n3 Z$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   " M" ^7 T' y* |: S" M
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
! ~1 E1 }1 a+ J( }% v% I# w4 z: Y$ 85/C79C CA          DEX                     
  {/ K8 W# [& e. c& z; F$ 85/C79D CA          DEX                     
4 m+ F. M0 t% E5 e  U+ a1 C$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
% J9 i+ a$ U. k$ 85/C7A0 6B          RTL                     
: x, R  A" b; ~: \5 C+ n5 R9 I  o实现全物品的代码如下:) _  Y# z) R3 R* M
Start@ $ 85/C785/ C1 Z8 _8 c6 }6 y1 ~7 E# b3 H! F
LDX #$ 014C A2 4C 01;X=($ A7-1)*27 h& F3 ?& _, T% R
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量; A) b0 Q& y8 @" C+ o
@2 STA $ 6FCB,x 9D CB 6F
1 C) M+ x; K; z# Q% A/ ?; gDEC A  3A
- d2 o5 I. G6 LDEX  CA  d( i5 Y# n( d
DEX  CA
/ L7 H  {" O0 ?6 \- _BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间: r- w; X% i- H, ]& k( r0 N( ~: k
LDX #$ FFFE A2 FE FF;-|* R+ _+ G% `) L3 e" x+ r& F
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
" i' m# z9 a* T@1 BPL @2 10 F2;循环$ A7次
* C* m5 d1 ^! i4 l0 m' O  ]RTL  6B" y  e7 o% Q3 u( |# d
最后改完后反汇编出来的结果:/ {8 B8 O! L+ ^9 O( i
$ 85/C785 A2 4C 01    LDX #$ 014C              
- P) N! E6 M: g1 Y, n! ]9 @$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
- L! g0 F, Z! |8 A$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
: l4 h6 f# X) G0 D( _$ 85/C78E 3A          DEC A                   4 A  U2 s/ c9 N% g' M
$ 85/C78F CA          DEX                     
9 Y7 F. _; r3 U2 ^$ 85/C790 CA          DEX                     
# X) t# X# L. N# i5 u' e$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
5 R) _3 r  \% H+ z/ t/ t* y$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
% h7 G. P1 n; l5 `% s) s$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
$ T6 M7 ^2 y1 f1 n8 u$ 85/C797 10 F2       BPL $ F2    [$ C78B]      9 k" j' T0 ]6 U; F, g9 m3 E' V
$ 85/C799 6B          RTL                     
! v3 o% [1 ~# c$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
! f4 n! ?. T5 k& \. T, F- e$ 85/C79B EA          NOP                     ;
7 \( W# u7 `; K$ l! o$ 85/C79C EA          NOP                     ;4 F" z$ ?+ i3 |) U6 s
$ 85/C79D EA          NOP                     ;
0 K# P: c0 U6 }' ]4 l$ 85/C79E EA          NOP                     ;  t) Z$ U0 V5 m" \. Q6 M
$ 85/C79F EA          NOP                     ;( l, Q' a, l  }4 V" c
$ 85/C7A0 6B          RTL                     ;
" D. E, Z3 r, ]. d% Y4 k
! s* F0 e' r+ N4 @[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2026-1-15 03:59 , Processed in 1.079101 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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