UNI2 (Union 2) 文件结构分析


本次所研究的 UNI2 文件来自 Xbox 360 游戏《俺の嫁 ~あなただけの花嫁~》。

I. 文件基础结构

本次所研究的 UNI2 文件具有以下基本结构。不保证其他 UNI2 文件也拥有相同的结构。

簇大小(Cluster Size):0x800(2KB)
文件标识符在 Cluster 0(Offset:0x00000000)
文件分配表在 Cluster 1(Offset:0x00000800)
文件数据始于分配表之后的 Cluster

所有的文件都是对齐于相应的簇(2KB boundary),这跟文件分配的概念是一致的。

II. 文件头

587_uni2_header.png

从图中可以看出,UNI2 文件头包含 4 个 Int32(Uint32?)。

第一个 Int32:0x554e4932(ASCII:UNI2)是文件标识符。
第二个 Int32:0x00010000 不知道是什么意思。有可能是簇大小?或者文件数据区的起始地址?
第三个 Int32:0x00000012 所包含的文件个数。(这个 UNI2 里面包含 18 个文件)
第四个 Int32:0x00000001 也不知道是什么意思。有可能是文件分配表的起始簇?

III. 文件分配表

588_uni2_file_table.png

每 4 个 Int32 代表一个文件。意义为:

第一个 Int32:文件编号(File ID)
第二个 Int32:文件起始簇编号(这个是偏移量,要加上数据区其实簇编号才是真正的文件起始)
第三个 Int32:文件所占数据区大小(以簇为单位,所以并不是真正的文件长度)
第四个 Int32:文件的实际长度(字节)

 

结构研究明白了,做个 Parser 并不是什么难事。

仅有 1 条评论
  1. […] 所有素材都经过分类,打包储存于不同的 UNI2 文件当中。 […]

添加新评论