查看“逆向:GT2 Texturefile文件结构”的源代码
←
逆向:GT2 Texturefile文件结构
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
此处记录对用于PSVita的GT2 Texturefile文件(典型扩展名为*.gtx)之结构的分析成果。 此处所有uint32_t均为小端序。 == 文件头结构 == <pre> uint8_t magi[4] = {0x47, 0x54, 0x58, 0x01};// GTX\x01 uint32_t header_length; // without magi, normally 0x78 uint8_t nodata1[4] = { 0 }; uint32_t texture_length_with_metadata; uint32_t building_data_length; //normally 0x68 uint8_t nodata2[0x14] = { 0 } uint32_t builder_message_length; // normally 0x41 uint32_t builder_message_length + 1; // normally 0x42 uint8_t unknown1[0x04] = {0x04, 0x00, 0x00, 0x00}; uint8_t bulider_message[]; // normally 0x44, ASCII, start and end with 0x0A, padding with 0x00 to 4n. </pre> == 元数据结构 == <pre> uint8_t metadata_magi[4] = {0x00, 0x05, 0x07, 0x00}; uint32_t filename_length; uint32_t filename_length + 1; uint8_t unknown2[0x0C] = {0x3C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04, 0x00} uint32_t texture_width; uint32_t texture_height; uint32_t texture_width * 4; uint8_t unknown3[0x08] = {0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00} uint8_t vita_texture_FourCC[4]; uint32_t unknown4; //maybe texture block size? uint8_t unknown5[0x10] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00} uint32_t texture_length; uint32_t filename_padding_length + 4; // with self uint8_t filename[]; //ASCII, padding with 0x00 to 4n. </pre> == 纹理数据 == 已知的纹理格式有UBC1与UBC3两种。这里使用的代号为vita_texture_FourCC字段的内容。 与通用的[https://www.psdevwiki.com/vita/index.php/GXT gxt文件]相同,UBC1为DXT1的别名,UBC3为DXT5的别名。同时纹理数据也经过了SWIZZLED处理以优化读取。
返回
逆向:GT2 Texturefile文件结构
。
导航菜单
个人工具
创建账号
登录
命名空间
逆向
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息