READ THE RULES: Click here

Follow us on Facebook: https://www.facebook.com/xentax/ :)

XMA transform

Get help on any and all audio formats, or chip in and help others!
AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Tue Jul 03, 2012 6:06 pm

UPDATE

1. Introduced the option to skip the parsing of files. This needs to be applied when the stream already has the appropriate form, only the header needs changing. And yes, this will also be implemented into the automated identifier later. ;)
2. Added support for both *.res variants from the Battlefield Engine. :)

TIP: When all files from the test run only consist of the XMA header, try to set XMAVERSION to 1. If that doesn't help, set SKIPPARSE to 1. If that doesn't help either: PM ME! ;)
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Wed Jul 04, 2012 9:47 pm

UPDATE

Added support for xma streams with "XWV " identifier (encountered in Bloody Good Time XBLA as *.360.wav but I guess there are more games with this format).

How many more variants can there possibly be out there.... But hey, that's what I'm here for. ;)

To be honest, those *.res files don't properly work yet (only that one variant) - I'll need to implement the ea_multi_xma functionality, too. Nothing too special but unfortunately I don't have a multilayered EA XMA file here, so if anybody can provide me with one, I'll be happy to include the complete heuristics. :)

Remember: A little thanks doesn't hurt. :)
Last edited by AlphaTwentyThree on Wed Jul 04, 2012 10:51 pm, edited 2 times in total.
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Wed Jul 04, 2012 10:46 pm

UPDATE

Coincidentially stumbled upon another variant and added support: Microsoft XNA Framework *.xnb files (encountered in Boulder Dash XL XBLA). :)

Remember: A little thanks doesn't hurt. :)
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

OrangeC
double-veteran
double-veteran
Posts: 860
Joined: Sun Apr 20, 2008 2:58 am
Has thanked: 5 times
Been thanked: 33 times

Re: All things XMA

Post by OrangeC » Wed Jul 04, 2012 10:52 pm

Thanks!

AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Fri Jul 06, 2012 1:05 pm

MAJOR UPDATE!

Ok, this is the biggest update so far and I've worked several hours at this one. The then already big script with 250 lines now has more than 700.

First of all, I've given the whole script a more comprehensive structure: I've sorted the functions to where they are used and given each one a header. To find what you're searching, I've added a table of contents to copy and search for the needed paragraph.

And then there are the internal updates and additions:
1. introduction of a more sophisticated test mode for the first run (very useful):
- always writes two unparsed files to disk, one with header (if the file doesn't need to be parsed at all), one without header for manual testing with xma_parse (if the test mode doesn't produce any usable results)
- tests various block sizes and both xma versions in the parsing and writes files to disk with names according to the xma_parse function call
- if the file is multichannel, only the first channel pair is parsed in test mode to speed it up
- the test mode can additionally be sped up a great deal by only testing for the most common block sizes and skip the XMA1 tests
2. new file supports/corrections:
- option to skip file parsing and just add a manipulated header in the final run
- EA XMA multilayer variant working for single layer (multi_ea_xma functionality implemented)
- support for headerless streams - now the script can also function as a normal header adder!
- support for RIFF files with XMA2 identifier after the data stream
- corrected the processing for big endian RIFX files
3. some major internal changes regarding processing order and option processing (basically, everything is better than before ;) ).

This is a really big step forward. It accelerates XMA transformation processes by far and is much easier to use and understand!
So, try out the new script and if you like it, click the "Thank" button of this post (and for the first one if you haven't done so already) :)
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

OrangeC
double-veteran
double-veteran
Posts: 860
Joined: Sun Apr 20, 2008 2:58 am
Has thanked: 5 times
Been thanked: 33 times

Re: All things XMA

Post by OrangeC » Fri Jul 06, 2012 6:15 pm

WOW WOW WOW!! alpha your work on xma transformation is just phenomenal!! I cannot wait for the other features such as blocksize detection.

EDIT: Strange your zip file says: no files to extract.

Gh0stBlade
Moderator
Posts: 683
Joined: Mon Jul 05, 2010 8:55 pm
Has thanked: 20 times
Been thanked: 325 times

Re: All things XMA

Post by Gh0stBlade » Fri Jul 06, 2012 6:35 pm

What about Resident Evil 6 XMA??
Click the thanks button if I helped!

AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Sat Jul 07, 2012 2:23 am

OrangeC wrote:WOW WOW WOW!! alpha your work on xma transformation is just phenomenal!! I cannot wait for the other features such as blocksize detection.
Glad you like it. :)
OrangeC wrote:EDIT: Strange your zip file says: no files to extract.
fixed ;)
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Sat Jul 07, 2012 2:24 am

C00L12345 wrote:What about Resident Evil 6 XMA??
Try my script and PM me if it doesn't work. :)
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

Gh0stBlade
Moderator
Posts: 683
Joined: Mon Jul 05, 2010 8:55 pm
Has thanked: 20 times
Been thanked: 325 times

Re: All things XMA

Post by Gh0stBlade » Sat Jul 07, 2012 12:18 pm

AlphaTwentyThree wrote:
C00L12345 wrote:What about Resident Evil 6 XMA??
Try my script and PM me if it doesn't work. :)
Thanks alot :D
Click the thanks button if I helped!

AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Sat Jul 07, 2012 8:03 pm

UPDATE

Added support for reversed-header RIFF xma, used in Resident Evil 6.
Note that the decoded wave files may play with the exact double frequency, so you'll need to change that, e.g. with this script (only apply on the decoded wave files!):

Code: Select all

goto 0x18
get FREQ long
math FREQ /= 2
get SIZE asize
putVarChr MEMORY_FILE SIZE 0
log MEMORY_FILE 0 0
append
log MEMORY_FILE 0 SIZE
append
putVarChr MEMORY_FILE 0x18 FREQ long
get NAME basename
string NAME += "_new.wav"
log NAME 0 SIZE MEMORY_FILE
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Sun Jul 08, 2012 12:41 am

UPDATE

After some tests and undecodable multichannel SoundNodeWave, I made some corrections and improved and expanded the XMA stream start detection.
Unless you encounter some special files, you won't notice any difference. Still I thought it's enough for an update. ;)
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Wed Jul 25, 2012 7:19 pm

Some *.soundnodewave files didn't work, so I made another little update a week ago - added a much more sophisticated way to detect xma starts.
Process has been slow recently, but I'll update the script frequently as soon as I've overcome the motivational blockade for another update. ;)
Next update will include the scanning of some miscalleneous format that may or may not include an XMA stream. So you'll be at least able to tell if the file contains an XMA start or not and can send me the file.
Another thing: Including automatic blocksize detection isn't economical at all because the script would check all possibilities for each file, even of run in batch mode. Thus, it will take much too long - it's faster to run the test mode for one file and set the variables accordingly. And checking for the biggest file from the test mode shouldn't be the problem here. ;)
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

nitoiviorel
beginner
Posts: 21
Joined: Fri Oct 07, 2011 11:37 am
Has thanked: 3 times
Contact:

Re: All things XMA

Post by nitoiviorel » Mon Sep 10, 2012 11:38 am

I made extract some files without name and extension from chuncksaudio.toc .sb.
I start demux that 774 files using ea multi xma.
All was fine but i meet a problem:not exactly but i demux only 60%.ea_multi_xma skipped many files and i cant demux.

I open quickbms,select ur script then select file wich result from chuncksaudio.toc and nothing hapening.
Need for Speed The Run xbox file
Last edited by nitoiviorel on Mon Sep 10, 2012 1:37 pm, edited 1 time in total.

AlphaTwentyThree
double-veteran
double-veteran
Posts: 984
Joined: Mon Aug 24, 2009 10:55 pm
Has thanked: 75 times
Been thanked: 622 times

Re: All things XMA

Post by AlphaTwentyThree » Mon Sep 10, 2012 12:49 pm

Please remove the links first and PM them to me!
I haven't finished my research on the EA XMA variant yet. But just one variant missing, the others seem to work fine. But until everything works, I won't add it to the transforming script. ;)
Anyway, it's always practical to have more examples to look for other variants and to test the script.
Last edited by AlphaTwentyThree on Wed Oct 03, 2012 4:24 pm, edited 1 time in total.
If you like what you see, why not click the little Thank You button? ;) It will definitely motivate me! :)
And here's Mr.Mouse's Facebook link: http://www.facebook.com/permalink.php?s ... 8469022795 - thanks ;)

Post Reply