nicenenerd / bcml Goto Github PK
View Code? Open in Web Editor NEWBreath of the Wild Cross-Platform Mod Loader: A mod merger and manager for BOTW
Breath of the Wild Cross-Platform Mod Loader: A mod merger and manager for BOTW
Configuration:
CPU: i5 4570
GPU: RX 480
OS: Pop_OS 20.04
CEMU version: 1.19.0d
BCML version: bcml-3.0.0b9
p7zip version: (16.02+dfsg-7build1).
Steps used to recreate bug.
Hey, I wanted to try out BCML, because it seemed a lot easier than how I installed mods before. I have the currently latest version of Cemu (1.17.1) and Version 2.7.3 of BCML.
I ran into some problems earlier, but I found solutions online to fix them. But for the problems I have now, I can't find a thing. When ever I install a mod, I get an error message as seen in the first picture. It sometimes doesn't have any problems and the mod shows up in my list, or I get an error but it shows up anyway.
Whenever I enable oder disable a mod, I get the error message seen in picture 2.
However when I try to start the game with the mods that worked, they aren't present in my game (won't load).
Edit: I have the same problems as in #35
I hope there is a solution for my problem I have. Thanks in advance.
Hey- older versions of this installer behaved better, but recently it asks for UAC elevation.
Please postpone the elevation request until the page where the user is asked where they want to install bcml: and do not elevate if "install just for me" is selected.
This is a best practice that should generally be adhered to, but if you need further motivation, then note that "just for me" is broken in a multi-user context where the current user is not an administrator.
Thank you!
I get the following error when I specify the botw content directory.
Traceback (most recent call last):
File "C:\Users\jmtex\AppData\Local\BCML\pkgs\bcml\util.py", line 252, in get_update_dir
title_id = get_title_id()
File "C:\Users\jmtex\AppData\Local\BCML\pkgs\bcml\util.py", line 239, in get_title_id
for line in a_file:
UnicodeDecodeError: 'cp932' codec can't decode byte 0xef in position 0: illegal multibyte sequence
How permanent are the mod installations? If I install from a different computer, will the changes persist through a file transfer onto a different system with potentially a different OS?
I am trying to use BCML on a Windows system to install a mod and transfer the game to a Linux daily system. Is this possible?
A neat feature that'd be amazing to see in BCML would be a Options selected:
For example, let's say you have 1 mod that changes the texture of Link, but you wish to let the end-user choose WHICH color. Currently, people supply extremely large amounts of files with named options.
The general idea would be that you have multiple Tex.sbfres (or any file honestly) that are all unique. Inside BCML (either while installing or after installing) you choose which option you'd like. (maybe have the options defined in rules.text with the files that correlate)
Maybe this is done by naming folder option1 option2 etc inside a folder with the file name (eg, Link.Tex.sbfres would be the folder, and inside that folder, you'd have each file variant)
This request definitely would be a big thing to tackle, but would really give a lot more options for modders and users alike.
I feel it'd help out a lot of mods similar to Build a Linkle
Expanding on this Idea;
content
[
Model [
Link.Tex1.sbfres
[
01.sbfres
02.sbfres
03.sbfres
]
]
]
In the GUI if this is seen (or maybe in the rules.txt this is defined) it'll put the list of files
Choose an Option:
Link.Tex1.sbfres:
01.sbfres
02.sbfres
03.sbfres
I can't launch BoTW from BCML and can't figure out why. I see the cmd prompt pop up and then nothing happens.
Update: I just got this error: Parameter cannot be processed because the parameter name 'g' is ambiguous. Possible matches include -gamePath gameId -glCacheSizeTolerance.
The new Cemu version changes graphic pack entry nodes from the filename being a separate node, internal to the Entry node, to it being a property of the entry node.
refresh_cemu_mods
needs to be switched from looking for, and creating, a filename node, to doing that with a filename property, instead.
Also should find a way to do this while preserving the current behavior for those with older versions of Cemu still installed.
have the app specify the error.log path for idiots like me?
Traceback (most recent call last):
File "D:\Program Files (x86)\BCML\pkgs\bcml\_api.py", line 42, in status_run
func(*args, **kwargs)
File "D:\Program Files (x86)\BCML\pkgs\bcml\install.py", line 269, in do_and_refresh
refresh_master_export()
File "D:\Program Files (x86)\BCML\pkgs\bcml\install.py", line 284, in refresh_master_export
for line in setfile:
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\codecs.py", line 322, in decode
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xca in position 2266: invalid continuation byte
I noticed that the download is very slow, thats why i choose to manually download the file instead of using 1-click install
Disabled mods have their rules.txt
changed to rules.txt.disable
, which breaks any routines that rely on that file being named rules.txt
. So far, I've only noticed this affecting mod sorting, but it may affect more.
This may be a temporary solution, but suggest adding a path check to the resorting method that appends .disable
to the name if the original name isn't found.
BOTW crashes after compiling shaders, no matter if i have any mods installed or not, the graphics pack hook from BCML is preventing the gameplay - because after disabling the hook, the game runs fine.
Any ideas?
Hello,
It looks like while linux versions of the software exist for download BCML will not correctly run because of a winreg import (which is only valid when used in windows) that exists in line 880 of the util.py file:
def create_schema_handler(): import winreg with winreg.CreateKey(winreg.HKEY_CURRENT_USER, r'Software\Classes\bcml') as key: try: winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Classes\bcml\shell\open\command', 0, winreg.KEY_READ) except (WindowsError, OSError): winreg.SetValueEx(key, 'URL Protocol', 0, winreg.REG_SZ, '') with winreg.CreateKey(key, r'shell\open\command') as key2: if (Path(os.__file__).parent.parent / 'Scripts' / 'bcml.exe').exists(): exec_path = Path(os.__file__).parent.parent / 'Scripts' / 'bcml.exe' elif (Path(__file__).parent.parent.parent / 'bin' / 'bcml.exe'): exec_path = (Path(__file__).parent.parent.parent / 'bin' / 'bcml.exe') else: return winreg.SetValueEx(key2, '', 0, winreg.REG_SZ, f'"{exec_path.resolve()}" "%1"')
Has this ever been used successfully on linux? If so, I would like to know how to get around this winreg issue.
It would be nice to be able to launch straight into breath of the wild from a shortcut instead of opening BCML and then selecting "Launch Game". It would help controller/steam users a lot.
When I try to load the mod found here https://gamebanana.com/gamefiles/8387 for installation, the step "Identifying changed text entries..." always fails. It spits out the following error in the log.
Traceback (most recent call last):
File "d:\python37\lib\site-packages\bcml\install.py", line 258, in main
with open(tmptext / rel_path, 'r', encoding='utf-8') as mod_file:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\USERNAME\AppData\Local\bcml\tmp_text\DemoMsg\Demo101_0.msyt'
Thing is, when I extract the Bootup_USen.pack from that mod, that file is there.
Also, BCML changes which file it can't find. Sometimes it's Demo101_0, sometimes Demo033_0, sometimes BalladOfHeroRito, etc. All of the files it claims it can't find, are there in the mod's Bootup_USen.pack
When starting BCML fresh and clean mod list is empty and everything seems ok.
However when if I load mods from file, it completes but the mod list show the loading wheel and never loads.
If i hit a one click BCML from banana it does the same thing, completes but never show up.
I have tried running in debug but now error in the console.
I run the application in Admin.
I deleted Cemu's settings and let Cemu recreate it. no change.
CEMU 1.19.3
I am running my PC in English(Display and default app language)
Japaness is also installed.
Japanese as the 'Language for non-Unicode Programs'
I haven't tested turning this off yet.
I dont know if any of this is helpful at all but im going to list my specs:
Windows 10 pro
Intel Xeon CPU E50268W v2 @3.40GHz (2 processors)
256 GB ram
Display Language- English
App Language- English
Non-Unicode Language- Japanese
CEMU 1.19.3
BCML 3.0.0 beta 23
Errors:
When hitting update-
Traceback (most recent call last): File "F:\BCML\pkgs\bcml\_api.py", line 42, in status_run func(*args, **kwargs) File "F:\BCML\pkgs\bcml\_api.py", line 574, in update_bcml raise RuntimeError(result.stderr) RuntimeError: ERROR: Could not install packages due to an EnvironmentError: [WinError 5] Access is denied: 'f:\\bcml\\pkgs\\clr.pyd' Consider using the
--user option or check the permissions.
But other than that. The app seems to act normally, i just never loads the mod list.
Ive tried restarting the mod list show the loading wheel but never loads.
Installed via easy installer, program installs, but will not launch at all. NO process runs in task manager either.
Hey! Updated to 2.4.0 through pip install --upgrade bcml
and decided to reinstall my mods since both BCML and Linkle updated.
Some points:
.7z
had the same structure ./Mod.7z/Mod/content
I installed Linkle and the dialogue mod, went fine.
Then I tried to install this mod to stop the beeps. BCML didn't like it and outputted this:
BCML has encountered an error while performing an operation. Error details:
There was an error while processing No Sensor Ringing. This could indicate there is a problem with the mod itself, but it could also reflect a new or unusual edge case BCML does not anticipate. Here is the error:
Traceback (most recent call last):
File "c:\python37\lib\site-packages\bcml\install.py", line 326, in install_mod
generate_logs(tmp_dir=tmp_dir, verbose=verbose, options=options)
File "c:\python37\lib\site-packages\bcml\install.py", line 231, in generate_logs
merger.log_diff(tmp_dir, modded_files)
File "c:\python37\lib\site-packages\bcml\texts.py", line 611, in log_diff
diff_material = self.generate_diff(mod_dir, diff_material)
File "c:\python37\lib\site-packages\bcml\texts.py", line 600, in generate_diff
lang_map[lang] = [l for l in LANGUAGES if l in mod_langs][0]
IndexError: list index out of range
Then I tried to install the DS4 UI mod. Same output (just to confirm):
Traceback (most recent call last):
File "c:\python37\lib\site-packages\bcml\install.py", line 326, in install_mod
generate_logs(tmp_dir=tmp_dir, verbose=verbose, options=options)
File "c:\python37\lib\site-packages\bcml\install.py", line 231, in generate_logs
merger.log_diff(tmp_dir, modded_files)
File "c:\python37\lib\site-packages\bcml\texts.py", line 611, in log_diff
diff_material = self.generate_diff(mod_dir, diff_material)
File "c:\python37\lib\site-packages\bcml\texts.py", line 600, in generate_diff
lang_map[lang] = [l for l in LANGUAGES if l in mod_langs][0]
IndexError: list index out of range
Then I tried to install Linkle's icons and the DOF mod. Same thing.
That's all! Hoping this report serves of something. Thanks ^^
docs/README.md
is not bundled with the released tarball. Installing from source or pip fails.
When running in switch mode, and I try to export the mods, I get the following error:
Oops! Command '['E:\Program Files\BCML\pkgs\bcml\helpers\7z.exe', 'a', 'C:\Users\Guest\Downloads\botw\exported-mods.zip', 'E:tmp_bcml_export\*']' returned non-zero exit status 1.
Traceback (most recent call last):
File "E:\Program Files\BCML\pkgs\bcml\_api.py", line 44, in status_run
func(*args, **kwargs)
File "E:\Program Files\BCML\pkgs\bcml\_api.py", line 461, in export
install.export(output)
File "E:\Program Files\BCML\pkgs\bcml\install.py", line 716, in export
check=True,
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\subprocess.py", line 512, in run
subprocess.CalledProcessError: Command '['E:\\Program Files\\BCML\\pkgs\\bcml\\helpers\\7z.exe', 'a', 'C:\\Users\\Guest\\Downloads\\botw\\exported-mods.zip', 'E:tmp_bcml_export\\*']' returned non-zero exit status 1.
I don't have a D:\obj\ directory, if that makes any difference.
for the base game directory, I am using the game with the 1.6 update. Should I not be doing that?
I tried this on the BCML_3.0.0rc1 AND BCML_3.0.0rc2.
I also tried a few different BNP files, including a few I self made, as well as some from online.
5.8.1-arch1-1
installed through pip.
running BCML gives the following output
QSettings::value: Empty key passed
QSettings::value: Empty key passed
Icon theme "gnome" not found.
Icon theme "ubuntu-mono-dark" not found.
Icon theme "Mint-X" not found.
Icon theme "elementary" not found.
Icon theme "gnome" not found.
Icon theme "gnome" not found.
Icon theme "ubuntu-mono-dark" not found.
Icon theme "Mint-X" not found.
Icon theme "elementary" not found.
Icon theme "gnome" not found.
[pywebview] Error occurred while evaluating function get_mods
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/webviewb/util.py", line 175, in js_bridge_call
func_params = param if not param else json.loads(param)
File "/usr/lib/python3.8/json/__init__.py", line 341, in loads
raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not dict
the window will open but just shows a spinning circle in the mod list, and also has the issue described in #58 .
attempting to install anything just runs forever, installing pyqtwebengine makes no difference in UI or installation.
Hi! I updated from Cemu 1.15.0 to 1.15.18, and see that a mod I once made now requires BCML and a .bnp file on gamebanana or it stays hidden. I downloaded the installer version of BCML, but whenever I try to either install my mod from graphicPacks folder, or click on the Create BNP mod button, all i get is this error:
BCML has encountered an error while performing an operation. Error details:
Traceback (most recent call last):
File "C:\Users.........\BCML\pkgs\bcml\install.py" , line 240, in generate_logs
merger.log_diff(tmp_dir, modded_files)
File ".....data.py" line 708, in generate_diff
actor_info=byml.Byml(util.decompress_file(str(actor_file))).parse()
File ".....byml.py" line 72, in init
raise Value Error(Invalid version: %u-wiiu (expected 1-3) % version)
ValueError: Invalid version: 1-wiiu (expected 1-3)
Please help! I feel like I'm missing some valuable step in the process, something that needs to be done to my mod that worked pre-BCML to get it to work now...
This is more of a recommendation than anything else, but I think the context menu shown when right-clicking in BCML 3.0 should be disable. It provides options that people probably shouldn't have access to, other than maybe refresh if something goes wrong.
I am not able to install mods via the one click tool anymore, even after reinstalling bcml a view times and also trying some older versions. A friend of mine doesn't have that problem, so I haven't been able to find a solution.
OS: Pop_OS 20.04
I am encountering a weird bug where no button in the BCML ui reacts unless I double click the button. Is this intended or is it a distro specific bug?
I'm trying to get BCML working on Linux, but I get an error on startup.
ModuleNotFoundError: No module named 'winreg'
Am I doing something wrong, or is this the fault of the software?
I've installed BCML 10 times with the 2 first method and the application won't start. When I double click on the application or write BCML on the command promp, nothing happens. Since all the mods on GamesBanana required BCML, I can't install any mod...
It would be much more helpful if you replaced the mod root folder browser with something like this:
https://www.medo64.com/content/media/OpenFolderDialog.png
It would really help to be able to paste a folder path in there, and having your recent folders available.
In the future, add the ability to export the "final product" as a single, installable mod. Also, add the option to export this in SDCafiine format.
I installed BCML 2.8.0 earlier today, after having already played the game for sometime earlier. I'd already installed the microsoft c++ packs. The mods I used, hyrule rebalance and improved savage lynel bow, seemed to merge/install correctly. When I try to start cemu, it crashes after loading shaders. I'm attaching my log.
I disabled any(and ALL) mods I thought would conflict, I even uninstalled BCML. Don't want it anymore if its gonna break the game. Unfortunately all I'm left with is a broken game, I can't even start BOTW. Crashes after loading shaders as if BCML is still installed.
To be clear, BCML wouldn't work after install, after disabling what I thought were conflicting mods, and seems to have broken BOTW after uninstalling it.
Right now the reference RSTB and the hash table only contain entries for the USen version of BOTW. For BCML to work fully with other versions, files specific to them must be added.
I tried out v3.0, and I keep running into errors after installing more than one mod. It always seems to be an issue with being unable to edit bootup,pack. Specifically:
[WinError 183] Cannot create a file when that file already exists: 'F:\\Games\\Emulators\\WII U\\BCML 3.0\\data\\mods\\9999_BCML\\content\\Pack\\Bootup.pack' Note that this could leave your game in an unplayable state.
Traceback (most recent call last):
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\pathlib.py", line 1268, in mkdir
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'F:\\Games\\Emulators\\WII U\\CEMU\\graphicPacks\\BreathOfTheWild_BCML\\content\\Pack\\Bootup.pack\\Actor'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "F:\Games\Emulators\WII U\BCML 3.0\pkgs\bcml\_api.py", line 325, in apply_queue
install.refresh_master_export()
File "F:\Games\Emulators\WII U\BCML 3.0\pkgs\bcml\install.py", line 267, in refresh_master_export
link_master_mod()
File "F:\Games\Emulators\WII U\BCML 3.0\pkgs\bcml\install.py", line 666, in link_master_mod
(output / rel_path).mkdir(parents=True, exist_ok=True)
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\pathlib.py", line 1272, in mkdir
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\pathlib.py", line 1268, in mkdir
FileExistsError: [WinError 183] Cannot create a file when that file already exists: 'F:\\Games\\Emulators\\WII U\\CEMU\\graphicPacks\\BreathOfTheWild_BCML\\content\\Pack\\Bootup.pack'
My python updated to Python 3.8.1 final .
Mod manager won't work ,says it needs the 3.7 Python version.
But i'm sure the instructions said BCML needs 3.7 or later.
I like to keep my software up-to-date ,not sure why BCML won't work with the new Python release.
I have bcml_2-6-2_setup.exe installed.
I noticed another 2.7 version? on pypi:
https://pypi.org/project/bcml/#files
sidenote :Seems to be different BCML versions out there on some sites.
Pretty sure NexusMods had an old version.
What is the official site to get latest BCML from ,gamebanana ? I noticed it there too.
I keep getting the above error whenever I try to install any mod on BCML on a version later than 3.0.0b22 or later.
I'm not sure what's happening, but I can't seem to install mods anymore on this version, and on version 3.0.0b22 a lot of mods are missing text or certain features. I'm new to modding BOTW, but I for the life of me can't figure out what's going on or find any help on this particular issue.
Hi, I have a problen installing the version 3.0.0b15, i tryed it using the windows installer and the command python setup.py install downloading the sorce coode from here and it dosnt launch. The only way to make it work is using pip install bcml but this installs me the version 2.8.0 and the mod witch I want to install requires a newer version. If any information about hardware is needed just ask me.
Ideally, BCML should be downloadable from PIP and should be run from anywhere with commands like bcml install
, bcml uninstall
, and bcml update
.
This might be me just being dumb, but when I click "Launch Game" nothing happens, other than the button dimming. I have 7 mods installed, including the Linkle mod, though I doubt my mods are the issue.
I've tried using the easy installer and the pip installer but neither work. Every time it opens BCML and asks to look for the cemu.exe location. I click okay and it opens my files to look for cemu.exe then it immediately crashes. I've tried reinstalling C++, Python, and BCML. I've even gotten different versions of Python but nothing works. Please help.
Reverting to b19 fixes this. Crash happens in new game and loading a save game. Either mod on their own works
i downloaded the latest ver and it showed this on the log file
Traceback (most recent call last):
File "C:\Users\NIGGA\Downloads\Easeus 14 02_47\BCML.launch.pyw", line 34, in
from bcml.main import main
File "C:\Users\NIGGA\Downloads\Easeus 14 02_47\pkgs\bcml_main_.py", line 20, in
from bcml import DEBUG, NO_CEF, install, dev, mergers, upgrade, util, oneclick
File "C:\Users\NIGGA\Downloads\Easeus 14 02_47\pkgs\bcml_oneclick.py", line 2, in
import requests
File "C:\Users\NIGGA\Downloads\Easeus 14 02_47\pkgs\requests_init.py", line 43, in
import urllib3
ModuleNotFoundError: No module named 'urllib3'
So I got BCML working, although I downloaded C++ after trying to boot up BCML so maybe that messed something up? I have all my paths set correctly I think, but whenever I launch the game my mods just aren't there, even when running BCML as admin. I only have 2, Hyrule Rebalance and Lylah music overhaul, and these are my only mods (besides enabling some enhancements with community packs and making guardians glow orange when active). Also I use vulkan. Not sure why this is happening, help would be great!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.