Steamをインストール
ログイン
|
言語
简体中文(簡体字中国語)
繁體中文(繁体字中国語)
한국어 (韓国語)
ไทย (タイ語)
български (ブルガリア語)
Čeština(チェコ語)
Dansk (デンマーク語)
Deutsch (ドイツ語)
English (英語)
Español - España (スペイン語 - スペイン)
Español - Latinoamérica (スペイン語 - ラテンアメリカ)
Ελληνικά (ギリシャ語)
Français (フランス語)
Italiano (イタリア語)
Bahasa Indonesia(インドネシア語)
Magyar(ハンガリー語)
Nederlands (オランダ語)
Norsk (ノルウェー語)
Polski (ポーランド語)
Português(ポルトガル語-ポルトガル)
Português - Brasil (ポルトガル語 - ブラジル)
Română(ルーマニア語)
Русский (ロシア語)
Suomi (フィンランド語)
Svenska (スウェーデン語)
Türkçe (トルコ語)
Tiếng Việt (ベトナム語)
Українська (ウクライナ語)
翻訳の問題を報告
but, it seems to just be a wrapper around hca format anyway, and they have source code that reads and writes hca files. (you can see the hca file start at offset 0x230). so it might be possible to read and write the hca format, and just guestimate the parts of the .sab format that need to be updated (like file size and number of samples in particular).
(oh, but it does sound like it's going to be encrypted. there are others who have tried to playback .hca files generated from games only to hear noise, which is because it's encrypted.)
how do you know:
that vgmstream works with .sab files?
that these .sab files aren't encrypted?
there was one thread where a bunch of keys were listed for various games, each having a different one. I doubt the key for SoM has been discovered yet, unless it's in an obvious place.
not sure what you mean. I just meant that if we can't figure out the .sab format completely, that we could at least try to guess our way through it by writing a similar header with a replaced hca body.
what they worked out about the .mab format is here (though I haven't gone through their code yet, so maybe there's more .mab/.sab stuff in there somewhere?)
https://gist.github.com/Thealexbarney/698664af1aed7122a33f591f96498f30
following the pattern outlined there, these .sab files are extremely similar, except for the snd header seems different from the .mab musc header.
for VGM you only need the extension for foobar not the whole thing
i dont remember where i read the key thing but seems like those sab files have been used for other games (some people looked into worms 4 files for example iirc)
yes ive seen the mab stuff, i understand the language but i lack context here, can't make much sense of it just like that
even if it can't save, if it's open-source then we could theoretically look at the source to figure out what it's reading (or maybe it just skips the .sab header and plays the hca?)
I'm not sure what it's written in. it's C-like, but says it's a "binary template". but I walked through it and it almost fits the .sab files.
start at the line "char magic[4];". treat lines like this as a "read".
so "char magic[4]" is the binary magic number that identifies the file (sabf in this case).
then 1 byte for the version.
then an unknown byte.
then the size of the header (2 bytes little endian).
an unknown byte.
the descriptor length (1 byte)
an unknown short
the file size as a 32-bit integer.
etc.
the function FTell() returns the current file position.
the function FSeek() sets the current file position.
the function GetNextMultiple is called with the value 16, and just advances to the next position that is divisible by 16 bytes.
I see a thread on zenhax where they've decrypted a dialogue text file but that's all I get searching for "mana"
edit: 3600 VOICES FILE HAHAHAHA and that's only english
I found the .sab format file in the vgmstream repo:
https://github.com/kode54/vgmstream/blob/master/src/meta/sqex_sead.c
so... all that would have to be done is reverse that to be able to write sab files instead of read them, and then I guess just need a way to turn mp3 files into hca, and then wrap them in the sab format, I think.
theoretically I think we have all the necessary information, just a matter of implementing it.
possible that I will make it convert hca to sab instead of mp3 to sab and then that would save the trouble of converting mp3 to hca. I see that there is at least one mp3 to hca converter already out there, although I didn't get it to work.
I'll work on the .sab generating part first and then once I get to the part where I need hca data, I'll figure out the best way to get hca data.
let me know if you find anything that already does some or all of this.
im gonna ask on the hsc64.com forum if they have any kind of documentation on sab before trying anything