EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2024 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
6 v) b* j/ D0 b- J  k' R8 G! F( J1 b" i" z4 Z0 R2 y3 f5 N9 U
火炎纹章776修改笔记
3 J2 r/ `; k! J2 G- f0 ^2006.1.257 ~+ w  G; j3 }6 I& F, I2 o
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
& C* T  ?0 }. {! b  X7 L, e& _. ?/ I# L

- i# F2 }9 R: x  a修改工具:Geiger’s Snes9x Debugger Mark 9% d/ \+ {1 A# z$ C# G
7 h6 f2 m4 ^) H/ @
战后升级* U6 R. X" q/ k# L
$ 83/EFDC 90 05       BCC $ 05->EA NOP
# o) v& c2 n' u3 ^# G# p6 n. ?) s- ?                              EA NOP# z4 W; K& s' W, c/ B9 S. h" q
$ U$ W- g+ E7 K8 U
战后能力+1* U$ q! C; E( C
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001$ j8 {' d; m1 q) c4 ?
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
: F/ Z0 B# F5 A' a' A( u1 y
) l3 `+ f" {- }1 w3 ^$ @武器熟练直接到A
8 Z8 z8 ]- F/ x' Z$ 83/E4E9 90 03       BCC $ 03 ->EA NOP
7 L$ H4 Y; A# V                               EA NOP# l/ K; r& Z) H% k$ Z* L7 U
存放所全物品锁定
: X1 a, O) B4 v' S" G存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只; `" F" q* C  i5 l9 ?* K4 o
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
: Z! V& V+ b  Z, g( E而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
) M( W' k" K3 G# {件物品,故可以突破存放所128件物品的限制,改出全物品。. L. z- A' ~3 Z- U4 h- \
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2+ _! \( y$ J1 ^# h
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
* Y/ u0 K# ~2 V* K$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
" z! ?  ]6 L8 c: J! k, _# O$ 85/C78E CA          DEX                     7 Y/ V4 |' v0 Z' u; L
$ 85/C78F CA          DEX                     
4 ?' v/ @' P, {6 ~2 }% j$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
! o) }, i0 v; A$ 85/C792 6B          RTL                     ;返回时X=$ FFFE" d' q  _) E, E% V
$ 85/C793 A2 FE 00    LDX #$ 00FE              9 B# X- ?# @3 y7 D2 }: I
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
) R. a) I0 d; J' a/ ?$ Y, w: b: g' z$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
+ C1 V6 D8 Q2 z) p+ Q4 \2 r/ q" Q$ 85/C79C CA          DEX                     
) R1 R  t" ~: a5 r/ p  p, q4 ~1 ]$ 85/C79D CA          DEX                     
+ i! l- Y2 J& @7 v, a' E: j$ M* D$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
- \/ c9 {8 i2 }* R5 c* F$ 85/C7A0 6B          RTL                     
1 M. E7 x. a, M: _3 V4 X$ i2 `- \实现全物品的代码如下:
) H; m# w' Q1 u8 X: k* _+ oStart@ $ 85/C785
8 ?3 d2 q& |3 B* F1 ^6 ^LDX #$ 014C A2 4C 01;X=($ A7-1)*2
7 d% l' ]; J: g& i, {LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量2 }6 R. E! l9 _" ^& Q) i
@2 STA $ 6FCB,x 9D CB 6F
* G8 ]; K7 B" L: [DEC A  3A
! d4 t% w, g% n6 t+ T- Z4 YDEX  CA& H4 e0 r; y5 Z1 x  c4 S4 E
DEX  CA7 V' F+ u3 {' ?: ~5 x
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间# E, p0 `, O, Y; u
LDX #$ FFFE A2 FE FF;-|: k* M. i2 y$ q% Z" T( U
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序- l$ K2 H8 a0 u8 }
@1 BPL @2 10 F2;循环$ A7次
) N+ I" Z( f: I* }" Z$ R' `( fRTL  6B9 q4 P1 m' F  c' M9 F7 ~- E
最后改完后反汇编出来的结果:
+ B6 o  b' w( I2 I$ K  P8 ^" o$ 85/C785 A2 4C 01    LDX #$ 014C              ( `$ f( F& J5 D- T6 N9 f
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              ' N0 k, k! v+ A9 k
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   
7 w+ n+ E" s% @0 ]$ 85/C78E 3A          DEC A                  
2 m$ M2 d7 c6 Q: A4 v* q5 A$ 85/C78F CA          DEX                     6 m; S/ t3 r3 _& V
$ 85/C790 CA          DEX                     , d- @* |% I  c  R4 z+ V
$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间0 T, N7 \' B" |0 Y0 Z
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
' ^. \- R! L0 r8 h/ I$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
' ^6 c; q) o5 i+ ^$ g1 q$ 85/C797 10 F2       BPL $ F2    [$ C78B]      % a  X( \' N2 Y: H! W( j
$ 85/C799 6B          RTL                     ( g. I8 }& |( C( W# s1 m. @
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
" Q" h- k5 X' k4 A/ ^6 C7 g$ 85/C79B EA          NOP                     ;
7 V9 O" r3 ~& x2 F0 f9 z0 @0 w$ 85/C79C EA          NOP                     ;
" {5 ^  N1 A$ g7 V7 F$ 85/C79D EA          NOP                     ;5 p& y# C$ s2 x# Q) [5 p
$ 85/C79E EA          NOP                     ;
5 F1 x  \: t5 h+ g7 _- l3 l2 \$ 85/C79F EA          NOP                     ;
' t, _4 M7 _; _5 v1 Z$ 85/C7A0 6B          RTL                     ;
4 C4 T4 x% E$ N# T- `2 N& c5 X0 o9 x0 @
$ {; X/ q9 ~* G[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-7-31 05:19 , Processed in 1.075195 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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