Custom Amiga Module

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Added sample files)
(9 intermediate revisions by 2 users not shown)
Line 4: Line 4:
 
}}
 
}}
  
The '''Custom''' format is an Amiga music format created by Frank Riffel and Peter Kunath for their Amiga music playing software, DeliTracker.
+
The '''Custom''' format is an Amiga music format created by Frank Riffel and Peter Kunath for their Amiga music player ''DeliTracker''.
  
 
DeliTracker supports hundreds of Amiga music formats through ''DeliPlayers''; plugins with the code to recognise and play a specific music format.
 
DeliTracker supports hundreds of Amiga music formats through ''DeliPlayers''; plugins with the code to recognise and play a specific music format.
Line 12: Line 12:
 
The Custom format is also supported by DeliTracker's main rival, EaglePlayer, and UADE which emulates them both.
 
The Custom format is also supported by DeliTracker's main rival, EaglePlayer, and UADE which emulates them both.
  
All DeliTracker plugins and Custom files are [[Amiga Hunk]] files. The first hunk must be a code hunk that begins with these big-endian 32-byte longwords:
+
All DeliTracker plugins and Custom files are [[Amiga Hunk]] files. The first hunk must be a code hunk that begins with these values:
# 0x70FF4E75: This is 680x0 code (<tt>moveq #-1,d0 / rts</tt>) to immediately exit if this file was run as a normal executable
+
# {{magic|70 FF 4E 75 44 45 4C 49 52 49 55 4D}}: 680x0 code to immediately exit if this file was run as a normal executable, followed by "DELIRIUM" in ASCII
# 0x44454C49: "DELI"
+
# a 32-bit relocated (absolute) pointer to a ''tag list''
# 0x5249554D: "RIUM" -- two part magic ID for DeliTracker by Delirium Softworks
+
# a relocated (absolute) pointer to a ''tag list''
+
  
 
The ''tag list'' is a list of 32-bit key/value pairs. Tags are a [http://wiki.amigaos.net/wiki/Tags standard idiom in Amiga software] for variable lists of parameters. The tags that DeliTracker supports are listed in the development kit supplied with DeliTracker.
 
The ''tag list'' is a list of 32-bit key/value pairs. Tags are a [http://wiki.amigaos.net/wiki/Tags standard idiom in Amiga software] for variable lists of parameters. The tags that DeliTracker supports are listed in the development kit supplied with DeliTracker.
Line 22: Line 20:
 
A Custom file distinguishes itself from a DeliPlayer plugin by using the <tt>DTP_CustomPlayer</tt> (0x80004455) tag instead of the <tt>DTP_InternalPlayer</tt> (0x80004454) tag.
 
A Custom file distinguishes itself from a DeliPlayer plugin by using the <tt>DTP_CustomPlayer</tt> (0x80004455) tag instead of the <tt>DTP_InternalPlayer</tt> (0x80004454) tag.
  
The contents of a custom file is usually music replay code and data ripped directly from a game that takes over the Amiga hardware and does not use the operating system. Unlike the [[SID]], [[PSF]] or [[SC68]] formats, which also bundle ripped code and data in an identifying format, DeliTracker does not run the code in an ''emulated'' virtual machine, it executes it directly! It's contingent on the author of the Custom file to remove all Amiga hardware register access from the player code (except for the audio hardware, obviously), and make it "play nice" with the running OS. The most common "dirty" accesses by replay code are to set up vertical blank timing interrupts or to use the CIA timers and their interrupts. DeliTracker provides callback functions to the custom file to allow them to set up equivalent timing interrupts in a system-friendly way.
+
The contents of a custom file is usually music replay code and data ripped directly from a game that takes over the Amiga hardware and does not use the operating system. Unlike the [[SID]] or [[Portable Sound Format|PSF]] formats, which also bundle ripped code and data in an identifying format, DeliTracker does not run the code in an ''emulated'' virtual machine, it executes it directly! It's contingent on the author of the Custom file to remove all Amiga hardware access from the player code (except for the audio hardware, obviously), and make it "play nice" with the running OS. The most common "dirty" accesses by replay code are to set up vertical blank timing interrupts or to use the CIA timers and their interrupts. DeliTracker provides callback functions to the custom file to allow them to set up equivalent timing interrupts in a system-friendly way.
  
 
Custom files are sometimes replaced with a combination of a new DeliPlayer/EaglePlayer and data files that they recognise. One of the advantages of this is the programmer can go to great effort and support DeliTracker's "NotePlayer" or EaglePlayer's "Amplifier" APIs, which play sounds independently of the Amiga hardware and can thus support playing audio mixed to 14-bit quality on the original Amiga hardware or even higher quality through third party sound cards, and also allow DeliTracker/EaglePlayer to pass the audio through visualisation plugins.
 
Custom files are sometimes replaced with a combination of a new DeliPlayer/EaglePlayer and data files that they recognise. One of the advantages of this is the programmer can go to great effort and support DeliTracker's "NotePlayer" or EaglePlayer's "Amplifier" APIs, which play sounds independently of the Amiga hardware and can thus support playing audio mixed to 14-bit quality on the original Amiga hardware or even higher quality through third party sound cards, and also allow DeliTracker/EaglePlayer to pass the audio through visualisation plugins.
Line 28: Line 26:
 
Custom files that remain today are usually because their replay code was unique, there is little advantage in creating a standalone plugin that only recognises a single data file.
 
Custom files that remain today are usually because their replay code was unique, there is little advantage in creating a standalone plugin that only recognises a single data file.
  
== External links ==
+
== Software ==
* [http://aminet.net/package/mus/play/DeliTracker232 Last release of DeliTracker in August 2000, including developer kit]
+
* [http://aminet.net/package/mus/play/DeliTracker232 DeliTracker 2.32], the last release of DeliTracker in August 2000, including the developer kit for creating DeliPlayers / Custom files
* [http://aminet.net/package/mus/play/Eagleplayer_2.05 EaglePlayer, the main rival to DeliTracker on the Amiga]
+
* [http://aminet.net/package/mus/play/Eagleplayer_2.05 EaglePlayer 2.05], the main rival to DeliTracker on the Amiga
* [http://zakalwe.fi/uade/ UADE, the Unix Amiga DeliTracker Emulator which also plays Custom files]
+
* [http://zakalwe.fi/uade/ UADE], the Unix Amiga DeliTracker Emulator which runs all DeliPlayers and EaglePlayers on an emulated Amiga, so it can play all Amiga music on platforms other than the Amiga
 +
 
 +
== Sample files ==
 
* [http://old.exotica.org.uk/tunes/pages/CUST-Custom.html ExoticA's old collection of Custom files]
 
* [http://old.exotica.org.uk/tunes/pages/CUST-Custom.html ExoticA's old collection of Custom files]
 
* [https://www.exotica.org.uk/wiki/Custom ExoticA's new collection of Custom files]
 
* [https://www.exotica.org.uk/wiki/Custom ExoticA's new collection of Custom files]
 
* [http://wt.exotica.org.uk/customs.html Custom files created by the Wanted Team]
 
* [http://wt.exotica.org.uk/customs.html Custom files created by the Wanted Team]
 +
* https://telparia.com/fileFormatSamples/music/deliTrackerCustom/
 +
 +
[[Category:Amiga]]

Revision as of 15:57, 29 August 2021

File Format
Name Custom Amiga Module
Ontology

The Custom format is an Amiga music format created by Frank Riffel and Peter Kunath for their Amiga music player DeliTracker.

DeliTracker supports hundreds of Amiga music formats through DeliPlayers; plugins with the code to recognise and play a specific music format.

For music formats that DeliTracker doesn't have a DeliPlayer for, there is the catch-all Custom format, which is simply another DeliPlayer written exclusively for that music, combining the music's replay code and data in the same file.

The Custom format is also supported by DeliTracker's main rival, EaglePlayer, and UADE which emulates them both.

All DeliTracker plugins and Custom files are Amiga Hunk files. The first hunk must be a code hunk that begins with these values:

  1. 70 FF 4E 75 44 45 4C 49 52 49 55 4D: 680x0 code to immediately exit if this file was run as a normal executable, followed by "DELIRIUM" in ASCII
  2. a 32-bit relocated (absolute) pointer to a tag list

The tag list is a list of 32-bit key/value pairs. Tags are a standard idiom in Amiga software for variable lists of parameters. The tags that DeliTracker supports are listed in the development kit supplied with DeliTracker.

A Custom file distinguishes itself from a DeliPlayer plugin by using the DTP_CustomPlayer (0x80004455) tag instead of the DTP_InternalPlayer (0x80004454) tag.

The contents of a custom file is usually music replay code and data ripped directly from a game that takes over the Amiga hardware and does not use the operating system. Unlike the SID or PSF formats, which also bundle ripped code and data in an identifying format, DeliTracker does not run the code in an emulated virtual machine, it executes it directly! It's contingent on the author of the Custom file to remove all Amiga hardware access from the player code (except for the audio hardware, obviously), and make it "play nice" with the running OS. The most common "dirty" accesses by replay code are to set up vertical blank timing interrupts or to use the CIA timers and their interrupts. DeliTracker provides callback functions to the custom file to allow them to set up equivalent timing interrupts in a system-friendly way.

Custom files are sometimes replaced with a combination of a new DeliPlayer/EaglePlayer and data files that they recognise. One of the advantages of this is the programmer can go to great effort and support DeliTracker's "NotePlayer" or EaglePlayer's "Amplifier" APIs, which play sounds independently of the Amiga hardware and can thus support playing audio mixed to 14-bit quality on the original Amiga hardware or even higher quality through third party sound cards, and also allow DeliTracker/EaglePlayer to pass the audio through visualisation plugins.

Custom files that remain today are usually because their replay code was unique, there is little advantage in creating a standalone plugin that only recognises a single data file.

Software

  • DeliTracker 2.32, the last release of DeliTracker in August 2000, including the developer kit for creating DeliPlayers / Custom files
  • EaglePlayer 2.05, the main rival to DeliTracker on the Amiga
  • UADE, the Unix Amiga DeliTracker Emulator which runs all DeliPlayers and EaglePlayers on an emulated Amiga, so it can play all Amiga music on platforms other than the Amiga

Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox