Difference between revisions of "AYC"

From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Generic Standard file in CPC music. Really is a compressed [[YM]] file.
+
Generic Standard file in CPC music. Really is a de-compressed and re-compressed [[YM]] file.
You can extract (rip) CPC music (or from another 8-16bit system) with your emulator to YM file and convert it to AYC file to use it on CPC.
+
 
 +
The "plain" YM format can not be played on CPC, because it uses LHA packing which is not unpackable in realtime. You need the AYC toolkit or YMcruncher to convert them to AYC, then you should be able to play them with various tools.
 +
 
 +
You can extract (rip) CPC music (or from another 8-16bit system) with your emulator to YM file and convert to AYC file to use it on CPC.
 
The author of this great idea is [[Madram]] from [[Overlanders]].
 
The author of this great idea is [[Madram]] from [[Overlanders]].
  
  
  
'''AYC players (inside CPC system)'''
+
== AYC players (inside CPC system) ==
 
----
 
----
 
- AYCplayer by OVL (MadRam & Beb = Overlanders) [Thanks to F-Key to preserve it]
 
- AYCplayer by OVL (MadRam & Beb = Overlanders) [Thanks to F-Key to preserve it]
 
New font screen, a trick to pass the slow and weighty 16k screen...
 
New font screen, a trick to pass the slow and weighty 16k screen...
 
+
* [[Media:Aycplay.zip]] (zipped .DSK file)
                DSK of AYCplayer [[media:Aycplay.rar]]
+
 
[[File:AYCplayer.PNG|275px|thumb|center|AYCplayer - CPC screen view]]
 
[[File:AYCplayer.PNG|275px|thumb|center|AYCplayer - CPC screen view]]
  
 
----
 
----
 
- Dual Module Player by Hermol
 
- Dual Module Player by Hermol
 +
 +
http://www.cpc-power.com/index.php?page=detail&num=5251
  
 
- TsP The Soundtrackker Player by TomEtJerry
 
- TsP The Soundtrackker Player by TomEtJerry
  
 +
http://www.cpc-power.com/index.php?page=detail&num=5075
  
  
Line 23: Line 28:
  
  
'''YM to AYC utils'''
+
== YM to AYC utils ==
 
----
 
----
 
- CPC amsdos --> YM2AY (Kit ayc) by MadRam
 
- CPC amsdos --> YM2AY (Kit ayc) by MadRam
Line 33: Line 38:
  
  
'''ToDo'''
+
== AYC file format ==
 
----
 
----
- There is only one PC command line util to edit info inside YM files. It is needed a more easy and quick to use "windowed" version.
+
An AYC file is basically just a particular YM file that has been compressed using a Lempel-Ziv like algorithm.<br />
 +
There are two main sections inside an AYC file:<br />
 +
* Header
 +
* Data
 +
 
 +
=== Header ===
 +
 
 +
The header contains info about the tune duration, the registers data offset in the file and the buffers sizes for decompression.
 +
{| class="wikitable"
 +
|-
 +
! Offset !! Size !! Description
 +
|-
 +
| #00 || 2 || Song duration (number of vertical refresh period)
 +
|-
 +
| #02 || 1 || Buffer size<sup>1</sup> for register 0
 +
|-
 +
| #03 || 2 || Crunched data offset<sup>2</sup> in the file for register 0
 +
|-
 +
| ...
 +
|-
 +
| 3*n + #02 || 1 || Buffer size<sup>1</sup> for register n
 +
|-
 +
| 3*n + #03 || 2 || Crunched data offset<sup>2</sup> in the file for register n
 +
|-
 +
| ...
 +
|-
 +
| #29 || 1 || Buffer size<sup>1</sup> for register 13
 +
|-
 +
| #2A || 2 || Crunched data offset<sup>2</sup> in the file for register 13
 +
|-
 +
| #2C || 6 || RESERVED (defaulted to #FFFFFFFFFFFF)
 +
|}
 +
 
 +
1. Two sizes defined in the AYC file format, #01 = 256 bytes, #04 = 1024 bytes<br />
 +
2. Relative offsets, you must add n*3+4 to each value (where n is the register number), offset "#2E" for register 0 means that data starts at #2E + 0*3 + 4 = #32
 +
 
 +
=== Data ===
 +
 
 +
All registers data have the same format, which is a mix of Patterns and Flags.<br />
 +
A Pattern can be of two types :
 +
:* a Byte which can be directly send to the PSG
 +
:* a Previously played Pattern identified by an offset and a length in the deflated buffer
 +
Flags are included in the stream of Patterns to indicate the type of Pattern.
 +
 
 +
To be finished as soon as possible (Fkey)
 +
 
 +
=== Sample File ===
 +
 
 +
The marvelous "Jim power 2.ym" has been converted to the AYC format and the following is what we get for the header.<br />
 +
Let's analyse this to understand how it works.
 +
 
 +
[[File:JimPower_AYC_2.jpg]]
 +
 
 +
===== Header =====
 +
* Song length in VBL is : #1CE5 ( ~ 2 minutes 27 seconds)
 +
* Register 0 buffer size is #100 bytes
 +
* Register 0 Offset is calculated as follow : #002E + 4 + (3 x 0)= #0032
 +
* Register 1 buffer syize is #100 bytes
 +
* Register 1 Offset is calculated as follow : #03B2 + 4 + (3 x 1) = #03B9
 +
* Register 2 buffer size is #100 bytes
 +
* Register 2 Offset is calculated as follow : #04DA + 4 + (3 x 2)
 +
* ...
 +
 
 +
== ToDo ==
 +
----
 +
- There is only one PC command line util YMTOOL [ST-Sound
 +
Download] [http://leonard.oxg.free.fr/] to edit info inside YM files. It is needed a "windowed" version more easy and quick to use.
 +
 
 +
- [[SymAmp]] don't read AYC files, sig! Any coder?
  
- SymAmp don't read AYC files, sig! Any coder?
+
[[Category:Music and sound]]

Latest revision as of 04:15, 11 May 2016

Generic Standard file in CPC music. Really is a de-compressed and re-compressed YM file.

The "plain" YM format can not be played on CPC, because it uses LHA packing which is not unpackable in realtime. You need the AYC toolkit or YMcruncher to convert them to AYC, then you should be able to play them with various tools.

You can extract (rip) CPC music (or from another 8-16bit system) with your emulator to YM file and convert to AYC file to use it on CPC. The author of this great idea is Madram from Overlanders.


AYC players (inside CPC system)


- AYCplayer by OVL (MadRam & Beb = Overlanders) [Thanks to F-Key to preserve it] New font screen, a trick to pass the slow and weighty 16k screen...

AYCplayer - CPC screen view

- Dual Module Player by Hermol

http://www.cpc-power.com/index.php?page=detail&num=5251

- TsP The Soundtrackker Player by TomEtJerry

http://www.cpc-power.com/index.php?page=detail&num=5075



YM to AYC utils


- CPC amsdos --> YM2AY (Kit ayc) by MadRam


- PCwin --> YMcruncher by F-key


AYC file format


An AYC file is basically just a particular YM file that has been compressed using a Lempel-Ziv like algorithm.
There are two main sections inside an AYC file:

  • Header
  • Data

Header

The header contains info about the tune duration, the registers data offset in the file and the buffers sizes for decompression.

Offset Size Description
#00 2 Song duration (number of vertical refresh period)
#02 1 Buffer size1 for register 0
#03 2 Crunched data offset2 in the file for register 0
...
3*n + #02 1 Buffer size1 for register n
3*n + #03 2 Crunched data offset2 in the file for register n
...
#29 1 Buffer size1 for register 13
#2A 2 Crunched data offset2 in the file for register 13
#2C 6 RESERVED (defaulted to #FFFFFFFFFFFF)

1. Two sizes defined in the AYC file format, #01 = 256 bytes, #04 = 1024 bytes
2. Relative offsets, you must add n*3+4 to each value (where n is the register number), offset "#2E" for register 0 means that data starts at #2E + 0*3 + 4 = #32

Data

All registers data have the same format, which is a mix of Patterns and Flags.
A Pattern can be of two types :

  • a Byte which can be directly send to the PSG
  • a Previously played Pattern identified by an offset and a length in the deflated buffer

Flags are included in the stream of Patterns to indicate the type of Pattern.

To be finished as soon as possible (Fkey)

Sample File

The marvelous "Jim power 2.ym" has been converted to the AYC format and the following is what we get for the header.
Let's analyse this to understand how it works.

JimPower AYC 2.jpg

Header
  • Song length in VBL is : #1CE5 ( ~ 2 minutes 27 seconds)
  • Register 0 buffer size is #100 bytes
  • Register 0 Offset is calculated as follow : #002E + 4 + (3 x 0)= #0032
  • Register 1 buffer syize is #100 bytes
  • Register 1 Offset is calculated as follow : #03B2 + 4 + (3 x 1) = #03B9
  • Register 2 buffer size is #100 bytes
  • Register 2 Offset is calculated as follow : #04DA + 4 + (3 x 2)
  • ...

ToDo


- There is only one PC command line util YMTOOL [ST-Sound Download] [1] to edit info inside YM files. It is needed a "windowed" version more easy and quick to use.

- SymAmp don't read AYC files, sig! Any coder?