home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Games Machine 25
/
GNOME_DEMO.iso
/
amiga
/
music
/
dbooster.lzx
/
DigiBooster
/
Sources
/
DIGI-FORM.TXT
Wrap
Text File
|
1997-02-18
|
6KB
|
118 lines
----------------------------------------------------------------------------
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 2048 bytes
| | | So lenght of this hunk (all patterns) you can
| | | calculate such like this: PatNum*2048 (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 signed 8bit 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