设为首页收藏本站

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

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

  [复制链接]

签到天数: 1993 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
6 [' X, d( P/ L: y, E' F6 t4 ]' a' V1 x1 S$ t/ r& `9 G
火炎纹章776修改笔记
9 F6 D. V3 o( L& s! }/ P2006.1.25
" b" U8 M* X6 ^. @0 ]作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
6 A0 t7 D( h& R0 ]; z# M
  Y7 v/ e0 d6 F' P: v( d0 G7 N. T  {. w1 B- R  J  h
修改工具:Geiger’s Snes9x Debugger Mark 9
/ B6 J' B/ C2 W; u: R: d4 ~. A
战后升级  E, H/ G% `, K' M* P- F4 n9 J/ M
$ 83/EFDC 90 05       BCC $ 05->EA NOP
, M6 u6 Q/ ~3 w                              EA NOP
; w) J% Z" u- u; b) f  V. Y8 H, G5 J/ T, S  `5 o
战后能力+11 B( M+ m: Q; l! `+ |3 F
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001
3 O4 \6 n8 X/ M5 ?4 \, U1 m6 O有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
/ k, j2 s: n+ K1 T% y
6 c3 X1 A: E& g! h0 P武器熟练直接到A9 k4 r' x4 n5 V- i
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP2 W* i. ?. v; @4 e) }6 b( x
                               EA NOP
$ F- J* E+ P) Q& @! K1 c; X0 W3 V5 ~存放所全物品锁定
2 q# f6 A4 k; n/ F9 n& W2 A0 `0 {存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只7 h% H- y$ C9 k
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
' p3 ~( ?0 |3 w而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128
) L, i/ n3 d# K# a0 P$ f  u5 w% Y件物品,故可以突破存放所128件物品的限制,改出全物品。+ M$ @; _; d4 q, ~
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2, a$ e1 }9 a) B3 D
$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
. @% Z8 {7 H' s4 T$ [2 M) ?1 i8 k$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
& t# D) Y: n7 e$ 85/C78E CA          DEX                     9 d& j, [( y' p% f
$ 85/C78F CA          DEX                     
; y. X# O4 }7 r: k$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次8 i/ y0 _' {) w4 U, r9 z1 M
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE: c  w3 f4 w' c
$ 85/C793 A2 FE 00    LDX #$ 00FE              % U0 h( S# @7 w  m( E$ a
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   9 R# g: W4 {: j- Y
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
! m* b+ t2 A0 J8 u+ d' T9 B. u1 ]$ 85/C79C CA          DEX                     
! G; T# W- f, I7 _! L; J$ 85/C79D CA          DEX                     * e  K  f) x. R% U. t9 r3 _
$ 85/C79E 10 F6       BPL $ F6    [$ C796]      ! v/ @: y8 j. R' M$ Y
$ 85/C7A0 6B          RTL                     & X( T" @' e# O6 g
实现全物品的代码如下:
$ ?1 N1 U) R( w3 ~& \" ]Start@ $ 85/C785- ?# Y5 ]' }  ]) c. R" ?
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
7 t6 s5 I8 a9 @2 j  HLDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量
( N, J) C' C6 q3 g0 E8 `@2 STA $ 6FCB,x 9D CB 6F: v! S! L6 u# G. m2 A
DEC A  3A
+ V) t9 y0 L* A( I2 aDEX  CA6 {0 p7 J* r3 k- Q% [" F$ `2 k5 L
DEX  CA+ _+ t; e- y- n4 d/ {6 F8 Z3 _* A6 s
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间4 G  N7 H1 }+ P) S! X
LDX #$ FFFE A2 FE FF;-|# Q$ U# C: X8 m* A4 t9 r! i5 W$ r
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
4 D: Y: g4 r# m; K* ?3 B0 o, C: g@1 BPL @2 10 F2;循环$ A7次
) v- e) W5 @/ V2 w4 `% }5 Y. gRTL  6B+ M+ S, d! ~: o4 ]
最后改完后反汇编出来的结果:
  @. f  n/ f; R1 M) N  G; E* z/ _$ 85/C785 A2 4C 01    LDX #$ 014C              3 ~: q. r" a5 a8 t
$ 85/C788 A9 A7 3C    LDA #$ 3CA7              . X5 h, L6 |/ g2 ]2 p- M
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   ; k4 a$ B. i2 U5 K' a0 h3 n' N
$ 85/C78E 3A          DEC A                   / I/ a2 i7 W0 B5 f! H/ f
$ 85/C78F CA          DEX                     $ H% f& @" o& ?1 C4 {
$ 85/C790 CA          DEX                     
, k, ]8 p; x' U) [  \. E5 o4 d8 K# B  q$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间
% z$ _( y) c; |( g% L+ ]* Q  j$ 85/C793 A2 FE FF    LDX #$ FFFE              ;! v% @! |4 \5 h0 d- ~4 [1 i3 u
$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么- s  H  V8 `7 \/ J$ J3 v4 `" x" V0 w9 a
$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
$ d$ Y: V/ r3 V) x. R' z$ 85/C799 6B          RTL                     
( J/ l2 {( H* z( J# Z. U$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了8 ~' c; S' g8 Z4 Q
$ 85/C79B EA          NOP                     ;
) {5 W0 a2 h- q5 [, M2 k$ 85/C79C EA          NOP                     ;  B, u5 M5 @8 c% m; u# h& ~& B7 ^
$ 85/C79D EA          NOP                     ;9 J2 Q- B+ j, n: `% h
$ 85/C79E EA          NOP                     ;
8 w/ X* {4 \, ]- m8 P$ S$ 85/C79F EA          NOP                     ;
: x: J- c. Q3 p$ 85/C7A0 6B          RTL                     ;
) S, z7 T, Z5 G' x+ r( W& i8 M
9 c0 }) x% ~+ e) E. G- E[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-26 00:19

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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