EMU618社区

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

[转载HACK教程] 游戏修改与存档的基本常识(作者:ramond123,OSIRIS)

 关闭 [复制链接]

签到天数: 2112 天

[LV.Master]伴坛终老

发表于 2009-3-10 21:16:03 | 显示全部楼层 |阅读模式
游戏修改与存档的基本常识% }( \9 w+ U* C8 I' {3 {% t

/ O) ]5 X! w4 y& m' c+ o8 z& ^7 k7 r* E' A1 I0 n; i
你是不是经常为某个游戏卡壳而犯难?除了攻略,掌握基本的修改和存档技术也是常见的制胜法宝。
& k& }3 b- ?' L9 ?& E6 [% @: b! E! n2 W8 U. b( X" C5 z5 z0 S7 z8 r( t: L
1.如何使用模拟器自带的修改功能:; i$ T7 R8 L  E6 ~% h4 H" w1 p
  g4 Z5 ]7 l; D' B; V7 i. s6 B
我们以使用vnes查找fc魂斗罗1代的1p生命值为例:
$ ]6 `( p( L4 ]  V+ u, |7 {5 ?( A8 i# I2 o, v& E% j  ]
1)“变量筛选”的办法(这个是最普遍的办法)  ~4 G& }' _# y2 y; ?
打开游戏后,工具/查找金手指
$ U  J+ g2 o, S2 Z一般选10进制,长度1字节,范围ram、sram都选中
; r1 q/ k6 ?; h4 K$ A& I& S$ Q然后点击开始,它会列出所有数据! R5 g* E4 b3 T9 t# x3 n: ?; b
- P! l  i$ [1 H6 f- z* P
然后回到游戏,先死一命。然后点击“旧>新”(因为生命值减少了)." z* u% h8 O3 S/ G
此时搜索范围缩小很多。然后依此类推,直到找到结果为止。
' y- j  p! E  i2 `0 u+ t
+ g* |5 Z* n3 W4 |' C9 I然后对着找到的这个数据点右键,“添加金手指”,在注释里写清改的是什么值,数值里写清改的是多少,类型一般选“始终”,也就是锁定该值的状态。
9 t, v6 s% R( x; t8 s4 C  A4 X; L
) X7 @3 _; _1 f一切办好后,在工具/金手指下会列出你找到的金手指。你可以在里面打开/关闭或者修改金手指。但最最重要,别忘了在这里把金手指文件(vct)保存下来,不然下次玩就找不到了。保存好后,下次玩只要在这里“载入”就成了。
" ]) C$ [8 w) b7 m9 V# H) g- k
- W1 ^# h' x" U; i% |2)直接定位法8 h! T$ x: c- F5 H8 F5 V' s

( `$ i4 V% t! t假如魂斗罗初始生命数很明显为3,那么在“搜索金手指”下的“数值”栏输入3,再点搜索就能找到了。2 `( s' h9 g7 ~' A& o! k

; I+ v) P% V  n, |& h除非是某些rpg/act(可能是2个),否则一般有效结果是唯一的。如果发现结果有很多个。就用前面的“变量筛选”办法重复多筛选几次就能得到结果了。* ^* b$ z  k( x) f; @# Q2 ], Y7 Y
% a* |" i$ |2 h9 n* U' h
这里注意:有些生命值游戏中显示的是n,其实真实数值可能是n+1或者n-1。这个也需要在尝试查找的时候注意。:)' ?; l0 B& z, R

7 d6 s$ R& D4 \9 y8 E***其他的模拟器自带修改功能大同小异,据此可举一反三。& D( ]) j0 m9 s! ?" ?' k

$ `8 v5 E  J) P- ~6 ]: |2.Emucheat是修改emu多平台游戏的极品工具。# D, h2 c$ {4 Z' n( {

2 L  C2 Z) b$ ^3 \' f# I不多说了....$ n8 S( Z6 V) {. J6 G0 O
' I, d! `* v. C
3.关于游戏的自身存档和“即时存档”:$ W& T6 f9 u6 N# d1 ?1 C
/ T6 R1 v) Z9 f, A$ _( t2 l
以vnes为例,存档文件主要有两种。% C# G, m' y2 ~( P) i: J
一种是sav格式的文件,通常是游戏本身自带的存档功能。能够对游戏进行大致阶段性存档。/ D4 S& X1 v7 L0 _+ w( J) L3 T
第二种是格式为st0-st9的即时存档文件,这个是vnes独有的即时存档格式。0 A, O+ P* x* G. D

& G) \4 g& B9 r/ r$ `% |它们放在哪里?
; ~* s5 Z5 P: r8 }6 V9 d可以在选项/文件夹下看save(sav存盘文件路径)和state(即时存档文件路径)这两个文件夹放在哪里。
# a. H; ~6 ]3 t2 h4 a# O% G$ l# H: Y+ N' w  ^
如果这两个文件夹里没有你使用模拟器的文件,说明存档因为某些原因遗失了,没有办法找到。
7 r" H* Y4 v) `! I" c$ x, w. ~9 ?$ O如果有你这个游戏的存档文件,打开游戏后,直接把它拖到vnes模拟器的主窗口里就能识别出你的存档了。
8 M( N' x1 A' A+ ]
7 @' k4 C0 w) m, H4 a2 p另外要注意,如果即时存档快捷键设置成“s”键的有可能容易错误覆盖存档。因为s键很多人又设置成方向或射击键。所以把即时存档快捷键改一下可以避免这种冲突的情况。
" k9 u( v# s' V* X1 Y
+ S) Y; f3 e* b& n' R; |(想成为高手的玩家最好不要过分依赖即时存档,否则容易失去游戏的原味。)
* h: e+ l3 M& G) a* S3 V
& g; \% X  j7 i) M5 R) v# x# Q1:关于变量法 有的游戏内存的数值改变与游戏中的数值改变并不同步或同向 例如有的游戏的一个数值由多个内存地址决定 或者由一个内存地址反向运算 所以如果你用变量的=、> 、<不成功 就用!来改 虽然麻烦一点但这种改法是最基本的 只要你有耐心就一定可以找到
* t, h( y% ~# Y6 O% X
' v% ]. v, j2 e1 _2:关于定位法 这种方法是最快的 但也是有技巧的 例如有的游戏的命并不是直接输入游戏显示的 还要加上你正在用的那一条 还有的游戏是浮点的 还有的游戏是反向运算的7 ^+ ^) \6 }$ g6 i$ u# p& |
还有的游戏是多重运算的 这就需要你的灵感来一个个试了 
" f+ }$ s" C( C. T  A* b
" V' L2 M1 F7 O( v+ ]& Y% V3:关于汇编法 这是最高级的了 通过截取游戏对内存的使用来获取游戏存储数据的方式& H. Q! {) f9 e+ X. E
进而跟踪并改变数植或者是其运算方法(例如不减反加) 想学的可以去千岛汉化的置顶看看(这可不是好玩的 建议没有高中文化水平以及大量的时间还有学习一门语言的觉悟的人不用去了)
; i' h) O8 q6 V: b, j# c2 p2 D1 J2 ^* d3 m0 p' a* d# A$ B
在这里说的许多运算方法在模拟游戏中用的不是很多 毕竟浮点 反向 多重这些算法需要点空间和内存支持 而模拟游戏特别是GBA没有那么多空间和内存来做这些 一般是电脑游戏用的比较多. c5 M5 m1 p* x! S' K
但这些运算并不可怕 也不用强迫自己学汇编 有些方法是可以饶过它们的:
& j9 l3 v) n& U  h- v( X! ~, @2 H' j8 d9 ?  ]" a
4:饶过高级运算方式的技巧 方法是人想的 这里我只举一个例子 剩下的*大家悟了
5 n( Q% F- j& I% b" l  x6 R* X" F! k) A
我在修改《加勒比海盗》金钱时发现直接和间接修改法都不成功 一时间也不想去观察它的运算方法 于是我用了一个很简单的方法 买3包棉花(我只有这么多钱) 再卖 要求输入卖的数字时通过直接法查的数字的地址 然后改为卖N包 这样钱自然来了 + o) G9 L' O5 o, Q1 u2 ^

: q1 C6 _' ^# E* Z* n6 L( e' v这里说的就是一个技巧 既然金钱的地址找不到 卖东西的数量地址找的到吧 改一下不就行了 同理还可以修改所带物品的数量再卖
8 Y& B* Y, T  N& y
! \- y- E1 e/ O还是那句话 方法是人想的 无数命改不成我就改无敌 无敌改不成我就改无限必杀 天无绝人之路 希望大家可以在修改的道路上走出自己的捷径 ; M- Q4 |5 z) f' M! s! ~% D3 L5 S
' ?3 W& s( E& {2 E, n8 `4 l
还有一个基本的方法 比直接查难 比汇编简单 就是用16位编辑器改存档了
1 T$ G% k. w/ Z0 l因为存档里面一般数据存的很简单 一般不会用算法存数据的% u1 E" d0 z& Q, [
我还是举个例子 比方说你有2000G 你来到商店 存档 买药 存另一个档
( L5 N, c/ l, j8 P& j然后用UE比较两个档 一般来说变化越少越容易找到地址 所以你尽可能的不要移动 具体是这样的:
1 k% d# z3 d. L, P1.走到店员前 存档* D  Y8 t4 l4 V- N. H
2.买药 再存档 记住要存另一个档或把原来的备分了再存(汗....好象差不多啊)* _/ O) m  R1 o" u0 q0 e
过程不要拖 尽可能的快一点 然后比较两个存档 得到不同之处 排除不合适的 最后得到的就是金钱地址.
7 ]/ R4 d; J8 e+ }1 q一般来说不同的地方就是金钱啊 刚买的药啊(用这个和物品代码就可以修改物品栏了) 有时候还有多出来的游戏时间(一样也可以改) 视游戏而定( |1 O) l: A& L6 g: v) Q' r5 V& ]

) s4 F' ]2 s# v+ L$ }5 L& L, z用存档法可以避免内存中的大量杂讯 数据地址集中 而且还有方便改物品 游戏各种属性以及不易死机的特点(前提是你要会改) 很时候有点基础对修改比较感兴趣的朋友# K/ h$ v( J/ U) N# j7 a: N9 x8 Z- T
$ B; J' G$ I/ b, D
改物品时注意头脑清晰 懂得分析物品种类以及数量的地址关系 还有其表示方法 如果有水平也可以直接在内存中改 象刚出的YS6中物品地址排的非常整齐 与物品栏中的位置是一样的(这于其物品比较少有很大关系) 用FFFFFFFF表示未取得(很多游戏都是这样的 只不过其他游戏物品较多 用FF或00表示此物品栏空闲 这时只用带入物品代码就可以了 很典型的就是那个魔石英雄传2)
& p# V% N# f8 q, @
4 A1 G) |! H  J作者:ramond123,OSIRIS

该用户从未签到

发表于 2009-3-10 21:48:58 | 显示全部楼层
学习下 我一直用第一种
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-10-26 17:52 , Processed in 1.074218 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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