怎么样从.farbrausch的demo中截取v2m Module音频文件。
第一次接触demo是那个经典的64KB彗星撞地球,当时那个程序在我的机器上每次运行到彗星快撞击时就崩溃。但如同其他人一样我仍被那精致的画面和优美的声音特别是仅仅64K的体积所震撼。于是在网上搜索了一些demo,其中对.fr的demo印象最深(.fr的经典demo下载页面)。提到.fr就不得不提fr-08,这是我至今认为最好的一个微型demo。不管是从音效还是画面上看它都是精品中的精品。
前几天无意间发现kb发布的一个静态库libv2(下载页面)可以用来在程序中播放v2m文件(也就是fr系列demo中的音频格式,由kb独立开发),下载包中包含一个v2m文件,不过听起来没有什么感觉,于是想从fr-28-brwurfel(包含11首fr系列demo的音频)中截取出来v2m,以后在自己程序里就可以使用那些令人沸腾的音乐了,我把fr-08的v2m截取出来配合libv2生成的程序随便加一个壳后只有18k,其中包含11分钟的音乐。顺便说一句,kb还是有点不厚道,既然发布了就好人做到底吧,但那个库还是与其产品中的播放引擎有一定差距,主要是语音合成的部分无法播放。
言归正传,从fr-28-brwurfel中提取比较简单。运行fr-28-brwurfel并播放其中一首音乐,让其内存完全展开。然后打开winhex RAM编辑器,选择fr-28-brwurfel进程的primary memory,文本查找name可以找到一段对这首音乐的介绍,接下来是文件头十六进制E0010000(可以从那个v2m例子中得知),从这里选块开始,接着继续搜索name就到了下一首,每首音乐的内存分布都比较紧凑,在这个name之前就是上一首的结尾。选择后复制区块进入新文件。生成的v2m文件可以用winamp播放,不过要用一个插件,下载地址同上。
从一般的fr demo中提取就复杂一些。在RAM编辑器中搜索E0010000 一般在offset 400000之后,接下来就要凭借眼力了,根据已获得的v2m文件的结构大多是,开始时数据都是重复的,接着是一堆0,应该很容易分辨。
文件结尾比较难了,从E0010000往下搜索十六进制4040,根据我的经验第一次出现那些乱七八糟的4040时,就为结尾
因为结尾后面是一堆字符串。一般来说也是比较容易分辨.
文件结尾比较难了,从E0010000往下搜索十六进制4040,根据我的经验第一次出现那些乱七八糟的4040时,就为结尾
因为结尾后面是一堆字符串。一般来说也是比较容易分辨.
本文地址:http://www.45fan.com/a/question/70466.html