-
一、如何用WINHEX破解游戲房間密碼
winhex只能修改、查看本地文件,倘若密碼是存儲在本地的(也就是你所用的電腦上的),那么就有可能破解。但是游戲房間密碼是存儲在遠程服務器上的,因此不但是winhex,即便是其他同類軟件也無法破解。
其實這里的“破解”,指的是直接從內存中檢索進而得知密碼,就像上面所說的,既然密碼根本不在本地計算機上,那么無論如何也不會成功的。這是一點安全常識,像網絡游戲的設計人員,通常都不可能犯這種比較低級的錯誤。也不是完全沒有辦法“破解”,可以使用暴力窮舉的方式,依次嘗試。當然這就比較耗時了。玩個游戲,也沒必要這么大動干戈,一般也就隨便猜測一下看是不是例如qwer、123、110、1314、520之類的常見弱口令。
用winhex是不可能的,根本原因就是winhex只能查看本地機器的內存情況,但是密碼是存儲在遠程機器上的。
這可能有些令人遺憾,換個角度,如果自己和朋友約好了開個房間玩,結果突然插入一個陌生人,心里畢竟不會愉快的吧。呵呵
二、怎么漢化nds游戲
具體在電子游戲軟件這個雜志上有詳細地說明。
簡介:本文講述如何對游戲ROM進行漢化,并以實例帶領讀者破解一個Rom,最終實現部分文本對話的漢化。本文面向初學者,閱讀本文僅需要預先了解16進制知識。
1.漢化一個Rom的步驟
a.找到游戲Rom中的碼表(字符對照表);
b.按照碼表將Rom中的文本導出來,存成一個文件;
c.翻譯這些文本;
d.找到Rom中的字庫,并用中文字體替換;
e.為中文字體再重新做一個碼表;
f.按照新碼表將譯文寫回Rom中,并更新相應的指針表;
g.測試.
下面我以七龍珠RPG(SF8047)為例,講一下具體操作。
1.1動手之前
在開始動手之前,你要先找到想漢化的游戲的ROM。注意,可不是隨便從哪里down一個就行的!你要找到最完美的rom,這樣才能保證不會因為Rom有問題,導致你的做了一半的工作白白浪費。具體說,就是要找經過GoodSnes和Romcenter校驗過的Rom。
另外要隨時做好備份!原始的日文rom當然要做備份;對修改過的rom,我是每天作一次備份的。備份這個事,強調再多也不為過!
還有一個需要提醒的事,就是有些游戲同時有日文版rom和英文版rom。很多人以為用英文版的rom做漢化會簡單一些。這是大錯特錯的!無論何時,記得一定要用日文版rom做漢化。這樣做有以下幾個原因:
1.英文版的字庫小,只有52個字母加一些標點;而要漢化一般需要1500-2000漢字,需要對字庫做大幅擴容。日文版的rom一般都會帶一些漢字,精打細算的話可能夠用。
2.英文版的字模小,一個字母也就8x12,而漢字一般是12x12到16x16大小,為了顯示漢字,你又要asm hacking。
3.英文版的對話遠比日文長,為節省空間,一般做了壓縮,這大大增加了破解難度。
2.字庫與碼表
好,漢化任何游戲的第一步,都是要找到碼表。什么是碼表?請往下看。
2.0一個例子
打開你的windows記事本,往里面寫入"ABCDE你好",然后保存為abc.txt。
現在的問題是,在這個文本文件里,記錄了什么信息?是這幾個字在屏幕上的圖形嗎?
用UltraEdit(或其它你愛用的16進制編輯器)打開abc.txt,按一下"Ctrl-H",切換到16進制顯示,你看到的應該是下面這樣子:
0000000000h: 41 42 43 44 45 C4 E3 BA C3; ABCDE你好
左邊的000000000h是地址,右邊的"ABCDE你好"就是這個文件顯示在屏幕上的樣子;注意!中間的 41 42 43 44 45 C4 E3 BA C3,這才是真正記錄在文件中的信息!
你可能看出來了,這絕不是這些字顯示在屏幕上的圖形。就算41-45是ABCDE的圖形;“你好”兩個字這么多筆劃,也絕不可能用C4 E3 BA C3這幾個字節就能完全記錄下來。你是對的,這個文件里記錄的只是字母(和漢字)的代碼,并沒有任何“怎么畫這些字”的信息。那么“畫字”的信息存在哪呢?打開你的C:\Windows\fonts目錄看看,看見“宋體”、“楷體”等字體了嗎?就是這里啊!
這說明了什么?說明PC機把如何顯示文字的具體信息存在windows字庫里;而我們平常寫的文件(不管你是存成Word文件還是txt文件),里面只包含字的編碼。
2.1計算機是如何顯示文字的
還是說剛才的abc.txt。你打開這個文件時,寫字板程序先取出第一個字節41,它去查一張對照表,這張表是這個樣子的:
......
41- A
42- B
43- C
44- D
45- E
......
從表中找到41對應字母A。現在計算機知道要在屏幕上顯示"A"了,它就會從某個字庫中(比如說宋體)去找字母A的字模(通俗的說就是如何畫出宋體的A),并把字模顯示在屏幕上。取abc.txt的下一個字節42,以此類推。
這張對照表就很重要了。它就是ASCII碼表!所有PC上的公共標準。你在自己機器上寫的文件abc.txt,不會在朋友機器上顯示成“KGTYU”,因為你們都用相同的ASCII碼表!
2.2 SFC是怎樣顯示文字的
原理上基本和計算機一樣。假設要顯示的文本是"04 78 9A",碼表是
......
04=孫
78=悟
9A=空
......
SFC先取出第一個字節04,查碼表,是“孫”,再從字庫里找到“孫”字的字模,顯示在屏幕上;下一步取出78,查表是“悟”,顯示字庫里的相應字模,下一步...(算了,沒稿費,不多寫了,否則我打算寫50個“下一步”:))
“孫悟空”三個字就顯示在屏幕上了。
2.3 SFC的碼表
很遺憾,并不是所有的機器都使用ASCII碼表,Machintosh就不用。而大多數游戲機,包括SFC,也都不用ASCII。各游戲開發小組根據自己的喜好和方便,隨意安排每個字的編碼,造成的結果就是:每一個Rom的碼表都不相同!(標準的重要性在這里體現出來,要是有個統一標準,我們就不用費勁去找碼表了,這也是為什么Microsoft總是力圖讓自己的產品成為標準)。
Rom hacker的首要工作,就是找出碼表。只有完成這步工作,才能按圖索驥,順利導出對話腳本、菜單、物品名等。
3.尋找碼表
3.1最簡單的情況-單字節碼表
盡管每個SNES游戲用的碼表都不一樣,我們還是有規律可循的。對于英文字母,大家總是習慣按照字母表ABCDEFG....XYZ來排列順序,SFC程序員也一樣,所以假如"A"的編碼是1,那么"B"就是2,"C"就是3,以此類推。
同樣,日文假名也是按固定順序排列的(五十音圖),如下圖。
1あ a 2い i 3う u 4え e 5お o
6か ka 7き ki 8く ku 9け ke 10こ ko
11さ sa 12し shi 13す su 14せ se 15そ so
16た ta 17ち chi 18つ tsu 19て te 20と to
21な na 22に ni 23ぬ nu 24ね ne 25の no
26は ha 27ひ hi 28ふ fu 29へ he 30ほ ho
31ま ma 32み mi 33む mu 34め me 35も mo 44わ wa 45を o
46ん n
現在雖然我們不知道他們的編碼,我們卻知道,"A"和"B"的編碼差1,"D"和"H"
的編碼差4。如果有個單詞mana,那么字母與字母之間的差值肯定是
m a n a
\/\/\/
11-12 12
如果有工具能搜索差值,我們就能找到Rom中的文本。這種搜索叫“相對搜索”,(relative search)。我推薦的工具就叫Relativeful search,在狼組網站上可以下載。它既能輸入英文搜索,又能輸入數字搜索,還允許跳過幾個字節輸入。
好,進入游戲,找一段文本,如左上圖,抄下第一句話,根據上面的表格標上數字:
とつぜんゃってきた
20 18? 46 36? 19 7
現在打開Relative search:按"Open File"選擇Rom,在"Values"后面填20,因為是十進制所以"Decimal",按"Add Value",20會出現在左下的"Values"列表里。如法炮制輸入18,下一個值“ぜ”我們不知道,沒關系,按一下"Skip value"跳過它。繼續輸入46和36。有五個就足夠了。現在按下"Relativeful Search"按鈕,等一下,右下的"Result"中會顯示查到的結果。
OK!找到一個。現在用UltraEdit(或你愛用的十六進制)編輯器,打開DBZrpg.smc。找到$03C6EC處,如圖。這里是不是正確的地址呢?我們隨便改幾個值,再進游戲看看。
看有沒有變化就知道了。把頭四個字節"17 15 A8 31"全改成17,存盤,進入游戲。看看最上面的圖,怎么樣!頭四個字全是“と”。說明我們找對了這句話的位置了!
現在我們知道17對應“と”(注意這里是十六進制,換成十進制是23)。由此可以推算出あ是04。好,可以把已知的部分碼表做出來了。打開記事本,照這樣寫:
04=あ
05=い
06=う
07=え
.......
是否寫起來很麻煩?這里推薦狼組hdw1978寫的Table Maker,如圖,選好“あ”和04,一按“生成對照表”馬上就成了!是不是很方便。注意它有個小bug:假名"を"被遺漏了,你需要手動把它加入碼表。這個工具最簡單,狼組網站上還有其他更好的碼表工具,大家可以自己試用。
你要是細心的話,應該還能看出,FF就是換行,FF FF是一段話結束。在碼表中加一項:
FF=
其他的日文怎么辦?太簡單了,你只要在$03C6EC處隨便亂寫些數,再進游戲看看顯示是什么不就成了?這些工作就留給你去做了。狼組有完整的龍珠RPG碼表下載。看看跟你做的是不是一樣?
對于含有大量漢字的rom來說,如果都一個個去試太麻煩了。碼表的順序與字庫的排列順序是一致的,如果你能找到游戲的字庫,就可以直接把碼表按順序抄下來。
新手可能還有個問題:那些日文漢字都是輸入法里找不到的,要怎樣輸入啊?最簡單的就是用南極星里附帶的輸入法了。可以很快就找到你要輸的日文漢字
3.2其它Rom及雙字節碼表
實際上任何Rom都是如此:只要它的文本沒有被壓縮,從假名入手都能找出碼表。對于壓縮的
Rom,如果它允許你輸入主角姓名,你可以起個名字存盤,再去Search存盤文件!你也可以用在輸入
界面不斷地變換第一個字母,不要按確認,并配合FPE等進行低級搜索,找到緩沖區的確切地址。
對于有漢字的Rom,會更復雜一些。用一個字節來編碼肯定不夠,有些Rom就用到了雙字節編碼,
還有的用到可變長編碼。下面說一下火焰之紋章:多拉基亞776的例子:(主要注意它的格式)
我找到第一章一開始兩個人的對話,在$0AA493處,格式如下:
00AA493h: 06 00 3A 78 00 07 00 3A 5B 00
------------------------------
第一個人第1人頭像第二個人第2人頭像
06 09 4C 12 48 BB 0F 10 0A 5E 5F 09 29 0A D4
-------------------------------------------
第1人說どぅだ、等待幾秒王子は見
09 21 15 5C 1F 15 BE 02 08 07
---------------------------
つかったお?換行結束符第2人說
776的文本很討厭!不僅有正常的文字編碼,還包含大量的控制符(例如切換說話的人物、頭像)。
現在說碼表,776碼表是兩個字節表示一個漢字或假名。日文平假名、片假名對應09 xx,漢字對應兩個字節,從0A 10到0E 5F共1040個漢字。
雙字節的表示方法:連續多個字都以09打頭的話可以只寫第一個09,省略后面字的09。其他段也一樣。
例:
0A10=我
0A12=真
0A6E=棒
那么“我真棒”三個字的編碼是:0A 10 12 6E
你可以試試改控制符,改變$0AA49D處的06為07,進入游戲,如何,原本該第一人說的話,現在由第二人說了吧!這里有兩個人,編號06、07。頭像也可以改。這種文本中夾雜控制符的rom是很常見的。
要開動你的腦筋,不要拘泥于我寫的這幾種情況,用各種辦法嘗試,成功hack出碼表的樂趣和成就感足以抵償你花的時間!
4.有關Rom的一些知識
在開始講下一步之前,讓我們先來了解一下ROM的結構,這有助于理解后面的內容。
一個ROM分為兩部分:Header(文件頭)和主體。Header是一個長$200字節的區域,在ROM的最前頭,記錄了一些ROM的相關信息。有些ROM甚至沒有header。對于漢化,我們完全可以不關心header。而對于主體部分,那是我們的重頭了,很遺憾的是,它沒法再細分了。這里的內容存放,完全由該游戲的開發人員決定,所以一個rom一個樣。
ROM的存儲格式有很多,常見的有SMC、FIG、078等。可能你拿到的rom是好幾個文件,那么你必須用snestool把他們合并成一個文件,最好是SMC格式的。
ROM的映射格式分為Low rom和High rom兩種格式。具體的區別先不用管,你只要知道如何確定一個rom是哪種格式。我們用一個叫ucon的小程序來幫忙,它也可以用來轉換rom格式。在DOS命令行下執行
ucon dbzrpg.smc,得到這樣的結果:
如圖,在HiRom Game一項寫的是No,那么這就是Low Rom。至于有沒有header可以計算出來:例如龍珠是8M的rom,大小應該是1024×1024=1048576(注意它是8M bit,相當于1M byte),但是查看一下文件屬性,大小是1049088,多了512字節。這512字節就是header,正好是十六進制的$200。
我們知道了龍珠RPG是有header的,Low rom格式。
5.指針表與文本塊
鐺鐺鐺鐺鐺鐺,繼續理論課!不要說我跟唐僧似的,可一定要用心看明白啊!
假如我要開發一個游戲,其中肯定有好多對話。這些對話文本怎么存儲呢?一種方法是哪里用到一句對話了,就把一句話寫在哪里,對話之間插入很多的控制符,甚至程序。這就是“漂浮”的文本。可是這樣很麻煩,如果后來對話腳本要修改,句子變長了,就要影響后面的程序。這樣的Rom,像火焰紋章系列、浪漫沙加系列都是,漢化起來很麻煩。
更好的方法是,把所有對話(文本)都放在一起,對話與對話之間用一個特定的結束符分開。再做一張表,表中每一項都指向一段話的第一個字。這張表就叫指針表(Pointer Table),那一大堆文本叫做文本塊(Text Block)。舉例如下:指針表:
00 60
0F 60
1D 60
2F 60
3A 60
文本塊:
地址文本
6000-600F: This is a dog.|T
6010-601F: hat's a pen.|Do
6020-602F: you play game?|C
6030-603F: ertainly!|What's
解釋:我先說明一下,在匯編及16進制中,兩個以上字節的東東,最前面的字節叫高位,后面的叫低位。比如$34AB,34是高位,AB是低位。在Rom里,它是這樣存放的:先低位后高位。所以$34AB在Rom里存成“AB 34”。
文本塊地址是16進制的,從6000-600F一共有16個字節,即一行有16個字符。“|”是結束符,標志一句話結束。指針表中每一項由兩個字節組成。先看第一項,00 60,實際上是指向地址$6000,正是"This is a dog."這句話的開頭。下一項0F 60,指向地址$600F,正是"That's a pen."的開頭。
采用這種方法存儲,最大的優點就是,隨時可以改對話文本的長度!只要改完后,把指針表相應的指針指向正確的位置,根本不用改動程序!這樣的rom我們漢化起來也比較方便,因為可以寫程序來自動導入導出對話腳本。
6.指針表、文本塊、字庫與碼表的協作關系
先仔細看看這張圖,能看明白嗎?這是如何顯示一個字的完整流程。
如圖,假設程序中要顯示一句話,這句話是文本塊中的第一句。程序會調用顯示子程序來顯示這句話。開始運行。它檢查傳給它的參數“1”,這是指要顯示文本塊中的第一句話。查指針表,第一項指向$6000,OK,從$6000地址取出一個字節$54,查碼表,得知$54表示字母T,再從字庫中找到字母T的字模,并顯示出來。
從$6001取出第二字節$68,重復上述操作。一直到$600E,取出的值是$FF,這是結束符標記,顯示子程序返回結束。此時,第一句話已經顯示在屏幕上了:“This is a dog.”
明白了?當程序中要顯示文本時,只要調用顯示子程序,并告訴它要顯示哪一句話,顯示字程序就會把對應的話顯示出來。
7.尋找指針表
現在我們要找指針表了。還是用龍珠Rom,還記得這個Rom有文件頭,是Low-rom吧。上一講我們找到第一句話的開始地址為$03C6EC,減文件頭$200后是$03C4EC,去掉高位03并交換,得到Rom中的存放格式為EC C4。這就是找指針表時的計算方法。
在UltraEdit中打開rom,向上搜索這個值,馬上找到一個地址$0394A2。(此處如有疑問請參見看我翻譯的“漢化高級教程”一文)
觀察這個地址附近的數值,發現是有規律的,每兩個字節一組,都指向Cxxx附近。肯定就是這里。把ECC4
改成第二句話的地址03C5(指向$03C703),進入游戲看看(如圖),哈哈!拉蒂茲只說后兩句話了。
這里就是指針表沒錯!通過指針表,可以很容易地找到每段文本的開始。指針表很有用處;如果你會寫程序,它可以大大方便導出和導入過程。將來所有中文文本都插入后,還要更新指針表,重新指向各段中文文本的首地址
導出腳本對話(Dump Script)
你只需要導出文本,交給一個翻譯去翻,興奮吧?我們來看看怎樣導出腳本。
DOS下最常用的工具之一是Thingy。早期的英化中,好多老外專門用它,所以它支持的碼表格式也就成了標準。當然現在有很多工具已經超過它了,但它仍然不能不提。
執行Thingy,它會問你Rom名字和碼表名字,它支持兩個碼表同時使用,第二個是可選的。進入Thingy后,隨便翻翻頁,你發現,右側顯示的已經是日文了!把光標停在文本塊開始處,按D,回車;翻頁到文本塊結束,再按D,Thingy會提示你給導出的文件起個名字。寫上名字后,這一塊文本就導出來了。
其實有人專門編了工具來進行導入導出。Script-extractor和Script-Insertor就不錯,用起來比Thingy方便多了。導出的文本就像下面:
「それともじっくりとあそんで
ころそうか?へへ……いくぜ!」
「おとうさん!ピッコロさんが…
ピッコロさんしんじゃった-!」
「すまん……おそかったか…!
ゆるさんぞ!オメエら--!!」
じめんからカイブツが?
「なうだ!!きさまらこいつらと
1ぴきずつたたかってみんか!!」
「まさかこんなクズなもに……
こうなったらカカロットの
ガキをみちづれにしてやるぜ!!」
再稍微處理一下就很不錯了,下面就是翻譯的工作了。
狼組漢化專區還有很多工具都可以導入導出,大家可以選自己最方便的使用。
對于有編程能力的rom hacker,最好是自己寫程序導出。我習慣是把整個rom都導出來,再手工整理去掉垃圾。下面是我導出776對話用的VB源程序核心部分,其實很簡單的,大家可以參考。完整程序在專區。
簡單說明:MB(a,b)數組包含當前的所有碼表,count是計數器,每3句話顯示一次地址。每次從rom里取一個字節放在d里,再根據碼表譯成文字。hz代表碼表第幾段,hz=0時是假名和字母(即09xx)。
For i= start To endp
Get#2, i, d
If d= 0 Then
i= i+ 1
Get#2, i, d
If d=&H11 Then
hz= 0
ElseIf d=&H12 Then
hz= 1
ElseIf d=&H13 Then
hz= 2
ElseIf d=&H14 Then
hz= 3
Else
Print#1, str
count= count+ 1
If count= 3 Then
count=
0 str="<$"& Hex(i+ 1)&">"
Print#1,""
Print#1, str
Bar1.Value= CInt((i- start)/ 1000)
End If
hz= 0
str=""
End If
Else
str= str& Mb(hz, d)
End If
Next
好,今天的課就到這里。學完這課后,大家應該可以導出對話文本,開始找翻譯了!順便澄清一個錯誤觀念:漢化不需要你會日文,因為我們要有分工的嘛。見到有些朋友在論壇說“我先學好日文吧”,其實根本沒必要的,像我就完全不懂日文。
8.1查找字庫
好,現在要做的,是最有意思的部分!
先來個名詞解釋:TILE(圖塊)-是指8x8的一小塊圖。SFC中的所有圖形都是用8x8的小塊圖形拼成的,有點像馬賽克。這一個8x8的小圖塊就叫tile。它是最小的圖形單位,不可再分的。對話漢字同樣也是用tile拼成的。一般游戲用的文字,從12x12到16x16大小的都有,用4個tile拼成。
怎么能看到tile呢?我們用一類叫精靈編輯器的工具(精靈是指用tile拼好的人物或頭像)。其中最好用的是Tile Layer Pro(TLP),網站上有下載。用TLP打開龍珠的rom,顯示是這樣的:
選擇“View”“Format”,然后選擇“Gameboy”模式。像這樣:
為什么要選GB模式呢?對于SFC的游戲,字庫一般都是2bpp格式(關于1bpp,2bpp的含義,感興趣的請看站上其他文章)。GB模式恰好就是按2bpp格式顯示tile。
好,現在睜大眼睛,按“Page Down”翻頁,仔細看有沒有像文字的東西!如果找到了,那就是字庫。
但是……好像找不到啊~!答對了,龍珠RPG的字庫是壓縮的!
(打死他,竟敢欺騙讀者!......sunkar被讀者攻擊,HP減少30點)
啊……對不起,事先沒仔細看,就選了這個rom,誰知字庫是壓縮的。這也告訴我們,漢化的第一步不是找碼表,而是先看能不能找到字庫,再找碼表。除非你會asm hack,否則,遇到壓縮的字庫,你最好就換個rom下手吧。從現在開始,我以776為例講解字庫替換和漢化對話。請回憶一下第一課講過的776碼表。
9.多拉基亞776的字庫
776的碼表站上有下載,可以下載回來做為參考。我再簡單說明一下:
776采用雙字節編碼,如0A20=神。在這個編碼里,第一字節0A,我們把它叫做段號,第二字節20才是字的實際編號。776共有09xx,0Axx,0Bxx,0Cxx,0Dxx,0Exx六段。
在rom中,系統會盡量節省空間。對于每個字,如果它的段號和前一個字相同,就可以省略段號,只用一個字節。
如:09 A0 23 E1 0B 45 21 09 61 0A 8B
上面這行對話,黑體字代表段號,后面的是1字節的編碼。如頭四個字節,實際代表了3個字符:09A0 0923 09E1。其后是0B 45 21,系統將它解釋為2個字符0B45和0B21,以此類推。
好,現在用TLP打開776的日文rom,換到GB模式,往下翻吧!很快就可以看到大段漢字了,這就是字庫!(左下圖)
現在我們把字庫里的“王子”二字改成“外傳”看看:
改字要用到TLP的編輯功能了。先點擊要改的tile,在中間編輯框里就可以編輯了。下方是調色板,776里用到了四種顏色:藍綠白黑。其中藍色是重要的,綠白二色是陰影。用鼠標慢慢“畫”字吧,相信很快你就能掌握的。右上方的圖是改完的樣子。(畫字模可以參考專區其他文章)
改完后存盤,然后我們進游戲看看有什么變化:
左圖是原始的樣子,右圖是改完后的樣子,看看:“王子”變成“外傳”了。
這就是修改字模!以后,我們會把所有的日文漢字及假名都改成中文字模的。
10.制作中文對照表
太簡單了。先打開一個空的文件,把“王子”二字的編碼從日文碼表拷貝過來:
0A5E=王
0A5F=子
然后把“王子”二字改成“外傳”:
0A5E=外
0A5F=傳
好,現在把這個文件存盤,起名叫776c.tbl。這就是我們的中文對照表!以后,隨著做漢字字模,隨時往里添加新的編碼就行了。
11.將中文譯文寫回Rom中
(假設你已經把所有字模都做好了)
我們還是以776第一章的第一句話為例:(如果你的ROM有header,地址是00AA69E)
00AA49E: 09 4C 12 48 BB 0F 10 0A 5E 5F 09 29 0A D4 09 21 15 5C 1F 15 BE
どぅだ、王子は見つかったお?瓦斯曼,發現王子了嗎?
根據我們的中文碼表,查出每個字的編碼,再根據776的特點,把相同的段號省略,結果應該是這樣的:
00AA49E: 0B A6 0A 69 0B 85 09 BB 0B 43 44 0A 83 63 47 0B 45 09 BE
用你愛用的16進制編輯器寫入rom,存盤,再進入游戲去看看,怎么樣!這句話已經漢化了吧!
可是,漢化后比日文文本少了兩個字節,怎么辦?沒關系,漢化下一句話時,緊接著這一句漢化就行了。如果漢化后的字節比日文的多了,也不用怕,按順序往下漢化就行,只要最后一句話正好在原來的日文編碼位置上結束就沒問題。
776是不用考慮指針表的問題的;但是有些游戲需要指針表。在漢化完后,也要把指針表對應的指針,改成指向中文對話的起始位置
12.加速漢化進程
如果這前面的東西你都看懂了,實際上你已經學會了漢化需要的技能了,祝賀你,找個游戲rom練練手吧!
如果你真的照前面我講的去做,一定會累死的。工作量實在太大了。怎樣能加速漢化進程呢?當然要利用各種工具啦!
A.畫字模很煩,我們完全可以用工具來做!Edison的CharEdit可以選擇任意的字體字號,寫入rom中,很方便的。但是它只能寫入2bpp格式的字模。就算畫字模也可以加速,狼組Dark01首先發明的結合Photoshop的畫字模方法非常實用。如果你會一點編程,建議你去研究一下1bpp、2bpp等字模存儲格式,再看看“任意字體字模生成器”這個程序,然后你就可以自己寫一個程序,一次把所有字模都寫入rom中啦!狼組現在基本不需要做字模的人了,因為我們對標準大小的字體一律用程序寫入。
B.推薦狼組的“漢化輔助工具”,這是個自動把中文/日文翻譯成代碼的工具,還可以檢查哪些漢字還沒做字模。第一次使用時要設置好中日文的對照表。
好,Rom hacker的課程到這里就全部結束了。希望你也能漢化成自己喜歡的游戲!記住:漢化游戲,最最需要的,不是技術,而是耐心和堅持。祝你成功!
36や ya 37ゆ yu 38よ yo
39ら ra 40り ri 41る ru 42れ re 43ろ ro
三、我想問EC修改器搜索出來的數據與游戲中固定的數據有什么關系
EC搜索出來的數據只有小一部分是ROM的固定數據(機器碼程序碼),而大部分是變動的內存數據,游戲運行時這些數據才會生效,而我們用EC來修改游戲時所查找到的這些數據也都是內存變動數據,而WinHex軟件打開ROM的是靜態的程序數據.所以地址也完全不同.
想要找找到靜態數據并修改ROM有兩種基本的辦法:
1猜疑法,比如裝備的基本屬性修改,這種數據都是固定的一般都會儲存在ROM里面,問題是這個裝備在ROM中的排列方式每種數據是占幾個字節的,如一件裝備的屬性是:攻擊3防御2敏捷11那么在ROM中的數據排列是怎么樣的呢?這個就要靠我們來猜了,如果裝備的數據最大值是255那么排列很可能是03020B如果最大值是65535那么可能的排列是0300 0200 0B00用WinHex軟件打開那個游戲ROM并且查找我們猜疑的數據串,并嘗試修改.但有些游戲的裝備基本屬性雖然是固定的但也可能是根據復雜的程序碼的變動而獲得的,那么那樣的固定數據可能會很分散基本是無法猜到排列的方式的.
2.用調節器載入程序修改,這個需要學習一些專用的程序語言,可以先用EC查出所要修改的數據的相關地址,然后用調節器對其地址斷點跟蹤,看看是哪些程序碼在改變這個數據的,然后對其程序進行嘗試修改,確認可行后,在用WinHex軟件打開游戲ROM查找與截獲的程序碼的代號一致的地方,對其進行修改保存.
相關問答
更多- he這個游戲怎么樣 1人回答
- hero游戲怎么樣 1人回答
- hifi游戲耳機怎么樣 1人回答
- heroes游戲怎么樣 1人回答
- high游戲怎么樣 1人回答
- helo游戲怎么樣 1人回答
- hitman游戲怎么樣 1人回答
- hello游戲怎么樣 1人回答
- hit游戲怎么樣 1人回答
- heliop10玩游戲怎么樣 1人回答
- hkc打游戲怎么樣 1人回答
- hdmi游戲怎么樣 1人回答
-
咪嚕盒子
平臺福利爽、天天送不停。官方補貼、折上再折、白嫖福利、等你來。
-
手游谷盒子
涵蓋市面90%以上的手游, 折扣充值優惠多。每日可領取代金券、禮包、 還有平臺幣充值抵扣。
-
梨子手游盒子
領先全網BT游戲盒、尊享禮包、首充福利、至尊VIP、免費代金券、大額減免券、648充值卡、鉆石/元寶。
-
ST手游
海量福利,上線直接領。游戲打骨折、超爽游戲體驗。
最新游戲
更多-
6.0夢仙奇緣九游版夢仙奇緣九游版是一款技能特效十分酷炫的仙俠rpg手機游戲,玩家可以在游戲里尋找自己的情緣,還能通過參與活動的方式來結交好友,領取珍稀道具,后期可以轉職,讓你享受不同玩法與樂趣 -
6.0心動回憶全劇情破解版心動回憶全部解鎖版是一款可以與真人談戀愛的戀愛模擬游戲,這里的所有角色都是由真人扮演的,你可以與自己喜歡的那位來一場甜蜜的戀愛。各種有趣的真人視頻玩法,為你帶來最真實的女 -
6.0劍與噬魂者手游劍與噬魂者手游是一款仙俠冒險對戰類角色扮演手游,在劍與噬魂者手游中玩家可以自由的開始進行冒險戰斗,游戲中擁有超多的支線副本等你挑戰。在支線冒險副本中蘊含著大量的資源以及各 -
6.0天緣傳說官方版天緣傳說手游,一款多元化仙俠題材角色扮演手游,玩家在這里將體驗最精彩的修仙玩法,紅顏情緣,萌寵坐騎,劇情副本,幫派社交等玩法全聚合,任你自由開啟!天緣傳說手游簡介天緣傳說 -
6.0火箭群攻RocketSwarm火箭群攻RocketSwarm是一款玩法還算不錯的模擬沖刺射擊闖關游戲,玩家需要在這里利用手中的各種火箭,對制定目標進行攻擊,徹底將它拆除,才算關卡的勝利。游戲的射擊玩法還是有些挑戰性 -
6.0應急食品舊版app應急食品app是非常好用的原神黨必備的輔助工具app,可以記錄下你的抽卡情況,并且還能來幫助你完成分析,使用起來也是極為的方便的,只需要將自己的抽卡記錄填入其中即可,簡直就是原神 -
6.0玲瓏迷失錄玲瓏迷失錄是一款新開迷失版本超變福利傳奇,開啟全新爭霸之戰,在玲瓏迷失錄中感受福利驚喜不斷的暢爽戰斗樂趣。副本隨便刷,專屬福利天天有。散人逆襲,輕松稱霸,開啟傳奇戰斗冒險 -
6.0王者大冒險手游官方版王者大冒險手游是一款冒險戰斗游戲,融入三國情景,讓二次元戰斗更好玩,創新玩法,和更多兄弟玩家們一起攜手大冒險吧,想玩的朋友們歡迎來2265安卓網下載體驗!王者大冒險官網介紹在 -
8.0決戰大怪獸在各樣色彩斑斕、實效獨特的手游市場中,如何在眾多的競爭者中脫穎而出,無疑是每一款游戲必須面對的難題。《決戰大怪獸》這款全新的手游不僅在市場中取得了驕人的業績,更是以其出色 -
6.0風云七劍安卓版風云七劍安卓版,一款古風玄幻戰斗手游。人物刻畫的細致唯美,技能的華麗。萌寵養成、霸氣的坐騎,游戲的眾多元素讓玩家不再枯燥。主線熱舞的緊湊,劇情任務的豐富,玩家仿佛身在其中
最新問答
更多- 5黑lol怎么進游戲1個回答
- lol 怎么拷貝游戲1個回答
- lol 單核游戲嗎1個回答
- lol 多久的游戲1個回答
- lol 掛機游戲嗎1個回答
- 5黑lol怎么進游戲1個回答
- lol 如何修復游戲1個回答
- lol 如何游戲語音1個回答
- lol 如何暫停游戲1個回答
- lol 在游戲中怎么回復私聊1個回答




哦。我看到了。