|
网站菜单
|
日记 - PS2游戏《罗马之影》汉化工作完整记录
《罗马之影》汉化工作笔记 *目前仅对游戏日版进行研究,美版的可行性不做保证* 目前能够提取、替换的资源有: 文本(MSG1/MSG0格式) 图片、贴图文件(OIM3格式) 游戏内的视频(MEPG2格式,上下两半分开的隔行扫描格式,TMPGenc进行编码) 注:iso解压后的image0.img是主要的资源存储位置,image1.img和image2.img完全存储着视频。 0. LINK分割 image0.img中连续存储着很多LINK头的文件,这是CPK0包裹的上级,请先自编程序将每个LINK头的文件分割出来。后文的所有操作都是在提前分割LINK文件的情况下完成。 1. 提取文本(部分) 游戏中的文本为MSG1/MSG0格式,被CPK0容器包裹,在hex编辑器中可以清晰看到MSG1文件头前必然有CPK0头。可以使用GameExtractor提供的脚本提取出来(MSG0不行)。此时文本被lzss0压缩,经过解压可以得到文本。此时文本是aa bb cc dd ee ff格式,aa bb是标准的shift-jis,可读,但是修改不影响字体显示。cc dd为“控制码”,决定了文本的显示,对应着字库的文本排列顺序。ee ff似乎固定为80 00。 在建立好文本对应控制码的表后即可开始替换文本,可以选择只替换控制码。随后重新压缩,控制文件大小比原本的小,随后补00直到原本文件尾部,此时文本替换完毕。重新覆盖回iso中,运行游戏可以见到效果。 2. 替换图片 2.1. 普通图片(不是字库)的替换 游戏中图片为OIM3格式,同样与MSG一样被CPK0包裹。同样使用GameExtractor提取。GameExtractor也有OIM3解包为png的功能,也可以用其提供的脚本进行批量处理。压缩则需要自编程序。(字库的替换比较特别,后面单独解释)由于使用索引颜色,所以编辑的时候请不要使用RGB颜色。修改完毕后自编脚本重打包LINK,LINK覆盖回源image0.img或者iso文件,补00即可。 2.2. 字库的替换 提取出字库图片后,可以看到似乎有两层,下层为灰色,上层为隐约的白色。这是因为游戏的字库在一字节内保存了两个像素的两层数据,将一个字节按四位分成两半,每一半中,前两位是下层的灰度数据,后两位是上层的灰度数据。在这样提取后可以清晰地得到两个图片。即可进行修改。在反处理后重新打包、覆盖即可(参考2.1) 3. 替换视频 游戏中的视频都在image1.img和image2.img中,用hex编辑器打开在前面很快就能找到enc...tmpgenc....之类的标签,十分明显。这时记录下标签,自己编写程序可以轻松把全部视频提取出来。然可以看到每个视频都被分成上下两部分,上面是奇数扫描线,下面是偶数扫描线。(这个我也不太清楚,可能上面是偶数)此时为pss格式。提取出的视频可以用pss plex转为m2v视频和wav音频后,再使用ffmepg或者其他什么软件把这种隔行扫描格式变成正常视频即可。在编辑后,使用ffmepg重新转回mepg2格式,再转回上下分场格式,使用TMPGenc对应或接近的版本(如容易找到的2.52版本)进行编码后,再用pss plex即可变回pss格式即可覆盖回去(记得补00) 4. 注意事项 1.游戏字库为512x512 4bpp双层,每个字20x20,因此实际上只有约1000字可供修改 2.部分字库图片与文本在同一个LINK包裹内,请先替换字库的LINK,然后再直接将MSG1/0替换回ISO ----- 2026/8/17修改:现已找到部分主菜单文本位置,应该是提取MSG1文本的脚本出现问题,正重新编写 2026/8/18修改:找不到主菜单等文本的原因证实:MSG1标识[有时候是MSG0,压缩算法等与MSG1完全一致,但是无法使用Game Extractor提取,所以最好自编程序提取 评论: (1) |