0

I'm trying extract .wav files from a datafile, and each file has some metadata at the end of it. It contains a date, '1996-05-16' as shown here:

enter image description here

Most of these dates for the files are correct, but some have special chars in them, like here:

enter image description here

What's going on? I'm using the HxD editor.

edit: also seeing these zeros between 'RIFF' which should be a complete word/identifier for WAV files. Is the data corrupted? I get the feeling the .EXE might be doing some decoding on this data? enter image description here

4
  • You mean the 0x04 it normally indicates[ end of text , end of data or ctrl+D ](en.m.wikipedia.org/wiki/End-of-Transmission_character)
    – blabb
    Aug 6, 2023 at 7:23
  • I see, and the 0x020 befire it is a space right..but what is it doing right in the middle of a date? I doubt it's been entered like that originally, so maybe a property of the metadata of the wav?
    – Oli
    Aug 6, 2023 at 9:55
  • Probably corrupt you can see S in SoundForge is different charecter in one screen shot you posted
    – blabb
    Aug 6, 2023 at 13:40
  • I think I found the problem..the data is slightly compressed, I found this in the log: 1io_Io(457) processing volume: white1s.vol 1io_Io(466) allocating 496kB... 1io_Io(476) reading and decompressing 467kB...
    – Oli
    Aug 6, 2023 at 13:47

2 Answers 2

0

Looks like some form of run length encoding could be custom since it's quite simple to write. You can lookup run length encoding in TGA image files for a code example. But personally I would first check if it's LZ4 since that uses RLE. You will likely need to use the LZ4 api if so. I would write a for loop that attempts to LZ4 inflate at offset 0,1,2,3,... and see if any complete without error and have an expected size.

1
  • Thanks, this gives me a nice start to look into this
    – Oli
    Aug 7, 2023 at 7:10
1

Looks like my file has some sort of compression, I just found this info in the logs of the game that's using the datafile:

1io_Io(457)      processing volume: white1s.vol
1io_Io(466)      allocating 496kB...
1io_Io(476)      reading and decompressing 467kB...

Now I'll have to dive into a debugger to see what's going on

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.