home *** CD-ROM | disk | FTP | other *** search
- ----------------------------------------------------------------------------
-
- Digi Booster 1.x - module format
- ----------------
-
- There is one DB format, but the old is a little bit different (but is
- compatible with the new one). Here you have describtion:
- ([1] - data stored as one byte)
- ([2] - data stored as two bytes - word)
- ([4] - data stored as four bytes - long word)
-
- offset |bytes| contents | meaning
- -------+-----+------------+-------------------------------------------------
- 000000 | 4 | "DIGI" | char Magic[4]
- | | | If you support different music file types
- | | | check these letters.
- -------+-----+------------+-------------------------------------------------
- 000004 | 16 | some texts | Not very important[16]
- -------+-----+------------+-------------------------------------------------
- | | | There is a version of Digi Booster which
- 000020 | 4 | "V1.x" | made this file [4] - stored as ASCI
- | | |
- -------+-----+------------+-------------------------------------------------
- 000024 | 1 | | Once again version of DB but stored as hex[1]
- | | | (protection against lamers).
- | | | eg. $14 means version 1.4.
- | | |
- 000025 | 1 | (8) | Number of channels used in module (always 8) [1]
- | | |
- 000026 | 1 | | Pack pointer [1]
- | | | If 'Pack pointer' is zero, the pattern data
- | | | isn't crunched.
- | | | 1 means that is crunched
- | | |
- 000027 | 19 | | Reserved[19]
- -------+-----+------------+-------------------------------------------------
- | | | PatNum[1]
- 000046 | 1 | | It specifies the number of different
- | | | patterns this module has.
- -------+-----+------------+-------------------------------------------------
- | | | OrdNum[1]
- 000047 | 1 | | It specifies the number of different
- | | | orders (in editor POSITIONS) this module has.
- -------+-----+------------+-------------------------------------------------
- 000048 | 128 | | Orders[1]
- | | | Here you have stored numbers of patterns which
- | | | the player will play
- -------+-----+------------+-------------------------------------------------
- 000176 | 124 | | SamLens[4]
- | | | Here you have a sample lenghts
- | | | Number of samples in module is 31.
- -------+-----+------------+-------------------------------------------------
- 000300 | 124 | | SamReps[4]
- | | | Here you have a sample repeat starts
- -------+-----+------------+-------------------------------------------------
- 000424 | 124 | | SamRepLens[4]
- | | | Here you have a sample repeat lenghts
- -------+-----+------------+-------------------------------------------------
- 000548 | 31 | | SamVols[1]
- | | | Sample volumes.
- -------+-----+------------+-------------------------------------------------
- 000579 | 31 | | SamFins[1]
- | | | Sample finetunes.
- | | | The old format (versions 1.0-1.3) hasn't play
- | | | finetunes but has store it in module.
- | | | So. if version of mod. is 1.0-1.3 you have
- | | | to clear finetunes otherwise the new player
- | | | will play samples with stored finetunes.
- | | | (the voice will be out of order)
- -------+-----+------------+-------------------------------------------------
- 000610 | 32 | | Song name ended with 0 [32]
- -------+-----+------------+-------------------------------------------------
- 000642 | 930 | | Sample names [30]
- | | | Each sample name has 30 bytes ended with 0
- | | | You have 31 samples in module.
- -------+-----+------------+-------------------------------------------------
- 001572 | ... | | Patterns.
- | | |
- | | |
- | | |
- | | | Patterns can be packed and not packed
- | | | Each not packed pattern takes 1024 bytes
- | | | So lenght of this hunk (all patterns) you can
- | | | calculate such like this: PatNum*1024 (easy?)
- | | |
- | | | If the patterns are packed...
- | | | Each packed pattern at beginning has stored
- | | | its length[2]
- | | | Address of next pattern you can calculate in
- | | | this way:
- | | | - take a length of last packed pattern
- | | | - and add (2)
- | | | How to depack pattern read below
- -------+-----+------------+-------------------------------------------------
- .... | ... | | Samples stored as RAW
- -------+-----+------------+-------------------------------------------------
-
-
- Packed pattern format:
-
- offset |bytes| contents | meaning
- -------+-----+------------+-------------------------------------------------
- 000000 | 2 | | Length of packed pattern[2]
- -------+-----+------------+-------------------------------------------------
- 000002 | 64 | | Pack table (stored as bits)
- | | | If bit is set you have to take a four bytes
- | | | (long word) from packed datas
- | | | IF bit is clean you have to clear four bytes.
- | | | That's all... (very easy?)
- -------+-----+------------+-------------------------------------------------
- 000066 | ... | | Packed datas
- -------+-----+------------+-------------------------------------------------
-
- - Each depacked pattern has 64 positions, 8 tracks.
- - Depacked pattern has following structure:
-
- CHN1ADAT, CHN1BDAT, CHN2ADAT, CHN2BDAT,CHN3ADAT, CHN3BDAT, CHN4ADAT, CHN4BDAT
-