Citizens of Earth [Eden Industries] Music.fc (WiiU)

Codecs, formats, encoding/decoding of game audio, video and music
JackTheRipper
Posts: 51
Joined: Mon Jan 10, 2022 12:12 am

Citizens of Earth [Eden Industries] Music.fc (WiiU)

Post by JackTheRipper »

I'm trying to extract the files with proper names.

If so, there are known types: PC - OGG, 3DS - BCWAV, Vita - HEVAG, Wii - DSP

File #1: Audio.fc which contains the names
File #2: Music.fc which contains the data
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Citizens of Earth [Eden Industries] Music.fc (WiiU)

Post by AlphaTwentyThree »

can you please upload these to a different hoster? Zippyshare is blocked in my country.
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Citizens of Earth [Eden Industries] Music.fc (WiiU)

Post by AlphaTwentyThree »

Never mind, used a proxy.
audio.fc has a different entry count than music.fc (3871 vs 3898) - are you absolutely sure that these belong together?
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Citizens of Earth [Eden Industries] Music.fc (WiiU)

Post by AlphaTwentyThree »

Here's the script for the Music.fc:

Code: Select all

endian big
goto -4
get FILES long
savepos TOC
xmath TOC "TOC - 0x10*FILES - 4"
goto TOC
for i = 0 < FILES
   get CRC long
   get OFFSET long
   get SIZE long
   get ZERO long
   string NAME p "%08x.dsp" CRC
   log NAME OFFSET SIZE
next i


Audio.fc doesn't contain any offsets and the CRC values don't match either. Most of the data isn't even sequential with hundreds of files having the same values. Test this script on the file and you'll see:

Code: Select all

endian big
goto -4
get FILES long
savepos TOC
xmath TOC "TOC - 0x10*FILES - 4"
for i = 0 < FILES
   goto TOC
   get CRC long
   get OFFSET long
   get SIZE long
   get ZERO long
   savepos TOC
   goto OFFSET
   get ZERO long
   if ZERO != 0
      do
         get TEST byte
         get DUMMY threebyte
      while TEST == 0
      savepos MOFF
      math MOFF -= 4
      goto MOFF
   endif
   get NAMEL byte
   getDstring NAME NAMEL
   get UNK1 long
   get UNK2 long
   get UNK3 long
   get UNK4 long
   get UNK5 long
   print "%i% - %UNK1% %UNK2% %UNK4% %UNK5% %NAME%"
next i


Long story short, there has to be some other file that points in the right direction. Unless anyone has an idea how the CRC values between the first and second file correspond.
AlphaTwentyThree
Posts: 909
Joined: Sat Aug 09, 2014 11:21 am

Re: Citizens of Earth [Eden Industries] Music.fc (WiiU)

Post by AlphaTwentyThree »

Here's a list of the files in audio.fc. You can see that not even the music is there in names - 91 music files in main archive, 81 names in audio.fc
On the other hand, I've checked for duplicate files in the main archive and found quite a few - now we have less files than names. Good sign. Maybe the CRCs refer to a size rather than a name... Will investigate a bit further on this.