BARcSharp Switch

From GameBrew
BARcSharp
Barcsharpnx.png
General
AuthorK-E-R-A-D
TypeHack Utilities
Version1.5r2
LicenseUnlicense
Last Updated2021/02/23
Links
Download
Website
Source

A tool to extract the BWAV files from Switch .bars files (for AMTA v5 only, particularly found in a game Animal Crossing New Horizons), 100% written in C#.

Inspired from jackz314's BARS to BWAV files extractors.

The tool should be able to extract most (if not all) Switch .bars files.

User guide

How to use

This was published as a self-contained app, but just in case, you might need to install the .NET Desktop Runtime. Get it from here (although .NET Runtime alone might have to suffice).

Instructions:

  • Since the release in a .zip file, extract all the contents first.
  • Next, open the command prompt, locate the BarcSharp.exe file, and then type "barcsharp [barsfiledirectory]" or "barcsharp [barsfile]" (without quotation marks [except it's a directory] and square brackets!)
  • Example: barcsharp "C:\..\Sound\Resource\" or barchsarp doubutsugo_base.bars
  • The output file(s) would be somewhere in [executablelocation]\BARcSharp-output\[barsfilename]\

Important notes (for release before 1.5r1)

  • Do not attempt to move the executable file alone without the DLLs. Those DLLs are the working components in order to run the program.
  • The same applies to when you extract the contents from the .zip file, DO NOT just extract the executable alone without the DLLs.

What's next

You can try play the .bwav files using a plugin called vgmstream for a foobar2000 player, and you can even convert them to .wav files using that player as well.

Changelog

v1.5

  • Some improvements regarding "amta_length_container", "amta_offset_name_start" and "the_amta_count".
  • Optimized the method of obtaining file names and BWAV arrays to the respective Lists (name and bwav_array), which should allow faster extraction method (EDIT: minus GC works). Both for a .bars file alone, and the .bars files in a directory.

Revision:

  • (r1) Slightly changed the way of checking the "bwav_count" to prevent any accidental bwav count checks.
  • (r1) Starting from this release, i decided to make the program into one executable alone, which should increase its prtability.
  • (r2) Applied the change of the way checking the "bwav_count" on "bwavend" checking to prevent any accidental "bwav" array length counting. i must apologize to not think of this thing sooner.
  • (r2) A few "optimization" for setting an empty array ("names" in get_amta_name_with_offset method, and "bwav" in get_bwav_array_with_offset method).

v1.4

  • Improved some checks whether it's a directory or a file.

v1.3

  • Fixed the behavior of getting file name for a "complex" AMTA v5 structure (where the AMTA array length itself is somewhere over 9k).

Revision:

  • (r1) Added the 32-bit version of the tool. With that said, the .zip file will now contain both 32-bit version and 64-bit version. BEWARE: the previous version still contain 64-bit only.

v1.2

  • Changed the way how to get "amtacount", as a separate method.

v1.1

  • Improved the "algorithm" of finding the offsets, it should be able to collect the offsets better, which also makes a potential fix when the tool somehow literally stopped working (being stuck while extracting a BWAV file).
  • Changed how the tool takes care of "amtacount" and "bwavcount". no more separate statements of "if (amtacount == bwavcount)" and "if (amtacount > bwavcount)", but rather "if (amtacount >= bwavcount)".

v1.0

  • An initial release of the tool.

External links

Advertising: