How to create SFX for Moonsound's FM registers ?

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

Par Grauw

Ascended (10821)

Portrait de Grauw

16-02-2022, 00:32

Also after more analysis of the VGM data, MoonBlaster seems to set the wave table number and ADSR parameters every time a key-on is done. This is a massive waste of time and data, and vgm_cmp also does not seem to catch it. Adapting the script to optimise this:

Track            Length  Original  vgm_facc   Custom   Freq-opt  Wave-opt
01_Title.vgm      1:55    287 kB    259 kB    132 kB     99 kB     77 kB
02_Map.vgm        0:14     26 kB     24 kB     12 kB     10 kB      8 kB
03_Palm.vgm       1:38    187 kB    172 kB     87 kB     72 kB     55 kB
04_Battle.vgm     1:33    309 kB    278 kB    141 kB     99 kB     80 kB
05_Death.vgm      0:04      8 kB      7 kB      4 kB      3 kB      2 kB
06_Over.vgm       1:22    110 kB    100 kB     51 kB     38 kB     31 kB
07_Bonus.vgm      0:49     96 kB     87 kB     44 kB     35 kB     26 kB
08_Ice.vgm        2:15    454 kB    406 kB    206 kB    132 kB    115 kB
09_Ruins.vgm      1:59    373 kB    336 kB    170 kB    126 kB    101 kB
10_Forest.vgm     1:46    339 kB    307 kB    156 kB    120 kB     96 kB
11_Complete.vgm   0:06     19 kB     17 kB      9 kB      6 kB      6 kB
12_Credits.vgm    0:18     46 kB     42 kB     21 kB     18 kB     14 kB

Total            13:59    2.2 MB    2.0 MB    1.0 MB    755 kB    608 kB

Now these last two optimisations I haven’t tested playing on an actual (or emulated) OPL4, but I believe it should work fine. But in the mean time, our test data has shrunk to just 27% of the original VGM size.

Par Grauw

Ascended (10821)

Portrait de Grauw

16-02-2022, 01:40

A working player: 07_bonus.com (26996 bytes)

Plays track 07_Bonus (26307 bytes), and works great on my real OPL4.

It needs some more work, e.g. there’s no banking yet so it can’t play anything larger than 50 kB or so, and I’m not handling certain edge cases properly, but it’s a nice proof of concept.

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