Converting .vgm to compressed binaries

For anything related to sound (YM2612, PSG, Z80, PCM...)

Moderator: BigEvilCorporation

Post Reply
el-bee
Newbie
Posts: 2
Joined: Sat Mar 29, 2014 9:49 am
Location: Finland
Contact:

Converting .vgm to compressed binaries

Post by el-bee » Sat Mar 29, 2014 10:33 am

Hi!

I'd like to make a very small song binary (max. 32kb) for Megadrive. I'm using Deflemask to compose, but it's very easy to go over the size limit. Eg. adding pattern data to the song quickly bloats the binary.

So far, for making binaries I've found & tested:
  1. Michael Stamper's VGM Player V3.20b, removes 8.5kb off a 43kb test file if using .vgz
  2. badc0de's vgmplay7, actually adds 260b to the same 43kb test file.
Vgmplay7 also only supports vgm v1.5 (=no PCM).

So I'm wondering are there any other conversion tools that could do tighter compression? Or is Megadrive simply "no-go" for anything as small as 32kb?

Any other tool recommendations & tips are welcome too :)

r57shell
Very interested
Posts: 478
Joined: Sun Dec 23, 2012 1:30 pm
Location: Russia
Contact:

Re: Converting .vgm to compressed binaries

Post by r57shell » Sat Mar 29, 2014 11:48 am

el-bee wrote:Vgmplay7 also only supports vgm v1.5 (=no PCM).
Why do you think that vgm v1.5 = no PCM?
VGM support PCM from very first version.

Take a look at VGMTool
NOTE: all you can optimize (for MD) in VGM is samples, and remove unnecessary calls.

If you want smaller, then you must use differeny driver.
For example: GEMS 7 tracks 87 kb sound data. Thread is here.
Image

twosixonetwo
Very interested
Posts: 58
Joined: Tue Feb 25, 2014 3:38 pm

Post by twosixonetwo » Sat Mar 29, 2014 5:28 pm

I'd guess that writing your own player routine and a custom compression for the data would result in a much smaller binary than using vgm and a vgm player. So if you really try to optimise it as much as possible you might want to look into that.

el-bee
Newbie
Posts: 2
Joined: Sat Mar 29, 2014 9:49 am
Location: Finland
Contact:

Post by el-bee » Mon Mar 31, 2014 5:15 pm

R57shell: Because I read it somewhere, wasn't any kind of "official" spec at least :)

I don't know a thing about coding so writing something from scratch is not an option. VGMTool does make a very good optimized vgz (testfile goes down to 4kb), but when I convert it to binary using vgmplay7 it bloats back up.

So yeah, maybe I'll just waste my time on something else. Thanks for the suggestions anyway!

Post Reply