OPNA2608 / libopenpmd

Open-Source library to parse PMD files.
GNU Lesser General Public License v3.0
17 stars 1 forks source link

Additional PMD format doc #2

Open bunnylin opened 4 years ago

bunnylin commented 4 years ago

Hi! I did a bunch of work to figure out how exactly to interpret .M and .M2 files some time ago. I think my documentation is thorough enough to maybe be useful for you?

https://gitlab.com/bunnylin/supersakura/blob/master/doc/pmd.txt

OPNA2608 commented 4 years ago

Hey! Apologies for the delay, I've been busy with finals and some other stuff for awhile and wasn't able to do much work on this.

KAJA has actually released the source code to his tools on his website. I don't want to peek at those sources - aside from this being more of a hobby project in format analysis, his code doesn't come with any licensing information and that puts me in an awkward position if I take any references from it for this LGPL project without asking him for a statement - but maybe this information is of use to you.

Your section "Metadata tracks" says that only the PPZ bank name is version-dependent. It's been awhile since I wrote my initial documentation, but the PPS bank name might be version-dependent as well. The changelogs indicate that the #PPSFile setting was formally introduced with version v4.2, though I don't actually remember if I ever found modules <v4.3. Additionally, v4.1 mentions a bugfix for Memo detection so I think it's possible that such old versions also contained such a metadata section.

I'll try to get a big collection of various versions soon for more thorough testing of this.

Additionally, take note that the PPZ channels can actually take either PPZ PCM or PVI ADPCM sample banks, see PMDMML §2.26. "PPZ PCM Filename Setting". Your documentation only mentions PPZ PCM.

I'll see if I can incorporate it in any way. Wrt PMD itself I'm still missing information on the alternative sound chips (first byte) and their peculiarities (patch formats, channel amounts & order), some more data on alot older versions and when certain sections may be missing as well as the PX version of the driver (I think the last one may be a huge first step in terms of documentation for that format). Also on the list are all the sample bank formats, PC-98 or not.

Thanks for reaching out though! I'll get in contact if I have any more notes/questions.

bunnylin commented 4 years ago

No worries, thank you! I'll need to look into that more.