Skip to main content

A mod manager for The Legend of Zelda: Breath of the Wild

Project description

BCML Logo

BCML: BOTW Cross-Platform Mod Loader

A mod merging and managing tool for The Legend of Zelda: Breath of the Wild

BCML Banner

Purpose

Why a mod loader for BOTW? Installing a mod is usually easy enough once you have a homebrewed console or an emulator. Is there a need for a special tool?

Yes. As soon as you start trying to install multiple mods, you will find complications. The BOTW game ROM is fundamentally structured for performance and storage use on a family console, without any support for modification. As such, files like the resource size table or TitleBG.pack will almost inevitably begin to clash once you have more than a mod or two. Symptoms can include mods simply taking no effect, odd bugs, actors that don't load, hanging on the load screen, or complete crashing. BCML exists to resolve this problem. It identifies, isolates, and merges the changes made by each mod into a single modpack that just works.

Prerequisites

  • Windows 10 (7-8 might work but are not supported) or basically any modern Linux distribution
  • A legal, unpacked game dump of The Legend of Zelda: Breath of the Wild for Switch (version 1.6.0) or Wii U (version 1.5.0)
  • The latest x64 Visual C++ redistributable
  • Cemu (optional)

Setup

There are two main ways to install BCML.

PyPI

Install Python 3.7+ (64 bit version), making sure to add it to your PATH, and then run pip install bcml. Note that, because of the pythonnet dependency, on Windows Python 3.9 is not supported.

Building from Source

Building from source requires, in addition to the general prerequisites:

  • Python 3.7+ 64 bit

    (Note: 3.9+ will not work on Windows until pythonnet is updated.)

  • Node.js v14

Steps to build from source:

  1. Install Python requirements

    1. Open terminal to repo root folder
    2. Run pip install -r requirements.txt
  2. Prepare the webpack bundle

    1. Open terminal to bcml/assets
    2. Run npm install
    3. Run npm run build (or npm run test to watch while editing)
  3. Build the docs

    1. Open terminal to repo root folder
    2. Run mkdocs build -d bcml/assets/help
  4. Install BCML with python setup.py install or run without installing with python -m bcml

Note that on Linux, you can simply run bootstrap.sh to perform these steps automatically unless you would like more control.

Usage and Troubleshooting

For information on how to use BCML, see the Help dialog in-app or read the documentation on the repo. For issues and troubleshooting, please check the official Troubleshooting page.

Contributing

BOTW is an immensely complex game, and there are a number of new mergers that could be written. If you find an aspect of the game that can be complicated by mod conflicts, but BCML doesn't yet handle it, feel free to try writing a merger for it and submitting a PR.

Python and JSX code for BCML is subject to formatting standards. Python should be formatted with Black. JSX should be formatted with Prettier, using the following settings:

{
    "prettier.arrowParens": "avoid",
    "prettier.jsxBracketSameLine": true,
    "prettier.printWidth": 88,
    "prettier.tabWidth": 4,
    "prettier.trailingComma": "none"
}

License

This software is licensed under the terms of the GNU General Public License, version 3 or later. The source is publicly available on GitHub.

This software includes the 7-Zip console application 7z.exe and the library 7z.dll, which are licensed under the GNU Lesser General Public License. The source code for this application is available for free at https://www.7-zip.org/download.html.

This software includes a fork of the console application msyt.exe by Kyle Clemens, copyrighted 2018 under the MIT License. The source code for this application is available for free at https://github.com/NiceneNerd/msyt/tree/bcml.

This software includes part of a modified copy of the pywebview Python package, copyright 2020 Roman Sirokov under the BSD-3-Clause License. The source code for the original library is available for free at https://github.com/r0x0r/pywebview.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bcml-3.4.5.tar.gz (28.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bcml-3.4.5-py3-none-any.whl (29.0 MB view details)

Uploaded Python 3

File details

Details for the file bcml-3.4.5.tar.gz.

File metadata

  • Download URL: bcml-3.4.5.tar.gz
  • Upload date:
  • Size: 28.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.10

File hashes

Hashes for bcml-3.4.5.tar.gz
Algorithm Hash digest
SHA256 5924ccb1cedf8ff75208574345ac53eb0889276cfec9939f2a1f8938128ed591
MD5 25f47e188ab850bdf676a70b2de8c930
BLAKE2b-256 4a44e2c64dd76eeaadb0343fd3ba61172aa3bc5c60ecc0cf3de663d5ea25a4e9

See more details on using hashes here.

File details

Details for the file bcml-3.4.5-py3-none-any.whl.

File metadata

  • Download URL: bcml-3.4.5-py3-none-any.whl
  • Upload date:
  • Size: 29.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.10

File hashes

Hashes for bcml-3.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f83e9b30cf651df9f61e9837b99f3c2e1b3da375a70da3e30c3728579f5d2fc1
MD5 52ceea032426429f2c9f74c38d7c7369
BLAKE2b-256 81baf5b5a57dd6209d8a73f2fb844355efd631a29ae31e1839f73df089308a43

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page