
Extension:	.RAD
Version:	1.0
Created by:	Reality
Tracker:	Reality ADlib Tracker
Players:	-
Description by: Shayde / Reality
Taken from:	RAD Tracker 1.1a
Note:		Adlib music format


                            TECHNICAL SPECIFICATIONS                          
                         ▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀                       
                                                                              
     RAD file format is as follows: (values in hex)

   █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
   █ HEADER                                                                 █
   █────────────────────────────────────────────────────────────────────────█
   █ Offset  00..0F:"RAD by REALiTY!!" - Use this to recognize a RAD tune.  █
   █                                     Just detecting the initial "RAD"   █
   █                                     should be sufficient though! ;-)   █
   █                                                                        █
   █ Offset      10:BCD                - Version of RAD file.               █
   █                                     Currently 10h for v1.0.            █
   █                                                                        █
   █ Offset      11:Bit 7              - Set if a description follows.      █
   █                Bit 6              - Set if it's a "slow-timer" tune.   █
   █                Bits 4..0          - The initial speed of the tune.     █
   █                                                                        █
   █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
   █ DESCRIPTION                                                            █
   █────────────────────────────────────────────────────────────────────────█
   █ The description follows the header if Bit 7 of Offset 11h is set.  The █
   █ description is a null-terminated string.  To save some space in the    █
   █ tune file, the characters mean:                                        █
   █                                                                        █
   █ Char 00      - End of description (null-terminator)                    █
   █ Char 01      - Move to start of next line (Carriage return)            █
   █ Char 02..1F  - Output this many spaces                                 █
   █ Char 20..FF  - Output this character                                   █
   █                                                                        █
   █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
   █ INSTRUMENTS                                                            █
   █────────────────────────────────────────────────────────────────────────█
   █ Next come the instruments:                                             █
   █                                                                        █
   █ Offset      00:Instrument Number that follows (or 0 for end of list)   █
   █                                                                        █
   █ Offset  01..0B:The instrument definition in HSC .INS format:           █
   █                                                                        █
   █          ╔══════╦═══════════════════╦═══════════════════════╗          █
   █          ║      ║                   ║ Adlib Register        ║          █
   █          ║ Byte ║ Carrier/Modulator ║ (Relative to Chan. 0) ║          █
   █          ╠══════╩═══════════════════╩═══════════════════════╣          █
   █          ║  00  │  Carrier          │   23h                 ║          █
   █          ║  01  │  Modulator        │   20h                 ║          █
   █          ║  02  │  Carrier          │   43h - Instr. Volume ║          █
   █          ║  03  │  Modulator        │   40h                 ║          █
   █          ║  04  │  Carrier          │   63h                 ║          █
   █          ║  05  │  Modulator        │   60h                 ║          █
   █          ║  06  │  Carrier          │   83h                 ║          █
   █          ║  07  │  Modulator        │   80h                 ║          █
   █          ║  08  │  Both             │   C0h                 ║          █
   █          ║  09  │  Carrier          │   E3h                 ║          █
   █          ║  0A  │  Modulator        │   E0h                 ║          █
   █          ╚══════════════════════════════════════════════════╝          █
   █                                                                        █
   █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
   █ ORDER LIST                                                             █
   █────────────────────────────────────────────────────────────────────────█
   █ The Order List follows the instruments:                                █
   █                                                                        █
   █ Offset      00:Length of Order List (up to 128)                        █
   █                                                                        █
   █ Offset  01..nn:List of orders, one byte for each line:                 █
   █                                                                        █
   █                00..1F:The pattern to play.                             █
   █                80..FF:The line to jump to minus 80h (Jump Marker)      █
   █                                                                        █
   █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
   █ PATTERN OFFSET TABLE                                                   █
   █────────────────────────────────────────────────────────────────────────█
   █  For all 32 patterns there is a word in this table which gives the     █
   █  offset from the start of the file of the pattern data.                █
   █  If a pattern is empty then the offset is zero.                        █
   █                                                                        █
   █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
   █ PATTERNS                                                               █
   █────────────────────────────────────────────────────────────────────────█
   █ Offset      00:Line number whose notes follow.  Bit 7 set means that   █
   █                this is the last line.  Note, lines that have no notes  █
   █                or effects on do not appear.                            █
   █                                                                        █
   █ Offset  01....:List of notes for that line:                            █
   █                                                                        █
   █              Offset     00:Channel no. note appears in (0 to 8).       █
   █                            Bit 7 set means this is the last note for   █
   █                            this line.                                  █
   █              Offset 01..02:The note/effect for this channel.           █
   █                            If the effect nibble is non-zero then       █
   █                            Offset 03 contains the parameter, otherwise █
   █                            the next channel starts at Offset 03.       █
   █                                                                        █
   █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
   █ NOTES                                                                  █
   █────────────────────────────────────────────────────────────────────────█
   █ Notes occupy three bytes (two if the effect nibble is zero):           █
   █                                                                        █
   █           Byte 00:Bit    7:  Bit 4 of the instrument number.           █
   █                   Bit 6..4:  Octave of note.                           █
   █                   Bit 3..0:  Note (1-12) in this order:                █
   █                              C#, D, D#, E, F, F#, G, G#, A, A#, B, C   █
   █                              A zero denotes no note and 15 denotes a   █
   █                              KEY-OFF.                                  █
   █                                                                        █
   █           Byte 01:Bit 7..4:  Bits 3 to 0 of the instrument number.     █
   █                   Bit 3..0:  The effect nibble (the effect column      █
   █                              in RAD is the hex equivalent of this      █
   █                              nibble).                                  █
   █                                                                        █
   █           Byte 02:The parameter to the effect (if any).                █
   █                   Because parameters only go from 0 to 99, bit 7 is    █
   █                   not used, but may be used in a later version of RAD. █
   █                                                                        █
   █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█

 - Shayde / Reality, Feb95
