Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 游戏天堂 > 游戏开发 > 《阿玛迪斯战记》文件格式全分析
【标  题】:《阿玛迪斯战记》文件格式全分析
【关键字】:
【来  源】:http://blog.csdn.net/bshaoa/archive/2006/09/20/1253516.aspx

《阿玛迪斯战记》文件格式全分析

Your Ad Here

《阿玛迪斯战记》文件格式全分析:
                       By  逆流而上(bsh_aoa@163.com
                       2006-9-20
---------------------------------------------------------------------------------------------                      
(1).SF2 文件   ----- 图像与音效的杂合体

头信息基本上如下:
0x00----ID,文件类型标识 7byte
0x07----TILE宽度,2byte
0x09----TILE高度,2byte
0x0B----未知 1byte
0x0C----动画宽度4byte
0x10----动画高度4byte
0x14----帧数2byte
0x16----帧信息偏移4byte [都为0x000042bc]!
0x1a----帧信息数据块大小4byte
0x1e----图片数2byte     [假设此处值为N]
0x20----图片信息偏移4byte
0x24----图片信息数据块大小4byte
0x28----TILE数量2byte   [假设此处值为X]
0x2a----TILE信息偏移4byte
0x2e----TILE信息数据块大小4byte
0x32----音效数目2byte   [假设为S个]
0x34----音效信息偏移地址, 也是图像数据块总大小!4byte
0x38----音效数据块大小4byte
0x3C----未知2byte
0x3E----未知2byte
0x40----未知2byte
0x42----未知2byte
后面的一直到0x42bc处都不知道 [大部分数据为0,估计没什么用]!


0x42bc---每一帧的信息偏移,比如有4个帧(0x14处),
就有4个dword的偏移值得到的偏移地址,假设为0x42c0,
则以0x42c0为基地址:
相对偏移0byte处,该帧相对屏幕水平偏移(4byte),
相对偏移4byte处,该帧相对屏幕竖直偏移(4byte),
相对偏移8byte处,该帧宽度(4byte),
相对偏移12byte处,该帧高度(4byte),
接下来的直到偏移84处,作用不知道了,
相对偏移84byte处,是这个帧有几张图片假设为m张(2byte),
接下来10byte作用不知道,
相对偏移94byte处,是该帧中的各个图片信息(每个图片有29byte):
从此处为基地址往下:
相对偏移为0byte处,为该图片的索引2byte,
相对偏移为2byte处,为该图片相对于屏幕的x偏移2byte,
相对偏移为4byte处,为该图片相对于屏幕的y偏移2byte,
相对偏移为6byte处,为该图片所处的层数(绘制顺序0表示最先绘制)2byte,
相对偏移为8byte处,为该图片绘制模式4byte :
    (0x00000000--正常模式, 0x01000000--透明模式16级alpha, 0x02000000--16级Subtract,
     0x03000000--        , 0x04000000--                 , 0x05000000--反色模式,...)
相对偏移为12byte处,为该图片与绘制模式相关数据4byte
接下来13byte不知何用,
....重复m次!


图片信息偏移处(0x20处的偏移地址的东西)包含N个地址,分别为每个图象信息:
假设第一个地址为0xffff,以此为基地址:
相对偏移0byte处,为该图片每行有多少个tile---2byte,
相对偏移2byte处,为该图片每列有多少个tile---2byte,
相对偏移4byte处,为该图片真实的宽度4byte(tile组成的宽度可能比原先图像有效数据更宽),
相对偏移8byte处,为该图片真实的高度4byte(tile组成的高度可能比原先图像有效数据更高),
接下来12byte作用未知!
相对偏移24处,是图片中的tile索引(以0为基础),每个2byte。


Tile信息偏移处(0x2a处的偏移地址的东西):
对应的X个dword都是每一个Tile的数据偏移,
{
关于Tile中图像数据:
像素格式为:16bit X1R5G5B5;
压缩存储方式:RLE, 以0x40, 0x80, 0xC0为标识,
假设该值为0xXX;
若在[0x40, 0x80)之间,表示含有(0xXX - 0x40 + 1)个透明像素,
若在[0x80, 0xC0)之间,表示接下来含有(0xXX - 0x80 + 1)个不重复像素值,
若在[0xC0, 0xFF]之间,表示接下来含有(0xXX - 0xC0 + 1)个重复像素值,该像素值在0xXX之后.
}

音效信息偏移处(0x34处的偏移地址):
对应的S个DWORD是每个音效的数据偏移,
对于每个地址,假设为0xHHHH,
则以0xHHHH为基地址,
相对偏移0byte处,通道数;1byte
相对偏移1byte处,每个样本数据位(bit)数; 1byte
相对偏移2byte处,采样率;2byte
相对偏移4byte处,语音数据长度;2byte
接下来8byte作用不知,
相对偏移16byte处,语音数据本身!!

------------------------------------------------------------------------------------------
******************************************************************************************
{
谈谈地图:
Mapxx.FB2与对应的Mapxx.MPL, Mapxx.COD文件共同组织某一层(layer)地图画面,一般是最底层!
关于地图各个层之间关系的描述包含在: "\Scene\Mapxx.dat"中!
}
******************************************************************************************

(2).FB2文件     -----  地图中Tile数据

0x00----ID,文件类型标识, 7byte
0x07----Tile宽度 2byte
0x09----Tile高度 2byte
0x0B----Tile数目 2byte     [假设为N]
0xOD----未知 2byte
接下N个dword表示各个Tile数据偏移地址(格式同上,见".SF2文件分析")。

-----------------------------------------------------------------------------------------
(3).MPL文件     -----  地图中Tile排列索引  
0x00----ID,文件类型标识, 3byte
0x03----未知,4byte
0x07----每行TILE数目, 2byte
0x09----每列TILE数目,2byte
接下来N(为.FB2中0x0B处的值)个WORD为TILE索引号!

-----------------------------------------------------------------------------------------
(4).COD 
-----------------------------------------------------------------------------------------
(5).CAI 和 .CBK   ----- 动画描述文件,脚本
有待于好好分析!!...
-----------------------------------------------------------------------------------------
(6).MOV      ----- CG文件,可用BINK播放

(7)....
-----------------------------------------------------------------------------------------

未完待续。。。。
下面的各种类型文件相对而言,与游戏项关系比较大,
适合用来学习探讨商业游戏组成部分,学习制作游戏必备知识,
....正好在制作游戏~~~学习学习了! :)

 

Nebula2探秘03-Object System研究:【上一篇】
XNA的地形3D地形组件-含代码(Terrain component source code):【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • c语言中的结构(struct)和联合(union)简介zz
  • 字符串处理
  • 深度解析注册表修复不成功的原因
  • irrklang 0.1 发布
  • spring持久化
  • How to keep a mixed system (pinning)
  • Ubuntu升级到Breezy后的n卡驱动安装
  • ClearCase VOBs
  • SWT 在linux下 Combo出现异常
  • 系统监控和管理
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.