Skip to content

vgmspec151.txt ?

where?

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

Moderator: Staff

  • User avatar
  • neologix Offline
  • Posts: 211
  • Joined: 2012-04-22, 4:03:45
  • Location: New York, NY, USA

vgmspec151.txt ?

Post by neologix »

I'm looking for vgmspec151.txt for comparison purposes to later VGM specs (particularly header size). Anyone here still have a copy of it?
  • User avatar
  • RichterEX2 Offline
  • Posts: 191
  • Joined: 2012-03-30, 9:28:37
  • Location: Georgia, USA

Post by RichterEX2 »

  • User avatar
  • neologix Offline
  • Posts: 211
  • Joined: 2012-04-22, 4:03:45
  • Location: New York, NY, USA

Post by neologix »

thx!
  • snakemeat Offline
  • Posts: 22
  • Joined: 2012-06-04, 5:24:46

Post by snakemeat »

I would say use the 1.60 spec, since the 1.51 spec had at least 6 revisions that I could find. When I opened the 1.60 spec, I discovered that even the latest 1.51 revision in that thread (http://www.smspower.org/forums/viewtopic.php?t=11965) seemed incomplete.

You can find the 1.60 spec here: http://www.smspower.org/uploads/Music/vgmspec160.txt

Also, according to eh 1.60 spec, the 1.51 spec has a header size of 0x80.

Edit: Also be sure to get a file that matches the spec you are using. Shinobi (Arcade) seems to have the size 0x40 header from an early v1.51, while MegaRace (PC/DOS) seems to have the full 0x80 header.
Last edited by snakemeat on 2012-06-05, 5:28:10, edited 1 time in total.
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Wow ... That must be the first revision of vgm spec 1.51 I released ever.

Actually I released a new v1.51 spec almost everytime I updated something.
I recommend to use the v1.60 spec instead. The only difference between 1.51 final and 1.60 are the DAC Stream commands and the PCM RAM writes for the RF5Cxx chips.
I'll sort my stuff and upload the final 1.51 spec to SMSPower. (I found 3 different revisions, too.)

About the header size: In vgm spec. 1.51 I made this rule:

Code: Select all

- The header must have at least 64 bytes. If the VGM data starts at an offset
  that is lower than 0x80, all overlapping header values will be zero.
v1.51 VGMs with a header size of 0x40 bytes are valid. Shinobi (Arcade) uses only the YM2151, so it doesn't need any header data past 0x40.
MegaRace on the other side uses the YM3812 chip, whose header value is at 0x50, so its header must have at least 0x54 bytes.
  • User avatar
  • neologix Offline
  • Posts: 211
  • Joined: 2012-04-22, 4:03:45
  • Location: New York, NY, USA

Post by neologix »

Which VGM packs are actually set to v1.51 (and preferably links to them)?

Regarding versioning and such, it's almost a certainty that I'd be programming either one or both of two possible outcomes from processing a VGM thru the new VGMTool - keep the version the same, or update the version and resulting header to the next highest "stable" version (for pre-1.50 non-YM2612 this will almost certainly result in an update to 1.50, for post-1.50 and pre-1.50 YM2151 it'll likely update to 1.60 or 1.61 until 1.70 is finalized even tho VB sent me a preliminary copy of it). This will be the primary reason for me collecting the various versions of VGM spec, and I'll almost certainly add some sort of checkbox toggle to choose the processing behavior.

The hard part will be processing the rest of a VGM file acc. to version updating, eg optimization of YM2612 DAC data and such.
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

Almost all VGM packs without tables should be v1.51. (A few of them are 1.60.)
For new packs I minimize the version of every VGM by running vgm_ptch over it when repacking, so new YM2151 VGMs have always v1.50, for example.

btw: I recommend to check the source of vgm_ptch and the functions that do MinHeader and MinVer.
I'm sure you can find them useful.
  • User avatar
  • neologix Offline
  • Posts: 211
  • Joined: 2012-04-22, 4:03:45
  • Location: New York, NY, USA

Post by neologix »

ValleyBell wrote:Almost all VGM packs without tables should be v1.51. (A few of them are 1.60.)
For new packs I minimize the version of every VGM by running vgm_ptch over it when repacking, so new YM2151 VGMs have always v1.50, for example.

btw: I recommend to check the source of vgm_ptch and the functions that do MinHeader and MinVer.
I'm sure you can find them useful.
"without tables" - I'm confused what you mean by this; are you referring to the info table that most of the approved submission threads have on this forum?

"vgm_ptch" - Is that short for "patch" ? It's one of the few tools not listed in your VGMTools readme. Also, if a YM2151 VGM were to also have a post-1.50 chip (eg, the OKIM6295), would vgm_ptch leave it as a 1.60 VGM?
  • snakemeat Offline
  • Posts: 22
  • Joined: 2012-06-04, 5:24:46

Post by snakemeat »

ValleyBell wrote: About the header size: In vgm spec. 1.51 I made this rule:

Code: Select all

- The header must have at least 64 bytes. If the VGM data starts at an offset
  that is lower than 0x80, all overlapping header values will be zero.
Thanks, I overlooked that info. That really clears it up then.
  • User avatar
  • ValleyBell Offline
  • Posts: 4767
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Post by ValleyBell »

neologix wrote:"without tables"
Yes, I mean the info table. All newer packs have one, all older packs (that are made before vgmrips startet) don't.
neologix wrote:"vgm_ptch"
Yes, that's short for "patch". It's actual homepage is here, but I haven't updated that one in ages.
neologix wrote:Also, if a YM2151 VGM were to also have a post-1.50 chip (eg, the OKIM6295), would vgm_ptch leave it as a 1.60 VGM?
Yes, for a YM2151 + OKIM6295 VGM it would leave the version at 1.61.
Post Reply