ayVGM - A lite version of VGM for AY-3-8910

Page 3/3
1 | 2 |

By aoineko

Paragon (1207)

aoineko's picture

20-02-2022, 19:35

I updated my file format (I renamed LVGM) to include MSX-Music, MSX-Audio, SCC/SCC+ and secondary PSG data :
https://github.com/aoineko-fr/MSXgl/blob/main/engine/src/lvg...

I removed the support of the two simultaneous frequencies (50/60 Hz) because it prevents to go further in the optimizations. I'll add an option to rearrange the accesses to the registers during a frame; in particular, to make them correspond to the different packing patterns.

I haven't updated my VGM converter and my replayer yet. I'm waiting to let my thoughts mature.

I'm interested in your feedback.

By pizzapower

Master (176)

pizzapower's picture

27-11-2022, 17:27

aoineko wrote:

I updated my file format (I renamed LVGM) to include MSX-Music, MSX-Audio, SCC/SCC+ and secondary PSG data :
https://github.com/aoineko-fr/MSXgl/blob/main/engine/src/lvg...

I removed the support of the two simultaneous frequencies (50/60 Hz) because it prevents to go further in the optimizations. I'll add an option to rearrange the accesses to the registers during a frame; in particular, to make them correspond to the different packing patterns.

I haven't updated my VGM converter and my replayer yet. I'm waiting to let my thoughts mature.

I'm interested in your feedback.

I found that most of the SCC+PSG songs are still way too big to be used in something that is not a MSXDOS music player. A 1 minute song with those chips can use as much as 50kb of RAM/ROM, which is impractical, even with compression.

Have you seen this project? Maybe it can be a source of some new ideas.

By aoineko

Paragon (1207)

aoineko's picture

27-11-2022, 18:27

The SCC music I tested with the VGM exporter range from 14 to 185 KB. Smile
I think I can reduce the size by about 1/3 with my lVGM tool (it is not called ayVGM anymore).
But yes, it won't be enough in most ROM games even with a 16 KB mapper.

For the moment I put the project on hold; I prefer to concentrate on adding support for a SCC tracker like Realfun 3 (in addition to Trilo Tracker already added) but if one day I have nothing better to do, I will probably look again at the issue of compressing SCC VGMs.

In my humble opinion, the most interesting approach would be to try to detect repeating patterns.
But for this to be really effective, the data from the different SCC channels would have to be de-interleaved.
It's not complicated, but I'll have to rework completely how my tool handles the data.

By aoineko

Paragon (1207)

aoineko's picture

11-08-2023, 01:37

Hello,

I've updated my light VGM music format.
It's now called lVGM (for light-VGM; extension .lvm) and is no longer exclusive to PSG.
Here is the supported audio chips so far:
• PSG
• OPLL / MSX-MUSIC
• SCC

Format description can be found there: https://github.com/aoineko-fr/MSXgl/blob/main/engine/src/vgm...
I've updated MSXgl (v0.9.9) to handle those modifications.
The s_lvgm sample show case how to use the lVGM replayer.

I also added an option to the VGM converter to prepare data to be split into chunk of a mapper segment size (option --split 16K for example). This allow to have a big music on several segments of a mapper (ROM or RAM) and to get notification when segment number have to be changed.
The MSXgl's sample program showcase the use of 4 segments of the MSX-DOS 2 mapper to be able to playback song up to 64 KB (the only limit is the number of segments allocated to the music).

Speaking of size, here's the average size reduction on the music I tested between the VGM and lVGM formats:
• PSG: 67.75% (was 67.34% with the old ayVGM version)
• OPLL: 56.38%
• SCC: 63.20%

I could easily add MSX-AUDIO support, but it seems harder to reduce the size significantly and I don't know if people are interested.

By ToriHino

Paladin (959)

ToriHino's picture

11-08-2023, 06:48

Great work. OPL4 (together with MSX-AUDIO) would be a nice extension to the format as well.

By aoineko

Paragon (1207)

aoineko's picture

11-08-2023, 13:14

MSX-Audio can be added quickly (MSXgl already supports this audio chip), but for the OPL4 it's more complicated.
First of all, I need to find out how it works, but above all, I don't have an OPL4 card to test with (I don't want to add anything to MSXgl that I can't test on real hardware).

If anyone expresses the need for a version of lVGM for MSX-Audio, I'll be happy to add it. But for the moment, there are already quite a few audio chips to play with. Smile

Page 3/3
1 | 2 |