Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

BattleShip is a native PC port of the Nintendo 64 game Super Smash Bros., but it is not an official Nintendo release and it does not include Nintendo’s ROM or extracted assets. To install it legally, you need a lawfully acquired copy of the game, a personal ROM dump made where your local law permits it, and the matching US or Japanese ROM revision. You then place that dump in the BattleShip source directory, configure the project with CMake, and build it for your operating system. The build process extracts the game data automatically.

This guide covers the documented Linux, macOS (Apple Silicon), and Windows workflows, ROM verification, separate regional builds, controller adapters, and common build failures. Copyright and ROM-dumping rules differ by jurisdiction; the legal steps below describe BattleShip’s distribution requirements, not jurisdiction-specific legal advice.

What is BattleShip?

BattleShip is a community-built native PC port of Super Smash Bros. for Nintendo 64. It supports the US NTSC-U v1.0 release and the Japanese release titled Nintendo All-Star! Dairantou Smash Brothers, with separate region builds. The project lists Windows, Linux, macOS on Apple Silicon, and Android as supported platforms.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The repository contains no Nintendo-owned code, textures, audio, models, text, or ROM data. Instead, its build system extracts the required data from a ROM that you provide. BattleShip’s own README states: “If you do not own a legal copy of Super Smash Bros. for the Nintendo 64, you cannot build or run this project.” That is the project’s distribution rule. Whether making a personal backup or ROM dump is lawful depends on the country or region whose law applies to you.

Popular on Amazon
Sale
LAPGEAR Home Office Pro Lap Desk - Black Carbon, Fits 15.6” Laptops | Built-In Mouse Pad & Phone Slot, Wide Cushioned Wrist Rest, Dual-Bolster Microbead Cushion, Carry Handle
  • Spacious Design: Measuring 21.1" wide and 14.1" deep, our lap desk comfortably fits most laptops up to 15.6". Extra room for accessories ensures convenience.
  • Enhanced Functionality: Packed with handy features, including a 5x9" precision tracking mouse pad and a built-in phone slot for seamless work or video calls. Plus, enjoy ergonomic support with the integrated cushioned wrist rest.
  • Cool Comfort: Enjoy a stable surface with our lap desk's dual bolster cushion, designed for comfort and airflow, keeping your lap cool during extended use.
  • Durable Surface: Work with confidence on our lap desk's solid surface, featuring a sleek black carbon color, ensuring optimal air circulation to prevent your laptop from overheating.
  • On-the-Go Convenience: With an integrated handle and lightweight design (2.8 lbs), our lap desk is portable for travel or moving around the house, offering flexibility in any space.

Do not download a ROM from an unauthorized website. BattleShip does not supply one, and a file that is the wrong region, revision, or byte order will fail the build even if it has a familiar filename.

What you need before installing

Prepare these items before cloning the project:

  • A legally acquired copy of the game and, where permitted, a personal dump of the cartridge.
  • The correct BattleShip source tree, including its Git submodules.
  • A supported operating system: Windows, Linux, macOS on Apple Silicon, or Android. The cited build guide documents manual CMake builds for Windows, Linux, and macOS; it does not provide an equivalent command-line Android procedure.
  • Build tools. Linux and macOS require Git, CMake, Python 3, and Ninja. Windows requires Visual Studio 2022 and the Windows SDK, in addition to Git, CMake, and Python 3.
  • Enough free storage for the source tree, intermediate build files, and extracted assets. The project does not publish a single universal storage figure, so leave practical working room rather than placing the tree on a nearly full drive.
  • An SDL2-compatible controller, keyboard setup, or optional original-controller adapter. BattleShip supports up to four pads.

Install tools from their official distribution channels for your operating system. On Windows, use Developer PowerShell for Visual Studio 2022 so that the compiler, linker, and Windows SDK are available in the shell.

Which ROM file and region should you use?

Choose one region and keep its ROM, build directory, and executable together. The US build expects the US NTSC-U v1.0 image; the Japanese build expects the Japanese release. A US ROM cannot be used to create the Japanese build, and vice versa.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Build ROM filename at repository root Region identifier Supported SHA-1 Supported MD5
US baserom.us.z64 us (NALE) e2929e10fccc0aa84e5776227e798abc07cedabf f7c52568a31aadf26e14dc2b6416b2ed
Japanese baserom.jp.z64 jp (NALJ) 4b71f0e01878696733eefa9c80d11c147ecb4984 66db457b130d31a286a23d6e4dd9726e

The project also accepts .n64 and .v64 extensions. If you use one of those, retain the expected base name for the region where possible, or follow the current README’s naming rule. The important checks are the actual bytes, region, and revision—not the extension alone.

How do I verify that my ROM dump is supported?

Calculate a SHA-1 or MD5 checksum and compare it with the values above. A mismatch means the dump is not one of the supported images; do not try to “fix” it by renaming the file.

Linux

sha1sum baserom.us.z64
md5sum baserom.us.z64

Replace the filename with baserom.jp.z64 for the Japanese image. The first command prints a SHA-1 value; the second prints MD5.

Also popular on Amazon
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display | 85W Max PD, 1 Powered USB-C 5Gbps & 2 Powered USB-A 3.0 5Gbps Data Ports, for MacBook Pro, MacBook Air, Dell and More (Black)
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

macOS

shasum -a 1 baserom.us.z64
md5 baserom.us.z64

Windows PowerShell

Get-FileHash .baserom.us.z64 -Algorithm SHA1
Get-FileHash .baserom.us.z64 -Algorithm MD5

Compare the output exactly, ignoring only letter case. If neither checksum matches, obtain a new dump from your own legally acquired cartridge using a method permitted where you live. The BattleShip build will not accept an arbitrary revision.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How do I install BattleShip on Linux or macOS?

On Linux and Apple Silicon macOS, the documented workflow is: clone the repository, initialize submodules, put the verified ROM at the repository root, configure a region-specific Ninja build, compile it, and launch the executable from that build directory.

  1. Clone the source. Use Git to clone the BattleShip repository into a directory you control, then change into that directory.
  2. Initialize all submodules.
    git submodule update --init --recursive

    If this step is skipped, configuration can fail because required dependencies are absent.

  3. Copy your verified ROM to the repository root. For a US build, name it baserom.us.z64. For a Japanese build, use baserom.jp.z64. The root is the folder that contains the project’s top-level CMakeLists.txt.
  4. Configure the build. Replace <ver> with us or jp:
    cmake -S . -B build-<ver> -GNinja -DSSB64_VERSION=<ver>

    For example, a US build uses cmake -S . -B build-us -GNinja -DSSB64_VERSION=us.

  5. Compile.
    cmake --build build-<ver> -j

    The build system extracts the ROM assets automatically; there is no separate extraction command.

  6. Run from the build directory.
    cd build-<ver>
    ./BattleShip

    The executable loads BattleShip.o2r relative to the current working directory, so launching it from another folder can produce a missing-file error.

On macOS, this procedure applies to Apple Silicon as described by the project. The cited guide does not promise an identical procedure for Intel Macs, so do not assume that an Intel build is supported without checking the project’s current platform documentation.

How do I install BattleShip on Windows?

Use Developer PowerShell for Visual Studio 2022, with the Windows SDK installed. The CMake generator in the documented command selects a 64-bit Visual Studio build.

  1. Clone the repository and enter it. Initialize dependencies with:
    git submodule update --init --recursive
  2. Place the verified ROM at the repository root. Use baserom.us.z64 for the US build or baserom.jp.z64 for the Japanese build. The accepted .n64 and .v64 formats still need to contain the correct supported image.
  3. Configure a 64-bit build. Replace <ver> with us or jp:
    cmake -S . -B "build<ver>" -A x64 -DSSB64_VERSION=<ver>

    For example:

    cmake -S . -B "buildus" -A x64 -DSSB64_VERSION=us
  4. Build the Release configuration.
    cmake --build "build<ver>" --config Release
  5. Launch from the matching directory.
    .build<ver>ReleaseBattleShip.exe

    For the US example, run .buildusReleaseBattleShip.exe. Do not add a leading space before the command.

If Windows reports that a DLL or runtime component is missing, confirm that you opened Developer PowerShell for Visual Studio 2022 and that the Windows SDK and C++ workload are installed. If configuration succeeds but compilation fails, rerun the submodule command and make sure the ROM is in the source root, not inside buildus or buildjp.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Why must US and Japanese builds use separate directories?

Each region has different extracted assets and a different compatibility target. Keep them isolated so that one configuration cannot reuse the other region’s generated files.

Also popular on Amazon
Sale
Yilador Webcam Cover 3 Pack, 0.03 inch Ultra Thin Laptop Camera Cover Slide | Camera Blocker Slider for iPhone iPad MacBook Pro Computer iMac Cell Phone PC Laptop Accessories, Great for Privacy, Black
  • Note: Not suitable for MacBooks released after 2023 or devices with a protruding front camera; Not applicable to full-screen or notch-style tempered glass screen protectors; Do not use on the rear camera of the phone.
  • 💻 Why Do You Need a Webcam Cover Slide? — Safeguard your privacy by covering your webcam with our reliable webcam cover when not in use. Don't let anyone secretly watch you. Stay protected!
  • ✅ Thin & Stylish — Enhance your laptop's functionality and aesthetics with our 0.027" ultra-thin webcam covers. Seamlessly close your laptop while adding a touch of sophistication.
  • ✅ Fits Most Devices — Compatible with laptops, phones, tablets, desktops! Keep your privacy intact on Ap/ple, Mac/Book, iPh/one, iP/ad, H/P, L/novo, De/ll, Ac/er, As/us, Sa/msung devices.
  • ✅ 365 Days Protection — Our upgraded 3.0 adhesive ensures a strong hold that won't damage your equipment. Experience reliable, long-term privacy protection day in and day out.

Use a layout such as:

BattleShip/
  baserom.us.z64
  baserom.jp.z64
  build-us/
  build-jp/

On Windows, the documented equivalent is buildus and buildjp. Configure each directory with the corresponding SSB64_VERSION value, and always launch the executable from that build’s own directory. If you switch regions after a failed configuration, deleting the affected build directory and configuring it again is safer than mixing generated files.

US versus Japanese build at a glance

Decision point US build Japanese build
Game release US NTSC-U v1.0 Japanese Nintendo All-Star! Dairantou Smash Brothers release
ROM name baserom.us.z64 baserom.jp.z64
CMake value SSB64_VERSION=us SSB64_VERSION=jp
Suggested build directory build-us or buildus build-jp or buildjp
Region code NALE NALJ

How do I connect an original Nintendo 64 controller?

BattleShip supports SDL2 controllers, up to four pads, Raphnet adapters, and compatible Nintendo GameCube adapters. An original N64 pad does not plug directly into a standard PC USB port; it needs a compatible adapter that presents the controller as a supported input device.

  1. Connect the adapter before launching BattleShip.
  2. Install any driver or permission rule required by your operating system and adapter.
  3. Open the game’s controller configuration and map each pad, then test all buttons, the analog stick, and the trigger inputs.
  4. Connect up to four pads if you need multiplayer, assigning each adapter port to the intended player.

Platform-specific requirements documented by the project include:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Windows GameCube adapters: a WinUSB driver is required.
  • Linux: a udev rule may be needed so your user account can access the adapter without running the game as root.
  • macOS: the build guide says no additional adapter installation is required.

Adapter availability and compatibility vary by model. The project evidence supports the use case, but it does not establish that every USB adapter, clone controller, or marketplace listing will work.

What should I do if the build fails?

Most failures fall into a small number of categories. Check the exact error before changing files.

“ROM not found” or an extraction error

Confirm that the ROM is in the repository root, not merely in the build directory. Check the filename, extension, and checksum. A file named correctly but carrying an unsupported revision will still fail.

Also popular on Amazon
AboveTEK Portable Laptop Lap Desk w/Retractable Left/Right Mouse Pad Tray, Non-Slip Heat Shield Tablet Notebook Computer Stand Table w/Sturdy Stable Work Surface for Bed Sofa Couch or Travel
  • Anti-Slip Surface - Transform your laptop into a mobile workstation with the AboveTEK portable laptop lap desk. The anti-slip surface provides a strong grip for laptops up to 15.6 inches(Diagonal), while the double rubber strip on the bottom ensures a stable display or typing experience on your lap, couch, or bed.
  • Retractable Mouse Pad - Retractable laptop mouse pad extends on both directions for the left/right handed with elevation along the edges for stopping mouse from falling off. The size of laptop tray is 14" X 9.7" and the size of mouse pad is 7.4" X 6.1".
  • Effective Heat Shield - The effective heat shield made of sturdy and thick material protects your laptop from overheating. Prioritizes your comfort and safety, an ideal lap pad or board for working anywhere.
  • EASY to Carry and Store - With an ergonomic and simplistic design, the lap desk is portable to store in a backpack. Only 15" in size, 2.2 lb of weight and with slim 0.6 inch thickness, it is ready to be easily carried around.
  • Widely Applicable - The smooth platform accommodates laptops and tablets up to 15.6 inches(Diagonal), making it a versatile accessory and one of the best gifts for mom, dad, students and professionals. Perfect for use as a laptop bed tray or tablet holder anywhere at home, library, or park.

Checksum mismatch

Recalculate SHA-1 and MD5 with the commands above. If both differ from the region’s published values, the image is not the supported dump. Do not download a replacement ROM from an unauthorized source; use a lawful personal dump where permitted.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

CMake cannot find Ninja on Linux or macOS

Install Ninja and ensure the ninja executable is on your PATH. Then rerun the configuration command. If CMake cached a failed generator selection, remove the incomplete build-us or build-jp directory and configure again.

Missing submodule content

Run:

git submodule update --init --recursive

Run it from the repository root. A shallow or interrupted clone can leave dependency directories empty even though the main repository appears complete.

The executable starts but cannot find BattleShip.o2r

Run the program from its build directory. On Linux and macOS, use cd build-<ver> && ./BattleShip. On Windows, launch the executable in build<ver>Release or set the working directory there. The asset file is loaded relative to the working directory.

Windows configuration or linker errors

Open Developer PowerShell for Visual Studio 2022 rather than a plain PowerShell window. Verify the 64-bit C++ workload and Windows SDK are installed, then rerun the x64 configuration and Release build commands.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Controller is detected but inputs are wrong

Confirm that the adapter is exposing an SDL2-compatible device, remap the controls in the game, and check platform permissions. On Linux, review the udev rule requirement; on Windows, verify the WinUSB setup for a GameCube adapter.

Also popular on Amazon
Sale
LAPGEAR Home Office Lap Desk – Pink, Fits 15.6” Laptops | Built-In Mouse Pad & Phone Slot, Integrated Device Ledge, Dual-Bolster Microbead Cushion, Carry Handle
  • Spacious Design: Measuring 21.1" wide and 12" deep, our lap desk comfortably fits most laptops up to 15.6". Extra room for accessories ensures convenience.
  • Enhanced Functionality: Packed with handy features, including a 5x9" precision tracking mouse pad and a built-in phone slot for seamless work or video calls. Plus, enjoy laptop support with the integrated device ledge.
  • Cool Comfort: Enjoy a stable surface with our lap desk's dual bolster cushion, designed for comfort and airflow, keeping your lap cool during extended use.
  • Durable Surface: Work with confidence on our lap desk's solid surface, featuring a blush pink color, ensuring optimal air circulation to prevent your laptop from overheating.
  • On-the-Go Convenience: With an integrated handle and lightweight design (2.14 lbs), our lap desk is portable for travel or moving around the house, offering flexibility in any space.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Can I build the Android version?

Android is listed among BattleShip’s supported platforms, but the cited documentation does not provide a matching manual CMake procedure for Android. Treat Android as a supported target rather than assuming that the desktop commands will produce an installable Android package. Use the project’s current Android-specific instructions and build artifacts when available, and apply the same ROM ownership and region requirements.

Is this installation legally safe everywhere?

No single answer covers every jurisdiction. BattleShip requires that you own a legal copy and supply your own ROM; it does not distribute Nintendo assets. However, laws differ on cartridge ownership, personal copies, circumvention, and downloading or sharing ROM images.

Before dumping a cartridge, check the law that applies to you and keep the resulting image private unless you have a clear legal basis to share it. This guide cannot replace advice from a qualified lawyer or an official authority in your jurisdiction.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What happens when the project or ROM changes?

Keep the source, ROM, and generated build directories organized so you can reproduce a known-good build. Record which region and checksum you used. When updating the source, read the project’s current build notes, re-run the recursive submodule update, and avoid copying generated assets between US and Japanese directories.

Do not assume that a newer ROM revision is interchangeable with the documented NTSC-U v1.0 or Japanese image. Compatibility is defined by the project’s supported hashes, not by a file’s release date or filename.

Quick legal installation checklist

  • Own a lawful copy of the N64 game.
  • Make a personal dump only where your law permits it.
  • Verify SHA-1 or MD5 against the correct US or Japanese values.
  • Clone BattleShip and run git submodule update --init --recursive.
  • Place the ROM at the repository root with the expected region name.
  • Configure with SSB64_VERSION=us or SSB64_VERSION=jp.
  • Build with the documented Linux/macOS or Windows command.
  • Launch from the build directory so BattleShip.o2r is found.
  • Keep region builds separate.
  • Install only the controller drivers or permission rules your platform requires.

Frequently Asked Questions

Do I need the original N64 cartridge plugged in every time BattleShip starts?

The documented workflow uses the ROM during the build to extract assets and then runs the generated native PC build. The instructions do not state that the physical cartridge must remain connected at launch, so keep the original copy and your dump in accordance with local law, but do not assume the cartridge itself is a runtime dongle.

Can I use a ROM with a .n64 or .v64 extension instead of .z64?

Yes, the project documentation says those extensions are accepted. The byte content still has to match one of the published regional hashes; changing an extension does not convert byte order or make an unsupported dump compatible.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Will a normal USB gamepad work without an N64 adapter?

BattleShip supports SDL2 controllers, so a compatible modern gamepad can be used without an original N64 adapter. An adapter is only needed when you specifically want to connect an original N64 controller or a supported console-style controller.

Why does the Japanese game need a different executable directory?

The Japanese and US targets extract different regional data and are configured with different CMake values. Separate directories prevent generated files from one target being reused by the other and make it clear which ROM produced each executable.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.