ArkosTracker MSX playroutine, SDCC as-z80 syntax

Page 1/4
| 2 | 3 | 4

By yzi

Champion (424)

yzi's picture

20-01-2013, 12:49

Here's my adaptation of the ArkosTracker playroutine to the as-z80 syntax, so you can use it in your SDCC cross-development projects. In addition to the syntax changes, there are some other minor changes like changing the player from
http://www.kameli.net/~marq/kode/ArkosTrackerPlayer_MSX.s
http://www.kameli.net/~marq/kode/ArkosTrackerPlayer_MSX.h

Maybe I should have made a proper release package with examples and everything, but I'll just make a forum post here, and see if anyone is interested, and if there are any questions.

Excerpt from the .h header file:

extern unsigned char *PLY_SongPtr;

extern void PLY_Init(void); 
extern void PLY_Play(void); 
extern void PLY_SendRegisters(void); // Two-phase player! first call PLY_Play() and then PLY_SendRegisters(). 
extern void PLY_Stop(void); 

How to use in your own programs
1. set PLY_SongPtr to point to your binary song data that you've exported form Arkos Tracker
2. call PLY_Init()
3. call PLY_Play() and PLY_SendRegisters() at 50Hz or 60Hz rate or something
4. call PLY_Stop() when you're done

Questions?

Login or register to post comments

By yzi

Champion (424)

yzi's picture

20-01-2013, 12:54

Doh. How do I edit a post. I meant to say, there are some other minor changes like changing the player to a two-phase system where you first call PLY_Play() and then you can do something with the register values, and output the PSG port settings later with PLY_SendRegisters().

By the way, also check out the MSXLib library that has lots of useful routines for SDCC development.
http://www.msx.org/forum/development/cross-development/msxli...

By yzi

Champion (424)

yzi's picture

20-01-2013, 13:59

The two-phase system also lets you balance sound output timing accuracy vs. precious vblank time usage, as you see fit. You can, for example, just output the port values to the PSG at the beginning of the vertical blank interrupt handler, then use the high-speed VDP access time window for fast VRAM upload, and start processing the next sound tick only after that. This way you waste as little of the vblank time as possible, while still getting a rock solid timing in your sound output. If your VRAM upload takes a reasonably constant time, you could also place the PSG port upload after that, without messing up the timing feel of the music. (Not all people are as sensitive to such timing jitter, but I personally don't like it, if the player's "ticks" aren't steady.)

By yzi

Champion (424)

yzi's picture

20-01-2013, 14:03

In other words, in step 3, you should really call PLY_SendRegisters() first, and then PLY_Play().

By ericb59

Paladin (744)

ericb59's picture

18-10-2018, 21:21

Hello,

I know ... THis thread is very old...
But I did not find anything newer ...

Is someone already tried this player ?
Or is there new one available

By Wolverine_nl

Paladin (970)

Wolverine_nl's picture

19-10-2018, 09:10

Actually never heard of this player module?

By reidrac

Supporter (6)

reidrac's picture

19-10-2018, 21:29

I'm using Arkos 2 for my MSX project (and I used it in a CPC game).

http://www.julien-nevo.com/arkostracker/

It is currently "alpha", but I think that's mostly the tracker; in my experience the player is ready to use.

By keith56

Master (132)

keith56's picture

20-10-2018, 07:58

Chibiakumas uses ArkosPlayer (V1) for music and sound on the MSX,ZX Spectrum, CPC and even Enterprise (Via AY emulation)
It's a great player/Tracker, and I'd highly recommend it!

I covered using Arkosplayer in my Multiplatform Z80 Assembly tutorials some time ago:
https://youtu.be/Wt3hhcdXY5c

By MsxKun

Paladin (865)

MsxKun's picture

20-10-2018, 11:38

ericb59 wrote:

Is someone already tried this player ?

Yes, I used it at the AAMSX Music Discs that collect tracks from Cultura Chip's music compos. They feature Vortex Tracker, Arkos Tracker and WYZ Tracker tracks usually. But I think all Arkos tracker files where for first version so I didn't try Arkos 2 yet.

So maybe it's time to test it Big smile Downloading linux version...

By reidrac

Supporter (6)

reidrac's picture

20-10-2018, 12:02

Arkos 2 main feature (for me) is that the tracker is multi-platform and it supports Linux!

It is a great tracker (although keep in mind it is alpha and some bits in the UI are missing for now), and the player code is very readable and easy to modify if you need something specific.

By MsxKun

Paladin (865)

MsxKun's picture

20-10-2018, 13:00

reidrac wrote:

Arkos 2 main feature (for me) is that the tracker is multi-platform and it supports Linux!

It is a great tracker (although keep in mind it is alpha and some bits in the UI are missing for now), and the player code is very readable and easy to modify if you need something specific.

Yes, I got it cause it works on linux.
Specific.... well, it needs support for 6/9 channel tracks on MSX too Smile Dual PSG... SCC+PSG...

Page 1/4
| 2 | 3 | 4
My MSX profile