Skip to content

VGM header question

Technical discussion about the VGM format, and all the software you need to handle VGM files.

Moderator: Staff

  • fever500 Offline
  • Posts: 62
  • Joined: 2022-06-12, 17:08:56
  • Location: FRANCE

Re: VGM header question

Post by fever500 »

Hi,
It's a 1.51 version file so the header is only 0x80 bytes in length.
So at 0x80 you start to have data.

Re: VGM header question

Post by Soundshock »

VGM version 1.5 onward has a variable size header, everything after the data start point defined at 0x34 can be ignored. So in your example the start point is 0x4C + 0x34 = 0x80

If the VGM version is older than 1.5, then the start point is implicit based on the VGM version I think. This is still done if the vgm can get away with a minimalist header

Re: VGM header question

Post by Soundshock »

version is at 0x08
Version number in BCD-Code. e.g. Version 1.70 is stored as 0x00000171. This is used for backwards compatibility in players, and defines which header values are valid.
Most of the header is in uint32 little endian, but the version is encoded numerically (though it's still read right to left). The documentation has an error here, 0x00000171 would be version 1.71, not 1.70
Post Reply