libertyernie / brawltools

BrawlBox and BrawlLib
http://forums.kc-mm.com/index.php?topic=67847.0
143 stars 31 forks source link

Fix when loading with Wine (Mono doesn't work) #217

Open Tcll opened 5 years ago

Tcll commented 5 years ago

looks like the issue with Brawlbox not seeing ./Lib is still a thing The thing I did to get it working was literally something a caveman would do image just copy the files from ./Lib/ into ./ (3rd run above): (you'll get an error telling you to delete the files, but it will run after that) image image you can't do anything in the GUI as it's inactive but Ctrl+O allows you to open a file: image again though, you can't really do anything as even the window remains inactive after this...

note that this IS the hotfix-1 version (latest at this time) installed on Xubuntu 16.04

Tcll commented 5 years ago

My personal fix is to just use the previous version: image

Sammi-Husky commented 5 years ago

@Tcll When loading, are you keeping the app.config file in the same directory as the brawlbox executable? That config should be telling it to look in ./lib and as far as i could find should be a mono compatible solution.

Tcll commented 5 years ago

yes, I haven't touched anything but the Lib directory when it comes to moving files

however, I did rename ./BrawlBox.exe to ./BB078.exe since I still use WinXP in a net-less VM for various reasons (file association between 2 apps with the same name is a B). perhaps renaming the config file would help here :P I'll have to test this whenever I get around to reinstalling Wine as a boot loader update broke my partition order and I had to nuke-reinstall.

honestly though, can't you just hard-code this without a config file :/ or at the very least store the config file in ./config/ and not make it reliant on the app name (if it is).

I understand the ability to have ./Lib/ in another location, and very much support the option ;) but tieing the config name to the app name is asking for issues.

Sammi-Husky commented 5 years ago

It isn't a conscious decision to tie the config to the app name, it's just the way that .net works. When using a config, .net requires it be named the same as the executable.

The recommended and default way for specifying library load locations for .Net stuff is the app.config, so the mechanism isn't something we did ourselves. We probably can manually load the libraries from ./lib ourselves via some C# code but it's frowned upon to do so for a few reasons.

So we're are in situation now where we decide which option is the lesser of the two evils: (reverting to having the DLL's in the same folder, or requiring the config name match)

Tcll commented 5 years ago

why would it be frowned upon :/ just write a wrapper to load them and separate the src so it's not so dirty...

Of course, this is coming from the guy who'd rather throw away the python standard library and write his own better modules using the smallest amount of necessary binary modules he can get away with while butchering any PEP8 standards and being the most hated person in the python community.

yeah... I'd do it. :awesomeface: If it makes the program work better, I'm all for it.

Unless it's about as shoddy as SciCraft farms which break nearly every Minecraft update... (use raw functionality and you shouldn't have to worry about that)