bsn64

Crates.iobsn64
lib.rsbsn64
version1.0.1
created_at2026-01-22 19:33:47.008894+00
updated_at2026-01-22 20:14:46.157452+00
descriptionRust crate to convert and byteswap Nintendo 64 save files.
homepage
repositoryhttps://github.com/Sheikyon/bsn64
max_upload_size
id2062440
size13,579
Sheikyon (Sheikyon)

documentation

README

bsn64

A lightweight, dead-simple command-line tool to convert Nintendo 64 save files between different emulator and hardware formats.

Why this exists

Nintendo 64 saves come in a few types: EEPROM (small, usually 512 bytes to 2KB), SRAM (32KB), FlashRAM (128KB), and Controller Pak (also 32KB, but separate). The problem is that different emulators and real hardware dump/load these saves in incompatible ways:

  • Byte order (endianness) differs. Project64 stores everything in a 32-bit swapped order, EverDrive-64 uses 16-bit swapped, and others are usually native/big-endian.
  • Sizes and padding vary. Some emulators expect EEPROM saves padded to specific sizes (2KB, 4KB, or even 16KB for Wii VC), and Wii VC likes its padding to be 0xAA instead of 0x00.

Transferring saves between Project64, EverDrive-64, Wii64, Wii Virtual Console, Sixtyforce, etc. usually requires manual byte-swapping and resizing. This tool automates that.

Installation and usage

  1. Build it with Cargo.

    • cargo build --release
  2. Install it.

    • cargo install bsn64
  3. Usage: bsn64 -i <INPUT> -o <OUTPUT> -s <SOURCE> -d <DEST>

    • -i, --input: Path of the original file (ex: Zelda.eep).
    • -o, --output: Path to the converted output file.
    • -s, --source: Source format.
    • -d, --destination: Destination format.

Supported Profiles

Profile Architecture Compatibility / Notes
wii64 Big Endian Native format. Compatible with physical cartridges and Not64 emulators.
pj64 Little Endian PC Emulator standard (Project64). Compatible with MiSTer FPGA.
wii-vc Big Endian Wii Virtual Console. Handles specific file sizes and padding values.
sixtyforce Big Endian Sixtyforce (macOS). Also compatible with Controller Pak data extraction.
everdrive 16-bit Swapped Real hardware. Specific byteswapped format for EverDrive 64 flashcarts.
Commit count: 18

cargo fmt