FIFA 97 Saturn Commentary Export Help by adams06 at 8:59 AM EST on February 25, 2025
Hello to everyone. I want to ask you for help. I tried to extract commentary audio files from Sega Saturn FIFA 97 Game. There is one audio file PBP.MCD. I am mannualy extracted first file from it with hxd, and then try to open with Audacity imported raw. I tried 16 PCM 11025, bigendian, and I heard Motson to said 'Botafogo', but there are too much noise. I tried other values, but without success. Also, inside fifa bin there is another file PBP.HCD. Maybe that files are linked. I also tried to add bites from PBP.HCD to extracted file, but without success. I tried ffmpeg conversion, vgmstream also, sox and 'Saturn PCM <-> Windows WAV' , But also without success :)
Seems to be encoded in some 8-bit logarithmic format (like a-law or mu-law, but it's not). I cannot make sense of it at this moment (maybe later). Bit 7 of each byte could be the sign bit, 5 and 6 could be a bit-shift amount, the other 5 bits might be raw samples. Or it's some ADPCM variant. The PBP.HCD file could be a table with coefficients. Not sure.
OK, I figured it out. It is indeed just a logarithmic format quantized to 8 bits (quiet sections have more resolution than loud ones). The expanded, linear format is 16 bits. But the PBP.MCD file has no offset table, which makes automatic extraction a lot harder. It has a file size for each sound but no offset. I could write an extractor that just skips groups of zeros until the next 4-byte-aligned integer is found but this will not guarantee correct extraction because a silent portion of some sound might be recognized as padding to the next sound. Is there some other file with an offset table?
Hmm. That is interesting. Never heard before for that. If you can would be awesome to do that extractor and tomorrow I can check other files in game for that offsets.
Ohh nice. Thank you very much. That is awesome. Can you tell me how you convert that files to clear PCM? Do you have some program or script? [edit] (18 hours left)
I write my own programs/tools if the problem is small enough to justify it or if the thing you want to do is so specific/niche that no other tools exist. Sometimes it's faster to simply write a new program than to search for and toying around with existing tools.
The actual algorithm for conversion was: create a 16-bit lookup table with 256 entries where the index into the table is the input signal. Each table entry represents a 1/256th piece of an exponential curve with a power of 8 which is scaled to the range of -32678 to 32767. You read a byte, use this as index into the lookup table und the value you find there is the output sample.
edited 6:46 AM EST February 28, 2025 [edit] (22 hours left)
To be honest, I don't how to do that :D Sorry again. Can you please for another favor about 'same' problem..? PC files for same game have a little different structure. I wrote python script with chatgpt help to extract viv files and the convert to wav. But I am not satisfied with result, because of loudness, and noise. As I understand, that are a vox adpcm files, and need to convert to wav. But.... Maybe that is the same think. Can you take look on files? PC Example [edit] (23 hours left)