本次所研究的 UNI2 文件来自 Xbox 360 游戏《俺の嫁 ~あなただけの花嫁~》。
文件基础结构
本次所研究的 UNI2 文件具有以下基本结构。不保证其他 UNI2 文件也拥有相同的结构。
簇大小(Cluster Size):0x800(2KB)
文件标识符在 Cluster 0(Offset:0x00000000)
文件分配表在 Cluster 1(Offset:0x00000800)
文件数据始于分配表之后的 Cluster
所有的文件都是对齐于相应的簇(2KB boundary),这跟文件分配的概念是一致的。
文件头
从图中可以看出,UNI2 文件头包含 4 个 Int32(Uint32?)。
第一个 Int32:0x554e4932(ASCII:UNI2)是文件标识符。
第二个 Int32:0x00010000 不知道是什么意思。有可能是簇大小?或者文件数据区的起始地址?
第三个 Int32:0x00000012 所包含的文件个数。(这个 UNI2 里面包含 18 个文件)
第四个 Int32:0x00000001 也不知道是什么意思。有可能是文件分配表的起始簇?
文件分配表
每 4 个 Int32 代表一个文件。意义为:
第一个 Int32:文件编号(File ID)
第二个 Int32:文件起始簇编号(这个是偏移量,要加上数据区其实簇编号才是真正的文件起始)
第三个 Int32:文件所占数据区大小(以簇为单位,所以并不是真正的文件长度)
第四个 Int32:文件的实际长度(字节)
结构研究明白了,做个 Parser 并不是什么难事。
[…] 所有素材都经过分类,打包储存于不同的 UNI2 文件当中。 […]