设为首页收藏本站

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

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

  [复制链接]

签到天数: 2052 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
3 }, x; ~; K/ ]1 N/ T; a8 g0 h7 b- j
. N! X4 o% `2 o  {, `. t* j火炎纹章776修改笔记
& b/ ~& P0 z3 s: P0 `$ e2006.1.254 M4 j+ g& x& `7 R6 l# ?( @
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明& N4 V8 A4 N  x2 U2 J5 O
4 g5 c" ^% W0 c. q4 ?
- u0 _5 [' a  |  C- {/ [
修改工具:Geiger’s Snes9x Debugger Mark 9
+ V6 k( Z% X. i  {* D6 l, J+ B1 Y: ]1 _0 Z" ]( ^# X: l0 Z8 I
战后升级7 Y8 C* o" n1 \: n
$ 83/EFDC 90 05       BCC $ 05->EA NOP/ n6 E1 P) Y- c
                              EA NOP- ?, q4 N6 J( t; c( T. |( \

" e! p' H. i6 k战后能力+1% m& D- y& V4 R! s8 h
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001$ v) ]' u& K+ {/ ~3 }6 U
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b+ r; }5 e% ^* A# l2 J- O
" b3 i5 Y6 F% h! D
武器熟练直接到A5 O- W4 D% _- v" A2 N& ~6 e: w
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
+ F/ q, v( e* O  Q. U                               EA NOP
8 r1 [& w! e" {* e% |存放所全物品锁定
5 G4 _! Z$ V8 R* P6 e" q4 `7 ?% I- C存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只9 V! g' D8 q/ G0 |$ E8 }
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
* B9 Z0 O- M( n5 s而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
6 m9 ^/ ]/ E, n; k1 t/ f件物品,故可以突破存放所128件物品的限制,改出全物品。
9 s. ~" w! a% }5 ~# D  J$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
: e: y# a& d& {$ q7 j$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   ( F! s" i  m8 C; E9 [
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB; r: H6 k; d7 k% t6 q$ k7 S
$ 85/C78E CA          DEX                     2 e4 R& J7 b: C5 \% i
$ 85/C78F CA          DEX                     + ]: C7 X% t7 [3 _8 _4 j
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次+ ]8 y7 T. c; e- g9 J
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
6 J% ~1 E8 c6 W6 Y* l( h; F" M$ 85/C793 A2 FE 00    LDX #$ 00FE              6 K' T- y5 F7 l- J
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
: Y/ h8 i* }  E1 E, l/ z+ h2 u$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0. x; n, A# J# h0 S, T( [  X8 ^
$ 85/C79C CA          DEX                     : O9 ~4 @8 h2 R7 U) r
$ 85/C79D CA          DEX                     ! j1 H# ^7 j+ v, Y* l8 K) o+ C
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      - U1 U# |$ U/ j' v9 z; j
$ 85/C7A0 6B          RTL                     + y, Q, [" v6 }7 Y( Y1 l; x
实现全物品的代码如下:
2 C9 k2 Q3 a7 C3 r. X5 \: t' uStart@ $ 85/C7852 E/ m% ^% o6 Y  _
LDX #$ 014C A2 4C 01;X=($ A7-1)*2" n- q+ R4 A% J% ]
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
% K3 i7 k& D$ t6 u7 e* d8 t@2 STA $ 6FCB,x 9D CB 6F
. T2 i5 ]3 {# vDEC A  3A
" u, ?5 ~' ?) JDEX  CA
8 k1 r, ^: Q3 n7 MDEX  CA
7 H) d+ Z  i$ EBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间; L  P$ R: N' R" p( x5 i' X6 n
LDX #$ FFFE A2 FE FF;-|
: F" K# m. g  |6 lRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序, d5 _* |  a8 k- z) t. i1 G( x. S
@1 BPL @2 10 F2;循环$ A7次& u. b$ q2 h7 g, m6 j- O& t& Y
RTL  6B& S" ]7 }! F% \& p) B
最后改完后反汇编出来的结果:
: x, }) C4 G  |& E! U$ 85/C785 A2 4C 01    LDX #$ 014C              6 d$ M4 y, V  x
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              & D0 ?+ Q+ t8 D$ |
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
3 Y& p$ M% s9 f( u- w8 [; v9 ~$ X$ 85/C78E 3A          DEC A                  
8 z  |4 z# M$ Y# \) S# K& O+ n8 H$ 85/C78F CA          DEX                     5 v( {" {6 R, z, d3 D
$ 85/C790 CA          DEX                     
; ]! h0 |' @* K$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
" L8 X- h, p3 Z% A4 d: g$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
# c6 y  M" H- n( M  g) v4 K$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
% r& O- K7 A: L! S: a% z$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
$ V# E! ^0 G7 R8 {$ 85/C799 6B          RTL                     + H; B$ c$ I, Y8 F
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了% f" y4 ?6 r1 A9 I0 @
$ 85/C79B EA          NOP                     ;- h5 J+ f: u  W0 N4 V
$ 85/C79C EA          NOP                     ;
+ v, x, i# y) b( T: O5 k$ 85/C79D EA          NOP                     ;
2 j; m6 Z% Y6 o0 l- K$ 85/C79E EA          NOP                     ;
- e" g' {; Z5 k  o# d0 b$ 85/C79F EA          NOP                     ;9 B% k% O9 e9 J: ?/ q! F' q( e
$ 85/C7A0 6B          RTL                     ;
+ P: t7 J8 N2 e5 p- I- Q# P  w! ~% M, A3 G: V1 t9 a9 b$ l
[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-25 04:28

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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