I... know right ?https://gist.github.com/SciresM
All the important code is from here, this is just in noob friendly form.
Talking about the GUI
I... know right ?https://gist.github.com/SciresM
All the important code is from here, this is just in noob friendly form.
Looks like Zelda's bar files are slightly different.Awesome tool!
I just made a tool myself for viewing and extracting MK8D's BARS archives (they might work for Zelda's as well) but I'm wondering if I should make an entire thread for it.
Already posted it in the general Switch hacking thread so maybe not?
How so?Looks like Zelda's bar files are slightly different.
Switch BFWAV files are little endian instead of big endian, so VLC might not support the endianness swap.It sort of works, but VLC doesn't like the BFWAV files it outputs. Am I being stupid, or is it just not compatible?
What program would you recommend to open them? PLEASE don't say Windows Media Player.How so?
Switch BFWAV files are little endian instead of big endian, so VLC might not support the endianness swap.
AMTA is at offset 0x000003D0 vs. 0x00000030 for Zelda.How so?
Switch BFWAV files are little endian instead of big endian, so VLC might not support the endianness swap.
AMTA chunks aren't constant to their locationAMTA is at offset 0x000003D0 vs. 0x00000030 for Zelda.
It only likes some of the files. A lot of the animal ones work.Must have been a bug. When I first tried to use it on a Zelda file the program crashed.
I think I'm done for today. So much improvements .
Next step, support of files inside RomFS ^^!
Puyo Puyo MTX File Switch
Little Endian
-------------------------
0x00 - 8bytes - Size of file
0x08 - 8bytes - Unknown (Always 0x10) Version/Alignment ?
0x10 - 8bytes - Number of strings
0x18 - Number of strings * 8bytes - Strings offsets in file
{
Unicode Strings - determine the end of a string by have bytes 0xFFF8 at the end.
}
NARC File Switch
Little Endian
-----------------
0x00 - 4bytes - FourCC "NARC"
0x04 - 2bytes - Byte Order Mask (0xFEFF > big endian / 0xFFFE > little endian)
0x06 - 2bytes - Unknown (Version?), always 0x01
0x08 - 4bytes - Size of NARC file
0x0B - 2bytes - Unknown, always 0x10
0x0E - 2bytes - Unknown, always 0x03
0x10 - 4bytes - Region FourCC "BTAF"
0x14 - 4bytes - Size of BTAF region including FourCC
0x18 - 4bytes - Number of Files
0x0C - Number of Files * (2 * 4bytes) - Files informations
{
0x00 - 4bytes - Previous file size
0x04 - 4bytes - Current file size
}
Size of BTAF + 0x10 - 4bytes - Region FourCC "BTNF"
Size of BTAF + 0x14 - 4bytes - Size of BTNF region including FourCC
Size of BTAF + 0x18 - 0x17bytes - Unknown, always same values
Size of BTAF + 0x2F - Files names, first byte is length of string.
(Size of BTAF + Size of BTNF) + 0x10 - 4bytes - Region FourCC "GIMF"
(Size of BTAF + Size of BTNF) + 0x14 - 4bytes - Size of Files region
(Size of BTAF + Size of BTNF) + 0x18 - Files
> To get offset files: ((Size of BTAF + Size of BTNF) + 0x18) - Previous file size