UnExoticA/Structure

UnExoticA is a large archive of Amiga computer music, ripped from Amiga games and demos.

Archive organisation
The collection is organised as Amiga LhA archives, stored in a hierarchical directory structure:
 * formats.txt: The format description file.
 * Demo/: Music ripped from Amiga demoscene demos and intros
 * Game/: Music ripped from Amiga games and demos of Amiga games
 * Demo/Updates/YYYY_MM_DD_name.txt
 * Game/Updates/YYYY_MM_DD_name.txt
 * Update description files where YYYY_MM_DD is the date of the update and name is the name of the person who did the update


 * Demo/Composers/Composer_Name.txt
 * Game/Composers/Composer_Name.txt
 * Composer description files for composers that don't have their own directory. The filename should use the format Forename_Surname.txt</tt> or Onlyname.txt</tt>


 * Demo/Composer_Name/</tt>
 * Game/Composer_Name/</tt>
 * One directory for each notable composer, with the format Surname_Forename/</tt> or Onlyname/</tt>


 * Demo/Composer_Name/composer.txt</tt>
 * Game/Composer_Name/composer.txt</tt>
 * a composer description file for this composer


 * Demo/Composer_Name/Demo_Name.lha</tt>
 * Game/Composer_Name/Game_Name.lha</tt>
 * This is the archive file for a particular game or demo
 * The same Demo_Name.lha</tt> or Game_Name.lha</tt> is allowed in more than one composer's directory. This allows for splitting up a game with several composers' music into multiple archives


 * Demo/Composer_Name/Demo_Name.txt</tt>
 * Game/Composer_Name/Game_Name.txt</tt>
 * This is the archive description file for a particular game or demo


 * Demo/Composer_Name/Demo_Name_CDDA.lha</tt>
 * Game/Composer_Name/Demo_Name_CDDA.lha</tt>
 * archives with the suffix "_CDDA" are considered the same as archives without that suffix, So <tt>Game_Name.lha</tt> and <tt>Game_Name_CDDA.lha</tt> are from the same game

Guidelines on file and directory naming:


 * Try to keep the filename under 30 characters, including the .lha file extension.
 * Games or demos which begin with "the" should have the "the" removed. For example "The Speris Legacy" becomes <tt>Speris_Legacy.lha</tt>
 * Games or demos with Roman numerals should become Arabic/Indian numerals, e.g. Turrican II becomes <tt>Turrican_2.lha</tt>
 * Only use ASCII alphanumeric characters (<tt>A-Z a-z 0-9</tt>) and the punctuation <tt>! . _ + -</tt>. Replace non-ASCII characters with their nearest equivalent, e.g. Chris Hülsbeck becomes <tt>Huelsbeck_Chris</tt>
 * {|class="wikitable"

!Replace !with...
 * à á â ã
 * å
 * ä æ
 * ç
 * ð
 * è é ê ë
 * ì í î ï
 * ñ
 * ò ó ô õ ø
 * ö
 * ß
 * þ
 * ù ú û
 * ü
 * ý ÿ
 * a
 * aa
 * ae
 * c
 * d
 * e
 * i
 * n
 * o
 * oe
 * ss
 * th
 * u
 * ue
 * y
 * }

Example
formats.txt                                   - the formats.txt file

Demo/                                         - music ripped from demos, not games Demo/Akesson_Linus/                           - surname first, then forename Demo/Akesson_Linus/A_Bit_More.lha             - archive name is "A_Bit_More" Demo/Akesson_Linus/A_Bit_More.txt             - matching .txt file to describe it Demo/Akesson_Linus/composer.txt                - a composer.txt for Linus Akesson

Demo/Composers/                               - for minor composers without their own dir Demo/Composers/Flemming_Sondergaard.txt       - "Flemming Sondergaard"'s composer.txt Demo/Composers/Abstract.txt                   - "Abstract"'s composer.txt

Demo/Feldkoetter_Jochen/ Demo/Feldkoetter_Jochen/In_the_Kitchen.lha Demo/Feldkoetter_Jochen/In_the_Kitchen.txt Demo/Feldkoetter_Jochen/composer.txt

Demo/Serkul/                                  - this guy only has one name Demo/Serkul/Phobos.lha Demo/Serkul/Phobos.txt Demo/Serkul/composer.txt

Demo/Simmonds_Matthew/ Demo/Simmonds_Matthew/In_the_Kitchen.lha      - also seen in Jochen Feldkoetter's dir Demo/Simmonds_Matthew/In_the_Kitchen.txt      - also seen in Jochen Feldkoetter's dir Demo/Simmonds_Matthew/composer.txt

Demo/Updates/ Demo/Updates/2005_09_05_XtC.txt               - update file by XtC on 05 September 2005

Game/                                         - music ripped from games, not demos Game/Deenen_Charles/ Game/Deenen_Charles/composer.jpg              - jpeg image of composer Game/Deenen_Charles/composer.txt              - composer.txt for Charles Deenen Game/Deenen_Charles/Castles_2.lha Game/Deenen_Charles/Castles_2.png             - PNG image of Castles 2 Game/Deenen_Charles/Castles_2.txt Game/Deenen_Charles/Castles_2_CDDA.lha        - also part of the Castles_2 archives Game/Deenen_Charles/Castles_2_CDDA.txt

Guidelines for archiving

 * Music should preferably be disk-ripped, i.e. ripped directly from the disk, without executing the game or demo code to load it into memory. If it can't be disk ripped for whatever reason, it should be ripped direct from memory while it's playing.
 * If a game or demo's music has more than one composer, consider creating several archives; one for each significant piece of work. UnExoticA is not exacting, so you don't need to have only one composer per LhA archive, but often people want to collect a single composer's work, and don't want the others. For example, Agony features music principally by Tim Wright and Jeroen Tel, with additional music by Martin Wall, Robert Ling, Matthew Simmonds and Martin Iveson. We created <tt>Game/Tel_Jeroen/Agony.lha</tt> with Jeroen Tel's music (all ingame music), and <tt>Game/Wright_Tim/Agony.lha</tt> with Tim Wright's music (the title music), plus the additional music from the other musicians.
 * Always attempt to get a composer's real name, where that's possible. You can research this at the Amiga Music Preservation project. If their real name is not known, but you know their handle, use that. Use their most up to date known handle, even if the game or demo credits them with their older handle. Don't use their group name. Old handles and group names can be mentioned in the composer file.

Format description file
This file, "formats.txt" in the top level of the UnExoticA archive, contains text descriptions of all known music file formats.

The list does not have to be ordered. For each entry, first there is the filename prefix/extension. In this example, "smus" and "jt". Then there is whitespace, preferably one tab character. Then there is the format's name, in the example "Sonix Music Driver" and "Jeroen Tel". Then there is a newline and a description of the format. As many lines may be used as desired. A blank line indicates the end of the entry, and the next entry begins. The list should end with an extra blank line, or the last entry is missed out.

Example
smus   Sonix Music Driver Also known as IFF-SMUS, its Another Electronic Arts standardised music format, created along with 8SVX, ILBM and FTXT as the EA IFF 1984 specification. Other than the archaic Aegis Sonix and EA's own Deluxe Music Construction Set (DMCS), almost no software uses this format.

jt     Jeroen Tel Also known as 'Maniacs Of Noise Old', this music format was created by Charles Deenen and Jeroen Tel, used by the Maniacs of Noise.

Archive files
UnExoticA archives are Amiga LhA format archives with the file extension ".lha". Each archive should unpack into a directory with the same name as the archive, so <tt>Agony.lha</tt> should contain the file <tt>Agony/mod.agony_end of game</tt>, etc.

Each music file in the archive should have an Amiga file comment in this format for games:

filenote #? "Composer Name(s) | Game Name | Year of release | Team / Publisher"

...and for demos:

filenote #? "Composer Name(s) | Demo Name | Year of release | Group / Party"

Archive description files
These files describe what's in the corresponding archive. They have the same filename as the archive, but with a <tt>.txt</tt> extension instead of <tt>.lha</tt>

The files are in YAML format with ISO-8859-1 encoding (the Amiga's native character set). They have these attributes:


 * <tt>type</tt>: what kind of production the music was ripped from (required). Must be one of <tt>Game</tt>, <tt>Demo</tt>, <tt>Dentro</tt>, <tt>Intro</tt>, <tt>Musicdisk</tt> or <tt>Slideshow</tt>. Note that "Game" marks the archive as game-type and any other choice marks the archive as demo-type
 * <tt>title</tt>: the full title of the production (required). If the production has a sub-title, then use a hyphen between two spaces to separate it, e.g "Game Title - Sub Title Of Game". Games without sub-titles should avoid using " - ", as this is what triggers the sub-title recognition ("-" is OK)
 * <tt>alternative titles</tt>: alternative titles for the production (optional) - can be a single value or a list. UnExoticA adds default alternatives: the main title with its subtitle stripped off, and the title with accented characters converted to ASCII, so these alternatives do not have to be explicitly added
 * <tt>composer</tt>: the author(s) of the music (required) - can be a single value or a list. You can add a comment about each composer in parentheses after their name
 * <tt>format</tt>: file format of the music (required) - can be a single value or a list
 * <tt>year</tt>: the year of the production's release (required)
 * <tt>team</tt>: the team(s) who developed this game (optional, only for game-type archives) - can be a single value or a list
 * <tt>publisher</tt>: the company or companies who published this game (optional, only for game-type archives) - can be a single value or a list
 * <tt>box scan</tt>: the name of an ExoticA box scan for this game (optional, only for game-type archives)
 * <tt>hol id</tt>: Hall Of Light database ID(s) (optional, only for game-type archives) - can be a single value or a list.
 * <tt>lemon id</tt>: Lemon Amiga database ID(s) (optional, only for game-type archives) - can be a single value or a list
 * <tt>group</tt>: the demo group(s) who created this production (optional, only for demo-type archives) - can be a single value or a list
 * <tt>party</tt>: the demo group(s) who created this production (optional, only for demo-type archives) - can be a single value or a list
 * <tt>rip type</tt>: the ripping method used (required). Must be one of <tt>disk</tt>, <tt>memory</tt> or <tt>both</tt>
 * <tt>ripped by</tt>: the ripper(s) of the music (required) - can be a single value or a list
 * <tt>comments</tt>: comments about the title, or specific files in this archive.

Quick guide to YAML
If you don't know YAML, here is a quick primer:

title: Turrican II - The Final Fight  # no quotes needed title: "Phalanx II: The Return"       # has a colon-space, must be quoted title: "Hubbard Music #2"             # has a space-hash, must be quoted title: "'Nam 1965-1975"               # begins with a single quote, must be quoted composer: - Tim Wright (Title) - Franck Sauer (Co-Composed Title) - Martin Wall (Loader and Game End) - ... comments: | Comments start here! Multiple lines of text
 * Write single entries as "<tt>key: value</tt>" pairs. If values need to include "<tt>: </tt>" (colon-space), "<tt> #</tt>" (space-hash) or begin with quote or double-quote symbols, then they need to be "quoted" to avoid being ambiguous. Examples:
 * Write lists over several lines, using hyphens to indent the list:
 * Use a pipe symbol <tt>&#124;</tt> for the comments section and indent the comments with spaces:

Game example
type: Game title: Project-X alternative titles: Project X composer: - Allister Brimble (Title, Loader and Ingame) - Bjørn Lynne (Game Completion) format: - Protracker - SoundMon 2.0 year: 1992 team: Team17 publisher: Team17 hol id: 1164 lemon id: 2035 rip type: Both ripped by: - XtC - Bjørn Lynne box scan: p/Project-X comments: | mod.thesmophoria originally featured on Newsflash Diskmagazine 19A.

Demo example
type: Demo title: Full Moon composer: - Sami Arola (intro tune) - Aleksi Eeben (main tune) - Jogeir Liljedahl (endpart) format: The Player 5.x year: 1993 group: Virtual Dreams party: The Party '93 rip type: Disk ripped by: Kyzer comments: | Jogeir's endpart is a cover of Jochen Hippel's "A Prehistoric Tale" title music.

Update description files
These describe the changes the maintainers have made to the archive. The filename contains the date and the name of the maintainer, e.g. "2006_04_02_XtC.txt", where the date is 02 April 2006 and the maintainer is XtC.

The file is split into three sections: ADDED, AMENDED and DELETED. These words need to start at the beginning of the line and there should be nothing else on the line. Then follows a list of filenames, ended with a blank line. The filenames are local to the Game/ or Demo/ directory, it's automatically presumed that an update in Demo/Updates/ only has changes to Demo/ and likewise for Game/Updates/. If there is any further text on a filename line, it's considered as a comment.

Example
ADDED Stone_Chris/Dragons_Lair_Demo.lha Stone_Chris/Space_Ace_Demo.lha Williams_Bill/Knights_Crystallion.lha Williams_Bill/Knights_Crystallion_CDDA.lha

AMENDED Brimble_Allister/Full_Contact.lha Added missing ingame music. Cuomo_Jim/Defender_of_the_Crown.lha Replaced with a more accurate custom. Ouwehand_Reyn/Last_Ninja_3.lha Added missing game completion music. Williams_Glyn/Warhead.lha Replaced with an updated version.

DELETED Foster_David/Space_Ace_Demo.lha Re-added under correct composer name. Linden_Randy/Dragons_Lair_Demo.lha Re-added under correct composer name.

Composer description files
This files are either <tt>composer.txt</tt> in a composer's own directory, or named after the composer in <tt>Demo/Composers/</tt> or Game/Composers/</tt>

The files are in YAML format with ISO-8859-1 encoding (the Amiga's native character set). They have these attributes:


 * <tt>name</tt>: the composer's name (required)
 * This must match the name given in archive description files, and must add an underscore to indicate where the composer's surname begins.
 * If a surname has a preposition such as Da Silva, van der Valk, de la Cruze or de Agger then the underscore should be placed after the preposition, i.e. <tt>Da _Silva</tt>, <tt>van der _Valk</tt>, <tt>de la _Cruze</tt> and <tt>de _Agger</tt> respectively. This rule does not currently apply to prepositions such as MacDonald, Fitzpatrick or O'Connor.
 * If the composer only has one name, the underscore should be at the start of the line


 * <tt>handle</tt>: the composer's current handle (optional). Past handles should be listed in the comments
 * <tt>homepage</tt>: the URL of the composer's homepage (optional)
 * <tt>comments</tt>: any extra comments about the composer (optional)

Example
name: Allister _Brimble handle: The Demon homepage: http://ourworld.compuserve.com/homepages/allister_brimble/index.html comments: | Allister's handle of The Demon is not to be confused with Demon on the C64.