I might actually finish this one

Page 4/6
1 | 2 | 3 | | 5 | 6

By Metalion

Paragon (1203)

Metalion's picture

27-09-2020, 11:55

I am currently writing a PSG/SCC/FM replayer (nothing fancy, MML type, no tracker) that takes maybe maximum 1000 cycles per FM voice on VBLANK (less for PSG). So with 7200 cycles that would let you 7 voices to play with. Size is about 3K at the moment, but work is still ongoing.

By erpirao

Paragon (1092)

erpirao's picture

27-09-2020, 12:52

impressive, waiting to see how the project progresses.

By Grauw

Ascended (9341)

Grauw's picture

27-09-2020, 14:12

To give you a lower bound, the replayer in Tile² is for PSG+FM and takes 5700 cycles in the worst case, and I don’t think it could be done much faster. The data structure it uses is a VGM-like register stream with no block repeat functions (yet). To measure the worst case I made a special “silent” test file which changes all registers every other frame.

Another replayer I recently made is one for OPM, OPNA and OPNB for Ghosts ’n Goblins, I don’t know exactly how much its worst case, probably a little slower but not much. To support the different chips and reduce the data size this one is a little more MML-like in structure since each command encodes a channel and its function (key-on, frequency, instrument). Still a single command stream and no block repeat functions.

So 7200 cycles seems realistic and feasible.

By ARTRAG

Enlighted (6443)

ARTRAG's picture

27-09-2020, 14:16

Increasing the rom size you could develop a simple player that sets chip registers from RLE register data
It is the lightest thing I can think about but rom storage could be too large for your needs

By syn

Paragon (1975)

syn's picture

27-09-2020, 14:35

@grauw what is tile2?

By Grauw

Ascended (9341)

Grauw's picture

27-09-2020, 15:17

@syn It’s this.

By Bengalack

Master (189)

Bengalack's picture

27-09-2020, 17:43

Sounds like there are options Smile That said, I would also need someone to make the music, or use something premade. At a point I thought that the amount of MOD-files available were excessive, and that it would be possible to contact the authors to ask about using the audio. If I cannot use MOD. I need to look elsewhere. My real MSX only have FM, so I guess that is the primary target from now on.

In general I need more education in this area. Like "voices". @Metalion - I'm not sure whether 7 voices are enough. I don't have a tune at hand, and I don't know the preferences of the future creator of a tune :/ Also, why do you mention "cycles per FM voice on VBLANK". Does it spend more time when outside VBLANK? (my VBLANK-time is spent already, and cannot be easily changed).

Back in the day, when me and my friend Arne made demos, Arne made the music and this was a black box to me. If I recall correctly I think he used something called (FAC?) Soundtracker Question Is this still the tool of choice?

@Graw: 5700 sounds really good! Does this replayer require a special format, or does it use some standard format which audio-software supports? Soundtracker? What about the PSG - How are the sound-files made? AYFX?

By Bengalack

Master (189)

Bengalack's picture

27-09-2020, 17:50

ARTRAG wrote:

Increasing the rom size you could develop a simple player that sets chip registers from RLE register data
It is the lightest thing I can think about but rom storage could be too large for your needs

All this is new stuff to me. Sounds like you talk about a new format? Custom? Also, rom or ram: Currently the format is disk/dos. I'm not sure whether it will end up on rom. Sounds cool. But I have never developed for that before, and I would have to devote quite some time to look into it, should I go in that direction. It would have to be a megarom, for sure. 256kB or 512kB.

By Grauw

Ascended (9341)

Grauw's picture

27-09-2020, 18:12

My code uses a custom “stream of register writes” type format (similar to VGM). It’s very low level so fast but not very space-efficient. The idea is that I can convert to that from the tracker / MML format of choice of the composer (possibly myself) with a conversion script.

However you can also to stick to something well known, and adopt the MoonBlaster 1.4 replayer. I don’t know anything about its performance though.

By Metalion

Paragon (1203)

Metalion's picture

27-09-2020, 20:06

Bengalack wrote:

@Metalion - I'm not sure whether 7 voices are enough. I don't have a tune at hand, and I don't know the preferences of the future creator of a tune :/ Also, why do you mention "cycles per FM voice on VBLANK". Does it spend more time when outside VBLANK? (my VBLANK-time is spent already, and cannot be easily changed).

7 voices are already plenty! It means the replayer can output 7 notes on different voices every frame. Keep in mind that great tunes were created on the MSX with just the 3 voices of the PSG.

The main replayer routine needs to be called once every frame, preferably on VBLANK. It does not need cycles outside VBLANK. It just need cycles inside VBLANK.

Page 4/6
1 | 2 | 3 | | 5 | 6