Next Page

Megaman X7 streamed music by DChronos at 10:13 PM EDT on March 21, 2009
I'm uploading the entire folder of music code for Megaman X7 (26 songs, zip size is only 66.7Mb), as well as settings I was screwing with in GENH trying to find out what interleave it has, if any. Playing the files with vgmstream, which works fine, it plays through them and everything, but it plays at super speed. You can tell which song S01.ADS is due to its easily recognized opening, which is Conflict Stage. Songs seem to be in the same order as the soundtrack, too. Also, I recorded it playing this way and slowed the speed way down and can clearly hear notes of the song, so it must be able to be played in its current form, just has the wrong settings.

In GENH, I can only get it to come out one speaker, sounding like a tin can with static pops out the other speaker. Hopefully, someone can figure out how to play these in their original format, as the header seems to hold the loop point values.

In a hex editor, the header appears to be 96 bytes long, first stating SShd, and then under it, 4-5 values in hex.

Screwing with the values in in GENH, I can get it to be recognizable (using S01, as it was the easiest to recognize even in its current super speed form) using 96 as the header length, 2 channels, interleave of 200 or any value +- in 16 (like 216 or 184), and rate of 48000. Check my text file in the zip for loop point stuff... I don't know what they are, but like I said, I'm certain those values are in the header.

Anyway, hope someone else with more knowledge in these can get it running perfectly and get some kickass music going.

Megaman X7 ADS

edited 10:13 PM EDT March 21, 2009
by bxaimc at 12:56 AM EDT on March 22, 2009
hmm, i think header is 96 like you say. interleave i don't remember (need to check vgmstream's source). the sampling frequency might be lower than 48khz if it plays fast. I'll fix 'em up for ya. :)

edited 12:59 AM EDT March 22, 2009
by DChronos at 2:20 AM EDT on March 22, 2009
The frequency sounds like it's 48000, because when I use genh and try those interleave values, it sounds closest around 200, and the speed sounds right. The song length also closely matches what it should be, and at 44100, it sounds too slow.

But thanks for checking it out.

I know these can be played in their original form, though, as .ads, not having to use genh. Just have to figure out why they are playing at super speed and and get them playing right.
by marioman at 2:00 PM EDT on March 22, 2009
This may be a dumb question, but did you know that UF ripped a PSF2 set of Mega Man X7? It is tagged and has 41 tracks as opposed to 26. If you are just trying to get your hands on a music rip, this may be a good solution for you.

edited 2:02 PM EDT March 22, 2009
by bxaimc at 3:55 PM EDT on March 22, 2009
ok. solved it. Details should look like this (disregard the loop end).




edited 4:06 PM EDT March 22, 2009
by unknownfile at 4:48 PM EDT on March 22, 2009
disregard my psf2 rip as it sucks and nobody cares about it.

and didn't those ADSes have support in in_cube some while back? because now they don't, and if you do play them they're all fucked up and weird.
by bxaimc at 5:32 PM EDT on March 22, 2009
These ADS files look like as if some genius slapped a pcm sshd header onto ps adpcm. This explains why they sound like crap.
by DChronos at 12:32 AM EDT on March 23, 2009
Well, still, isn't there something that can be done to make these play without turning them into Genh and forcing someone to have to find the loop points and all that crap? The files have got to play, and hell, I knwo there are special case things encoded into vgmstream for certain games so they play correctly, too.

Also, I can look for more music easily once these play correctly, or upload more files that others can look through, too.

Thanks for figuring out the correct interleave and stuff to play at, though!

But I gotta wonder, how come the header is 40?

Funny thing is, I had the right interleave and rate set, since I tried every interleave value from 10 on up to around 600 something, just had the wrong header length.

EDIT: Nevermind, after looking in the hex editor, I figured out how that value is 40. Now I see how the file alignment is also fucked up due to that and see NOW that it really is PS2 Adpcm after deleting that chunk. Then it looked just like others I've messed with in Wild Arms 3, with a byte at the beginning, a space, and then 14 bytes of sound data.

I'm gonna look at the data and see if the first thing after that incorrect header is the loop point stuff or something.

edited 12:40 AM EDT March 23, 2009

edited 12:52 AM EDT March 23, 2009

Edit 2:
Well, I screwed around in it for awhile, and can't find the loop start number, but I can find all the rest of it easily, in 4 byte increments, read backwards (whatever you call that, little endian?), except for the first 4 as far as I can tell, and converted from hex to decimal:
53 53 68 64 -SShd, wrong file type
18 00 00 00 - I don't know
02 00 00 00 - 2 channels
80 BB 00 00 - 48000 for frequency
02 00 00 00 - 2 channels again...? Not sure.
20 00 00 00 - 32 interleave
F8 33 00 00 - I don't know again
FF FF FF FF - I don't know again again
53 53 62 64 - I don't know, but I thought this would be
-- -- -- -- a loop point value, because:
80 FB 37 00 - This is the exact file size without the 40 byte
-- -- -- -- header, and the loop point end

I'm out of time, so may one of you can figure out what number set in that header is the loop start point. I tried a bunch of combos and values in the start loop in the byte box, converted to samples.

edited 1:51 AM EDT March 23, 2009
by bxaimc at 4:14 PM EDT on March 23, 2009
It would be possible if that stupid byte at 0x8 wasn't 02. This is the byte that vgmstream to differentiate between PCM and ADPCM. I think channel count was at 0x16, 0x24 was sample count before the conversion, 0xC is the Frequency, and 0x14 is the interleave value iirc. Header size is 0x28 (40) because I remember it was written in vgmstream's source :P. Also, there doesn't seem to be any loop points within the header. Because of this, GENH is really the only best solution.


edited 4:30 PM EDT March 23, 2009
by DChronos at 5:44 PM EDT on March 23, 2009
I'd really love to know where to find the code in these games that tells the machine where the loop points for each song are at.

This is some of my favorite VG music, so I I guess I'll take some time to figure it out and make these into a set along with the Wild Arms 3 I was already working on, cutting out all redundant blank data on to save space.

I'll try to locate all the other data, too.

I have to ask something, since the header is wrong anyway and just taking up space... would you guys care if I deleted those bad headers and leave only the music data for making the GENH files?

Next Page
Go to Page 0 1 2 3

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source