Skip to content
keta edited this page Sep 28, 2024 · 6 revisions

What is diSEQt?

diSEQt is a program created to lighten the workload of editing the Nintendo Wii's proprietary sound sequence file, BRSEQ. It supports decoding a BRSEQ file into diSEQt's proprietary XMLSEQ format and encoding an XMLSEQ file to a BRSEQ file. It is the first publicly released program to losslessly convert BRSEQ to text and vice versa.

How do I use diSEQt?

Usage is as follows.

diSEQt decode filename.brseq destfilename.xmlseq
diSEQt encode filename.xmlseq destfilename.brseq
diSEQt dc filename.brseq destfilename.xmlseq
diSEQt ec filename.xmlseq destfilename.brseq

The decode command (shorthand dc) decodes an input BRSEQ file to an output XMLSEQ file. The encode command (shorthand ec) encodes an input XMLSEQ file to an output BRSEQ file.

My Original BRSEQ and Reencoded Output BRSEQ Are Different Sizes, Why?

When converting an XMLSEQ to BRSEQ diSEQt prioritizes keeping the file as small as possible. While the DATA chunk of a BRSEQ (where all the commands are stored) remains the same size, the LABL section shrinks by small amount of bytes (usually 1-2) per label. The reason for this is original Nintendo created BRSEQ files have some padding between each label in the LABL chunk. diSEQt doesn't account for this padding when encoding which can shrink the file by quite a lot of bytes if many tracks are used. You will not see this effect in single track files. You will see a small but not substantial reduction of size in files which use multiple tracks but not a lot of them.

Please refer to the Example Video in which I decode a Mario Kart Wii BRSEQ, change its tempo, encode it from XMLSEQ back to BRSEQ, then put it back in Mario Kart Wii's revo_kart.brsar file accounting for the reduced file size.

Development References

Mario Kart Wiiki (Tockdom) - BRSEQ command bytes & chunk structures.

Decoded BRSEQ Commands List (Provided by AtlasOmegaAlpha) - userproc command byte + SByte data types

Clone this wiki locally