签到天数: 2039 天 [LV.Master]伴坛终老
|

楼主 |
发表于 2013-1-25 21:23:40
|
显示全部楼层
回zsyf:
7 k% S/ S* q6 m1 y* `1.DEBUG版MAME有作弊码查找命令
/ ^) Y" A# F& D8 u8 B0 S! O
( O g; [+ d, e; c1 l& W, G G命令如下:
. P" V2 f: ]6 o" Y5 pcheatinit [<sign><width><swap>,[<address>,<length>[,<cpu>]]]
+ ?% u' \5 L8 J* n) v) n. m { G<sign>是决定数据是有符号还是无符号,s是有符号类型,u是无符号类型6 E; B7 Q3 U' o) G& h
<width>是决定数据宽度,b是8位(单字节),w是16位(双字节),d是32位(4字节),q是64位(8字节)' n F4 j4 h N A4 A- Y
<swap>是决定字节是否交换- p/ e( |" l& _8 A8 @" ^
<address>是地址,地址必须用十六进制表示,例:0x100248
& N4 e- z: A$ L" O<length>是地址长度,长度必须用十六进制表示,例:0xfffff( w# ?6 H4 y8 o6 k3 e8 K: s
<cpu>是决定搜索哪一个CPU空间,0是第一个CPU,1是第二个CPU
/ t. _- T" p* C9 Y h3 M2 {& n n2 @0 t- s/ }
请打help cheatinit命令获得更加详细说明
. i/ ~0 P3 L+ Z. \1 a5 c* V: t) h6 t0 e9 N0 h1 [% ^" T
cheatnext <condition>[,<comparisonvalue>]
K) f2 Z) X+ n, ^0 V<condition>是搜索条件,有[eq],[ne],[de或-],[in或+],[deeq] [ineq] [lt] [gt] [ch或~]9 m* p$ T+ b% _# f8 Q3 w
[eq]是等于1 n, E4 F) v) d9 x8 {
[ne]是不等于
/ x2 ]2 Y! c% ~7 S5 p& j1 ^' A- [[de或-]是减少
7 m! R3 ] ]8 |- o+ q& z[in或+]是增加
3 J3 o/ L# z5 n* r* A& k. o[deeq]是减少或等于5 [& ]/ Y0 {) y
[ineq]是增加或等于
9 p# Z, I. L: \3 t# E$ H[lt]是小于
, X- l! d' k7 T3 P% _7 A[gt]是大于
* V! N* I9 |% T[ch或~]是数据有变化- h- f: a* T2 r0 j8 ?
* `; h3 Q3 S9 o1 b* B8 W/ |
<comparisonvalue>
8 w1 Z8 o- s' D: ]& g要搜索的数值
; U$ ]( U/ w; y% U! U% N, H/ m" T) _# D9 ^
请打help cheatnext命令获得更加详细说明8 n$ w- A: E# Z4 ?
0 d Y7 U* s! `, c/ j3 Ycheatnextf <condition>[,<comparisonvalue>]6 f- s0 _8 @& r$ R/ n9 g
说明同上, x ]5 ?, `& X
: z. J3 O7 m B# l1 Z I
请打help cheatnextf命令获得更加详细说明( C s& x' z! s, d
" ~! y, b4 z: y- K7 V7 d2 }
cheatlist [<filename>]* ~, T& @2 t0 c7 g) s6 |8 r
显示搜索结果,添加文件名的话,就是把搜索结果以基本xml格式输出到文件
# R3 E* R' l) F/ a
& P3 ~# G$ K0 G1 W8 C1 ?请打help cheatlist命令获得更加详细说明
5 ^3 L3 D, [2 _, a1 A: Z, u8 z' j" L7 w. Z9 e1 f8 {
第一次查找要先用cheatinit对要搜索的内存范围进行定位并初始化
3 F! R W. Y I7 J6 N+ r
2 E- g4 b" ^' T+ G% M之后进行第一次数据搜索时要用cheatnextf命令来摸索
* s9 Z- o+ i( n7 J) O
+ R* t$ }7 o7 c: H/ z/ H到第二次、第N次数据搜索时要用cheatnext命令来搜索& g' r& M4 p# ]5 J+ _; l1 y
6 E! @( r, {; d* G4 q7 |( d
举个例子吧:" L. U9 }; u( i
$ |' b4 |: D6 u4 o" X
以合金弹头X为例:
4 i* h5 {( {0 i( C8 L# s D4 K1P生命数是2
; _/ l- {3 i5 i3 L" b0 D
& q' Z4 d z b; m/ e/ F先用cheatinit命令来对要搜索的内存进行定位并初始化,无符号类型,单字节,内存范围在100000~1fffff,指定搜索第一个CPU的空间
& A% z$ W" _* @. Z! _" h
R0 l: f5 f0 J7 S2 f命令如下:
3 J, K- W- D7 U% p, N( ?cheatinit ub,0x100000,0xfffff,0( g3 g/ A4 ^- [& H
8 l9 t1 s1 k' j1 g6 z( y5 e5 ?再用cheatnextf eq,2命令搜索生命数23 h1 p$ [+ w: Q9 R
: j8 b, A% ^% U |* t# q
cheatlist显示搜索结果
7 I) n4 |2 V, A5 I" c; ~, V u U" C, \8 Q( \
死一命后用cheatnext eq,1搜索生命数1
7 I/ X% \6 ]' u6 t! |2 \% a2 O0 x$ ` }; X. N
cheatlist显示搜索结果* u& n5 @" p- j) Y, \. n
.......
0 \$ z4 u+ g& y: d- B, }直到搜索结果不能再减少,就点击菜单Debug->New Memory Window(或按快捷键Ctrl+M)调出内存查看窗口来试着对各个地址试修改看看效果, X- R; d, p4 ]9 e" L
3 H) Y4 \3 B1 H r* _# p还有一些命令,例如:cheatrange、cheatundo,因为没机会用或不用,就不说了。
: x7 c$ C( }! n7 c. V$ w9 Y6 P) B: V& F+ d
没作弊码的话....$ S# J% {( ~, J4 Z5 j6 ^/ m% q8 E
6 g" c1 z* Y8 L6 y; t$ |9 T! t* _7 E
不同的机板CPU,RAM范围大小不一样,干脆用内存查看窗口看看主CPU空间是多大,然后将其全部定位再搜索(这样做一但改错有死机可能)7 v2 B: D8 s! B2 p
; N( b# J W3 u$ Y& Y/ O或看看硬件资料(有的话,可惜我没有)或MAME源代码里的有无写关于68K RAM起始地址(或其他CPU RAM起始地址)
8 G' {) _; K1 t+ W+ D4 t
+ V- J0 \- _0 L( Q# P8 c* [3 x2.cheat engine搜索的是PC内存地址,不是游戏机内存地址,拿cheat engine搜索到地址来断点当然是不行$ e7 {4 p1 h: M3 }( B+ p& B6 h' X
6 q) X: @2 `2 ]$ Y a2 c& c0 ?" I
要用cheat engine修改或锁定数据并不是不行,要先找到MAME 0.148模拟器基址来定位 ( O7 e" r$ U: E5 F, W
0 Z$ _3 y1 E# t! J! V
回114:
# g* f+ T- ` v7 g1.Debug版MAME是有内存查看窗口,点击菜单Debug->New Memory Window(或按快捷键Ctrl+M)
- c2 i. _% D. W% L2.没地址如何查询地址?看上面我给zsyf的回复 7 w1 h! F0 g6 {0 t/ i' ]4 A
( k4 @0 ?' m# x4 y3 d打字真累.......orz....... |
|