HGL
national-gold

Heroic not requesting macOS for microphone permissions when game starts using microphone

Log files are below this message(sorry!). When I try to activate the microphone for any application in this prefix within heroic, it fails to do so. I tried it within winecfg, and macOS does not give me the prompt to allow heroic to use the microphone. I even reset the permissions using
tccutil reset Microphone
tccutil reset Microphone
and it still did not prompt me for it. However, in Rocket League, when the game requests for the microphone to be used, it freezes for 5 seconds and then carries on, but without the microphone working as intended. I use GPTK for the prefix. On closer inspection of the logs, I think the following lines are responsible:
014c:fixme:coreaudio:ca_channel_layout_to_channel_mask Unhandled channel 0xffffffff
014c:fixme:coreaudio:ca_channel_layout_to_channel_mask Unhandled channel 0xffffffff
0024:err:ole:CoUninitialize Mismatched CoUninitialize
014c:fixme:coreaudio:ca_channel_layout_to_channel_mask Unhandled channel 0xffffffff
014c:fixme:coreaudio:ca_channel_layout_to_channel_mask Unhandled channel 0xffffffff
0024:err:ole:CoUninitialize Mismatched CoUninitialize
I have attached the heroic log and the Rocket League log to this post. Microphone permission requests to macOS work fine with Whisky and it's version of GPTK, so I'm not sure if it's a config issue on my end, since this is a completely clean prefix after a re-install.
27 Replies
national-gold
national-goldOP2y ago
sorry I forgot the rocket league log file and the heroic log file
national-gold
national-goldOP2y ago
national-gold
national-goldOP2y ago
is this the wrong place to post this kind of issue? do I need to go to github?
yelping-magenta
yelping-magenta2y ago
this is the right place, but seems like nobody knows how to help most of us read all issues, but we don't reply if we don't have anything to add with value support for mac is complicated, gaming on mac is not as mature as linux or windows and there's not that much knowledge and users just to clarify, it's not heroic who has to request the microphone permissions, when we launch a game we are just telling wine/crossover to execute something and we don't control how things wrong between wine and the game, heroic cannot ask for permissions for a given game
national-gold
national-goldOP2y ago
oh I see, so i suppose it is the actual wine executable that needs to request for that then maybe I could find those execs, then manually give them permission I'll give that a try and then update y'all on that So I did some experimenting... when you launch an example application like winecfg for instance with the gameportingtoolkit binary from the terminal, it actually makes the dialog box pop up, saying whether you would like "Terminal.app" to use the microphone This isn't an application specific issue either, because this happens with multiple games, and I tried using audacity with it, nothing works. When taking a look at the command for launching the game withing heroic in the heroic logs, I see that it has to interact with Legendary, so I suppose there's something going wrong in that interaction between all of them. I could probably take a look at the code that makes this all work and try and see what the issue is, but I'll need to study that first! Is Heroic supposed to be a game according to Heroic? Or am I misunderstanding this?
HEROIC_APP_NAME=Sugar HEROIC_APP_RUNNER=legendary HEROIC_APP_SOURCE=epic LD_PRELOAD= DOTNET_BUNDLE_EXTRACT_BASE_DIR= DOTNET_ROOT= WINEPREFIX="/Users/thenemesis/Games/Heroic/Prefixes/default/Rocket League" WINE_FULLSCREEN_FSR=0 WINEESYNC=1 WINEFSYNC=1 /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary launch Sugar --wine /usr/local/Cellar/game-porting-toolkit/1.1/bin/wine64 --language en
HEROIC_APP_NAME=Sugar HEROIC_APP_RUNNER=legendary HEROIC_APP_SOURCE=epic LD_PRELOAD= DOTNET_BUNDLE_EXTRACT_BASE_DIR= DOTNET_ROOT= WINEPREFIX="/Users/thenemesis/Games/Heroic/Prefixes/default/Rocket League" WINE_FULLSCREEN_FSR=0 WINEESYNC=1 WINEFSYNC=1 /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary launch Sugar --wine /usr/local/Cellar/game-porting-toolkit/1.1/bin/wine64 --language en
[cli] ERROR: Game Sugar is not currently installed!
[cli] ERROR: Game Sugar is not currently installed!
yelping-magenta
yelping-magenta2y ago
I'm not sure I understand the question, what do you mean by heroic being a game according to heroic?
national-gold
national-goldOP2y ago
sorry, I meant according to legendary
yelping-magenta
yelping-magenta2y ago
still not sure what you mean, legendary doesn't even know about heroic, we tell legendary to run the game
national-gold
national-goldOP2y ago
like I said, I might be misunderstanding this, but I am not sure what the command means when "Sugar" is passed as an argument to legendary as in, what is Sugar?
yelping-magenta
yelping-magenta2y ago
I see, Sugar is the code name of Rocket League all applications have an internal app name provided by epic and used by legendary, you can see the app name for any game at the bottom of the settings for each game in heroic (or checking what's the name passed to legendary in the commands in the logs)
national-gold
national-goldOP2y ago
I see, so then that means, if I need to do more testing on this, I have to tell legendary(without heroic) where the game is to see if it launches and the microphone works need to figure how to do that, but I suppose that might be in the legendary documentation sorry if I sound cryptic
yelping-magenta
yelping-magenta2y ago
if you want to launch the game without using heroic, you can do:
WINEPREFIX="/Users/thenemesis/Games/Heroic/Prefixes/default/Rocket League" /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary launch Sugar --wine /usr/local/Cellar/game-porting-toolkit/1.1/bin/wine64
WINEPREFIX="/Users/thenemesis/Games/Heroic/Prefixes/default/Rocket League" /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary launch Sugar --wine /usr/local/Cellar/game-porting-toolkit/1.1/bin/wine64
that would be the bare minimum
national-gold
national-goldOP2y ago
I'll give that a shot then
yelping-magenta
yelping-magenta2y ago
there you are saying: Legendary, launch the game Rocket League (Sugar) using this specific GamePortingToolking using this folder for the wine prefix nothing specific to heroic (I mean, the legendary binary is inside heroic's code, but it's just the unmodified legendary from their repo)
national-gold
national-goldOP2y ago
I see, but what would change, lets say, if the game was in on an external drive and not within the prefix itself? do I need another env variable in the command?
yelping-magenta
yelping-magenta2y ago
legendary keeps track of where games are installed, it knows where to look for the game
national-gold
national-goldOP2y ago
hmm, that's strange, because doing it through the terminal alone says that rocket league is not installed, but when heroic tells legendary to do it, it launches just fine
yelping-magenta
yelping-magenta2y ago
run /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary list and /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary status, share the output of both here oh wait, I see, it's missing one more env, wait
national-gold
national-goldOP2y ago
btw this is within an arm64 terminal right?
yelping-magenta
yelping-magenta2y ago
the env variable is LEGENDARY_CONFIG_PATH, I don't remember the exact value but it's something like /Library/Application Support/heroic/legendaryConfig/legendary, search for that in your file manager to get the exact path (the Library folder is hidden if I remember right) not sure, I don't own an Apple Silicon mac
national-gold
national-goldOP2y ago
I assume legendary is an arm binary, because it works just fine within an arm terminal, so I think it's ok I'll check this env variable looks like
echo LEGENDARY_CONFIG_PATH
echo LEGENDARY_CONFIG_PATH
returns nothing, so I suppose it needs to be set, and I have to manually find it sorry I meant with a dollar
yelping-magenta
yelping-magenta2y ago
yes, the env variable is not set in the system, heroic adds that while it's running for its process it's something like /Library/Application Support/heroic/legendaryConfig/legendary, I just don't have my mac around to confirm this
national-gold
national-goldOP2y ago
one second yes I can confirm that the config is in this path and on cat'ing the installed.json config, I can see that it is installed
{
"Sugar": {
"app_name": "Sugar",
"base_urls": [
"https://epicgames-download1.akamaized.net/Builds/Org/o-98larctxyhn55kqjq5xjb9wzjl9hf9/e6bcca5b37d0457ca881aec508205542/default",
"https://download.epicgames.com/Builds/Org/o-98larctxyhn55kqjq5xjb9wzjl9hf9/e6bcca5b37d0457ca881aec508205542/default",
"https://fastly-download.epicgames.com/Builds/Org/o-98larctxyhn55kqjq5xjb9wzjl9hf9/e6bcca5b37d0457ca881aec508205542/default"
],
"can_run_offline": true,
"egl_guid": "",
"executable": "Binaries/Win64/RocketLeague.exe",
"install_path": "/Volumes/X's Data/Other Stuff/Games/Epic Games/rocketleague",
"install_size": 28225828289,
"install_tags": [],
"is_dlc": false,
"launch_parameters": "",
"manifest_path": "",
"needs_verification": true,
"platform": "Windows",
"prereq_info": null,
"requires_ot": false,
"save_path": null,
"title": "Rocket League\u00ae",
"uninstaller": null,
"version": "BC2_Update47+436861"
}
}%
{
"Sugar": {
"app_name": "Sugar",
"base_urls": [
"https://epicgames-download1.akamaized.net/Builds/Org/o-98larctxyhn55kqjq5xjb9wzjl9hf9/e6bcca5b37d0457ca881aec508205542/default",
"https://download.epicgames.com/Builds/Org/o-98larctxyhn55kqjq5xjb9wzjl9hf9/e6bcca5b37d0457ca881aec508205542/default",
"https://fastly-download.epicgames.com/Builds/Org/o-98larctxyhn55kqjq5xjb9wzjl9hf9/e6bcca5b37d0457ca881aec508205542/default"
],
"can_run_offline": true,
"egl_guid": "",
"executable": "Binaries/Win64/RocketLeague.exe",
"install_path": "/Volumes/X's Data/Other Stuff/Games/Epic Games/rocketleague",
"install_size": 28225828289,
"install_tags": [],
"is_dlc": false,
"launch_parameters": "",
"manifest_path": "",
"needs_verification": true,
"platform": "Windows",
"prereq_info": null,
"requires_ot": false,
"save_path": null,
"title": "Rocket League\u00ae",
"uninstaller": null,
"version": "BC2_Update47+436861"
}
}%
yep, on adding the variable to the commands, it works fine!
LEGENDARY_CONFIG_PATH=$(pwd) /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary status
[Core] INFO: Trying to re-use existing login session...
Epic account: TheNemesis586
Games available: 11
Games installed: 1
EGL Sync enabled: False
Config directory: /Users/thenemesis/Library/Application Support/heroic/legendaryConfig/legendary
Platform (System): macOS-14.2.1-x86_64-i386-64bit (posix)

Legendary version: 0.20.33 - "Undue Alarm"
Update available: yes
- New version: 0.20.34 - "Direct Intervention"
- Release summary:
[!] Fixed webview based login
[*] Fixed a number of bugs and performance issues

See full changelog for additional details.
- Release URL: https://legendary.gl/release/0.20.34
! This update is recommended as it fixes major issues.
LEGENDARY_CONFIG_PATH=$(pwd) /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary status
[Core] INFO: Trying to re-use existing login session...
Epic account: TheNemesis586
Games available: 11
Games installed: 1
EGL Sync enabled: False
Config directory: /Users/thenemesis/Library/Application Support/heroic/legendaryConfig/legendary
Platform (System): macOS-14.2.1-x86_64-i386-64bit (posix)

Legendary version: 0.20.33 - "Undue Alarm"
Update available: yes
- New version: 0.20.34 - "Direct Intervention"
- Release summary:
[!] Fixed webview based login
[*] Fixed a number of bugs and performance issues

See full changelog for additional details.
- Release URL: https://legendary.gl/release/0.20.34
! This update is recommended as it fixes major issues.
this is the output of the legendary status command
yelping-magenta
yelping-magenta2y ago
that looks correct
national-gold
national-goldOP2y ago
the game does launch with the additional variable now ill test the mic with audacity in a bit well, the conclusion here is that legendary is responsible for something going wrong here should I tell them about this issue?
yelping-magenta
yelping-magenta2y ago
you can try reporting the issue in legendary
national-gold
national-goldOP2y ago
alright then, thanks for all the help, really appreciate it! I am reopening this because it seems that apps that don't use legendary as an intermediate have this problem too, like when launching the windows version of steam on heroic, microphone doesn't work on games like CS2 for instance. I have now changed the prefix to use Whisky's GPTK with the latest update

Did you find this page helpful?