设为首页收藏本站

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

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

  [复制链接]

签到天数: 2052 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html% S3 ?9 c' o, t1 J. P

1 C. d8 G5 j  ?0 e火炎纹章776修改笔记
, x4 i% y7 V% j% R  s9 X7 J2006.1.25
6 t! \1 y9 D; k6 V  G# Y* X/ n作者:zHAOsILi[EGCG](.zZ~~) 转载请注明4 g% @4 w; i' y% w5 k/ f6 u
+ }) L" ~% k4 j! `- l

  w4 c# u; X. Y) o9 N+ n4 o5 r$ b修改工具:Geiger’s Snes9x Debugger Mark 9
2 P7 {; Y- w- M0 ]$ ]& d
9 T8 G7 S8 k3 I7 d2 ]) P战后升级
: Y" D3 j7 X' S7 `$ 83/EFDC 90 05       BCC $ 05->EA NOP
- `# {) m. C# N& e$ z; ^5 x                              EA NOP
- @7 Q( f6 ]" y) U
. ]9 ~; ^8 C3 q2 v$ C战后能力+1% S0 Z* s% L% \6 n; t
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001, F+ D( v) g2 M8 E
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
, D8 j* U5 `' n/ |/ I* K
2 _1 F$ g2 N: D8 e武器熟练直接到A
3 W# Q0 p; F2 o; x; c$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
7 Z, E; H+ V; k% w                               EA NOP) T8 M, o$ i7 l0 b/ {, Y$ J+ r' t4 c
存放所全物品锁定' G' X! ^" ?' A' p' ^
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
% ?) E( ]2 b. z4 l: q! M要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,# q9 `0 ]: P* V9 S
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
! n& q6 s: G! ~' w6 G. @件物品,故可以突破存放所128件物品的限制,改出全物品。3 b# M. e: q% o# Q5 b) G; u+ b
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
1 \; v' {7 o6 x' r" k$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
# G3 _% a1 ^/ B3 i, b$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
3 k* Q) c, {. d) T$ 85/C78E CA          DEX                     
  x0 _/ U0 n2 O! r7 M' u8 I$ 85/C78F CA          DEX                     % |7 h! S6 _5 }, v; d5 X( ?# C
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次) C$ ~0 d! Z7 S
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
" G  d) `, Y6 F2 X( {: Z$ 85/C793 A2 FE 00    LDX #$ 00FE              * o6 F/ C$ T) t8 v& y
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   - }2 b. t* ?) C+ k
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
* M( L- S8 r) m$ ~) Z6 @. u$ 85/C79C CA          DEX                     
/ K- J" ?" m" Z  ~' O$ 85/C79D CA          DEX                     + L5 g' e9 O' ]* e- R
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
8 ]5 N7 n; S, V  A3 _% B$ 85/C7A0 6B          RTL                     ( P3 C' Q  f0 j1 _& A. M8 l
实现全物品的代码如下:
* u4 b$ Z) p7 RStart@ $ 85/C7857 y3 c( P1 W; h
LDX #$ 014C A2 4C 01;X=($ A7-1)*2$ T" o3 c' X# C# i/ k9 A
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
( S5 u8 w: C" U1 F% I/ n  K7 O@2 STA $ 6FCB,x 9D CB 6F& @; D6 R2 U' k! H; l* w: k
DEC A  3A
2 h) c* I; t4 aDEX  CA
& F8 c  K1 j' z# ^; w; aDEX  CA
! ~, o2 H* d8 T: @* BBRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
0 l- {5 t5 x& ]LDX #$ FFFE A2 FE FF;-|
* m7 `2 g- v  w8 RRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
( p% f# c: m% ^, ?: U: {@1 BPL @2 10 F2;循环$ A7次! z  z( P3 M% z1 S0 v
RTL  6B
" ~- `5 D4 ^  ]* A: `1 m最后改完后反汇编出来的结果:
/ o, k# V8 z) R9 }$ 85/C785 A2 4C 01    LDX #$ 014C              
, k8 v9 F4 e; b8 k$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
* i4 A& R8 b4 W4 W6 u$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
+ i( i+ Y5 E+ v$ 85/C78E 3A          DEC A                  
4 J' B2 u6 L( {7 a8 _$ 85/C78F CA          DEX                     - V- P$ [% G! i& @, v6 \4 y/ j
$ 85/C790 CA          DEX                     + V( x1 ?4 @1 _. t- L1 D. U
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
' o; i/ c/ P, ^3 [* s& q$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
$ k, V7 Q& d6 M2 y  B4 W$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么% d8 d4 E; W0 P; T* V
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      % t0 r" A. V, Y( Y) p
$ 85/C799 6B          RTL                     
5 w: A5 s+ O" d  M3 n$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了) o) H* D! a: D8 Q$ x% i
$ 85/C79B EA          NOP                     ;" j" Q, a0 G, S$ q+ x0 L1 Q  ^/ C) U
$ 85/C79C EA          NOP                     ;$ v4 d* r! m* ?/ V
$ 85/C79D EA          NOP                     ;: k9 ~5 V- o/ U6 J
$ 85/C79E EA          NOP                     ;
. l. B, H* W! P; M0 {1 H( _$ 85/C79F EA          NOP                     ;
0 g5 r9 ]4 \! z2 Q$ 85/C7A0 6B          RTL                     ;
' d5 _8 B% o! e$ s
$ c- ?' l. M) T; z9 l3 U8 ~[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-25 05:16

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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