Skip to content
Lord-Giganticus edited this page Jan 11, 2025 · 6 revisions

Getting started with bcsv-tool

Once you downloaded and extracted the zip file, you should have three folders and a lookup_supermariogalaxy.txt file. In these respective folders, you will find an executable.

Open a command prompt in this folder and run the binary.

./bcsv-tool

(Based on your OS you may have to remoe the ./ in front of the command.

You should see an output like this:

error: the following required arguments were not provided:
  --infile <INFILE>
  --outfile <OUTFILE>

Usage: bcsv_tool.exe --infile <INFILE> --outfile <OUTFILE>

For more information, try '--help'.

Converting files

Most .bcsv files are usually found in a .arc file which you have to extract yourself first.

After doing that, the command for converting a file is always the following:

./bcsv-tool -i <PathToInputFile> -o <PathToOutputFile> -l <PathToLookupTable> -e

The supported file types are:

  • .csv, .xlsx (only export) - The standard table format
  • .bcsv, .tbl, .banmt, .pa, . - Nintendo's BCSV format

Note that the -e flag is present here as well. The reason for this is to switch endians. By default, bcsv-tool uses the system standard (usually Little Endian). But since Nintendo usually requires Big Endian, it is required to use that flag to work properly.

BCSV -> CSV

Here's an example of converting ScenarioBgmInfo.bcsv from the StageBgmInfo.arc file (this code assumes ScenarioBgmInfo.bcsv is present in the executable's folder):

./bcsv-tool -i ScenarioBgmInfo.bcsv -o ScenarioBgmInfo.bcsv -l ../lookup_supermariogalaxy.txt -e

You can simply change the input and output files to your needs. This should result in a csv file like this:

grafik Note: When reconverting the csv, DO NOT modify the top most row!!

CSV -> BCSV

This is very similar to the first example, just with the csv being the input and the bcsv being the output.

./bcsv-tool -i ScenarioBgmInfo.bcsv -o ScenarioBgmInfo.bcsv -l ../lookup_supermariogalaxy.txt -e

Argument List

These are the arguments you can specify when using bcsv-tool:

Arg Description
-i Required. The path to the input file.
-o Required. The path to the output file.
-l Heavily recommended for BCSV -> CSV. The path to the lookup table that needs to be used. The lookup table from the parent's folder (lookup_supermariogalaxy.txt) should be used.
Note: Out of the box, only hashes from Super Mario Galaxy (2) can be looked up. For any unknown hashes their corresponding address gets displayed instead.
-e Strongly recommended. Switch endians from your system default.
-m The mask that should be used for the values in the BCSV. If no mask is specified, u32::MAX is used (4294967295).
-h Does not convert any files, and shows a help screen.
-V Does not convert any files, and shows the current version used.
-u BCSV -> CSV only. Makes Char/Shorts print as UNSIGNED.
-d For CSV operations only. The Delimiter for Reading/Writing CSV files

Clone this wiki locally