EMU618社区

 找回密码
 立即注册
搜索
查看: 2371|回复: 2

[转载HACK教程] 禁断研究(作者:Arix.Wang)

 关闭 [复制链接]

签到天数: 2180 天

[LV.Master]伴坛终老

发表于 2009-3-9 20:45:49 | 显示全部楼层 |阅读模式
作者:Arix.Wang   文章来源:http://orbit13.spaces.live.com/
, {% ]! H  r: V2 O! X  m* j5 |. U9 \' m% h% a4 j* o* p  K
*** 金手指禁止! ***" z+ d" x/ j4 \! W, ]- P% G7 Y4 y9 f
为了测试汉化成果的需要,不得不求助于老金了。
# h0 ^% V8 o4 l# n3 wVBA主要使用的金手指码类型有三种:原始码raw,Codebreaker(CB),Gameshark(GS)
4 K: K& w, E% \- Braw设置和功能都太简单了,如02001234:12345678就表示修改[02001234]处数据为12345678(高低位不说了,真实值为78 56 34 12)
3 S& v3 M5 Z7 ]8 D3 |1 `GS码强大到可以修改游戏代码,但是没有可读性,不会也不谈, Y/ s0 l+ @+ D% r
那就说说又强大又可读的Codebreaker Codes。以0-F开头的代码各具功能,以下逐一说明:
% }4 Y' v4 n. y& d
7 T  Q; i4 _$ j; Q& y1 l0,1,9打头的代码为Enable Codes; E" f# j, F% h6 I% {
  0000xxxx  000y  Enable Code 1 - Game ID
$ r- g8 W$ Z% b  u% o# C5 a4 M  1aaaaaaa 000z  Enable Code 2 - Hook Address  ?- x- D' I! [! X8 j8 k
  9xyyxxxx   xxxx  Enable Code 0 - Encrypt all following codes (optional)% g7 P/ Y( F) ~% d4 C! h4 J8 Z! M
这些是用来匹配游戏和压缩用的,基本用不上
( s" u0 M* |" b; E
$ U3 O5 I5 Q% {$ s) ~1 `3,8分别为 8bit 和 16bit 修改
& U: T/ h" K: M  x' T. E  3aaaaaaa 00yy  [aaaaaaa]=yy
2 b$ T/ k# o  H% m5 K  8aaaaaaa yyyy  [aaaaaaa]=yyyy
( n( x+ x/ @, k$ x直接修改数据,相当于raw码
5 [/ m' n- D1 T, w
+ F! r! U6 Q% U# B7,A,B,C(F,D)为条件判断码6 h1 d5 d& }' i
  7aaaaaaa yyyy  IF [aaaaaaa]=yyyy THEN (next code)
& L; f1 d; y0 i; }- L* Y  Aaaaaaaa yyyy  IF [aaaaaaa]<>yyyy THEN (next code)
) X0 M6 \: d2 _1 V; P& e+ y' ^% @  Baaaaaaa yyyy  IF [aaaaaaa]>yyyy THEN (next code) (signed comparison): p% u1 q, }% G" I4 j
  Caaaaaaa yyyy  IF [aaaaaaa]<yyyy THEN (next code) (signed comparison)+ k9 X1 ^) W( K
  Faaaaaaa yyyy  IF [aaaaaaa] AND yyyy THEN (next code)
# s9 y1 S$ j/ Y( A  *D0000020 yyyy  IF [joypad] = yyyy THEN (next code)
" K/ V( j" l$ j主要说下D码,当按键满足条件时启动
; ^7 A% d7 X6 ~A  0001 B   0002 Select 0004 Start 0008/ d6 I' Y8 x/ X% `- I6 f$ G% j
右 0010 左 0020   上     0040    下  0080
* p! [5 c8 ^6 Q* fR  0100  L  0200    如判断同时按下[A,上,L]即为 [D0000020 0241]% S0 F) o- P4 x- c+ K
引申一下,在gba中规定4000130h - KEYINPUT - Key Status (R)
$ E. d, [: l, X7 q16位中低10位分别标示[A,B,Select,Start,右,左,上,下,R,L](0=Pressed, 1=Released)- o6 ^, p+ N# D+ D& Z$ J  f: x
同时按下[A,上,L]即为0110111110=1BEh,也就是[D0000020 0241]和[74000130 01BE]等效
. n' k$ b" k; K*实际条件为IF [joypad] AND yyyy = 0 THEN,注意 0241 && 01BE = 0的* ~* P2 [' \+ z4 y/ `! @6 |" C
3 ]" k' k2 j& ~3 H
2,6,E为逻辑码和自操作码
) S1 h% h' F' o" c: A4 _: V  2aaaaaaa yyyy  [aaaaaaa]=[aaaaaaa] OR yyyy
+ b4 K& G( i6 Q3 r) j) W/ G  6aaaaaaa yyyy  [aaaaaaa]=[aaaaaaa] AND yyyy  X. q# B" b# N5 @0 n- G/ V- x; @& R
  Eaaaaaaa yyyy  [aaaaaaa]=[aaaaaaa] + yyyy
5 S6 p5 \7 M3 J" z8 ~这组很明白就不说了,注意的是E码中,当yyyy>7FFFh时为负数,实现自减1 s% _7 r, K" }' j6 V! |3 o4 F

+ T0 B& |+ I' p& }+ T; m- d4为批修改,好像也叫压缩码,用来修改全道具、全图鉴之类的东东( W& p# X$ q7 T+ N0 ]' T
  4aaaaaaa yyyy  [aaaaaaa+0..(cccc-1)*ssss]=yyyy+0..(cccc-1)*iiii
; W8 R7 t. h9 X" j- s- O  iiiicccc ssss  parameters for above code
9 c# L3 i4 O$ j3 W' `这是一个很便捷的代码,再说明一次
4 z3 p, p+ @; O6 caaaaaaa起始地址,ssss每写一次后的偏移量,cccc写入次数
% U/ n) M/ }5 V. h0 hyyyy写入初始值,iiii每次写入后yyyy的递增值; d5 |3 H# c) B% q2 L# b3 g
如0858中每个道具占4B[03 63 72 00](03图鉴状态,63道具数量,72角色道具说明和入手途径,00)
2 p% u) I/ |. A" g$ Q2 y0 ^$ _要修改263个道具数量为99且图鉴全开即为(03001540起始地址). R' A! ~. `# W3 P/ V$ F7 e
43001540 6303
: v2 J- F1 z2 A" r2 R; \- m00000107 0004
- d, N0 R; A% K0 k# X$ l. s  N5 Y 6 L. ^1 q& [' O5 B3 i" @$ _
5为直接memwrite,没有试过
- S5 I4 R# r, q" w8 M* {& r  5aaaaaaa cccc  [aaaaaaa+0..(cccc-1)]=11,22,33,44,etc.
6 Y; t9 a' c: a# _  11223344 5566  parameter bytes 1..6 for above code (example)
  l9 q/ f" [2 M2 E! n: y  77880000 0000  parameter bytes 7..8 for above code (padded with zero)
  e* G7 u3 t' S$ d ( z5 a2 h0 g+ [! a
差点忘了萌战,四强已出炉7 Y& ?* d- @) {9 z/ D6 F* P1 t! Y
镜,渚,司,会长。最后一周,最后的战斗~期待双子的对决9 _9 F+ f: A2 n/ r. M! h

" T3 r+ L) N1 h" ~2 T[ 本帖最后由 疾风之狼 于 2009-3-31 20:40 编辑 ]
头像被屏蔽

该用户从未签到

发表于 2009-3-9 20:52:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

该用户从未签到

发表于 2009-3-10 00:23:00 | 显示全部楼层
又是这个……( v- H9 f% y* y
日后再看看有用没
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-3 10:56 , Processed in 1.063477 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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