关于美版Vice City Stories PSP/PS2汉化可行性的研究
1.1 EFIGS文本显示原理
美版内置语言有EFIGS(即英语、法语、意大利语、德语和西班牙语),在iso镜像文件内"PSP_GAME\USRDIR\RUNDATA\"目录下有AMERICAN.GXT(仅PS2镜像存在该文件)、ENGLISH.GXT、FRENCH.GXT、ITALIAN.GXT、GERMAN.GXT、SPANISH.GXT,上述文件用于存放游戏内字幕文本(包含过过场动画字幕、提示信息文本、寻呼机文本等),可用GXT Editor工具进行删改查。游戏在运行时会根据玩家选择的语言(默认为英语),加载对应的GXT文件,显示字幕和文本信息。PSP/PS2采用的Leeds引擎和电脑上的RenderWare引擎基本一致,需要字库贴图和字库映射表才能正确显示字幕文本。
1.2 字库贴图和字库映射表
字库贴图在RenderWare引擎通常是fonts.txd(参见罪恶都市PC版)所包含的,罪吧汉化组的汉化补丁修改了fonts.txd文件,制作了庞大的字库,该字库包含所有游戏内显示的文本文字。并且通过字库映射表来使得GXT文件能够正确调用字库中的汉字来组成语句。PSP/PS2并不存在改txd贴图文件,取而代之的是fonts.CHK文件,此类文件无法使用TXD Workshop打开,更无法编辑,需要借助GTA Stories Texture Explorer工具才能打开查看,做导入导出操作。
经过查询得到美版的字库贴图fonts.CHK文件存放于GAME.DTZ文件中,该文件基于deflate / zlib算法压缩,GTA Stories Texture Explorer支持导出为tm2、bmp位图,此外利用g3DTZ v2.0工具可以提取整个GAME.DTZ。
研究PSP汉化版(基于日版)后,我发现字库贴图似乎是独立出来的,在"PSP_GAME\USRDIR"目录下多出一个ART文件夹,该文件夹内包含FONTS文件夹,FONTS文件夹内则是PSPONTSJP1.XTX贴图文件,猜测该文件为日版和汉化版字库文件。
此外,GTA Stories Texture Explorer和GTA Stories DTZ Explorer均无法打开汉化版内的GAME.DTZ文件,该文件偏移量可能与美版不同。
1.3 汉化思路
①提取ENGLISH.GXT文件内所有文本,参照汉化第二版的进行翻译;
②检查文本内使用的汉字,制作字库贴图;
③编制字库映射表;
④通过程序自动化生成GXT文件;
⑤使用工具编辑修改GAME.DTZ内的fonts.chk贴图并替换ENGLISH.GXT
1.4 初步实践反馈
使用GXT Editor编辑ENGLISH.GXT后,确实可以在游戏内显示拼音和标点符号,可行性100%;
使用GTA Stories DTZ Explorer导出GAME.DTZ文件内fonts.chk下的gametext.tm2位图成功,OPTPiX iMageStudio 3可将tm2转换为psd文件,在Photoshop将索引模式改为RGB模式后可对字库贴图进行编辑修改并保存;
使用OPTPiX iMageStudio 3对编辑好的psd文件进行配置,Image -> color reduction -> output colors -> 16 colors and Alpha -> reduce color including Alpha value -> slider all the way to the right,再存储为tm2文件,设定4bit TIM2, 32bit CLUT, CSM1 CLUT and Alignment -> 16 bytes,通过GTA Stories DTZ Explorer导入gametext.tm2文件替换GAME.DTZ内fonts.chk下的原始字库贴图,使用UMDGen重新打包成iso镜像文件,通过PPSSPP载入成功;
游戏内能够显示中文字体,但是具有黑色背景且有断层。
1.5 需要解决的问题
尚不知在256*256分辨率的位图内能否装下数量庞大的汉字;
尚不清楚字库映射表与字库贴图、GXT文件的关系,以及如何编制字库映射表;
不具备C语言编程能力,无法创建自动化GXT builder。