No-Bling/DOTA

Unhandled exception error when attempting to run No-Bling-builder.sh on macOS Mojave

Lethalmathematix opened this issue ยท 6 comments

It's finally out! ๐Ÿ˜ƒ ๐Ÿป

 

I get this error when running "No-Bling-builder.sh".

I also get the same error every time I run the compiled vpkmod file without the -s option.

Guess it's something to do with the code to display UI? Because I don't see anything popup where I can modify the default options.

The script seems to work though, and I get the .desktop file, and the compiled vpkmod executable, and an output .vpk file in the tempcontent folder.

I'm not sure if this .vpk file is working though- since I couldn't see the UI, I added "GlanceValue" to "var def" in the .cs file and recompiled it.

Seemed successful: "[new patch] Couriers, Wards, Wearables, Abilities, GlanceValue, Taunts, Loadout"

But running dota with this .vpk file still shows the cosmetics.

 

Here's a screenshot of the error I get on running the compiled vpkmod file:

Screenshot 2020-07-12 at 9 06 52 AM

 

Version of Mono I'm using:

Untitled

AveYo commented

Yeah I haven't talked about macOS because it sucks.
First, WinForms do not work on 64bit.
Then, Catalina removed 32bit support completely.
Honestly surprised it even worked so far :)

Don't get your hopes up, but try changing No-Bling-builder.sh:

# launch vpkmod with -b option for building No-Bling DOTA mod
mono vpkmod -b

to

# launch vpkmod with -b option for building No-Bling DOTA mod
mono --arch=32 vpkmod -b

I will probably need to detect macOS and disable choices dialog, and instead use an environment variable

That works. Thanks! :D

I'm not upgrading to Catalina any time soon. ๐Ÿ‘€

Tbh, as long as I can pass the choices via commandline or worst case, set them in the .cs file before compiling, it's fine. As long as the mod works.

AveYo commented

@Lethalmathematix that's great!
I have no way of testing macOS myself, and only added theoretical support but did not know if the STEAMPATH works and file handling in the code does not break at something.
I guess I'll add this workaround by default on macOS, and also add a line to disable dialog with a note about 64bit.

Sounds good. :D

Guess I am the macOS guinea pig now. :p

waiting for catalina way to work :'(

I'm also on Mojave and I got the same error as OP. Difference is that when I add the --arch=32 as @Lethalmathematix mentioned, I get an error instead

Error: --arch=32 Failed to switch to 'mono32'.
Press any key to start DOTA

Upon further research, I discovered that brew install mono does NOT install mono32 (or at least, it was not adding the bin to /usr/local/bin/ nor anywhere else so which mono32 was failing. I uninstalled the brew version and downloaded the pkg from the mono-project website instead. This one installed both mono and mono32, and the .sh opened mono32.

image

So, for the next people on Mac who installed mono through brew and had same issues, don't :D Install from https://www.mono-project.com/download/stable/ instead.

On a secondary issue, upon mono32 "booting up", another error is printed in terminal:

2020-09-14 22:08:33.545 mono32[9977:1008464] *** Assertion failure in +[NSServiceViewController currentAppIsViewService], /BuildRoot/Library/Caches/com.apple.xbs/Sources/ViewBridge/ViewBridge-401.1/NSViewService.m:131
2020-09-14 22:08:33.545 mono32[9977:1008464] *** Assertion failure in +[NSServiceViewController currentAppIsViewService], /BuildRoot/Library/Caches/com.apple.xbs/Sources/ViewBridge/ViewBridge-401.1/NSViewService.m:131

If I try to interact with the options, mono32 hangs. But if I straight out click OK, then it works :D

For a "quick n dirty Mac check" in the script, I've made a PR: https://github.com/No-Bling/DOTA/pull/62/files