Music & SFX replayer for Games... as 2021

By aoineko

Paragon (1146)

aoineko さんの画像

19-01-2021, 15:32

For my C game library, I'm looking for information about the available MSX music and SFX replayers.
I'm looking for something lightweight for the CPU and that supports PSG (SCC and FM are a bonus).
My quest has been full of obsolete information and broken links, but here's what I found :

- PT3player with Vortex Tracker II
Its SDCC version (https://github.com/mvac7/SDCC_PT3player) allowed me to integrate it into my library in a few minutes. Great! :)
But, even if the sample music works well, most of the other .pt3 files I tried seem more or less broken.
Is this a known problem? Some features not supported by this version of the MSX replayer?
I saw that the code had passed through many hands (Bulba > Dioniso > MSXKun > SapphiRe > mvac7); would some optimizations have caused side effects?

- ayfx-replayer with AYFX Editor
Not yet tested but the possibility to combine it with the PT3player seems to be a big plus.
Having said that, I know that Fusion-C has problems with this combination so it might not be that easy.

- AKG/AKY/AKM with Arkos Tracker 2
About 10y ago, I did some research about Arkos Tracker 1 and it seemed the best choice at the time.
The music editor was really well done, and the replayer was compact and efficient.
I've seen that they've added new features with AT2 and that the replayer is now bigger (even if it exists in 4 versions), but I can't see if it would be worth it to use the new one instead of the old one which already allowed to make nice music.

- TriloTracker-Re-player with... TriloTracker ^^
I haven't found much information about it and I don't know the performance of the replayer(https://github.com/cornelisser/TriloTracker-Re-player). The positive point is the support of the SCC but as I said in the intro, it's not an essential point for me.

- RoboPlay with ?
I've just discovered this C multi-format replayer (to investigate) : https://gitlab.com/torihino/roboplay

I forgot to mention that even though my game lib is in C, it doesn't scare me too much to touch assembler code to create a C wrapper.

I am interested in any information about these replayers or any other up-to-date replayers that I might not know yet.
If we manage to gather an inventory of MSX replayers nowadays, we could then update the MRC wiki: https://www.msx.org/wiki/Music_replayer_routines

EDIT: I also forgot to mention that I'm looking for solutions applicable to a ROM (so without self-modifying code)

ログイン/登録して投稿

By Sylvester

Hero (593)

Sylvester さんの画像

19-01-2021, 15:53

Maybe you can use mplayer lib for Arkos Tracker 2 from https://github.com/reidrac/ubox-msx-lib ?

By thegeps

Paragon (1260)

thegeps さんの画像

19-01-2021, 16:35

Well, I've recently released 3 games, and used the complete player(AKG). Even if seems big, it is very fast and its execution fits (togheter of other tasks) inside the ISR

By ToriHino

Paladin (928)

ToriHino さんの画像

19-01-2021, 18:16

Regarding RoboPlay: this is not really oriented on fast or lightweight replay but more on variation in file format support (and only that, so not at all optimized to run in the background).

By jltursan

Prophet (2619)

jltursan さんの画像

19-01-2021, 19:15

In MPAGD MSX I'm using he PT3+ayFX replayers and I haven't found any problematic PT3 files, can you share some of the "broken" ones?, I can check them.
To use both PT3 and ayFX and without double-checking it, you only need to add in the "your code here", the Fusion-C ayFX routine to update the PSG data in memory (but not outputting them to the PSG registers). No idea if such function exists, "UpdateFX" maybe?, it must use "_AYREGS" as the PT3 replayer you pointed up.

    while(1)
    {
      HALT;

      PT3_PlayAY();      
      PT3_Decode();
      
      //your code here ---> Update PSG data in memory
            
    }

About the list, you can add WYZTracker. Nice tracker and a fast & compact replaying routine. My only drawback is that I don't know how to generate SFX with it (being ayFX or their own effects, seems powerful...).

By aoineko

Paragon (1146)

aoineko さんの画像

19-01-2021, 23:30

Thank you for the information.

jltursan wrote:

In MPAGD MSX I'm using he PT3+ayFX replayers and I haven't found any problematic PT3 files, can you share some of the "broken" ones?, I can check them.

I found my problem with PT3player. I was displaying a bit of text in graphic mode in my program and I hadn't noticed that it was longer than one frame. That's what made it sound very weird.
Now everything works fine.

jltursan wrote:

About the list, you can add WYZTracker. Nice tracker and a fast & compact replaying routine.

Thank you for WYZTracker! I had stumbled upon it during my research but I couldn't find the name anymore. :)
I'll take a look at it.

By aoineko

Paragon (1146)

aoineko さんの画像

20-01-2021, 21:57

Does anyone have any information on the description of the PT3 format?
The only doc I found was in Russian. :-/

By ro

Scribe (5064)

ro さんの画像

18-02-2021, 11:25

By aoineko

Paragon (1146)

aoineko さんの画像

18-02-2021, 13:16

For SFX, I'm using ayFX that is efficient, well documented, free and have a nice editor.
That said, it's always interesting to check other solution.
I'll take a look to SEE (even if the freeware licence is a problem for me).

By reidrac

Expert (98)

reidrac さんの画像

20-07-2021, 22:58

In the ubox libraries I use Arkos 2 Minimal Player (AKM) ROM version, which has the benefit of... well, running from ROM.

Arkos 2 tracker runs native on Linux, so for me it is the best choice (used WYZ for a couple of games, but the tracker uses .NET and I never managed to make it run stable enough).

By [WYZ]

Champion (451)

[WYZ] さんの画像

21-07-2021, 00:32

for clarification only: WYZPlayer can be easilly combined with ayFX as both write on a small RAM buffer before dump the PSG registers, just as PT3 does. ["Prisoner Of War" is a quite good example of this usefull tools combined]
Also can launch events with a simple modification of the replayer code and play more complex sounds. Free of Self modifying code / ROM friendly.