zoukankan      html  css  js  c++  java
  • thbgm拆包【in progress】

    [2017年10月8日22点15分注]:这篇文章写的很早而且可能内容的确也没什么干货,总结来说就是 thbgm.dat 本身就是一个 RAW 的 S16_LE 双声道的 audio/pcm 音频文件,如果只是需要播放的话,按如上所说的格式打开就是了。而至于每首曲目的开始时间,长度以及循环点位置,都存储在一个叫 thbgm.fmt 的文件里,你可以通过拆 thXX.dat (比如 th16.dat) 来得到这个文件,然后就可以得到相应的信息了。关于如何解包 thXX.dat ,你可以参考 thtk 这个开源的工具集的源码,如果你仅仅对 thbgm.fmt 的解析和播放 thbgm.dat 有兴趣的话,可以参考我(和@chris241097)写的播放器 thplayer 。下面的博客文章无非是使用 GoldWave 打开 thbgm.dat 的过程(如果你有兴趣尝试的话其实我现在推荐使用 Audacity 而不是 GoldWave),如果你依然对正文感兴趣,下面是博客原文。


    曾经在网上找过但是没找到过....关于东方系列bgm的格式,最初以为是个加密格式,后来听说是多个wav堆到一块儿的。再后来查到有说可以用GoldWave开的。今天试了试成功了。接下来打算研究一下,不过先发出来这个吧。。可能内容会很火星= =

    在使用goldWave打开thbgm.dat时,肯定会不识别,之后选择Raw文件类型,unsigne, 16bit,  little endian, stereo。速率 44100,确定就可以打开了。如图:

    顺便说一下,44100HZ 16bit stereo的wav就已经是cd音质了,24bit 48000HZ是DVD-audio的音质。


    别的东西尚在研究当中

    后续1.

    根据喵玉殿某帖子(地址搞丢了收藏夹没有了...)的说法,可以通过工具拆包thxx.dat后得到thbgm.fmt,用十六位编辑器获取各种音频信息:

    如图


  • 相关阅读:
    C/C++常用的时间函数
    二维数组动态申请空间以及二维数组函数传参问题
    vc多线程编程
    [转载]_tmain main wmain WinMain
    using namespace std 解释
    [转载]C运行时库函数和API函数的区别和联系
    ZOJ 1013 Great Equipment(DP)
    c++ 运算符优先级表
    c语言输入的一些问题
    c\c++ 随机数函数
  • 原文地址:https://www.cnblogs.com/blumia/p/4282114.html
Copyright © 2011-2022 走看看