Tyulis / 3DSkit

A multi-purpose and pluggable program to extract and repack files found in 3DS (and some other Nintendo consoles) games
GNU General Public License v3.0
68 stars 11 forks source link

bksnd support #21

Open Migushthe2nd opened 5 years ago

Migushthe2nd commented 5 years ago

I'm sorry for asking so much of you, but there seems to be a completely new filetype used on the Switch: bksnd. The folder the files are in is called 'sound' which would mean the snd stands for sound. The b probably means Binary and the second letter is part of the codename of the device. My Switch's codenumber on the back is BKEHAC001, which just is Nintendo's grantee code. The bksnd files are not the sounds themselves, because those are in the bfsar. I'm just giving these files to you because 1. I am curious and 2. I'd like to see if there's something editable. image I can provide you with the files again: https://drive.google.com/drive/folders/1dz1myNu84X7_FPtqWifFeYrstVwlFNkX?usp=sharing

Tyulis commented 5 years ago

No problem ;) These are indeed sound files, BFSAR stands for Binary caFe Sound ARchive, it's an archive format used to store sound files, already in WiiU games. 3DSkit already has partial support for BCSAR, the 3DS equivalent. The BKSND is probably some kind of sound effect, with the K being something in the Switch's code name, like CTR for 3DS and F for Cafe in WiiU. I'll try to take a look as soon as I can ^^

Migushthe2nd commented 5 years ago

I searched through the NXSDK (I rememberd I still had it) with a grep program, but there seems to not even a single reference to a bksnd file while bfsar has over 200 references. Edit: I'll search through a newer sdk version

Tyulis commented 5 years ago

Ok, BFSAR has a structure similar to BCSAR. On the other hand, BKSND files look very weird, I can assure that it is not basic audio data, as it contains many strings everywhere in the file. Maybe some kind of "table", or "script", or a sequence like MIDI, but I don't see why they wouldn't use FSEQ files as usual. I don't know for the moment. I didn't found anything about this format elsewhere, except two random firmware updates reports on switchbrew, so I'll try to do that myself.