STarKos 1.21

STarKos is a conventional soundchip tracker, in the sense that writing music is done the same way as existing trackers on CPC or Atari ST. The new features mainly comes from sound editing.


Both disc and ROM based versions are available.


  • An Amstrad CPC or Plus.
  • 128Kb RAM.
  • A floppy drive interface (built-in or DDI-1).
  • One ear (two for stereo :).

Some features

  • 256 positions available.
  • Each position is composed of 3 tracks, one par channel.
  • Manages 512 tracks, each one being reusable several times in different positions OR in the same position, why not. Memory saving !
  • A track can have a height from 0 to 127.
  • Each track can be be transposed independently.
  • The whole song can be transposed.
  • Each position has its own height, from 0 to 127, independently of the height of the tracks.
  • 255 instruments free to use.
  • Each PSG registers can be modified while creating instruments.
  • Each track/instrument is compacted in memory, this one is reorganized after every modification, so you've got plenty of memory for you !
  • Frequency replay of 13, 25, 50, 100, 150 or 300 Hz.
  • Digidrums are supported : it is possible to enter 'SPL' keys along with a sample number, that can be read through the external player while playing the song. However, you can't load/hear a sample inside the editor.

What's new?


Bug fixes :
  • A single but important bugfixe found by Tom&Jerry, introduced by the 1.2 release. If two channels pointed on the same track, a modification of the third wouldn't be taken in account.


Features :
  • Highlight of every X lines in the pattern editor (customisable).
  • A few colorsets.
  • Ability to find a new and unused track in the Linker (U key).
Bug fixes :
  • The players could alter one byte in the memory in rare occasions. DO NOT USE THE PREVIOUS PLAYERS ANYMORE !
  • The player generator could save on drive A when it should save on B.
  • When generating a song, the Execution in the header gives its start (but the Start remains unusable).
  • In very rare occasions, the current instrument could be destroyed after a disc access.
  • Modifying the second or third track would not validate the change if the first one was pointing the same track.
  • File selecting shifted bug corrected.
  • Wrong looping behaviour corrected.
  • Clipboard buffers were not set correctly. I had to shrink a bit the manual clipboards (Shift+F7/F8/F0).
  • Better disc code. No more crashes, and a little faster.
  • … A lot of tiny bugs corrected.
Tweakings :
  • Bigger pattern editor.
  • Shift+Control + Up/Down on a note to increase its octave.
  • Q on a transposition to invert the sign.
  • Del on a transposition to set it to 0.
  • Ask to confirm when erasing a file.
  • Numbers of song/instruments on a disc written in decimal.
  • In the Instrument Editor, F0/. copy the line by default instead of creating an empty line.
  • Prevent the cycling of the notes when playing the highest keys.
  • You can set a different ùuser when running STarKos and the Generators, and the programs will use it.


If you have feedback, comments, ideas, bug reports or anything to ask about STarKos:

  • You can contact targhan at cpcscene dot com
  • Or try the tavern.

Nutella, the only food you need to write a great tracker! :)


Current version 1.21

Older releases

STarKos 1.2 (2009)
STarKos 1.1 (2004)


STarKos is freeware.

  • You may copy and distribute copies of this program provided that you keep all the files intact.
  • You must not charge money or fees for the software product to anyone except to cover distribution costs.
  • You can use STarKos for any project, commercial or not.

User Manuals

Videos / Screenshots

Carpet playing with STarKos

(If Flash is installed JavaScript is activated, you can watch a video inside this web page.)

STarKos 1.2 playing “Carpet”, by Targhan.

Video recorded with WinAPE.
Sound recorded from a real CPC 6128.

Creating a music

Here is a quick footage about how it looks like
to make a tune with STarKos (hopefuly, you should
be able to do a better music than the one in this
video :).

(If Flash is installed JavaScript is activated, you can watch a video inside this web page.)

Video recorded with WinAPE.


STarKos v1.2 - Track editor  STarKos v1.2 - Advanced instrument editor  STarKos v1.2 - Simple instrument editor  STarKos v1.2 - Track linker  STarKos v1.2 - About


Technical informations about the players

The 3 players have the same main code. The ASM is the most optimized. The BASIC and INTERRUPTION players use the firmware to trigger the 300Hz interruption and are a bit slower, because they must save some CPU registers reserved to the firmware. The INTERRUPTION player takes more memory, because it have to interpret the frequency written in the song, and play the song accordingly.

RAM & CPU Footprint

The ASM player takes a maximum of 34 rasterlines and about 2kb in memory (you can see how to remove the init routine to save some bytes). The player uses no buffer, so you just need enough RAM to store the player and the song data, that's all.

The 2 other players are a little bigger (and slower), especially the INTERRUPTION player.

Player typeSize (byte)
ASM &98D

The BASIC and INTERRUPT players, to remain Firmware-friendly, have to preserve the CPU registers reserved by the Firmware (i.e. BC' and AF') and, for the INTERRUPT player, deal with the firmware events. The ASM player don't take care of all this and will modify all the CPU registers.

Memory addresses

The ASM and BASIC player can be located anywhere in memory as long as they can read the song data when they are called.

The INTERRUPT player must be located from &4000 to HIMEM (usually &A67B on a bare CPC 6128). If you put the player or the song in extra RAM bank (i.e. on a CPC 6128 or any RAM expanded CPC), this bank must stay mapped all the time (if you disable the bank mapping, it might crash!). And of course, the player must have read access to the song data.

The players don't modify the Stack, the interruption flag/mode, or any chipset registers (except of the Z80 and PSG, of course). No barbarian tricks (out (0),a) or anything like that.

In order to avoid any troubles on expanded CPC, do not load the player or song data so that they end up too close of the HIMEM (remember that the HIMEM goes down for each additionnal ROM added to the system). The song compiler and player generator won't do any checks for this, so be careful!

Tweaking the song

Here are some values you can find in the compiled song data. The offsets are obviously given from the start of the song-data.

04“SK10”Just a little ASCII tag for rippers to detect STarKos songs easily :)
42Base Address of the SongYou will find #00,#04 if the song has to be loaded in #4000, for example
61Digidrums channelIndicate the channel where the digidrum should be played. 1,2 or 3
72Song Frequency in Hertz13, 25, 50, 100, 150 or 300. Only used by the INTERRUPTION player when initialising.

That's all. You're not allowed to search elsewhere :).

How to

CrossDev Player

The complete STarKos player source code is also available! Thus you won't have to deal with the player generator anymore to get an SKS player!


The sources allowing you to relocate any STarKos player (the ones generated from the Kit only!) as well as any compiled song are free to be used here:

Song repository

Beside the demo-songs provided with STarKos, you can download here .SKS files of real songs used in some CPC productions. If you wanna be a pop star, share your SKS files here, send them to targhan at cpcscene dot com.

Fenyx Kell




documentations/software/starkos/start.txt · Last modified: 2009/07/04 06:55 by grim