Table of Contents

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.

Formats

Both disc and ROM based versions are available.

Requirements

Some features

What's new?

1.21

Bug fixes :

1.2

Features :
Bug fixes :
Tweakings :

Contact

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

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

Download

Current version 1.21

Older releases

STarKos 1.2 (2009)
STarKos 1.1 (2004)

License

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

Français

English

Deutsch

Thanx to Jens (GMX), hermann dot jens at gmx dot net, for the german translation.

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.

Screenshots

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

Developers

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
BASIC &9A8
INTERRUPT &9FF

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.

OffsetSizeValueDescription
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

Most of these HOW TOs are not yet complete, but, still are provided as-is at the moment :)

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!

Relocators

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

Pulkomandy

Targhan

Ultrasyd