|============================================================================|
| [AMoRE] - Digital Mugician <DM.* or DMU.*>   <jaegermeister.markus@gmx.de> |
|           document version 1.00                                            |
|----------------------------------------------------------------------------|
| This document is part of the AMoRE (Amiga Module Ripping Encyclopedia)     |
| package. It is released under the OpenContent license.                     |
| The OpenContent license can be found at ........... http://opencontent.org |
| The latest AMoRE package can be found at .... http://amore68k.netfirms.com |
|----------------------------------------------------------------------------|


  FORMAT DESCRIPTION
  --------------------------------------------------------------------------

     0000       ID     " MUGICIAN/SOFTEYES 1990 " (4 channels) or
                       " MUGICIAN2/SOFTEYES 1990" (8 channels)
     0018       word   ???
     001a       word   number of patterns
     001c       dwords number of sequence steps for every subsong (8 songs)
     003c       dword  number of instruments
     0040       dword  number of waveforms
     0044       dword  number of samples
     0048       dword  size of sampledata
     004c       data   subsong info for all 8 possible subsongs,
                         0000 char  subsong name
                         000c byte  $01 or $00 ???
                         000d byte  $01 or $00 ???
                         000e byte  song speed
                         000f byte  number of song sequence steps
                       in some modules the description areas for subsongs
                       higher than #5 are filled with crap bytes, so
                       don't implement a check for subsong #6-#8
     00cc       sequence, pattern, instrument, waveform and samples data
     ....       appregio table (always $100 bytes)


  RIPPING INSTRUCTIONS
  --------------------------------------------------------------------------
     1. Perform a check if at memory position a0 really a DMU exist...
          1. Check if first subsong exist (sequence length is higher than 0)
               - Take the byte from (a0+$1f) and check if it's other than $00
          2. Check if first subsong sequence length exist in songfield, too
               - Take the byte from (a0+$1f) and (a0+$4f)
                   => they must be equal
          3. Do the same for subsongs #1 to #4 and check the speed variables,
             too. They should be higher than $00 and lower than $10.
             Higher speed variables could be used but are VERY slow, so
             this check is not 100% for secure
     2. Just for information. Check the ID to get the number of channels
     3. Get the number/size of instruments, waveforms, samples and sampledata,
          patterns and sequences. The number of sequences is done by adding
          the specific values from the subsong information together
     4. Check the no. instruments, waveform & samples for being < $100
     5. Check the no. instr for being > $00
     6. Check the no. waveforms and samples, one of them must be > $00
     7. The modulesize is (add them all together):
          Number of patterns * $100,
          Number of sequence points * $08 (2 bytes per channel),
          Number of instruments * $10,
          Number of waveforms * $80,
          Number of samples * $20,
          Size of sampledata,
          $1cc (size of the header + $100 bytes arpeggio data at the end)


  DOCUMENT HISTORY
  --------------------------------------------------------------------------

     * v1.00 - first officially released version
             - ripping method is accurate but sometimes does find modules
                 where no modules are


  CREDITS
  --------------------------------------------------------------------------

     * Document and amore.pas/amore.exe implementation done by
         Jaegermeister Markus <jaegermeister.markus@gmx.de>

     * File format description written with the help of the sourcecode of
         Digital Mugician

     * Everything done with the help of the following sites
         http://exotica.fix.no         (lots of exotic modules to test with)
         http://www.multimania.com/asle        (amiga mod packers described)
