Previous Page

by bnnm at 6:53 AM EDT on August 20, 2017
I'll try, but the main problem is that XMPlay subsong stuff seems to be made for CUEs.

Apparently expects you to know all subsong times on file open, and that channels/sample rate stay constant, which doesn't make sense for vgmstream's subsongs (completely separate streams).

If you guys know of xmp plugins with subsongs like this it would help.
by marcusss at 10:03 AM EDT on August 20, 2017
Thanks for the pcmfloat update bnnm. Haven't come across any other games using it but hopefully they work fine now :)

All FS5 music work in Anima except for 1 so figured you might want to look at it. Only 2 MB file so not much but maybe another FSB5 variation?


edited 11:05 AM EDT August 20, 2017

edited 11:06 AM EDT August 20, 2017
by daddesio at 10:12 AM EDT on August 20, 2017
Hi, I'm responding to your earlier comment on August 5, 2017:

>EA's SCHl support is mostly complete except:
- missing MicroTalk (FIFA 2001/2002 PS2) --unknown algorithm (similar to Westwood VBR ADPCM?)
>If you know of unplayable EA SCHl (.MUS/ASF/EAM/SNG/AUD/etc, *not* .SNS/SPS/SNU as that's for another day) now is the time.

I reverse-engineered MicroTalk for The Sims Online back in 2012 (didn't know it was called EA MicroTalk at the time). It's a fairly simple linear-predictive speech codec. Yesterday, I cleaned up my documentation and code and wrote decoders for The Sims Online, Beasts & Bumpkins, and FIFA 2001/2002 PS2. All my code is public domain.


I'd be happy to write a decoder for vgmstream if you need any help, or I can help with bug-hunting if you run into any problems implementing it.

You can find me as daddesio on Freenode.

by bnnm at 10:41 AM EDT on August 20, 2017
Wow! Thanks a lot! Didn't think somebody would have already figured it out. The "MicroTalk" name sure didn't ring many bells. Interesting that sx.exe supports it for most platforms yet it's so rarely used.

I'll try to implement it based on your code (good to have something to do during boring times at work) though I don't actually know much about codec theory, I hope it isn't too complex.

Also note that there is a (probably unused) variety of MT10:1 that has PCM blocks (as generated by sx.exe v3.x, like MT5:1), and I suspect MT5:1 also had an early version without PCM blocks (if you try sx.exe -history you can see references to it being removed for a while).

Probably not needed anymore (didn't check your docs thoroughly yet) but I put my simple notes at the bottom of this file

@marcusss - that one is the even rarer FSB5 PCM8, them crazy indies. Very easy to add tho.

edited 11:08 AM EDT August 20, 2017

edited 4:39 PM EDT August 20, 2017
by daddesio at 1:45 PM EDT on August 20, 2017
Oh, you're right, whether or not the PCM data is present is simply a matter of the codec revision (specified in the PT header), not whether it's MT10:1 or 5:1. (This means MT10:1 and 5:1 are *the same codec*, the encoder simply encodes with different parameters.)

In fact, the function 00411013 in sx.exe v3.01.01 returns 1 if the codec supports raw PCM (using the 0xee command) and 0 otherwise. If the codecid is not 0xa (EA XA ADPCM), 0x4 (MicroTalk 10:1), or 0x16 (MicroTalk 5:1), it returns 0 immediately. Otherwise, it checks the PT platform code (the two bytes after "PT") and the value of the 0x80 (Codec Version) field. If either the codec version is > 2 (unsigned comparison) or the platform is NOT one of the following values (0, 3, 5, 6, 7, 8), then it returns 1 (PCM data is supported), otherwise it returns 0 (PCM data is not supported).

Although it probably wouldn't hurt to solely look at the codec version.

edited 1:53 PM EDT August 20, 2017

edited 1:54 PM EDT August 20, 2017
by marcusss at 5:46 PM EDT on August 20, 2017
@bnnm. Yeah the game has pcm float, pcm8 pcm16 ,vorbis etc..crazy indies indeed !
So many types used in 1 game. Also some music is in both vorbis and pcmfloat..

Maybe 1 is ingame another is ending or soundtest or something.

Thanks as always


edited 5:47 PM EDT August 20, 2017
by AnonRunzes at 1:39 PM EDT on August 21, 2017
So, I had to update my RXWS script today. It can now handle "MARK" chunks(never seen on .XWS format). I'll be uploading a new rip that reflects this change.
by bnnm at 1:46 PM EDT on August 21, 2017
@daddesio - just in case you didn't know, there is a also sx.exe 2.x in the wild, generates MTs closer to FIFA2001 (without PCM blocks).

There is also a MT variation with a flag every new SCDl block, but I think that's a version/quirk of the blocks, not the codec.

A minor nitpick though, I think calling 'MT with PCM blocks' MT Revision 3 is a bit misleading.
The 0x80 field should refer to the file/library itself, not the codecs, as the field is included even without MT/EA-XA.
For example with sx2 and sx3 you can create streams of different revisions that are byte-exact (like PCM, and the PCM codec clearly doesn't change).

FFmpeg also calls EA-XA with ADPCM history "EA ADPCM R1", and without it "EA ADPCM R2", but from my tests the logic to determine if history is used is more complex than just the revision field.

Previous Page
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135

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=]Link[/url]


HCS Forum Index
Halley's Comet Software
forum source
Generated in 0.0208s;