EMU618社区

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

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

 关闭 [复制链接]

签到天数: 2183 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html
) v" a  h, J  [6 I& e7 F
; w2 h5 W, r4 Q9 {  \! b火炎纹章776修改笔记
- w) I: g) h6 `5 z) [2006.1.25
5 W& N4 ^! t+ X5 ^' B* {作者:zHAOsILi[EGCG](.zZ~~) 转载请注明
. I# B! b) F5 @4 f
* i' t0 \. K0 W5 B
: \% t) M7 D, O& v$ a) ~* a修改工具:Geiger’s Snes9x Debugger Mark 94 O; W' @2 Y( V& n; f
2 q8 G1 Q0 M6 C( o% ~6 l8 b( U0 p% d
战后升级
! u+ B" ~/ t, m  a$ 83/EFDC 90 05       BCC $ 05->EA NOP
( M# K+ G2 t) }" D, m1 [& ]8 Z- w                              EA NOP& }4 x: m' [  _) r$ W% c

2 r% e1 ]0 }" f战后能力+1) @  \9 b2 R6 x  s' Q, |2 |
$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 00016 w" I0 @4 \, O
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b- S2 f" k4 I6 X, i, d
9 J! L  Z/ @% p2 j
武器熟练直接到A  E# Z* [/ s; ]( K+ H1 n
$ 83/E4E9 90 03       BCC $ 03 ->EA NOP. `9 _- H5 h/ P+ K9 X* ^
                               EA NOP- L) m( U# a4 `* _
存放所全物品锁定7 Y% Z4 `* n: g  X! i
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只
2 j# U6 p) [3 k. G" P, D要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,
( H1 r. Q3 i/ ~$ h( E( H而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过128- m5 X9 z& P. K) I  L& A0 J
件物品,故可以突破存放所128件物品的限制,改出全物品。* D* B5 Z+ w7 J% V
$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
7 z# I; Y/ V% y& {  v+ Z$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   
) S7 R& `" j) p$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
4 B5 B. G% u4 `$ 85/C78E CA          DEX                     4 a# s: F: R1 ~! l) V
$ 85/C78F CA          DEX                     
! e6 T7 [/ m0 `. F7 L. n8 q: D$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次" o' E: H' J% A* U6 }' X6 P, }- s
$ 85/C792 6B          RTL                     ;返回时X=$ FFFE
" e5 T3 H' ?' h( i$ 85/C793 A2 FE 00    LDX #$ 00FE              
/ ]% U3 w' A, r6 L3 L/ y$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   
# p) N5 P# K4 x- n$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0
; J, p2 O# A/ V$ C/ r" }6 ^$ 85/C79C CA          DEX                     
8 R7 f3 X8 Z& @* E% W$ 85/C79D CA          DEX                     
, o3 _* F; {# i& F; V* T; O8 x3 W$ 85/C79E 10 F6       BPL $ F6    [$ C796]      
; x/ L6 F: L5 S2 `9 B2 H; I$ 85/C7A0 6B          RTL                     : e; L* S; @& d) j
实现全物品的代码如下:( u# y2 x, u& E: @6 {
Start@ $ 85/C7859 Y' R# r7 N9 z- G
LDX #$ 014C A2 4C 01;X=($ A7-1)*2
1 G* L% `9 N$ h3 r& ^  a) ?LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量# D- A; s5 R1 W% S' {
@2 STA $ 6FCB,x 9D CB 6F
0 {* a" u8 z# C# ?' d; Q3 yDEC A  3A
1 q3 v& G' I& Z* LDEX  CA
9 A) s# O  Y2 }7 G" m# x  O* S5 {DEX  CA# r) y* c5 p1 o! f9 ]) ~5 V% u
BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间
- h- \+ g8 N8 P3 g9 `$ W$ T' j, uLDX #$ FFFE A2 FE FF;-|6 A" v8 \( T8 M6 A
RTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
( H( z# i* j9 d6 k# z- e: q@1 BPL @2 10 F2;循环$ A7次
# |* y9 Y0 r% Y2 BRTL  6B
, p8 Y# q/ p9 V0 O0 U最后改完后反汇编出来的结果:- g% F4 G. l* {* y' J( P  h. W
$ 85/C785 A2 4C 01    LDX #$ 014C              
# {& t! Z: P* s" s$ 85/C788 A9 A7 3C    LDA #$ 3CA7              
9 j0 C1 d9 ^) r" J# c: m$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   - h. F% Z% `5 a( N/ W, {
$ 85/C78E 3A          DEC A                  
! U) X6 A- K) H& q/ T7 D6 B) C, M. r$ 85/C78F CA          DEX                     " s' Z2 B/ ]4 _7 E
$ 85/C790 CA          DEX                     
# b( ~. S6 W9 a$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间5 v) D9 d  R6 z& I
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
9 ~' P2 i3 ?5 x$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
8 ]# A1 \2 k$ A, M0 [$ 85/C797 10 F2       BPL $ F2    [$ C78B]      
+ h( D7 b2 H) Y3 [3 m! [; V$ 85/C799 6B          RTL                     
  o2 L1 i7 A/ t" ~  W# W5 c6 ?) M$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了
" }# ]& s$ P; [$ g$ C& _! }( C$ 85/C79B EA          NOP                     ;
! j) P+ v# Z" |% v* c' }7 u$ 85/C79C EA          NOP                     ;
/ ~. S/ n5 Q$ _) P1 ^& c: C$ 85/C79D EA          NOP                     ;1 S" E  W3 S( Y
$ 85/C79E EA          NOP                     ;" K  X  w4 v/ ]
$ 85/C79F EA          NOP                     ;5 d% F) [9 Q# g4 R+ ?: D
$ 85/C7A0 6B          RTL                     ;
9 [. ~% D) W: W" ^+ {# G* }
+ y  A% o* Q( ?/ [" @0 A* t[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2026-1-7 06:58 , Processed in 1.087891 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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