GENERATING A PLAYER ------------------- Once you have finished a song, perhaps you want to use it in your own productions. After having converted a SKS file into a BINary file (using the Song Generator, look at GENSONG.ENG), it is now possible to play the song with one of the players available. Run the file called "GP", or if you connected the right ROM, type |GP. PLAYER GENERATOR MAIN MENU -------------------------- After the program is loaded, a menu appears : 1) Show all files on disc ... Self explanatory. Allows you to choose between Drive A and B. THE PLAYERS ----------- STarKos gives you the choice between 3 players. Why three ? Well, it all depends on what you want to do : - ASM Player : If you intend to use your song in a demo, without the system, then this one is for you. This is the most optimised version of the StarKos players. Demomakers/Fanzmakers will be only interested by this one. The ASM Player doesn't save any registers, modifies all of them (including the auxiliary, but not SP), so the system won't like it (strange behaviour/crash). - BASIC Player : This one is made if you want to use your song in a Basic program, or an Asm code that still uses System. The only difference between the BASIC and the ASM Player is that the BASIC Player saves some registers so that Basic doesn't crash after playing the song. - INTERRUPTION Player : This one is for people who want to put a song and stop thinking about calling it. Basic users are the main users of this player, but it can also fit to any ASM program that doesn't kill the system and the interruptions. A simple CALL and the song begins ! Please note, if you use ASM or BASIC players, that it's up to YOU to call the song at the right moments (once per VBL, twice... up to six times for 300hz songs). I guess it's possible to get a 300hz song in Basic, but it's somewhat useless ; use INTERRUPTION Player instead). INTERRUPTION Player automatically detects the song frequency. In every case, a 300hz interruption is cast (using system vectors), but only a few of interruptions are used if using a less than 300hz song. GENERATING A PLAYER ----------------- Once you've chosen the player you need, you will have to give the name of the saved player (STKPLBAS/STKPLASM/STKPLINT for example), then the address in memory where you want it to be located. The player is then saved. USING A SONG IN YOUR PROGRAMS ----------------------------- It's very easy, and follows more or less the same philosophy as the BSC's Soundtrakker. First, load the player at the address you gave in GENPLAY. In basic, this could be : Memory &1fff:load"PLAYER",&2000 Then, load the song, where you compiled it in GENSONG. load"SONG",&3000 NOTE : ALWAYS PRECISE THE ADDRESSES WHEN LOADING A SONG OR A PLAYER. This is needed because the saved start address aren't (and can't be) right. Starting the song varies according to the player used : If you use the BASIC player : --------------------------- Three CALLs are available : CALL PLAYER,ADSONG = Initialize the song. CALL PLAYER+3 = Play song. CALL PLAYER+6 = Stop song. Initializing the song MUST be done once before playing the song for the first time. DON'T FORGET the Address of your song (ADSONG) ! It's needed for the player to know where the song is. In our example, you would have to write : CALL &2000,&3000 to initialize the song. CALL &2003 to play the song CALL &2006 to stop the song. You can also re-initialize the song if you want it to restart. Note that the BASIC player can also be called in any ASM program, it's just slighty slower than the ASM player. To give ADSONG to the player when initializing, just set DE with this value (like below). If you use the ASM player : ------------------------- Well, it works nearly the same way. CALL ADPLAYER to initialize the song, with DE pointing on the song. CALL ADPLAYER+3 to play the song CALL ADPLAYER+6 to initialize the song. In our example, this would do : LD DE,&3000 ; CALL &2000 to initialize CAll &2003 to play CALL &2006 to stop. Be sure that you don't need the system, or it's going to crash. All registers are corrupt, too. If you use the INTERRUPTION player : ----------------------------------- It's even more simple : CALL PLAYER,ADSONG = Initialize and start the song. CALL PLAYER+3 = Stop the song. As well, if you use this player in an ASM program, use DE to give ADSONG when initializing, exactly like above. That's all ! For more technical information about the players (and how to tweak it a bit), read PLAYERS.ENG.