ED5的mmv动画格式简单分析(1月15修正版)
作者:leexuany(小宝)
ED5的Logo及开场动画中大量使用了mmv文件,这是一种256色带帧间压缩的动画文件,大概是Falcom自己设计的吧。
以Logo动画lg_96c.mmv为例。
开始2字节的标志(MV),然后2字节宽(140),2字节高(A0),然后是1024字节正常的调色板(调试时看到有对调色板进行形变的操作,但变形后的调色板测试不通过,用原来的1024字节竟然就对了,真不知道那段代码做什么用的),最后就是主体的内容啦。
动画的本体是单页内容字节数+单页数据依次存放的。数据进行了压缩。
压缩的方法大概如下(我的汇编不是很好,如果错了请多多包涵)
00~FB 表示没有压缩的部分,原样复制即可
FC nn 表示跳过nn字节不修改
FD nn yy 表示绘制nn个字节的yy颜色
FE uv wx yz 表示色块前移,从当前指针wuv字节前开始复制xyz字节
FF uv wx yz 表示色块后移,从当前指针wuv字节后开始复制xyz字节
最后提醒大家一点,这种动画的每一帧都是环环相扣的,所以不能跳过其中的一帧而播放下一帧,除非事先完全解压并存储。
代码我还没有弄好,感兴趣的朋友请自行编写
下面是我从内存提取的一张Logo的图片