Skip to content

VGM "data bank" help

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

Moderator: Staff

  • saxman Offline
  • Posts: 2
  • Joined: 2024-08-07, 20:55:09

VGM "data bank" help

Post by saxman »

Hello. I don't know where to post this to increase my chances of a response, but let's try this and see how it goes:

I'm looking at https://vgmrips.net/wiki/VGM_Specification, and I'm reading about the 0x90-0x95 commands. It mentioned "data banks". Searching around the page and across the web, I have yet to find a definition of data banks. I thought they might be the same as "data blocks", but the text saying that "multiple data blocks expand the data bank" seems to indicate they're different.

I just want to know how this stream data should be formatted, and the documentation doesn't spell out where the data being referenced actually goes. I wonder if the (well-meaning) folks who wrote this have actually tried to follow their own documentation, because I am not convinced there's enough information here. Or I'm missing something that's there that just isn't obvious to me.

Is there anyone who knows and is willing to help me understand?
  • User avatar
  • ValleyBell Offline
  • Posts: 1602
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Re: VGM "data bank" help

Post by ValleyBell »

Well, the way this worked was, that I wrote the VGMPlay implementation first and then later I wrote the specification based on that.

The way it works is like this:
  • a "67" command defines a data block
  • multiple "67" commands of the same "data type" (in the range 0x00..0x3F) form a "data bank"
    i.e. you can have one block "67 66 00" for the "kick" sample and another "67 66 00" block for the "snare" sample
  • command "91" assigns such a data bank to the PCM stream
  • command "95" can play a specific "sample" of the assigned data bank, which equals to the contents of one "67 66 xx" command
  • saxman Offline
  • Posts: 2
  • Joined: 2024-08-07, 20:55:09

Re: VGM "data bank" help

Post by saxman »

Thank you, this is very helpful! Questions:

1) Does it matter where the 67 commands are located, or should they always be assumed to be before the 9x commands?

2) Are there any good VGMs I can use to test this with that employ this method? The ones I've tried out don't use the 9x commands at all, or they have 9x but don't have 67/68 commands (are these corrupt??).

VB edit:: removed fullquote
  • User avatar
  • ValleyBell Offline
  • Posts: 1602
  • Joined: 2011-12-01, 20:20:07
  • Location: Germany

Re: VGM "data bank" help

Post by ValleyBell »

  1. In practise, "67" commands should always be at the beginning of the file, before the "91" command. However there is strict enforced rule that this is the case.
  2. You won't find any VGMs in the "MegaDrive" section that use the PCM streaming commands. Those are all using VGM v1.50 features, which keeps the jitter intact.
    For "67/68" you can use Sega System 18/32 VGMs that use the RF5C68. And "Sonic CD".
    For "67/9x", use one of the many Sharp X68000 VGMs that use the OKIM6258. Or "Rusty" and "Totsugeki Mix" (NEC PC-9801).
Post Reply