sdattool by DJ Bouche

DJ Boucheさんが素晴らしいツールを公開しました。その名はsdattoolです。

原文

Hello loveemu,
I'm just informing you that I started a new utility called sdattool.
It's main purpose is to generate an SMAP file, similar to the one I have attached in this e-mail which was found with the SDAT file in the game Zoids Genesis DS. It has proven a very useful file in the reverse engineering of SDAT and it was nice of the game developers to [perhaps accidentally] leave it in there. :)
So far the utility reads the SYMB table in order to obtain the filenames for each file. It reads the INFO table in order to retrieve the main information necessary for the SMAP file. Finally it reads the FAT table (and as an option, like sseqrip, extracts the files from the FILE block into an organised set of folders and named using their symbols) and generates the FAT list for the SMAP file.
Hopefully by this we can get an even greater understanding of the files in the SDAT system.
Here is some interesting things I have noted:

SSEQ
SEQ - Sequence - A converted MIDI sequence. Linked to a BANK for instruments.
SSAR
SEQARC - Sequence Archive - A collection of sequences (used mainly for sound effect banks, format is unknown, the entries look nothing like SSEQ at all...)
SBNK
BANK - Bank - A bank which is linked to up to 4 WAVEARCs which contain the samples. Define the instruments in which a sequence can use. (format still unknown)
SWAR
WAVEARC - Wave Archive - A collection of wave samples (which can be in either PCM or ADPCM compression)
STRM
STRM - Stream - An individual wave (PCM or ADPCM).
GROUP
I'm not quite sure.

My apologies, I was wrong about sseq2mid not converting Mario Kart DS correctly. There was something wrong with my MIDI sequencer. It works fine now. I am in the process of making a command line tool which allows you to specify a MIDI instrument/drum map and apply it to any standard MIDI file.

Feel free to post any of this information. Hope it helps! ;)

Andrew

日本語

簡潔に要旨のみ記します。

sdattoolはSDATファイルを解析して、SMAPファイルと呼ばれるファイルリストを出力することを主な目的としたユーティリティです。sdattoolは、大まかに以下のような動作をしています。

  1. 各々のファイル名を得るために、SYMBテーブルを読む
  2. SMAPファイルのために必要となる主な情報を検索するために、INFOテーブルを読む
  3. FATテーブルを読み、SMAPファイルのためにFATリストを生成する

SDATファミリーに関する情報もいただきました。

SSEQ
SEQ - Sequence - 変換されたMIDIシーケンス。楽器のためにバンクにリンクされます。
SSAR
SEQARC - Sequence Archive - シーケンスのコレクション(主にサウンドエフェクトバンクのために使われている。エントリは全然SSEQっぽくないです……)
SBNK
BANK - Bank - サンプルを含むWAVEARCを最大4つまでリンクすることのできるバンク。シーケンスが使うことのできる楽器を定義(フォーマットは未だ謎)
SWAR
WAVEARC - Wave Archive - 波形サンプルのコレクション(PCMかADPCMのいずれか)
STRM
STRM - Stream - 固有の波形(PCMかADPCM
GROUP
まだよくわかりません。

これらの情報の投稿はお気軽にどうぞ、とのことです。