(PS)賭博黙示録カイジ漢化筆記(一)

前言

 

  本文記錄我的第一個嘗試漢化的作品《賭博黙示録カイジ》的漢化過程,希望對想要加入到PS漢化行列的人能夠提供一些幫助。這個筆記寫成於去年,也就是2009年的10月份左右,由於是第一次接觸漢化,很多東西都不瞭解,所以寫的內容也比較基礎。適合沒有接觸過漢化且對PS漢化有興趣的程序員。

 

  但是本文提到的基礎知識需要事先看過,基本上其他遊戲教程提到過的東西我都不會再提起。相對於其他教程,我認爲難度屬於中上。

 

 

〇.基礎知識和資源

施柯昱的教程是一定要看的,名字就叫做《PS遊戲漢化教程》,他的主站已經關閉,網上有樑文豪製作的電子書,可以到csdn去找找。不過教程中提到的工具下載鏈接都已經斷了。

 

Oz01也有一篇針對PS2的漢化教程,名字叫做《ps2遊戲簡明漢化教程和工具下載》。雖然是針對PS2,但是關係不大,對PS也可以適用。不過他的主站也已經關閉,現在只能找到別人的轉帖,同樣,教程中提到的工具打包下載也沒有了。

 

Agemo的主頁肯定要去看看,裏面的工具和資料要仔細看。初期比較主要的工具是isopatcher,其他工具會在之後提到。他的主頁是http://www.enixfans.com/html/agemo/

 

  模擬器使用ePSXe,現在很多漢化都是以補丁形式發佈,這是PPF格式(PlayStation Patch File)的文件,工具和文檔可以看這裏http://www.megagames.com/ps2/ps2_ppf.shtml,結構很簡單我就不介紹了。

 

  光盤鏡像基本的有isoimg,我觀察下來似乎沒有區別,img文件可以當做iso用。

 

 

 

一.尋找字庫

  施柯昱的教程把字庫放到了第一部分,我也深以爲然,如果找不到字庫,即便遊戲使用的是標準的SHIFT-JIS編碼,那也只能使用日文常用漢字,這種限定使用字的要求,簡直就是在爲難翻譯人員。就算硬找相似的字來代替,看得人也總覺得不爽,宣傳起來也不敢提完美漢化。(PS:這裏提這麼一句是對oz01那篇文章的一些看法。PS2:最近看到《三國志大戰DS》就是這樣漢化的,效果如何可自行查看)

 

  常言說,沒有見過豬跑,總吃過豬肉。沒有漢化過PS遊戲,總玩過PS遊戲,如果仔細看過漢化組的說明文檔,就應該有這麼一個印象,字庫有兩種,一種是存放在bios中的,另外一種是存放在光盤中的。Bios是實體機的一部分,對於模擬器玩家來說只要替換bios文件即可,但是對於要刻盤放到實體機中來玩的情形,使用bios字庫的漢化遊戲是不行的。

 

  據我所知,《格蘭蒂斯》是使用bios字庫的(Agemo作品),非高的koro漢化的《名偵探柯南·三人的名推理》,是把bios字庫改成光盤字庫的。Koro着手進行的《Chrono Cross》,從他的說明來看似乎菜單使用了bios字庫,文本使用了自帶字庫。

 

  找字庫的工具,shikeyu推薦的是TPL,這裏還是推薦一下oz01介紹的CristalTile2,可以到TGB去找。

 

  上手的時候我推薦先找一下bios字庫,也就是ePSXe模擬器中bios目錄下的Scph1001.bin文件(這裏附帶提一句,到ePSXe官網下載的話是沒有這個bios文件的,因爲這個鏡像受版權保護,不過國內很多下載站都自動打包了這個文件)。尋找字庫的方法和提示分別在oz01shikeyu的兩篇教程中。我這裏就不多說了。

 

  找到後把字庫抹掉,變成全0或者其他有規律的樣式,另存爲一個新文件。這就成爲了判斷一個遊戲是否使用bios字庫的一個工具,只要在ePSXe中更改bios文件,打開遊戲還能看到文字的說明不是使用bios字庫,看不到文字的就說明是使用bios字庫。

 

  這裏我還要插點話,一個實驗的理論看起來是很對的,結果也蠻符合預期,但還是要小心,在以此爲基礎繼續工作之前,最好還是反覆驗證一下。比如用上面我提到的幾個遊戲做一下實驗,文字顯示是否符合預期。我用的是《格蘭蒂斯》和《最終幻想戰略版》(shikeyu作品)。這個“猜想—正反驗證”的過程我下面會不停地進行,雖然看起來挺花時間,但是總比路走錯好。

 

  那麼再回到《賭博黙示録カイジ》來,實驗表明該遊戲不是使用bios字庫,後來我就知道理由了,該遊戲是用豎排的文字的,有些標點符號豎排後在bios字庫中沒有,所以只能使用自己設計的字庫

 

  現在確定字庫在光盤中,那麼在哪裏呢?根據shikeyu的教程說,往往文件名和font有關,oz01的教程中提到很有可能放在主程序中。結果的確是在主程序中。

 

  這裏還是很順利的,字庫沒有壓縮,每一個字是16*13的點陣,當然也可能只是13*1316只是爲了雙字節對齊。對一個標準的字庫來說,第一個字符應該是空,最後一個是“腕”。對於16位寬的字庫,這裏有個心得,首先找到0 H H 0(30 00 48 00 48 00 30 00)這四個字(不是字母O,是數字0),上面應該還有連續排列的40 00 20 00 10 00。這是空字符後面的兩個標點頓號(、)和句號(。)。計算(30 00的地址 - 10 00的地址) / 2就是字模的高度。

 

 

 

其中最後一個30 00的地址是6B42810 00的地址是6B40E,兩者相減是1A bytes1A bytes / 2 bytes (16 bits) = D (13),所以字庫是16 * 13,那麼簡單可以計算得到字庫起始位置是6B40E + 2 – 1A * 2 = 6B3DC,進入Tile視圖,偏移地址設爲6B3DC,寬度和高度設成1613,最後顯示如下:

 

 

 

 

  最後一個字是“腕”,點擊可以在右下角看到地址8161C,那麼字庫總共有(8161C - 6B3DC / 1A + 1 = 3489個碼字。基本上足夠一個大容量的RPG遊戲使用了。

 

  那麼下一步依然是確認,將字庫抹掉,然後用isopatcher寫入鏡像(注意備份)或者製作ppf,用ePSXe打開遊戲,如果文字不再顯示,說明字庫找對了。

 

  關於isopatcher的用法參考程序附帶的說明文檔和Agemo主頁上的《PS光盤格式簡介》,這裏不再贅述。

Ppf只提供了比較兩個不同的光盤鏡像來生成補丁的工具,所以這裏只能手工生成一個ppf,比較麻煩一些。我考慮以後寫一個程序。

 

 那麼,最後用ePSXe打開遊戲,確認了文字的確不再顯示,找字庫的工作到這裏就結束。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章