Previous Page | Next Page
- by id-daemon at 6:59 AM EDT on May 21, 2016
- Yeah, it was a cool story. Many rounds of precision increase (iterations), and finally I calculated the exact values.
First I found the interleave scheme. Initial samples, nibbles. I thought it was IMA like in MTAF, but it was not. After more analizing the nibbles, I understood it was XAS variant, but with bigger tables. Instead of just 4 predictor types and 13 shifts (from 0 to 12 bits), like in EA XAS, in has 8 types and 32 scale coefficients.
I had no idea of the table values. So first I tried decoding each block and see if it will correspond with the initial sample value of next block. I took very quiet first blocks, which had 0 shift/scale. Predictor 2 was most used, so I tried it first, then others. This way I found that actually first 5 types (predictors) were usual XAS types. 240/0, 460/-208, you know that. Other 3 predictors were probably invented specially for MTA2.
Then I had to do something with scale table. I made a very rough approximation of all 32 values, and that allowed me to decode the whole music track. It was heavily distorted, as you can imagine. I still have that sound saved for history :)
Then one by one I started to correct the table values. After many iterations I was able to increase precision of predictors and scale table in turns. It was slow, so I made a solver, just as you did. It allowed me to find exact predictors values. The deltas were so clear, that I have no doubt, they are correct.
The final step was to find exact values for scale table. Music track couldn't help me with that, because highest values were rarely used, and lowest values introduced too much of a range. So I had very good approximation in the middle of a table, and not-so-good at the ends.
Then, after making a visual graph from these values, I suddenly understood they were calculated by some simple and logical formula. After some time, I was able to guess that formula, and the result was a perfectly clear sound.
edited 7:03 AM EDT May 21, 2016
- by AnonRunzes at 10:14 AM EDT on May 21, 2016
- @id-daemon - That's cool to hear how you made decoding MGS4's audio format possible but why Java?
- by id-daemon at 10:36 AM EDT on May 21, 2016
- I was not making the tools. I researched the algorithm and tables. Tools were made by other people.
edited 10:36 AM EDT May 21, 2016
- by AnonRunzes at 10:41 AM EDT on May 21, 2016
- @id-daemon - I see. It still bugs me though, since there should be more similar tools beyond the .jar one.
edited 10:42 AM EDT May 21, 2016
- by id-daemon at 11:29 AM EDT on May 21, 2016
- well i could release my tool used for experiments as a normal .exe, but there are so many types of containers... movies, voices, sfx, they all use the same codec.
- by hcs at 11:32 AM EDT on May 21, 2016
- Thanks for the story!
- by AnonRunzes at 11:37 AM EDT on May 21, 2016
- @id-daemon - Well I don't see the reason why not...
- by id-daemon at 11:56 AM EDT on May 21, 2016
- Because I'd have to learn and support all these containers, or you'll have to extract streams from them yourself.
- by AnonRunzes at 8:59 PM EDT on May 21, 2016
- @id-daemon - That`s exactly what I`m lacking at.
Is there any way to extract these .dat files?
- by id-daemon at 5:14 PM EDT on May 23, 2016
- What are dat files? Can you give an example?
Previous Page | Next Page
Go to Page 0 1 2 3
Search this thread
Show all threads
Reply to this thread:
HCS Forum Index
Halley's Comet Software
forum source