本文轉貼自PTT
台灣最大的本土社群網站
分享這篇文章到Facebook、Google+或噗浪!


 作者  lulaptt (Lula)                                          看板  Emulator 
 標題  [心得] SFC中文化經驗談(一)—工具篇—                                   
 時間  Sat Nov  3 23:57:27 2012                                               
───────────────────────────────────────

【雜言】
因為不久之後大概就再也沒空做中文化了,
所以趁現在印象還深,記錄一下相關的經驗好了。
又因為我是皇騎迷,所以只染指皇騎在SFC跟GBA上的主力作,其他就沒興趣了。
所以如果是其他平台的情形,我就不是那麼清楚了。

【正文】
在談到技術前,先來介紹一下我愛用的工具,
不過...不要妄想光靠工具能直接做好中文化
也許NDS、PSP這類將字庫圖片、內文分裝成不同檔案的平台,
可以透過工具簡單拆解出你要的部分,但是GBA以前的遊戲可沒那麼漂亮的結構。
解壓與秀圖用的函式機器碼、字庫圖片資料與對應指標、劇情文字編碼等,
全部都是任意混在一起且沒有特定位置的。

因此,每個遊戲都是case by case的解謎案件。
只能像偵探一樣靠自己觀察推理跟手中的工具,
找出特定文字是怎麼被顯示出來的,然後靠各種你想得到的方法去替換掉原文字。



以下就依序介紹我愛用的工具:
==========================================================================

YY-CHR ( http://www.geocities.jp/yy_6502/yychr/0yychr.html )

  - 小巧好用的ROM內圖像編輯器,支援許多FC、SFC、GBA等平台上常用的
    圖像格式,最近有支援英文語系了。

  - 基本用途就是用來編輯原字庫圖像,運氣好某些字庫圖像沒被壓縮的話,
    可以透過它直接修改。如果只是想把中文化過的遊戲由簡體轉繁體,
    大概有它就夠了,因為一般中文化遊戲字庫多半會變成無壓縮的...
    ...我猜的啦:p

UltraEdit (極早期版本是免費軟體,官網也有提供30天試用版)

  - 很好用的數據編輯器,可以將ROM的內容顯示成16進位碼並進行修改,
    100MB的檔也能在幾秒內打開,是手動修改函式機器碼、字庫指標時
    不可或缺的好工具。有搜尋16進位碼、跳到特定位址、檔案差異比對等方便功能。

  - 基本上,我中文化就是在UltraEdit上修改16進位碼,透過觀察與嘗試錯誤,
    一步步找出可行的方法與規則。特別是修改函式機器碼、字庫指標這種資料時,
    UltraEdit提供了很大的方便性,使得這軟體成為我最常用到的工具。
    其實如果"會猜"(這以後再談)的話,只要有這工具加上會寫程式,
    就可以對部分遊戲做中文化了。

Lunar Address ( http://fusoya.eludevisibility.org/la/index.html )

  - 計算SFC位址的計算器,輸入在UltraEdit看到的資料位址,
    它會算出SFC實際使用的位址。

  - 因為SFC硬體上的設計,"遊戲運作時的資料位址"與"ROM檔的資料位址"是不同的
    例如ROM檔裡0x104000的資料,在遊戲程式中要用0x20C000才會取得這資料。
    就連RAM裡的資料位址(放遊戲記錄的地方)在遊戲運作時,
    也會配給到0x7E0000~0x7FFFF。
    所以要修改函式或字庫指標位置時,都要用它來換算出SFC位址

snes9x1.43.ep9r8 (不知道原出處,不過google一下應該很好找)

  - 視窗介面的SFC反譯器,可以把遊戲運行過程的所有opcode(簡單說就是指令碼)
    與暫存器內容等dump出來,也可以存出RAM的內容、追蹤特定位址是否有被執行等
    多種功能。

  - 只靠前述工具的話,基本上是無法修改遊戲程式的,
    頂多只能改指標或依循原壓縮方法改資料。
    只有透過反譯器追蹤修改原函式,才能跳脫原遊戲的程式掌控
    一般中文化遊戲常會發現8x8日文片假名沒被中文化,
    就是因為原本函式把顯示範圍定死成8x8,
    如果不會修改函式就無法顯示較大的中文字。

  - 現在反組譯的資訊比以前多不少了,opcode我現在是習慣用下列的參考資料
    http://wiki.superfamicom.org/snes/show/65816+Reference

  - GBA遊戲的反譯器比SFC更完善,不過我忘了自己以前是用哪一款....orz

==========================================================================

基本上我會用到的工具大致就這樣,因為這幾個工具程式會一直交叉使用,
所以螢幕常常會很亂XD ( http://ppt.cc/o~mg )

中文化有些步驟很單調乏味(像刻字或追程式碼),我都是在客廳用電視當螢幕,
螢幕右下角則用子母畫面來播電視節目或影片(銀河飛龍看到第6季了...),
這樣遇到單調工作時比較不會無聊。

另外,除了上述工具外,寫程式的技能也是必備的
就如我前面所說,每個遊戲都是case by case,
所以要大量寫入寫出劇情代碼,就只能自己針對該遊戲去寫程式...
...至少就SFC跟GBA來說是如此。



--
一週後再來寫壓縮吧....大概....


--

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.249.58.224
推 oginome:大推∼以前的遊戲要中文化真的很不容易∼(遙目)            11/04 00:13
推 tonybin:大推 終於等到反組譯和靜改的寶貴教學 期待系列文          11/04 00:47
推 qazxswptt:請受小的一拜 現在台灣還有心有力搞中文化的很少了       11/04 03:05
推 UlyssesLin:這可不是傲嬌皇騎版主嗎?(誤)                         11/04 07:16
→ lulaptt:我.....我才不是什麼傲嬌呢(正)                           11/04 07:34
推 EDGE:        感謝魯拉大戮力製作的TO繁中版patch!                11/04 09:26
→ remina:應募過Lula大的中文化..It's good                          11/04 10:02
推 ADHI:想入門SFC中文化比FC難多了,推一個                          11/04 10:05
推 arcadyii:跟現在的遊戲相比 古董遊戲的文本不一定比較少            11/04 10:06
→ arcadyii:既然都是要翻譯 何不做比較新的東西呢                    11/04 10:06
→ lulaptt:因為最喜歡的還是SFC時代的皇騎劇情與世界觀               11/04 11:03
→ lulaptt:做新的遊戲也許能滿足別人  但完全滿足不了自己            11/04 11:03
→ lulaptt:如果是為了"服務大眾"而做  我大概3天就厭倦了...          11/04 11:04
推 mron:        感謝魯拉大戮力製作的TO繁中版patch !                11/04 15:24
推 djboy:       感謝魯拉大戮力製作的TO繁中版patch !                11/04 15:38
推 oginome:     感謝魯拉大戮力製作的TO繁中版patch !                11/04 18:38
→ oginome:原來我以前用的就是魯拉大製作的∼感恩啊∼                11/04 18:38
推 US5566:      感謝魯拉大戮力製作的TO繁中版patch !                11/04 18:42


----本文使用PCMAN+BBI轉貼----


※ 新版PCMAN開放測試中,新增功能:    



用PCMAN+BBI連回PTT原文