SFC中文化經驗談(一)—工具篇— - 模擬器

By Ursula
at 2012-11-03T23:57
at 2012-11-03T23:57
Table of Contents
【雜言】
因為不久之後大概就再也沒空做中文化了,
所以趁現在印象還深,記錄一下相關的經驗好了。
又因為我是皇騎迷,所以只染指皇騎在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來說是如此。
--
一週後再來寫壓縮吧....大概....
--
--
因為不久之後大概就再也沒空做中文化了,
所以趁現在印象還深,記錄一下相關的經驗好了。
又因為我是皇騎迷,所以只染指皇騎在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來說是如此。
--
一週後再來寫壓縮吧....大概....
--
--
Tags:
模擬器
All Comments

By Xanthe
at 2012-11-05T19:40
at 2012-11-05T19:40

By Agnes
at 2012-11-10T06:15
at 2012-11-10T06:15

By Ivy
at 2012-11-12T06:41
at 2012-11-12T06:41

By Ethan
at 2012-11-14T06:17
at 2012-11-14T06:17

By Victoria
at 2012-11-17T10:42
at 2012-11-17T10:42

By Elizabeth
at 2012-11-19T03:59
at 2012-11-19T03:59

By Christine
at 2012-11-19T06:19
at 2012-11-19T06:19

By Delia
at 2012-11-23T17:03
at 2012-11-23T17:03

By Madame
at 2012-11-27T23:01
at 2012-11-27T23:01

By Susan
at 2012-11-30T05:30
at 2012-11-30T05:30

By Donna
at 2012-12-02T13:44
at 2012-12-02T13:44

By Edwina
at 2012-12-04T15:25
at 2012-12-04T15:25

By Liam
at 2012-12-05T01:52
at 2012-12-05T01:52

By Dinah
at 2012-12-06T05:47
at 2012-12-06T05:47

By Donna
at 2012-12-08T11:10
at 2012-12-08T11:10

By Susan
at 2012-12-11T15:21
at 2012-12-11T15:21

By Ivy
at 2012-12-13T21:25
at 2012-12-13T21:25

By Mary
at 2012-12-18T14:07
at 2012-12-18T14:07

By Gary
at 2012-12-22T12:40
at 2012-12-22T12:40

By Andy
at 2012-12-25T03:09
at 2012-12-25T03:09

By Yedda
at 2012-12-26T18:54
at 2012-12-26T18:54
Related Posts
PPSSPP 0.1

By Rosalind
at 2012-11-03T09:53
at 2012-11-03T09:53
女神異聞錄DS-1-東京封鎖-前

By Rachel
at 2012-11-03T00:38
at 2012-11-03T00:38
(WIP) DU Update: Daemon Bride [Ex-Board] dumped !

By Delia
at 2012-11-02T23:25
at 2012-11-02T23:25
Tiger arcade 3.0 安卓的大型電玩模擬器

By Heather
at 2012-11-02T19:53
at 2012-11-02T19:53
女神異聞錄DS-0-日常的終結

By Liam
at 2012-11-02T11:51
at 2012-11-02T11:51