EMU618社区

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

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

 关闭 [复制链接]

签到天数: 1909 天

[LV.Master]伴坛终老

发表于 2009-3-9 22:09:11 | 显示全部楼层 |阅读模式
文章来源:http://zsltools.ycool.com/post.1074234.html3 L4 [# C  U- U3 i: i/ ]

7 t) z9 v: s7 U- T火炎纹章776修改笔记+ C& L! M5 i6 L  M  y: \  O5 d9 X% N
2006.1.25" W  J- F. P# R0 E. [
作者:zHAOsILi[EGCG](.zZ~~) 转载请注明! K; r3 N9 W" D4 L' A6 }

  l  w# k+ ?4 ~6 ~: O) |( f( u8 T5 E3 c6 B" h# F
修改工具:Geiger’s Snes9x Debugger Mark 9
1 y7 P6 ~' j* c. X0 k- j2 s
) L6 F& @, `% S  `7 S战后升级
% Z8 L; `* x8 g5 V& x( c" U/ {) \$ 83/EFDC 90 05       BCC $ 05->EA NOP
+ A* v8 l# }0 N                              EA NOP; P( W; ~* _0 E. F

, ]  F, s8 G9 g4 {战后能力+1
% Z5 d# _% }8 {7 M$ 83/DFFF 20 B0 E2    JSR $ E2B0  [$ 83:E2B0]->A9 01 00 LDA #$ 0001( z/ d* |. Z) g# ?6 z6 S" p6 @
有BUG,敌人杂兵能力好像也用这段程序算,最后LV20的敌人杂兵能力基本全20-__-b
9 |+ G( q7 ^2 b0 Y5 n4 r" r& K3 F* q( p
武器熟练直接到A
6 F+ N: [  N6 V) F$ 83/E4E9 90 03       BCC $ 03 ->EA NOP; T" _1 k2 h5 h% u  i# Z
                               EA NOP
' x9 ~2 _0 n1 }( }; G存放所全物品锁定; r4 g% E8 |4 j+ `
存放所里的物品地址在$ 7E:4FD0,在整理道具菜单里选存放所时,这些数据会被传到$ 7E:6FCB,根据整理物品操作,在退出存放所时,把做的改动存回$ 7E:4FD0,所以只2 p# `8 t& _3 T' J
要把读取和写入$ 7E:4FD0的操作用自己的程序代替,就虚拟出一个全物品的存放所,2 F  H- ?$ e& D3 M- \
而且由于$ 7E:6FCB数组的空间大小不像$ 7E:4FD0只能存128件物品,足以存放超过1289 ^2 }  G  C2 O3 E
件物品,故可以突破存放所128件物品的限制,改出全物品。
  q* I  F7 S4 s) [) ]& v$ 85/C785 A2 FE 00    LDX #$ 00FE              ;X=(128-1)*2
% ?! \4 J/ p7 r$ q6 ^9 ~" M$ 85/C788 BD D0 4F    LDA $ 4FD0,x[$ 7E:4FD0]   * O1 j  M: B' ^) u! E: ?' ]
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FCB]   ;从$ 4FD0存到$ 6FCB
" P5 ^8 k( [5 O8 m% }3 u$ 85/C78E CA          DEX                     
$ @) ]6 F! d1 u4 ~/ z# g% Q1 C$ 85/C78F CA          DEX                     6 \& }9 a+ u" {) a
$ 85/C790 10 F6       BPL $ F6    [$ C788]      ;循环128次
0 D7 N1 W$ G! [! a" T$ 85/C792 6B          RTL                     ;返回时X=$ FFFE, Z: V1 o/ a4 J# S$ P
$ 85/C793 A2 FE 00    LDX #$ 00FE              / J3 F; s$ U  U1 q% M+ {
$ 85/C796 BD CB 6F    LDA $ 6FCB,x[$ 7E:6FCB]   ) D" ~* c$ p0 {
$ 85/C799 9D D0 4F    STA $ 4FD0,x[$ 7E:4FD0]   ;从$ 6FCB存到$ 4FD0' X9 X/ @! h" {+ _2 t
$ 85/C79C CA          DEX                     
7 j0 I7 d: I' y" S0 s" J$ 85/C79D CA          DEX                     
8 s" n2 l: e' n; w% k& Y$ 85/C79E 10 F6       BPL $ F6    [$ C796]      : v) o% L9 C! t* }7 K+ w; ~
$ 85/C7A0 6B          RTL                     9 e* h4 [3 i4 U4 v
实现全物品的代码如下:5 @: L- }5 p% [) k
Start@ $ 85/C7851 ?4 \" X- T9 i# G0 j
LDX #$ 014C A2 4C 01;X=($ A7-1)*28 v* _' q4 s& m3 P5 d
LDA #$ 3CA7 A9 A7 3C;从物品$ A7开始,数量为$ 3C个,如果用$ FF则是默认数量8 D5 r+ b! W8 H7 @- H" H$ X5 c
@2 STA $ 6FCB,x 9D CB 6F, |% z7 e# I  [5 e9 c7 t
DEC A  3A
2 ^& F* L9 o# \3 Y- WDEX  CA
" H, A# N9 j# d( L: |2 HDEX  CA
  c5 Q$ ^! e! S. P, T& `BRA @1  80 04;空间不够,利用从$ 6FCB存到$ 4FD0那段程序的空间1 k) T* Y' w. j2 c. n7 o
LDX #$ FFFE A2 FE FF;-|
/ ?' ~5 \) y0 P- H, RRTL  6B;-------|这两句补偿$ 6FCB存到$ 4FD0那段程序
5 o& q+ _1 d3 t: V& F& m2 _8 [1 e@1 BPL @2 10 F2;循环$ A7次( t/ v, a6 V) a3 X; o9 Z1 _
RTL  6B
" o6 X! [" z8 n7 ~9 h+ b最后改完后反汇编出来的结果:
+ ?, Y: u) c$ ]% ?6 F$ 85/C785 A2 4C 01    LDX #$ 014C              
+ H- [6 f6 E+ Z4 y" f' U$ 85/C788 A9 A7 3C    LDA #$ 3CA7              0 E0 `2 @$ b, J* j  ]! O- J; A
$ 85/C78B 9D CB 6F    STA $ 6FCB,x[$ 7E:6FC9]   ) f( s2 a2 ]- }0 c  `
$ 85/C78E 3A          DEC A                  
! B, b  v& |8 C+ Q0 W6 z2 [5 F$ 85/C78F CA          DEX                     1 ^' w! ~* j4 y/ `
$ 85/C790 CA          DEX                     
: s! A# A! {' u- S4 ~9 r, O$ 85/C791 80 04       BRA $ 04    [$ C797]      ;利用后面的空间: R* R, S" N. }
$ 85/C793 A2 FE FF    LDX #$ FFFE              ;
' w* g3 L7 A4 h4 j$ 85/C796 6B          RTL                     ;注意一下,看看原来这里是什么
% R: c7 D% _% U* [5 ~- d$ 85/C797 10 F2       BPL $ F2    [$ C78B]      7 g, u+ G7 K1 h. P. @
$ 85/C799 6B          RTL                     " D, \8 Y* j& h- |% h* |7 Q) U
$ 85/C79A EA          NOP                     ;避免出错,把多余的都NOP了7 f6 c: U( [% @" r5 z& K, W* r
$ 85/C79B EA          NOP                     ;) j, z" u3 r8 Q* c0 m2 E
$ 85/C79C EA          NOP                     ;
( h' k$ C" C/ [- H$ 85/C79D EA          NOP                     ;
3 i: j0 D, L5 d$ 85/C79E EA          NOP                     ;; p4 _. g* b7 J* f
$ 85/C79F EA          NOP                     ;* C# K& |. o0 A- N2 }5 R5 t9 }6 o" Z
$ 85/C7A0 6B          RTL                     ;
& p4 K, G' j6 C, H* o3 _, p2 U
* K6 _2 T7 N9 l, ]" p' A[ 本帖最后由 疾风之狼 于 2009-3-31 20:37 编辑 ]

签到天数: 2 天

[LV.1]初来乍到

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

本版积分规则

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

GMT+8, 2025-4-4 18:41 , Processed in 1.218750 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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