The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →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.
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
- 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.
| 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
- 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.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallHow 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.
- Clone the source. Use Git to clone the BattleShip repository into a directory you control, then change into that directory.
- Initialize all submodules.
git submodule update --init --recursiveIf this step is skipped, configuration can fail because required dependencies are absent.
- Copy your verified ROM to the repository root. For a US build, name it
baserom.us.z64. For a Japanese build, usebaserom.jp.z64. The root is the folder that contains the project’s top-levelCMakeLists.txt. - Configure the build. Replace
<ver>withusorjp:cmake -S . -B build-<ver> -GNinja -DSSB64_VERSION=<ver>For example, a US build uses
cmake -S . -B build-us -GNinja -DSSB64_VERSION=us. - Compile.
cmake --build build-<ver> -jThe build system extracts the ROM assets automatically; there is no separate extraction command.
- Run from the build directory.
cd build-<ver> ./BattleShipThe executable loads
BattleShip.o2rrelative 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.
- Clone the repository and enter it. Initialize dependencies with:
git submodule update --init --recursive - Place the verified ROM at the repository root. Use
baserom.us.z64for the US build orbaserom.jp.z64for the Japanese build. The accepted.n64and.v64formats still need to contain the correct supported image. - Configure a 64-bit build. Replace
<ver>withusorjp:cmake -S . -B "build<ver>" -A x64 -DSSB64_VERSION=<ver>For example:
cmake -S . -B "buildus" -A x64 -DSSB64_VERSION=us - Build the Release configuration.
cmake --build "build<ver>" --config Release - Launch from the matching directory.
.build<ver>ReleaseBattleShip.exeFor 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.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →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
- 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.
- Connect the adapter before launching BattleShip.
- Install any driver or permission rule required by your operating system and adapter.
- Open the game’s controller configuration and map each pad, then test all buttons, the analog stick, and the trigger inputs.
- 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:
- 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
- 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.
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.
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
- 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.
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.
Recommended Free Tools
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=usorSSB64_VERSION=jp. - Build with the documented Linux/macOS or Windows command.
- Launch from the build directory so
BattleShip.o2ris 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.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsWill 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.
Quick Recap
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.

