Another update to the Arkos story.
Yesterday and today I wrote the conversion tool for Arkos Tracker binary song “images”.
Anyone who has read the description of the the file format will see that this was not a totally easy thing. But at least Arkos Tracker HAS documentation – which is more than I can say than about some other trackers/programs.
To get the conversion right is not only to follow a format – you have to read the file and analyze every pattern, track and instrument. You litteraly have to “play” the song in all facettes to get it right (which perhaps I have – it is hard to do a COMPLETE test).
Followings points have been recognized:
- guessing the startaddress – the songs have usually absolut memory addresses (CPC-computer related – I guess), that is taken into account, by “guessing” the memory location. I take the high byte of instrument 0 (zero) and assume that the memory is page aligned – that is my start address. (Often songs start at $4000) – But the tracker itself can save songs to any memory location – if in doubt – save to location 0.
- internally all addresses are hardcoded (tracks, patterns, instruments…) – these are now “softcoded” since I use labels to reference the locations
- the original file format uses little endian address format (Z80…) – due to “softcoded” addressing all addresses are upon assembly of the generated file big endian addresses (6809…)
The generated file is an 6809 assembler source. Once run thru the assembler it is binary identical to the file that was used as input with two exceptions:
- as said – all addresses are big endian instead of little endian
- I skipped the first 9 bytes – because they are not needed (by any player), they are just some “meaningfull” information about speeds and a signature
Anyways. Step 2 of 3 are done:
First was – conversion of the Arkos Player – done!
Second was – write a conversion tool for the actual music binaries – done!
Third optimizing the player – not done!
(Target is 2000 cycles max for any playable song).