Steins;Gate PC版npa文件的解包与封包程序
我上個(gè)月才知道這個(gè)游戲,遂下載了pc版,結(jié)果找遍互聯(lián)網(wǎng)也沒有漢化包。
花了三天時(shí)間看完了KFC的中文影像,非常喜歡這個(gè)游戲的劇情。
貌似KFC去年就開始了漢化工作,感慨龜速的同時(shí)也非常同情一些像我一樣對(duì)日文一竅不通的ACG FANs。
因此本著互聯(lián)網(wǎng)分享的精神,我開始了漢化包的制作。
因?yàn)樽约褐耙矎膩頉]搞過漢化這方面的,網(wǎng)上也鮮有教程。
摸著石頭過河,我寫了一個(gè)流程。
1.解包資源文件。(使用exsgnpa.exe)
2.導(dǎo)出字幕。(使用nsb2txt.exe,這個(gè)程序只能簡單的導(dǎo)出)
3.翻譯。(需要翻譯和輸入大量的文字,我估計(jì)得有幾十甚至上百萬字,我一個(gè)人是沒戲了)
4.制作并導(dǎo)回字幕。
5.打包資源文件。(使用pksgnpa.exe)
目前我進(jìn)行到了2,翻譯我不懂跳過。打包程序已經(jīng)寫好。
那么就剩下4這個(gè)關(guān)鍵步驟了。
要使字幕正常工作,我想到了三個(gè)方法。
1.敲字幕使用繁體字(因?yàn)榇蟛糠秩照Z漢字都是繁體字,呵呵),然后轉(zhuǎn)為Shift-JIS編碼,利用Shift-JIS編碼中的日語漢字來顯示中文字幕。但是這個(gè)方法有很大的局限性。Shift-JIS中的日語漢字?jǐn)?shù)量太少,很多字不能正常顯示,在制制作字幕時(shí)還要經(jīng)??紤]換一種表達(dá)方式來避過不能使用的漢字。
2.敲字幕使用簡體字,保存為GBK編碼。然后修改游戲,讓游戲調(diào)用GBK字符集。這個(gè)方法顯示最完美。但是首先這只是我的想法,并不知道這個(gè)方法能不能行得通,再者我不會(huì)逆向工程。
3.敲字幕使用簡體字,保存為Shift-JIS編碼。重新為游戲制作一個(gè)字庫(擴(kuò)展Shift-JIS,加入常用漢字),讓游戲調(diào)用這個(gè)字庫。不過貌似這個(gè)方法更玄乎也更麻煩了。
個(gè)人感覺第二種方法最省心,但是必須讓游戲采用GBK編碼。
以上均為我的yy,咱也沒漢化過游戲,不知道漢化小組是怎么解決這個(gè)問題的。
還有就是就算解決了編碼的問題,因?yàn)樽帜粩?shù)據(jù)塊大小不同的原因不能正常載入nss.npa。
所以需要分析nsb和map文件格式,分別為字幕文件和字幕控制文件。
我也覺得像這個(gè)老外說的文件格式好像是xml,但是又不是。
貌似是N+模仿xml語法規(guī)則自己定義的。我在分析map文件時(shí)發(fā)現(xiàn)采用了和npa一樣的數(shù)據(jù)排列手法,什么length,offset之類的。
官方已經(jīng)發(fā)布了1.20升級(jí)補(bǔ)丁,應(yīng)該是做了一些字幕的修復(fù)??墒鞘褂?.10的破解主程序加載。
關(guān)于解包程序 exsgnpa.cpp
asmodean簡直就是個(gè)HENTAI,竟然寫了那么多解包程序:http://asmodean.reverse.net逆向技術(shù)很強(qiáng)大啊。
我的打包程序就是根據(jù)其源代碼分析了npa文件,完成了打包程序。
關(guān)于打包程序 pksgnpa.cpp
但是經(jīng)過簡單測試,其他三個(gè)npa文件包括cg.npa還是可以載入的,貌似主程序沒有驗(yàn)證文件大小的步驟。
可以修改cg.npa里的圖片完成圖片的漢化。
當(dāng)然你也可以修改system.npa文件,來去除窗口標(biāo)題的亂碼。
關(guān)于文件格式的分析
map文件格式?jīng)]有加密,有一些正常的字符。所以我是根據(jù)16進(jìn)制碼來分析的,比較緩慢。
當(dāng)然如果知道了文件的調(diào)用機(jī)制的話,就快多了,還是得會(huì)逆向工程啊。。。
附件為我破解過程中的一些文件,有興趣的可以下載。
至于為什么我還沒完成就發(fā)出來了。
一是讓有興趣漢化的同學(xué)可以少費(fèi)點(diǎn)時(shí)間,
二是我馬上要考試了,估計(jì)考試完了才能繼續(xù)破解工程。
包括:
exsgnpa.cpp (by asmodean)
as-util.h
nsb2txt.cpp
pksgnpa.cpp
npa.png (npa文件格式分析)
map.png (map文件格式分析,未完成)
請(qǐng)用MinGW編譯。
http://u.115.com/file/dnsbvzos
有技術(shù)的同學(xué)幫幫忙。
附郵箱一枚:blxode [AT] gmail.com
總結(jié)
以上是生活随笔為你收集整理的Steins;Gate PC版npa文件的解包与封包程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 系统的启动顺序
- 下一篇: π 的定义(极限)